polyhedron.h File Reference

Go to the source code of this file.

Defines

#define POL_ENSURE_INEQUALITIES(P)
#define POL_ENSURE_POINTS(P)
#define POL_ENSURE_FACETS(P)
#define POL_ENSURE_VERTICES(P)

Functions

void Polyhedron_Compute_Dual (Polyhedron *P)
Polyhedron * DomainConstraintSimplify (Polyhedron *P, unsigned MaxRays)
Polyhedron * AddConstraints (Value *Con, unsigned NbConstraints, Polyhedron *Pol, unsigned NbMaxRays)
Polyhedron * AddPolyToDomain (Polyhedron *Pol, Polyhedron *PolDomain)
Polyhedron * AddRays (Value *Ray2, unsigned NbRay2, Polyhedron *Pol1, unsigned NbMaxRays)
Polyhedron * align_context (Polyhedron *Pol, int align_dimension, int NbMaxRays)
Polyhedron * Constraints2Polyhedron (Matrix *Constraints, unsigned NbMaxRays)
 Given a matrix of constraints ('Constraints'), construct and return a polyhedron.
Polyhedron * Disjoint_Domain (Polyhedron *Pol, int flag, unsigned NbMaxRays)
Polyhedron * DomainAddConstraints (Polyhedron *Pol, Matrix *Mat, unsigned NbMaxRays)
Polyhedron * DomainAddRays (Polyhedron *Pol, Matrix *Ray, unsigned NbMaxConstrs)
Polyhedron * DomainConvex (Polyhedron *Pol, unsigned NbMaxConstrs)
Interval * DomainCost (Polyhedron *Pol, Value *Cost)
Polyhedron * DomainDifference (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
Polyhedron * DomainImage (Polyhedron *Pol, Matrix *Func, unsigned NbMaxConstrs)
Polyhedron * DomainIntersection (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
Polyhedron * DomainPreimage (Polyhedron *Pol, Matrix *Func, unsigned NbMaxRays)
Polyhedron * DomainSimplify (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
Polyhedron * Stras_DomainSimplify (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
Polyhedron * DomainUnion (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
Polyhedron * Domain_Copy (Polyhedron *Pol)
void Domain_Free (Polyhedron *Pol)
void Domain_PrintConstraints (FILE *Dst, const char *Format, Polyhedron *Pol)
Polyhedron * Empty_Polyhedron (unsigned Dimension)
int Gauss (Matrix *Mat, int NbEq, int Dimension)
int lower_upper_bounds (int pos, Polyhedron *P, Value *context, Value *LBp, Value *UBp)
Matrix * Polyhedron2Constraints (Polyhedron *Pol)
Matrix * Polyhedron2Rays (Polyhedron *Pol)
int PolyhedronIncludes (Polyhedron *Pol1, Polyhedron *Pol2)
Polyhedron * Polyhedron_Alloc (unsigned Dimension, unsigned NbConstraints, unsigned NbRays)
Polyhedron * Polyhedron_Copy (Polyhedron *Pol)
void Polyhedron_Free (Polyhedron *Pol)
Polyhedron * Polyhedron_Image (Polyhedron *Pol, Matrix *Func, unsigned NbMaxConstrs)
Polyhedron * Polyhedron_Preimage (Polyhedron *Pol, Matrix *Func, unsigned NbMaxRays)
void Polyhedron_Print (FILE *Dst, const char *Format, const Polyhedron *Pol)
void Polyhedron_PrintConstraints (FILE *Dst, const char *Format, Polyhedron *Pol)
Polyhedron * Polyhedron_Scan (Polyhedron *D, Polyhedron *C, unsigned MAXRAYS)
void PolyPrint (Polyhedron *Pol)
Polyhedron * Rays2Polyhedron (Matrix *Ray, unsigned NbMaxConstrs)
 Given a matrix of rays 'Ray', create and return a polyhedron.
Polyhedron * SubConstraint (Value *Con, Polyhedron *Pol, unsigned NbMaxRays, int Pass)
Polyhedron * Universe_Polyhedron (unsigned Dimension)

Define Documentation

#define POL_ENSURE_FACETS ( P   ) 
#define POL_ENSURE_INEQUALITIES ( P   ) 
#define POL_ENSURE_POINTS ( P   ) 
Value:

Definition at line 26 of file polyhedron.h.

Referenced by Polyhedron2Rays().

#define POL_ENSURE_VERTICES ( P   ) 

Function Documentation

Polyhedron* AddConstraints ( Value *  Con,
unsigned  NbConstraints,
Polyhedron *  Pol,
unsigned  NbMaxRays 
)
Polyhedron* AddPolyToDomain ( Polyhedron *  Pol,
Polyhedron *  PolDomain 
)
Polyhedron* AddRays ( Value *  Ray2,
unsigned  NbRay2,
Polyhedron *  Pol1,
unsigned  NbMaxRays 
)
Polyhedron* align_context ( Polyhedron *  Pol,
int  align_dimension,
int  NbMaxRays 
)
Polyhedron* Constraints2Polyhedron ( Matrix *  Constraints,
unsigned  NbMaxRays 
)

Given a matrix of constraints ('Constraints'), construct and return a polyhedron.

Parameters:
Constraints Constraints (may be modified!)
NbMaxRays Estimated number of rays in the ray matrix of the polyhedron.
Returns:
newly allocated Polyhedron

Definition at line 1906 of file polyhedron.c.

References any_exception_error, CATCH, Chernikova(), polyhedron::Constraint, ConstraintSimplify(), Empty_Polyhedron(), errormsg1(), ExchangeRows(), F_SET, First_Non_Zero(), Gauss(), ImplicitEqualities(), Matrix_Alloc(), Matrix_Free(), Matrix_Print(), matrix::NbColumns, polyhedron::NbEq, SatMatrix::NbRows, matrix::NbRows, matrix::p, SatMatrix::p_init, matrix::p_Init, POL_INEQUALITIES, POL_INTEGER, POL_ISSET, POL_NO_DUAL, POL_VALID, Polyhedron_Alloc(), Polyhedron_Free(), Polyhedron_Print(), polyhedron::Ray, Remove_Redundants(), RETHROW, Sat, SMAlloc(), SMFree(), SMPrint(), SMVector_Init, SortConstraints(), TRY, UNCATCH, Universe_Polyhedron(), value_clear, value_init, value_notzero_p, value_set_si, value_zero_p, Vector_Copy(), and Vector_Set().

Referenced by AddConstraints(), dehomogenize_polyhedron(), DomainSimplify(), Ehrhart_Quick_Apx(), Elim_Columns(), eliminable_vars(), Enumeration_zero(), Find_m_faces(), homogenize(), LexSmaller(), main(), Param_Vertices_Print(), Polyhedron_Compute_Dual(), Polyhedron_Preimage(), Polyhedron_Preprocess(), Polyhedron_Preprocess2(), Polyhedron_Remove_parm_eqs(), Recession_Cone(), Stras_DomainSimplify(), test_Constraints_fullDimensionize(), test_Constraints_Remove_parm_eqs(), test_Polyhedron_Remove_parm_eqs(), and Union_Read().

Polyhedron* Disjoint_Domain ( Polyhedron *  Pol,
int  flag,
unsigned  NbMaxRays 
)
Polyhedron* Domain_Copy ( Polyhedron *  Pol  ) 
void Domain_Free ( Polyhedron *  Pol  ) 
void Domain_PrintConstraints ( FILE *  Dst,
const char *  Format,
Polyhedron *  Pol 
)

Definition at line 4638 of file polyhedron.c.

References polyhedron::next, and Polyhedron_PrintConstraints().

Polyhedron* DomainAddConstraints ( Polyhedron *  Pol,
Matrix *  Mat,
unsigned  NbMaxRays 
)
Polyhedron* DomainAddRays ( Polyhedron *  Pol,
Matrix *  Ray,
unsigned  NbMaxConstrs 
)
Polyhedron* DomainConstraintSimplify ( Polyhedron *  P,
unsigned  MaxRays 
)
Polyhedron* DomainConvex ( Polyhedron *  Pol,
unsigned  NbMaxConstrs 
)
Interval* DomainCost ( Polyhedron *  Pol,
Value *  Cost 
)
Polyhedron* DomainDifference ( Polyhedron *  Pol1,
Polyhedron *  Pol2,
unsigned  NbMaxRays 
)
Polyhedron* DomainImage ( Polyhedron *  Pol,
Matrix *  Func,
unsigned  NbMaxConstrs 
)
Polyhedron* DomainIntersection ( Polyhedron *  Pol1,
Polyhedron *  Pol2,
unsigned  NbMaxRays 
)
Polyhedron* DomainPreimage ( Polyhedron *  Pol,
Matrix *  Func,
unsigned  NbMaxRays 
)
Polyhedron* DomainSimplify ( Polyhedron *  Pol1,
Polyhedron *  Pol2,
unsigned  NbMaxRays 
)
Polyhedron* DomainUnion ( Polyhedron *  Pol1,
Polyhedron *  Pol2,
unsigned  NbMaxRays 
)
Polyhedron* Empty_Polyhedron ( unsigned  Dimension  ) 
int Gauss ( Matrix *  Mat,
int  NbEq,
int  Dimension 
)
int lower_upper_bounds ( int  pos,
Polyhedron *  P,
Value *  context,
Value *  LBp,
Value *  UBp 
)
Matrix* Polyhedron2Constraints ( Polyhedron *  Pol  ) 
Matrix* Polyhedron2Rays ( Polyhedron *  Pol  ) 
Polyhedron* Polyhedron_Alloc ( unsigned  Dimension,
unsigned  NbConstraints,
unsigned  NbRays 
)
void Polyhedron_Compute_Dual ( Polyhedron *  P  ) 
Polyhedron* Polyhedron_Copy ( Polyhedron *  Pol  ) 
void Polyhedron_Free ( Polyhedron *  Pol  ) 
Polyhedron* Polyhedron_Image ( Polyhedron *  Pol,
Matrix *  Func,
unsigned  NbMaxConstrs 
)
Polyhedron* Polyhedron_Preimage ( Polyhedron *  Pol,
Matrix *  Func,
unsigned  NbMaxRays 
)
void Polyhedron_Print ( FILE *  Dst,
const char *  Format,
const Polyhedron *  Pol 
)
void Polyhedron_PrintConstraints ( FILE *  Dst,
const char *  Format,
Polyhedron *  Pol 
)
Polyhedron* Polyhedron_Scan ( Polyhedron *  D,
Polyhedron *  C,
unsigned  MAXRAYS 
)
int PolyhedronIncludes ( Polyhedron *  Pol1,
Polyhedron *  Pol2 
)
void PolyPrint ( Polyhedron *  Pol  ) 

Definition at line 1704 of file polyhedron.c.

References Polyhedron_Print().

Polyhedron* Rays2Polyhedron ( Matrix *  Ray,
unsigned  NbMaxConstrs 
)

Given a matrix of rays 'Ray', create and return a polyhedron.

Parameters:
Ray Rays (may be modified!)
NbMaxConstrs Estimated number of constraints in the polyhedron.
Returns:
newly allocated Polyhedron

Definition at line 2083 of file polyhedron.c.

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

Referenced by main(), Polyhedron_Image(), and traite_m_face().

Polyhedron* Stras_DomainSimplify ( Polyhedron *  Pol1,
Polyhedron *  Pol2,
unsigned  NbMaxRays 
)
Polyhedron* SubConstraint ( Value *  Con,
Polyhedron *  Pol,
unsigned  NbMaxRays,
int  Pass 
)
Polyhedron* Universe_Polyhedron ( unsigned  Dimension  ) 

Generated on Wed Nov 25 17:45:27 2009 for polylib by  doxygen 1.6.1