next up previous contents
Next: Chernikova level functions Up: Main functions in Polyhedron.c Previous: Main functions in Polyhedron.c   Contents

Computing on Domains or polyhedra

Polyhedron* Polyhedron_Alloc
(unsigned Dimension, unsigned NbConstraints, unsigned NbRays): allocate memory space for polyhedron.

void Polyhedron_Free (Polyhedron *Pol)
: free the memory space occupied by the single polyhedron.

void Domain_Free (Polyhedron *Pol)
: free the memory space occupied by the domain.

void Polyhedron_Print (FILE *Dst,char *Format,Polyhedron *Pol)
: print the contents of a polyhedron.

Polyhedron * Empty_Polyhedron (unsigned Dimension)
: create and return an empty polyhedron of non-homogenous dimension 'Dimension'.
Polyhedron * Universe_Polyhedron (unsigned Dimension)
: create and return a universe polyhedron of non-homogenous dimension 'Dimension'.

Polyhedron * Constraints2Polyhedron
(Matrix *Constraints,unsigned NbMaxRays): given a matrix of constraints 'Constraints', construct and return a polyhedron using Chernikova's algorithm.

Matrix * Polyhedron2Constraints (Polyhedron *Pol)
: given a polyhedron, extract its matrix of constraints.

Polyhedron * Rays2Polyhedron (Matrix *Ray,unsigned NbMaxConstrs)
: given a matrix of rays 'Ray', create and return a polyhedron using Chernikova's algorithm.

Matrix * Polyhedron2Rays (Polyhedron *Pol)
: given a polyhedron 'Pol', extract its matrix of rays.

Polyhedron * AddConstraints
(Value *Con, unsigned NbConstraints, Polyhedron *Pol, unsigned NbMaxRays): add new constraints to a polyhedron.

Polyhedron * DomainAddConstraints
(Polyhedron *Pol, Matrix *Mat, unsigned NbMaxRays): add constraints to each polyhedron in a polyhedral domain.

Polyhedron * AddRays
(Value *AddedRays, unsigned NbAddedRays, Polyhedron *Pol, unsigned NbMaxConstrs): add rays to a polyhedron.

Polyhedron * DomainAddRays
(Polyhedron *Pol, Matrix *Ray, unsigned NbMaxConstrs): add rays to each polyhedron in a polyhedral domain.

int PolyhedronIncludes
(Polyhedron *Pol1, Polyhedron *Pol2): return 1 if 'Pol1' contains 'Pol2', 0 otherwise.

Polyhedron * AddPolyToDomain
(Polyhedron *Pol, Polyhedron *PolDomain): add Polyhedron 'Pol' to polyhedral domain 'PolDomain'.

Polyhedron * DomainIntersection
(Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays): return the intersection of two polyhedral domains 'Pol1' an'Pol2'.

Polyhedron * Polyhedron_Copy
(Polyhedron *Pol): create a copy of a polyhedron.

Polyhedron * Domain_Copy
(Polyhedron *Pol): create a copy of a polyhedral domain.

Polyhedron * DomainSimplify
(Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays): find the largest domain set that can simplify intersection.

Polyhedron * DomainUnion
(Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays): return the union of two polyhedral domains 'Pol1' and 'Pol2'.

Polyhedron * DomainConvex
(Polyhedron *Pol, unsigned NbMaxConstrs): concatenate the lists of rays and lines of the polyhedra of a domain into one combined list.

Polyhedron * DomainDifference
(Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays) : create a new polyhedral domain which is the difference of two domains.

Polyhedron * Polyhedron_Image
(Polyhedron *Pol, Matrix *Func, unsigned NbMaxConstrs): compute the image of a polyhedron.

Polyhedron * Polyhedron_Preimage
(Polyhedron *Pol, Matrix *Func, unsigned NbMaxRays): compute the preimage of a polyhedron.


next up previous contents
Next: Chernikova level functions Up: Main functions in Polyhedron.c Previous: Main functions in Polyhedron.c   Contents
Sorin Olaru 2002-04-24