Main Page   Compound List   File List   Compound Members   File Members  

polyhedron.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <polylib/polylib.h>

Go to the source code of this file.

Compounds

struct  SatMatrix

Defines

#define WSIZE   (8*sizeof(int))
#define bexchange(a, b, l)
#define exchange(a, b, t)   { (t)=(a); (a)=(b); (b)=(t); }
#define SMVector_Copy(p1, p2, length)   memcpy((char *)(p2), (char *)(p1), (int)((length)*sizeof(int)))
#define SMVector_Init(p1, length)   memset((char *)(p1), 0, (int)((length)*sizeof(int)))

Functions

void errormsg1 (char *f, char *msgname, char *msg)
SatMatrixSMAlloc (int rows, int cols)
void SMFree (SatMatrix **matrix)
void SMPrint (SatMatrix *matrix)
void SatVector_OR (int *p1, int *p2, int *p3, unsigned length)
void Combine (Value *p1, Value *p2, Value *p3, int pos, unsigned length)
SatMatrixTransformSat (Matrix *Mat, Matrix *Ray, SatMatrix *Sat)
void RaySort (Matrix *Ray, SatMatrix *Sat, int NbBid, int NbRay, int *equal_bound, int *sup_bound, unsigned RowSize1, unsigned RowSize2, unsigned bx, unsigned jx)
void SatMatrix_Extend (SatMatrix *Sat, Matrix *Mat, unsigned rows)
void Matrix_Extend (Matrix *Mat, unsigned NbRows)
int Chernikova (Matrix *Mat, Matrix *Ray, SatMatrix *Sat, unsigned NbBid, unsigned NbMaxRays, unsigned FirstConstraint, unsigned dual)
int Gauss (Matrix *Mat, int NbEq, int Dimension)
PolyhedronRemove_Redundants (Matrix *Mat, Matrix *Ray, SatMatrix *Sat, unsigned *Filter)
PolyhedronPolyhedron_Alloc (unsigned Dimension, unsigned NbConstraints, unsigned NbRays)
void Polyhedron_Free (Polyhedron *Pol)
void Domain_Free (Polyhedron *Pol)
void Polyhedron_Print (FILE *Dst, char *Format, Polyhedron *Pol)
void PolyPrint (Polyhedron *Pol)
PolyhedronEmpty_Polyhedron (unsigned Dimension)
PolyhedronUniverse_Polyhedron (unsigned Dimension)
PolyhedronConstraints2Polyhedron (Matrix *Constraints, unsigned NbMaxRays)
MatrixPolyhedron2Constraints (Polyhedron *Pol)
PolyhedronRays2Polyhedron (Matrix *Ray, unsigned NbMaxConstrs)
SatMatrixBuildSat (Matrix *Mat, Matrix *Ray, unsigned NbConstraints, unsigned NbMaxRays)
PolyhedronAddConstraints (Value *Con, unsigned NbConstraints, Polyhedron *Pol, unsigned NbMaxRays)
int PolyhedronIncludes (Polyhedron *Pol1, Polyhedron *Pol2)
PolyhedronAddPolyToDomain (Polyhedron *Pol, Polyhedron *PolDomain)
PolyhedronSubConstraint (Value *Con, Polyhedron *Pol, unsigned NbMaxRays, int Pass)
PolyhedronDomainIntersection (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
MatrixPolyhedron2Rays (Polyhedron *Pol)
PolyhedronAddRays (Value *AddedRays, unsigned NbAddedRays, Polyhedron *Pol, unsigned NbMaxConstrs)
PolyhedronDomainAddRays (Polyhedron *Pol, Matrix *Ray, unsigned NbMaxConstrs)
PolyhedronPolyhedron_Copy (Polyhedron *Pol)
PolyhedronDomain_Copy (Polyhedron *Pol)
void addToFilter (int k, unsigned *Filter, SatMatrix *Sat, Value *tmpR, Value *tmpC, int NbRays, int NbConstraints)
void FindSimple (Polyhedron *P1, Polyhedron *P2, unsigned *Filter, unsigned NbMaxRays)
int SimplifyConstraints (Polyhedron *Pol1, Polyhedron *Pol2, unsigned *Filter, unsigned NbMaxRays)
void SimplifyEqualities (Polyhedron *Pol1, Polyhedron *Pol2, unsigned *Filter)
PolyhedronDomainSimplify (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
PolyhedronStras_DomainSimplify (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
PolyhedronDomainUnion (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
PolyhedronDomainConvex (Polyhedron *Pol, unsigned NbMaxConstrs)
PolyhedronDomainDifference (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
Polyhedronalign_context (Polyhedron *Pol, int align_dimension, int NbMaxRays)
PolyhedronPolyhedron_Scan (Polyhedron *D, Polyhedron *C, unsigned NbMaxRays)
int lower_upper_bounds (int pos, Polyhedron *P, Value *context, Value *LBp, Value *UBp)
PolyhedronPolyhedron_Preimage (Polyhedron *Pol, Matrix *Func, unsigned NbMaxRays)
PolyhedronDomainPreimage (Polyhedron *Pol, Matrix *Func, unsigned NbMaxRays)
PolyhedronPolyhedron_Image (Polyhedron *Pol, Matrix *Func, unsigned NbMaxConstrs)
PolyhedronDomainImage (Polyhedron *Pol, Matrix *Func, unsigned NbMaxConstrs)
IntervalDomainCost (Polyhedron *Pol, Value *Cost)
PolyhedronDomainAddConstraints (Polyhedron *Pol, Matrix *Mat, unsigned NbMaxRays)
PolyhedronDisjoint_Domain (Polyhedron *P, int flag, unsigned NbMaxRays)
void Polyhedron_PrintConstraints (FILE *Dst, char *Format, Polyhedron *Pol)

Variables

int Pol_status


Define Documentation

#define bexchange a,
b,
 
 

Value:

{\
  char *t = (char *)malloc(l*sizeof(char));\
  memcpy((t), (char *)(a), (int)(l));\
  memcpy((char *)(a), (char *)(b), (int)(l));\
  memcpy((char *)(b), (t), (int)(l));\
  free(t); \
}

Definition at line 54 of file polyhedron.c.

Referenced by RaySort(), and Remove_Redundants().

#define exchange a,
b,
     { (t)=(a); (a)=(b); (b)=(t); }
 

Definition at line 63 of file polyhedron.c.

Referenced by Remove_Redundants().

#define SMVector_Copy p1,
p2,
length       memcpy((char *)(p2), (char *)(p1), (int)((length)*sizeof(int)))
 

Definition at line 182 of file polyhedron.c.

Referenced by Chernikova().

#define SMVector_Init p1,
length       memset((char *)(p1), 0, (int)((length)*sizeof(int)))
 

Definition at line 188 of file polyhedron.c.

Referenced by BuildSat(), Constraints2Polyhedron(), DomainSimplify(), FindSimple(), Rays2Polyhedron(), Stras_DomainSimplify(), and TransformSat().

#define WSIZE   (8*sizeof(int))
 

Definition at line 52 of file polyhedron.c.

Referenced by addToFilter(), and Chernikova().


Function Documentation

Polyhedron* AddConstraints Value   Con,
unsigned    NbConstraints,
Polyhedron   Pol,
unsigned    NbMaxRays
 

Definition at line 2268 of file polyhedron.c.

References BuildSat(), CATCH, Chernikova(), polyhedron::Constraint, polyhedron::Dimension, errormsg1(), Matrix_Alloc(), Matrix_Free(), polyhedron::NbBid, polyhedron::NbConstraints, polyhedron::NbRays, matrix::NbRows, matrix::p, Pol_status, Polyhedron_Copy(), Polyhedron_Free(), polyhedron::Ray, Remove_Redundants(), RETHROW, SMFree(), UNCATCH, and Vector_Copy().

Polyhedron* AddPolyToDomain Polyhedron   Pol,
Polyhedron   PolDomain
 

Definition at line 2384 of file polyhedron.c.

References emptyQ, polyhedron::next, Polyhedron_Free(), and PolyhedronIncludes().

Polyhedron* AddRays Value   AddedRays,
unsigned    NbAddedRays,
Polyhedron   Pol,
unsigned    NbMaxConstrs
 

Definition at line 2598 of file polyhedron.c.

References BuildSat(), CATCH, Chernikova(), polyhedron::Constraint, polyhedron::Dimension, errormsg1(), Matrix_Alloc(), Matrix_Free(), polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::NbRays, matrix::NbRows, matrix::p_Init, Pol_status, Polyhedron_Free(), polyhedron::Ray, Remove_Redundants(), RETHROW, SMFree(), TransformSat(), UNCATCH, and Vector_Copy().

void addToFilter int    k,
unsigned *    Filter,
SatMatrix   Sat,
Value   tmpR,
Value   tmpC,
int    NbRays,
int    NbConstraints
[static]
 

Definition at line 2783 of file polyhedron.c.

References MSB, NEXT, SatMatrix::p, value_decrement, value_posz_p, value_set_si, and WSIZE.

Referenced by FindSimple().

Polyhedron* align_context Polyhedron   Pol,
int    align_dimension,
int    NbMaxRays
 

Definition at line 3574 of file polyhedron.c.

References CATCH, polyhedron::Constraint, Constraints2Polyhedron(), polyhedron::Dimension, errormsg1(), Matrix_Alloc(), Matrix_Free(), polyhedron::NbConstraints, polyhedron::next, matrix::p, Polyhedron_Copy(), Polyhedron_Free(), RETHROW, UNCATCH, value_assign, and Vector_Set().

SatMatrix* BuildSat Matrix   Mat,
Matrix   Ray,
unsigned    NbConstraints,
unsigned    NbMaxRays
[static]
 

Definition at line 2206 of file polyhedron.c.

References CATCH, MSB, matrix::NbColumns, SatMatrix::NbRows, matrix::NbRows, NEXT, SatMatrix::p, matrix::p, SatMatrix::p_init, RETHROW, SMAlloc(), SMFree(), SMVector_Init, UNCATCH, value_addto, value_clear, value_init, value_multiply, value_notzero_p, and value_set_si.

Referenced by AddConstraints(), AddRays(), SimplifyConstraints(), and SubConstraint().

int Chernikova Matrix   Mat,
Matrix   Ray,
SatMatrix   Sat,
unsigned    NbBid,
unsigned    NbMaxRays,
unsigned    FirstConstraint,
unsigned    dual
[static]
 

Definition at line 394 of file polyhedron.c.

References CATCH, Combine(), errormsg1(), Matrix_Extend(), Matrix_Print(), MSB, SatMatrix::NbColumns, matrix::NbColumns, SatMatrix::NbRows, matrix::NbRows, NEXT, SatMatrix::p, matrix::p, P_VALUE_FMT, RaySort(), RETHROW, SatMatrix_Extend(), SatVector_OR(), SMPrint(), SMVector_Copy, UNCATCH, value_addto, value_clear, value_init, value_multiply, value_neg_p, value_notzero_p, value_oppose, value_print, value_zero_p, Vector_Copy(), Vector_Exchange(), and WSIZE.

Referenced by AddConstraints(), AddRays(), Constraints2Polyhedron(), Rays2Polyhedron(), SimplifyConstraints(), and SubConstraint().

void Combine Value   p1,
Value   p2,
Value   p3,
int    pos,
unsigned    length
[static]
 

Definition at line 201 of file polyhedron.c.

References Gcd(), value_absolute, value_assign, value_clear, value_division, value_init, value_oppose, Vector_Combine(), and Vector_Normalize().

Referenced by Chernikova(), and Gauss().

Polyhedron* Constraints2Polyhedron Matrix   Constraints,
unsigned    NbMaxRays
 

Definition at line 1972 of file polyhedron.c.

References CATCH, Chernikova(), errormsg1(), Matrix_Alloc(), Matrix_Free(), Matrix_Print(), matrix::NbColumns, SatMatrix::NbRows, matrix::NbRows, matrix::p, SatMatrix::p_init, matrix::p_Init, Polyhedron_Free(), Polyhedron_Print(), Remove_Redundants(), RETHROW, SMAlloc(), SMFree(), SMPrint(), SMVector_Init, UNCATCH, Universe_Polyhedron(), value_set_si, and Vector_Set().

Polyhedron* Disjoint_Domain Polyhedron   P,
int    flag,
unsigned    NbMaxRays
 

Definition at line 4205 of file polyhedron.c.

References AddConstraints(), AddPolyToDomain(), polyhedron::Constraint, Domain_Free(), emptyQ, errormsg1(), polyhedron::NbConstraints, polyhedron::next, Polyhedron_Copy(), Polyhedron_Free(), SubConstraint(), and value_zero_p.

Polyhedron* Domain_Copy Polyhedron   Pol
 

Definition at line 2745 of file polyhedron.c.

References Domain_Copy(), polyhedron::next, and Polyhedron_Copy().

void Domain_Free Polyhedron   Pol
 

Definition at line 1797 of file polyhedron.c.

References polyhedron::Constraint, Domain_Free(), polyhedron::next, polyhedron::p_Init, polyhedron::p_Init_size, and value_clear.

Polyhedron* DomainAddConstraints Polyhedron   Pol,
Matrix   Mat,
unsigned    NbMaxRays
 

Definition at line 4152 of file polyhedron.c.

References AddConstraints(), polyhedron::Dimension, errormsg1(), matrix::NbColumns, matrix::NbRows, polyhedron::next, matrix::p_Init, and PolyhedronIncludes().

Polyhedron* DomainAddRays Polyhedron   Pol,
Matrix   Ray,
unsigned    NbMaxConstrs
 

Definition at line 2676 of file polyhedron.c.

References AddRays(), polyhedron::Dimension, errormsg1(), matrix::NbColumns, matrix::NbRows, polyhedron::next, matrix::p, and PolyhedronIncludes().

Polyhedron* DomainConvex Polyhedron   Pol,
unsigned    NbMaxConstrs
 

Definition at line 3489 of file polyhedron.c.

References AddRays(), CATCH, polyhedron::NbRays, polyhedron::next, Polyhedron_Copy(), Polyhedron_Free(), polyhedron::Ray, RETHROW, and UNCATCH.

Interval* DomainCost Polyhedron   Pol,
Value   Cost
 

Definition at line 4027 of file polyhedron.c.

References CATCH, polyhedron::Dimension, errormsg1(), interval::MaxD, interval::MaxI, interval::MaxN, interval::MinD, interval::MinI, interval::MinN, polyhedron::NbRays, polyhedron::Ray, RETHROW, UNCATCH, value_addto, value_assign, value_clear, value_eq, value_gt, value_init, value_lt, value_multiply, value_ne, value_oppose, value_set_si, and value_zero_p.

Polyhedron* DomainDifference Polyhedron   Pol1,
Polyhedron   Pol2,
unsigned    NbMaxRays
 

Definition at line 3521 of file polyhedron.c.

References AddPolyToDomain(), polyhedron::Constraint, polyhedron::Dimension, Domain_Copy(), Domain_Free(), Empty_Polyhedron(), emptyQ, errormsg1(), polyhedron::NbConstraints, polyhedron::next, SubConstraint(), and value_notzero_p.

Polyhedron* DomainImage Polyhedron   Pol,
Matrix   Func,
unsigned    NbMaxConstrs
 

Definition at line 3991 of file polyhedron.c.

References AddPolyToDomain(), CATCH, polyhedron::next, Polyhedron_Free(), Polyhedron_Image(), RETHROW, and UNCATCH.

Polyhedron* DomainIntersection Polyhedron   Pol1,
Polyhedron   Pol2,
unsigned    NbMaxRays
 

Definition at line 2546 of file polyhedron.c.

References AddConstraints(), AddPolyToDomain(), polyhedron::Constraint, polyhedron::Dimension, Empty_Polyhedron(), errormsg1(), polyhedron::NbConstraints, and polyhedron::next.

Polyhedron* DomainPreimage Polyhedron   Pol,
Matrix   Func,
unsigned    NbMaxRays
 

Definition at line 3886 of file polyhedron.c.

References AddPolyToDomain(), CATCH, polyhedron::next, Polyhedron_Free(), Polyhedron_Preimage(), RETHROW, and UNCATCH.

Polyhedron* DomainSimplify Polyhedron   Pol1,
Polyhedron   Pol2,
unsigned    NbMaxRays
 

Definition at line 3183 of file polyhedron.c.

References AddPolyToDomain(), polyhedron::Constraint, Constraints2Polyhedron(), polyhedron::Dimension, Empty_Polyhedron(), emptyQ, errormsg1(), Matrix_Alloc(), Matrix_Free(), MSB, polyhedron::NbConstraints, matrix::NbRows, NEXT, polyhedron::next, matrix::p, Pol_status, SimplifyConstraints(), SimplifyEqualities(), SMVector_Init, and Vector_Copy().

Polyhedron* DomainUnion Polyhedron   Pol1,
Polyhedron   Pol2,
unsigned    NbMaxRays
 

Definition at line 3408 of file polyhedron.c.

References polyhedron::Dimension, errormsg1(), polyhedron::next, Polyhedron_Copy(), and PolyhedronIncludes().

Polyhedron* Empty_Polyhedron unsigned    Dimension
 

Definition at line 1905 of file polyhedron.c.

References polyhedron::Constraint, errormsg1(), polyhedron::NbBid, polyhedron::NbEq, Polyhedron_Alloc(), value_set_si, and Vector_Set().

void errormsg1 char *    f,
char *    msgname,
char *    msg
 

Definition at line 28 of file errormsg.c.

References Pol_status.

void FindSimple Polyhedron   P1,
Polyhedron   P2,
unsigned *    Filter,
unsigned    NbMaxRays
[static]
 

Definition at line 2824 of file polyhedron.c.

References AddConstraints(), addToFilter(), CATCH, polyhedron::Constraint, polyhedron::Dimension, emptyQ, errormsg1(), Matrix_Alloc(), Matrix_Free(), MSB, polyhedron::NbConstraints, polyhedron::NbRays, SatMatrix::NbRows, matrix::NbRows, NEXT, SatMatrix::p, matrix::p, SatMatrix::p_init, matrix::p_Init, Polyhedron_Copy(), Polyhedron_Free(), polyhedron::Ray, RETHROW, SMAlloc(), SMFree(), SMVector_Init, UNCATCH, value_add_int, value_addto, value_assign, value_clear, value_decrement, value_eq, value_gt, value_increment, value_init, value_multiply, value_notzero_p, value_pos_p, value_posz_p, value_set_si, value_zero_p, Vector_Copy(), and Vector_Set().

Referenced by SimplifyConstraints().

int Gauss Matrix   Mat,
int    NbEq,
int    Dimension
 

Definition at line 752 of file polyhedron.c.

References CATCH, Combine(), errormsg1(), Matrix_Print(), matrix::NbRows, matrix::p, RETHROW, UNCATCH, value_clear, value_division, value_ge, value_init, value_multiply, value_neg_p, value_notzero_p, value_set_si, Vector_Exchange(), and Vector_Gcd().

int lower_upper_bounds int    pos,
Polyhedron   P,
Value   context,
Value   LBp,
Value   UBp
 

Definition at line 3701 of file polyhedron.c.

References polyhedron::Constraint, polyhedron::Dimension, Inner_Product(), LB_INFINITY, polyhedron::NbConstraints, UB_INFINITY, value_add_int, value_assign, value_clear, value_division, value_gt, value_init, value_lt, value_modulus, value_neg_p, value_notzero_p, value_oppose, value_pos_p, value_set_si, value_sub_int, and value_zero_p.

void Matrix_Extend Matrix   Mat,
unsigned    NbRows
[static]
 

Definition at line 354 of file polyhedron.c.

References errormsg1(), matrix::NbColumns, matrix::NbRows, matrix::p, matrix::p_Init, matrix::p_Init_size, and value_init.

Referenced by Chernikova().

Matrix* Polyhedron2Constraints Polyhedron   Pol
 

Definition at line 2071 of file polyhedron.c.

References polyhedron::Constraint, polyhedron::Dimension, errormsg1(), Matrix_Alloc(), polyhedron::NbConstraints, matrix::p_Init, and Vector_Copy().

Matrix* Polyhedron2Rays Polyhedron   Pol
 

Definition at line 2578 of file polyhedron.c.

References polyhedron::Dimension, errormsg1(), Matrix_Alloc(), polyhedron::NbRays, matrix::p_Init, polyhedron::Ray, and Vector_Copy().

Polyhedron* Polyhedron_Alloc unsigned    Dimension,
unsigned    NbConstraints,
unsigned    NbRays
 

Definition at line 1728 of file polyhedron.c.

References polyhedron::Constraint, polyhedron::Dimension, errormsg1(), polyhedron::NbBid, polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::NbRays, polyhedron::next, polyhedron::p_Init, polyhedron::p_Init_size, polyhedron::Ray, and value_init.

Polyhedron* Polyhedron_Copy Polyhedron   Pol
 

Definition at line 2719 of file polyhedron.c.

References polyhedron::Constraint, polyhedron::Dimension, errormsg1(), polyhedron::NbBid, polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::NbRays, Polyhedron_Alloc(), polyhedron::Ray, and Vector_Copy().

void Polyhedron_Free Polyhedron   Pol
 

Definition at line 1777 of file polyhedron.c.

References polyhedron::Constraint, polyhedron::p_Init, polyhedron::p_Init_size, and value_clear.

Polyhedron* Polyhedron_Image Polyhedron   Pol,
Matrix   Func,
unsigned    NbMaxConstrs
 

Definition at line 3914 of file polyhedron.c.

References CATCH, polyhedron::Dimension, Empty_Polyhedron(), errormsg1(), Matrix_Alloc(), Matrix_Free(), matrix::NbColumns, polyhedron::NbRays, matrix::NbRows, matrix::p, Polyhedron_Free(), polyhedron::Ray, Rays2Polyhedron(), RETHROW, UNCATCH, value_addto, value_assign, value_clear, value_init, value_multiply, and value_set_si.

Polyhedron* Polyhedron_Preimage Polyhedron   Pol,
Matrix   Func,
unsigned    NbMaxRays
 

Definition at line 3809 of file polyhedron.c.

References CATCH, polyhedron::Constraint, Constraints2Polyhedron(), polyhedron::Dimension, Empty_Polyhedron(), errormsg1(), Matrix_Alloc(), Matrix_Free(), matrix::NbColumns, polyhedron::NbConstraints, matrix::NbRows, matrix::p, Pol_status, Polyhedron_Free(), RETHROW, UNCATCH, value_addto, value_assign, value_clear, value_init, value_multiply, and value_set_si.

void Polyhedron_Print FILE *    Dst,
char *    Format,
Polyhedron   Pol
 

Definition at line 1820 of file polyhedron.c.

References polyhedron::Constraint, polyhedron::Dimension, polyhedron::NbBid, polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::NbRays, polyhedron::next, Polyhedron_Print(), polyhedron::Ray, value_notzero_p, and value_print.

void Polyhedron_PrintConstraints FILE *    Dst,
char *    Format,
Polyhedron   Pol
 

Definition at line 4427 of file polyhedron.c.

References polyhedron::Constraint, polyhedron::Dimension, polyhedron::NbConstraints, and value_print.

Polyhedron* Polyhedron_Scan Polyhedron   D,
Polyhedron   C,
unsigned    NbMaxRays
 

Definition at line 3646 of file polyhedron.c.

References align_context(), polyhedron::Dimension, Domain_Free(), DomainAddRays(), DomainIntersection(), DomainSimplify(), errormsg1(), Matrix_Alloc(), Matrix_Free(), matrix::NbRows, polyhedron::next, matrix::p, matrix::p_Init, value_set_si, and Vector_Set().

int PolyhedronIncludes Polyhedron   Pol1,
Polyhedron   Pol2
 

Definition at line 2344 of file polyhedron.c.

References polyhedron::Constraint, polyhedron::Dimension, polyhedron::NbConstraints, polyhedron::NbRays, polyhedron::Ray, value_addto, value_clear, value_init, value_multiply, value_neg_p, value_notzero_p, value_set_si, and value_zero_p.

void PolyPrint Polyhedron   Pol
 

Definition at line 1894 of file polyhedron.c.

References Polyhedron_Print().

Polyhedron* Rays2Polyhedron Matrix   Ray,
unsigned    NbMaxConstrs
 

Definition at line 2092 of file polyhedron.c.

References CATCH, Chernikova(), Empty_Polyhedron(), errormsg1(), Matrix_Alloc(), Matrix_Free(), Matrix_Print(), matrix::NbColumns, SatMatrix::NbRows, matrix::NbRows, SatMatrix::p, matrix::p, matrix::p_Init, Polyhedron_Free(), Polyhedron_Print(), Remove_Redundants(), RETHROW, SMAlloc(), SMFree(), SMPrint(), SMVector_Init, TransformSat(), UNCATCH, value_set_si, and Vector_Set().

void RaySort Matrix   Ray,
SatMatrix   Sat,
int    NbBid,
int    NbRay,
int *    equal_bound,
int *    sup_bound,
unsigned    RowSize1,
unsigned    RowSize2,
unsigned    bx,
unsigned    jx
[static]
 

Definition at line 288 of file polyhedron.c.

References bexchange, SatMatrix::p, matrix::p, value_neg_p, value_zero_p, and Vector_Exchange().

Referenced by Chernikova().

Polyhedron* Remove_Redundants Matrix   Mat,
Matrix   Ray,
SatMatrix   Sat,
unsigned *    Filter
[static]
 

Definition at line 877 of file polyhedron.c.

References bexchange, CATCH, polyhedron::Constraint, Empty_Polyhedron(), errormsg1(), exchange, Gauss(), Matrix_Print(), MSB, polyhedron::NbBid, SatMatrix::NbColumns, matrix::NbColumns, polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::NbRays, matrix::NbRows, NEXT, SatMatrix::p, matrix::p, Polyhedron_Alloc(), Polyhedron_Free(), polyhedron::Ray, RETHROW, UNCATCH, value_assign, value_clear, value_eq, value_increment, value_init, value_lt, value_ne, value_notzero_p, value_one_p, value_set_si, value_zero_p, Vector_Copy(), Vector_Exchange(), and Vector_Set().

Referenced by AddConstraints(), AddRays(), Constraints2Polyhedron(), Rays2Polyhedron(), SimplifyConstraints(), and SubConstraint().

void SatMatrix_Extend SatMatrix   Sat,
Matrix   Mat,
unsigned    rows
[static]
 

Definition at line 333 of file polyhedron.c.

References errormsg1(), SatMatrix::NbRows, matrix::NbRows, SatMatrix::p, and SatMatrix::p_init.

Referenced by Chernikova().

void SatVector_OR int *    p1,
int *    p2,
int *    p3,
unsigned    length
[static]
 

Definition at line 163 of file polyhedron.c.

Referenced by Chernikova().

int SimplifyConstraints Polyhedron   Pol1,
Polyhedron   Pol2,
unsigned *    Filter,
unsigned    NbMaxRays
[static]
 

Definition at line 3047 of file polyhedron.c.

References BuildSat(), CATCH, Chernikova(), polyhedron::Constraint, polyhedron::Dimension, emptyQ, errormsg1(), FindSimple(), Matrix_Alloc(), Matrix_Free(), polyhedron::NbBid, polyhedron::NbConstraints, polyhedron::NbRays, matrix::NbRows, matrix::p_Init, Pol_status, Polyhedron_Free(), polyhedron::Ray, Remove_Redundants(), RETHROW, SMFree(), UNCATCH, and Vector_Copy().

Referenced by DomainSimplify(), and Stras_DomainSimplify().

void SimplifyEqualities Polyhedron   Pol1,
Polyhedron   Pol2,
unsigned *    Filter
[static]
 

Definition at line 3130 of file polyhedron.c.

References polyhedron::Constraint, polyhedron::Dimension, errormsg1(), Gauss(), Matrix_Alloc(), Matrix_Free(), MSB, polyhedron::NbEq, NEXT, matrix::p, matrix::p_Init, Pol_status, value_notzero_p, and Vector_Copy().

Referenced by DomainSimplify().

SatMatrix* SMAlloc int    rows,
int    cols
[static]
 

Definition at line 92 of file polyhedron.c.

References errormsg1(), SatMatrix::NbColumns, SatMatrix::NbRows, SatMatrix::p, and SatMatrix::p_init.

void SMFree SatMatrix **    matrix [static]
 

Definition at line 128 of file polyhedron.c.

References SatMatrix::p, and SatMatrix::p_init.

void SMPrint SatMatrix   matrix [static]
 

Definition at line 145 of file polyhedron.c.

References SatMatrix::NbColumns, SatMatrix::NbRows, and SatMatrix::p.

Referenced by Chernikova(), Constraints2Polyhedron(), and Rays2Polyhedron().

Polyhedron* Stras_DomainSimplify Polyhedron   Pol1,
Polyhedron   Pol2,
unsigned    NbMaxRays
 

Definition at line 3289 of file polyhedron.c.

References AddPolyToDomain(), CATCH, polyhedron::Constraint, Constraints2Polyhedron(), polyhedron::Dimension, Empty_Polyhedron(), emptyQ, errormsg1(), Matrix_Alloc(), Matrix_Free(), MSB, polyhedron::NbConstraints, matrix::NbRows, NEXT, polyhedron::next, matrix::p, Polyhedron_Free(), RETHROW, SimplifyConstraints(), SMVector_Init, UNCATCH, and Vector_Copy().

Polyhedron* SubConstraint Value   Con,
Polyhedron   Pol,
unsigned    NbMaxRays,
int    Pass
 

Definition at line 2454 of file polyhedron.c.

References BuildSat(), CATCH, Chernikova(), polyhedron::Constraint, polyhedron::Dimension, errormsg1(), Matrix_Alloc(), Matrix_Free(), polyhedron::NbBid, polyhedron::NbConstraints, polyhedron::NbRays, matrix::NbRows, matrix::p, Pol_status, Polyhedron_Free(), polyhedron::Ray, Remove_Redundants(), RETHROW, SMFree(), UNCATCH, value_assign, value_decrement, value_notzero_p, value_oppose, value_set_si, and Vector_Copy().

SatMatrix* TransformSat Matrix   Mat,
Matrix   Ray,
SatMatrix   Sat
[static]
 

Definition at line 249 of file polyhedron.c.

References MSB, matrix::NbRows, NEXT, SatMatrix::p, SatMatrix::p_init, SMAlloc(), and SMVector_Init.

Referenced by AddRays(), and Rays2Polyhedron().

Polyhedron* Universe_Polyhedron unsigned    Dimension
 

Definition at line 1936 of file polyhedron.c.

References polyhedron::Constraint, errormsg1(), polyhedron::NbBid, polyhedron::NbEq, Polyhedron_Alloc(), polyhedron::Ray, value_set_si, and Vector_Set().


Variable Documentation

int Pol_status
 

Definition at line 72 of file polyhedron.c.

Referenced by AddConstraints(), AddRays(), DomainSimplify(), Polyhedron_Preimage(), SimplifyConstraints(), SimplifyEqualities(), and SubConstraint().


Generated on Mon Mar 15 10:59:52 2004 for polylib by doxygen1.2.18