#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <polylib/polylib.h>
Go to the source code of this file.
Classes | |
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 (const char *f, const char *msgname, const char *msg) |
static SatMatrix * | SMAlloc (int rows, int cols) |
static void | SMFree (SatMatrix **matrix) |
static void | SMPrint (SatMatrix *matrix) |
static void | SatVector_OR (int *p1, int *p2, int *p3, unsigned length) |
static void | Combine (Value *p1, Value *p2, Value *p3, int pos, unsigned length) |
static SatMatrix * | TransformSat (Matrix *Mat, Matrix *Ray, SatMatrix *Sat) |
static 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 void | SatMatrix_Extend (SatMatrix *Sat, Matrix *Mat, unsigned rows) |
static int | Chernikova (Matrix *Mat, Matrix *Ray, SatMatrix *Sat, unsigned NbBid, unsigned NbMaxRays, unsigned FirstConstraint, unsigned dual) |
static int | Gauss4 (Value **p, int NbEq, int NbRows, int Dimension) |
int | Gauss (Matrix *Mat, int NbEq, int Dimension) |
static Polyhedron * | Remove_Redundants (Matrix *Mat, Matrix *Ray, SatMatrix *Sat, unsigned *Filter) |
Polyhedron * | Polyhedron_Alloc (unsigned Dimension, unsigned NbConstraints, unsigned NbRays) |
void | Polyhedron_Free (Polyhedron *Pol) |
void | Domain_Free (Polyhedron *Pol) |
void | Polyhedron_Print (FILE *Dst, const char *Format, const Polyhedron *Pol) |
void | PolyPrint (Polyhedron *Pol) |
Polyhedron * | Empty_Polyhedron (unsigned Dimension) |
Polyhedron * | Universe_Polyhedron (unsigned Dimension) |
static void | SortConstraints (Matrix *Constraints, unsigned NbEq) |
static int | ImplicitEqualities (Matrix *Constraints, unsigned NbEq) |
Polyhedron * | Constraints2Polyhedron (Matrix *Constraints, unsigned NbMaxRays) |
Given a matrix of constraints ('Constraints'), construct and return a polyhedron. | |
Matrix * | Polyhedron2Constraints (Polyhedron *Pol) |
Polyhedron * | Rays2Polyhedron (Matrix *Ray, unsigned NbMaxConstrs) |
Given a matrix of rays 'Ray', create and return a polyhedron. | |
void | Polyhedron_Compute_Dual (Polyhedron *P) |
static SatMatrix * | BuildSat (Matrix *Mat, Matrix *Ray, unsigned NbConstraints, unsigned NbMaxRays) |
Polyhedron * | AddConstraints (Value *Con, unsigned NbConstraints, Polyhedron *Pol, unsigned NbMaxRays) |
int | PolyhedronIncludes (Polyhedron *Pol1, Polyhedron *Pol2) |
Polyhedron * | AddPolyToDomain (Polyhedron *Pol, Polyhedron *PolDomain) |
Polyhedron * | SubConstraint (Value *Con, Polyhedron *Pol, unsigned NbMaxRays, int Pass) |
Polyhedron * | DomainIntersection (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays) |
Matrix * | Polyhedron2Rays (Polyhedron *Pol) |
Polyhedron * | AddRays (Value *AddedRays, unsigned NbAddedRays, Polyhedron *Pol, unsigned NbMaxConstrs) |
Polyhedron * | DomainAddRays (Polyhedron *Pol, Matrix *Ray, unsigned NbMaxConstrs) |
Polyhedron * | Polyhedron_Copy (Polyhedron *Pol) |
Polyhedron * | Domain_Copy (Polyhedron *Pol) |
static void | addToFilter (int k, unsigned *Filter, SatMatrix *Sat, Value *tmpR, Value *tmpC, int NbRays, int NbConstraints) |
static void | FindSimple (Polyhedron *P1, Polyhedron *P2, unsigned *Filter, unsigned NbMaxRays) |
static int | SimplifyConstraints (Polyhedron *Pol1, Polyhedron *Pol2, unsigned *Filter, unsigned NbMaxRays) |
static void | SimplifyEqualities (Polyhedron *Pol1, Polyhedron *Pol2, unsigned *Filter) |
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 * | DomainConvex (Polyhedron *Pol, unsigned NbMaxConstrs) |
Polyhedron * | DomainDifference (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays) |
Polyhedron * | align_context (Polyhedron *Pol, int align_dimension, int NbMaxRays) |
Polyhedron * | Polyhedron_Scan (Polyhedron *D, Polyhedron *C, unsigned NbMaxRays) |
int | lower_upper_bounds (int pos, Polyhedron *P, Value *context, Value *LBp, Value *UBp) |
static void | Rays_Mult (Value **A, Matrix *B, Value **C, unsigned NbRays) |
static void | Rays_Mult_Transpose (Value **A, Matrix *B, Value **C, unsigned NbRays) |
Polyhedron * | Polyhedron_Preimage (Polyhedron *Pol, Matrix *Func, unsigned NbMaxRays) |
Polyhedron * | DomainPreimage (Polyhedron *Pol, Matrix *Func, unsigned NbMaxRays) |
Polyhedron * | Polyhedron_Image (Polyhedron *Pol, Matrix *Func, unsigned NbMaxConstrs) |
Polyhedron * | DomainImage (Polyhedron *Pol, Matrix *Func, unsigned NbMaxConstrs) |
Interval * | DomainCost (Polyhedron *Pol, Value *Cost) |
Polyhedron * | DomainAddConstraints (Polyhedron *Pol, Matrix *Mat, unsigned NbMaxRays) |
Polyhedron * | Disjoint_Domain (Polyhedron *P, int flag, unsigned NbMaxRays) |
void | Polyhedron_PrintConstraints (FILE *Dst, const char *Format, Polyhedron *Pol) |
void | Domain_PrintConstraints (FILE *Dst, const char *Format, Polyhedron *Pol) |
static Polyhedron * | p_simplify_constraints (Polyhedron *P, Vector *row, Value *g, unsigned MaxRays) |
Polyhedron * | DomainConstraintSimplify (Polyhedron *P, unsigned MaxRays) |
Variables | |
int | Pol_status |
#define bexchange | ( | a, | |||
b, | |||||
l | ) |
{\ 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 71 of file polyhedron.c.
Referenced by RaySort(), and Remove_Redundants().
#define exchange | ( | a, | |||
b, | |||||
t | ) | { (t)=(a); (a)=(b); (b)=(t); } |
Definition at line 80 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 199 of file polyhedron.c.
Referenced by Chernikova().
#define SMVector_Init | ( | p1, | |||
length | ) | memset((char *)(p1), 0, (int)((length)*sizeof(int))) |
Definition at line 205 of file polyhedron.c.
Referenced by BuildSat(), Constraints2Polyhedron(), DomainSimplify(), FindSimple(), Rays2Polyhedron(), Stras_DomainSimplify(), and TransformSat().
#define WSIZE (8*sizeof(int)) |
Definition at line 69 of file polyhedron.c.
Referenced by addToFilter(), and Chernikova().
Polyhedron* AddConstraints | ( | Value * | Con, | |
unsigned | NbConstraints, | |||
Polyhedron * | Pol, | |||
unsigned | NbMaxRays | |||
) |
Definition at line 2293 of file polyhedron.c.
References any_exception_error, BuildSat(), CATCH, Chernikova(), polyhedron::Constraint, Constraints2Polyhedron(), polyhedron::Dimension, errormsg1(), Matrix_Alloc(), Matrix_Free(), polyhedron::NbBid, polyhedron::NbConstraints, polyhedron::NbRays, matrix::p, POL_ENSURE_INEQUALITIES, POL_ENSURE_VERTICES, POL_ISSET, POL_NO_DUAL, Pol_status, Polyhedron_Copy(), Polyhedron_Free(), polyhedron::Ray, Remove_Redundants(), RETHROW, Sat, SMFree(), TRY, UNCATCH, and Vector_Copy().
Referenced by Add_CEqualities(), Disjoint_Domain(), DomainAddConstraints(), DomainIntersection(), FindSimple(), old_Polyhedron_Preprocess(), p_simplify_constraints(), PDomainIntersection(), Polyhedron_Image_Enumerate(), and PolyhedronLTQ().
Polyhedron* AddPolyToDomain | ( | Polyhedron * | Pol, | |
Polyhedron * | PolDomain | |||
) |
Definition at line 2432 of file polyhedron.c.
References emptyQ, polyhedron::next, p, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, Polyhedron_Free(), and PolyhedronIncludes().
Referenced by Disjoint_Domain(), DomainDifference(), DomainImage(), DomainIntersection(), DomainPreimage(), DomainSimplify(), PDomainDifference(), PDomainIntersection(), Polyhedron_Image_Enumerate(), and Stras_DomainSimplify().
Polyhedron* AddRays | ( | Value * | AddedRays, | |
unsigned | NbAddedRays, | |||
Polyhedron * | Pol, | |||
unsigned | NbMaxConstrs | |||
) |
Definition at line 2661 of file polyhedron.c.
References any_exception_error, BuildSat(), CATCH, Chernikova(), polyhedron::Constraint, polyhedron::Dimension, errormsg1(), Matrix_Alloc(), Matrix_Free(), polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::NbRays, matrix::NbRows, matrix::p_Init, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, POL_ISSET, POL_NO_DUAL, Pol_status, Polyhedron_Free(), polyhedron::Ray, Remove_Redundants(), RETHROW, Sat, SMFree(), TransformSat(), TRY, UNCATCH, and Vector_Copy().
Referenced by DomainAddRays(), DomainConvex(), and PolyhedronLTQ().
static void addToFilter | ( | int | k, | |
unsigned * | Filter, | |||
SatMatrix * | Sat, | |||
Value * | tmpR, | |||
Value * | tmpC, | |||
int | NbRays, | |||
int | NbConstraints | |||
) | [static] |
Definition at line 2861 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 3665 of file polyhedron.c.
References any_exception_error, CATCH, polyhedron::Constraint, polyhedron::Dimension, Domain_Copy(), Domain_Free(), errormsg1(), F_ISSET, polyhedron::flags, polyhedron::NbBid, polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::NbRays, polyhedron::next, p, POL_INEQUALITIES, POL_POINTS, POL_VALID, Polyhedron_Alloc(), Polyhedron_Free(), polyhedron::Ray, RETHROW, TRY, UNCATCH, value_assign, value_set_si, and Vector_Copy().
Referenced by Find_m_faces(), main(), Polyhedron_Scan(), test_Constraints_Remove_parm_eqs(), and test_Polyhedron_Remove_parm_eqs().
static SatMatrix* BuildSat | ( | Matrix * | Mat, | |
Matrix * | Ray, | |||
unsigned | NbConstraints, | |||
unsigned | NbMaxRays | |||
) | [static] |
Definition at line 2237 of file polyhedron.c.
References any_exception_error, CATCH, MSB, matrix::NbColumns, SatMatrix::NbRows, matrix::NbRows, NEXT, SatMatrix::p, matrix::p, SatMatrix::p_init, RETHROW, Sat, SMAlloc(), SMFree(), SMVector_Init, TRY, UNCATCH, value_addmul, value_notzero_p, and value_set_si.
Referenced by AddConstraints(), AddRays(), SimplifyConstraints(), and SubConstraint().
static int Chernikova | ( | Matrix * | Mat, | |
Matrix * | Ray, | |||
SatMatrix * | Sat, | |||
unsigned | NbBid, | |||
unsigned | NbMaxRays, | |||
unsigned | FirstConstraint, | |||
unsigned | dual | |||
) | [static] |
Definition at line 386 of file polyhedron.c.
References any_exception_error, CATCH, Combine(), errormsg1(), m, 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, TRY, UNCATCH, value_addmul, 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().
static void Combine | ( | Value * | p1, | |
Value * | p2, | |||
Value * | p3, | |||
int | pos, | |||
unsigned | length | |||
) | [static] |
Definition at line 218 of file polyhedron.c.
References value_absolute, value_assign, value_clear, value_divexact, value_gcd, value_init, value_oppose, Vector_Combine(), and Vector_Normalize().
Referenced by Chernikova(), and Gauss4().
Polyhedron* Constraints2Polyhedron | ( | Matrix * | Constraints, | |
unsigned | NbMaxRays | |||
) |
Given a matrix of constraints ('Constraints'), construct and return a polyhedron.
Constraints | Constraints (may be modified!) | |
NbMaxRays | Estimated number of rays in the ray matrix of the 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 * | P, | |
int | flag, | |||
unsigned | NbMaxRays | |||
) |
Definition at line 4404 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.
Referenced by Domain_Enumerate(), and main().
Polyhedron* Domain_Copy | ( | Polyhedron * | Pol | ) |
Definition at line 2823 of file polyhedron.c.
References Domain_Copy(), polyhedron::next, and Polyhedron_Copy().
Referenced by AddZPolytoZDomain(), align_context(), Domain_Copy(), DomainAddRays(), DomainDifference(), ZDomainSimplify(), ZPolyhedron_Alloc(), and ZPolyhedronDifference().
void Domain_Free | ( | Polyhedron * | Pol | ) |
Definition at line 1616 of file polyhedron.c.
References polyhedron::next, and Polyhedron_Free().
Referenced by Add_CEqualities(), AddZPolytoZDomain(), align_context(), CanonicalForm(), Compute_PDomains(), Disjoint_Domain(), Domain_Enumerate(), DomainDifference(), Ehrhart_Quick_Apx_Full_Dim(), EmptyZPolyhedron(), Enumerate_NoParameters(), Enumeration_Free(), Find_m_faces(), FindHermiteBasisofDomain(), IntegraliseLattice(), main(), Param_Domain_Free(), Param_Vertices_Print(), PDomainDifference(), Polyhedron_Enumerate(), Polyhedron_LexSmallerEnumerate(), Polyhedron_Not_Empty(), Polyhedron_Preprocess(), Polyhedron_Scan(), PolyhedronLTQ(), ZDomainSimplify(), ZPolyhedron_Free(), ZPolyhedronDifference(), ZPolyhedronImage(), ZPolyhedronIncludes(), ZPolyhedronIntersection(), and ZPolyhedronPreimage().
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 | |||
) |
Definition at line 4351 of file polyhedron.c.
References AddConstraints(), polyhedron::Dimension, errormsg1(), matrix::NbColumns, matrix::NbRows, polyhedron::next, matrix::p_Init, Polyhedron_Free(), and PolyhedronIncludes().
Polyhedron* DomainAddRays | ( | Polyhedron * | Pol, | |
Matrix * | Ray, | |||
unsigned | NbMaxConstrs | |||
) |
Definition at line 2750 of file polyhedron.c.
References AddRays(), polyhedron::Dimension, Domain_Copy(), errormsg1(), matrix::NbColumns, matrix::NbRows, polyhedron::next, matrix::p, Polyhedron_Free(), and PolyhedronIncludes().
Referenced by Find_m_faces(), and Polyhedron_Scan().
Polyhedron* DomainConstraintSimplify | ( | Polyhedron * | P, | |
unsigned | MaxRays | |||
) |
Definition at line 4685 of file polyhedron.c.
References polyhedron::Dimension, emptyQ, polyhedron::next, Vector::p, p_simplify_constraints(), Polyhedron_Free(), value_clear, value_init, value_set_si, Vector_Alloc(), and Vector_Free().
Polyhedron* DomainConvex | ( | Polyhedron * | Pol, | |
unsigned | NbMaxConstrs | |||
) |
Definition at line 3574 of file polyhedron.c.
References AddRays(), any_exception_error, CATCH, polyhedron::NbRays, polyhedron::next, p, POL_ENSURE_VERTICES, Polyhedron_Copy(), Polyhedron_Free(), polyhedron::Ray, RETHROW, TRY, and UNCATCH.
Referenced by Compute_PDomains(), and main().
Interval* DomainCost | ( | Polyhedron * | Pol, | |
Value * | Cost | |||
) |
Definition at line 4223 of file polyhedron.c.
References any_exception_error, CATCH, polyhedron::Dimension, errormsg1(), interval::MaxD, interval::MaxI, interval::MaxN, interval::MinD, interval::MinI, interval::MinN, polyhedron::NbRays, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, polyhedron::Ray, RETHROW, TRY, 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 3608 of file polyhedron.c.
References AddPolyToDomain(), polyhedron::Constraint, polyhedron::Dimension, Domain_Copy(), Domain_Free(), Empty_Polyhedron(), emptyQ, errormsg1(), polyhedron::NbConstraints, polyhedron::next, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, SubConstraint(), and value_notzero_p.
Referenced by Domain_Enumerate(), ZDomainSimplify(), ZPolyhedronDifference(), and ZPolyhedronIncludes().
Polyhedron* DomainImage | ( | Polyhedron * | Pol, | |
Matrix * | Func, | |||
unsigned | NbMaxConstrs | |||
) |
Definition at line 4187 of file polyhedron.c.
References AddPolyToDomain(), any_exception_error, CATCH, polyhedron::next, p, Polyhedron_Free(), Polyhedron_Image(), RETHROW, TRY, and UNCATCH.
Referenced by AddZPolytoZDomain(), CanonicalForm(), FindHermiteBasisofDomain(), IntegraliseLattice(), Polyhedron_Image_Enumerate(), ZDomainSimplify(), ZPolyhedronDifference(), ZPolyhedronImage(), ZPolyhedronIncludes(), ZPolyhedronIntersection(), and ZPolyhedronPreimage().
Polyhedron* DomainIntersection | ( | Polyhedron * | Pol1, | |
Polyhedron * | Pol2, | |||
unsigned | NbMaxRays | |||
) |
Definition at line 2607 of file polyhedron.c.
References AddConstraints(), AddPolyToDomain(), polyhedron::Constraint, polyhedron::Dimension, Empty_Polyhedron(), errormsg1(), polyhedron::NbConstraints, and polyhedron::next.
Referenced by Domain_Enumerate(), Ehrhart_Quick_Apx_Full_Dim(), Enumerate_NoParameters(), Find_m_faces(), main(), Polyhedron_Enumerate(), Polyhedron_Scan(), PolyhedronLTQ(), test_Constraints_Remove_parm_eqs(), test_Polyhedron_Remove_parm_eqs(), ZPolyhedronDifference(), and ZPolyhedronIntersection().
Polyhedron* DomainPreimage | ( | Polyhedron * | Pol, | |
Matrix * | Func, | |||
unsigned | NbMaxRays | |||
) |
Definition at line 4061 of file polyhedron.c.
References AddPolyToDomain(), any_exception_error, CATCH, polyhedron::next, p, Polyhedron_Free(), Polyhedron_Preimage(), RETHROW, TRY, and UNCATCH.
Referenced by IntegraliseLattice(), ZDomainSimplify(), ZPolyhedronDifference(), ZPolyhedronImage(), ZPolyhedronIntersection(), and ZPolyhedronPreimage().
Polyhedron* DomainSimplify | ( | Polyhedron * | Pol1, | |
Polyhedron * | Pol2, | |||
unsigned | NbMaxRays | |||
) |
Definition at line 3260 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_ENSURE_VERTICES, Pol_status, SimplifyConstraints(), SimplifyEqualities(), SMVector_Init, and Vector_Copy().
Referenced by Ehrhart_Quick_Apx_Full_Dim(), Find_m_faces(), main(), Polyhedron_Enumerate(), and Polyhedron_Scan().
Polyhedron* DomainUnion | ( | Polyhedron * | Pol1, | |
Polyhedron * | Pol2, | |||
unsigned | NbMaxRays | |||
) |
Definition at line 3493 of file polyhedron.c.
References polyhedron::Dimension, errormsg1(), polyhedron::next, Polyhedron_Copy(), and PolyhedronIncludes().
Referenced by AddZPolytoZDomain(), DMUnion(), and main().
Polyhedron* Empty_Polyhedron | ( | unsigned | Dimension | ) |
Definition at line 1715 of file polyhedron.c.
References polyhedron::Constraint, errormsg1(), F_SET, polyhedron::NbBid, polyhedron::NbEq, POL_FACETS, POL_INEQUALITIES, POL_POINTS, POL_VALID, POL_VERTICES, Polyhedron_Alloc(), value_set_si, and Vector_Set().
Referenced by Constraints2Polyhedron(), DomainDifference(), DomainIntersection(), DomainSimplify(), EmptyZPolyhedron(), p_simplify_constraints(), Polyhedron_Image(), Polyhedron_Preimage(), Rays2Polyhedron(), Remove_Redundants(), and Stras_DomainSimplify().
void errormsg1 | ( | const char * | f, | |
const char * | msgname, | |||
const char * | msg | |||
) |
Definition at line 46 of file errormsg.c.
static void FindSimple | ( | Polyhedron * | P1, | |
Polyhedron * | P2, | |||
unsigned * | Filter, | |||
unsigned | NbMaxRays | |||
) | [static] |
Definition at line 2902 of file polyhedron.c.
References AddConstraints(), addToFilter(), any_exception_error, 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, Sat, SMAlloc(), SMFree(), SMVector_Init, TRY, UNCATCH, value_add_int, value_addmul, value_assign, value_clear, value_decrement, value_eq, value_gt, value_increment, value_init, 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 829 of file polyhedron.c.
References Gauss4(), Matrix_Print(), matrix::NbRows, and matrix::p.
Referenced by Constraints2Polyhedron(), P_Enum(), Remove_Redundants(), and SimplifyEqualities().
static int Gauss4 | ( | Value ** | p, | |
int | NbEq, | |||
int | NbRows, | |||
int | Dimension | |||
) | [static] |
Definition at line 734 of file polyhedron.c.
References any_exception_error, CATCH, Combine(), errormsg1(), RETHROW, TRY, UNCATCH, value_clear, value_cmp_si, value_init, value_neg_p, value_notzero_p, Vector_AntiScale(), Vector_Exchange(), Vector_Gcd(), and Vector_Oppose().
Referenced by Gauss(), and Polyhedron_Image().
static int ImplicitEqualities | ( | Matrix * | Constraints, | |
unsigned | NbEq | |||
) | [static] |
Definition at line 1835 of file polyhedron.c.
References First_Non_Zero(), matrix::NbColumns, matrix::NbRows, matrix::p, value_abs_ne, value_addto, value_clear, value_eq, value_init, value_neg_p, value_pos_p, value_set_si, value_sign, value_zero_p, and Vector_Set().
Referenced by Constraints2Polyhedron().
int lower_upper_bounds | ( | int | pos, | |
Polyhedron * | P, | |||
Value * | context, | |||
Value * | LBp, | |||
Value * | UBp | |||
) |
Definition at line 3805 of file polyhedron.c.
References polyhedron::Constraint, polyhedron::Dimension, Inner_Product(), LB_INFINITY, n, polyhedron::NbConstraints, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, 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.
Referenced by cherche_min(), count_points(), exist_points(), and P_Enum().
static Polyhedron* p_simplify_constraints | ( | Polyhedron * | P, | |
Vector * | row, | |||
Value * | g, | |||
unsigned | MaxRays | |||
) | [static] |
Definition at line 4645 of file polyhedron.c.
References AddConstraints(), polyhedron::Constraint, ConstraintSimplify(), polyhedron::Dimension, Empty_Polyhedron(), F_CLR, polyhedron::NbConstraints, Vector::p, POL_FACETS, POL_ISSET, POL_NO_DUAL, POL_POINTS, POL_VERTICES, Polyhedron_Copy(), Polyhedron_Free(), value_zero_p, and Vector_Copy().
Referenced by DomainConstraintSimplify().
Matrix* Polyhedron2Constraints | ( | Polyhedron * | Pol | ) |
Definition at line 2056 of file polyhedron.c.
References polyhedron::Constraint, polyhedron::Dimension, errormsg1(), Matrix_Alloc(), polyhedron::NbConstraints, matrix::p_Init, POL_ENSURE_INEQUALITIES, and Vector_Copy().
Referenced by dehomogenize_polyhedron(), Elim_Columns(), Find_m_faces(), GenParamPolyhedron(), main(), Polyhedron_Remove_parm_eqs(), and traite_m_face().
Matrix* Polyhedron2Rays | ( | Polyhedron * | Pol | ) |
Definition at line 2639 of file polyhedron.c.
References polyhedron::Dimension, errormsg1(), Matrix_Alloc(), polyhedron::NbRays, matrix::p_Init, POL_ENSURE_POINTS, polyhedron::Ray, and Vector_Copy().
Referenced by main().
Polyhedron* Polyhedron_Alloc | ( | unsigned | Dimension, | |
unsigned | NbConstraints, | |||
unsigned | NbRays | |||
) |
Definition at line 1556 of file polyhedron.c.
References polyhedron::Constraint, polyhedron::Dimension, errormsg1(), polyhedron::flags, polyhedron::NbBid, polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::NbRays, polyhedron::next, p, polyhedron::p_Init, polyhedron::p_Init_size, polyhedron::Ray, and value_alloc().
Referenced by align_context(), Constraints2Polyhedron(), Empty_Polyhedron(), Polyhedron_Copy(), Polyhedron_Image(), Remove_Redundants(), and Universe_Polyhedron().
void Polyhedron_Compute_Dual | ( | Polyhedron * | P | ) |
Definition at line 2198 of file polyhedron.c.
References assert, polyhedron::Constraint, Constraints2Polyhedron(), polyhedron::Dimension, F_ISSET, matrix::NbColumns, polyhedron::NbConstraints, matrix::NbRows, polyhedron::next, matrix::p, polyhedron::p_Init, matrix::p_Init, POL_FACETS, POL_INEQUALITIES, POL_VALID, POL_VERTICES, and Polyhedron_Free().
Polyhedron* Polyhedron_Copy | ( | Polyhedron * | Pol | ) |
Definition at line 2796 of file polyhedron.c.
References polyhedron::Constraint, polyhedron::Dimension, errormsg1(), polyhedron::flags, polyhedron::NbBid, polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::NbRays, Polyhedron_Alloc(), polyhedron::Ray, and Vector_Copy().
Referenced by Add_CEqualities(), AddConstraints(), Disjoint_Domain(), Domain_Copy(), DomainConvex(), DomainUnion(), FindSimple(), p_simplify_constraints(), and Polyhedron_Image_Enumerate().
void Polyhedron_Free | ( | Polyhedron * | Pol | ) |
Definition at line 1603 of file polyhedron.c.
References polyhedron::Constraint, polyhedron::p_Init, polyhedron::p_Init_size, and value_free().
Referenced by AddConstraints(), AddPolyToDomain(), AddRays(), align_context(), CanonicalForm(), ComputeNPLinesRays(), Constraints2Polyhedron(), dehomogenize_enumeration(), Disjoint_Domain(), Domain_Free(), DomainAddConstraints(), DomainAddRays(), DomainConstraintSimplify(), DomainConvex(), DomainImage(), DomainPreimage(), Ehrhart_Quick_Apx(), Ehrhart_Quick_Apx_Full_Dim(), eliminable_vars(), Enumerate_NoParameters(), Enumeration_zero(), Find_m_faces(), FindSimple(), main(), p_simplify_constraints(), PDomainDifference(), PDomainIntersection(), Polyhedron2Param_Domain(), Polyhedron_Compute_Dual(), Polyhedron_Enumerate(), Polyhedron_Image(), Polyhedron_Image_Enumerate(), Polyhedron_LexSmallerEnumerate(), Polyhedron_Preimage(), Polyhedron_Preprocess(), Polyhedron_Remove_parm_eqs(), Rays2Polyhedron(), Remove_Redundants(), SimplifyConstraints(), Stras_DomainSimplify(), SubConstraint(), test_Constraints_fullDimensionize(), test_Constraints_Remove_parm_eqs(), test_Polyhedron_Remove_parm_eqs(), and traite_m_face().
Polyhedron* Polyhedron_Image | ( | Polyhedron * | Pol, | |
Matrix * | Func, | |||
unsigned | NbMaxConstrs | |||
) |
Definition at line 4089 of file polyhedron.c.
References any_exception_error, CATCH, polyhedron::Constraint, polyhedron::Dimension, Empty_Polyhedron(), errormsg1(), Gauss4(), Matrix_Alloc(), Matrix_Copy(), Matrix_Free(), Matrix_Inverse(), polyhedron::NbBid, matrix::NbColumns, polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::NbRays, matrix::NbRows, matrix::p, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, Polyhedron_Alloc(), Polyhedron_Free(), polyhedron::Ray, Rays2Polyhedron(), Rays_Mult(), Rays_Mult_Transpose(), RETHROW, TRY, and UNCATCH.
Referenced by DomainImage(), and main().
Polyhedron* Polyhedron_Preimage | ( | Polyhedron * | Pol, | |
Matrix * | Func, | |||
unsigned | NbMaxRays | |||
) |
Definition at line 4002 of file polyhedron.c.
References any_exception_error, CATCH, polyhedron::Constraint, Constraints2Polyhedron(), polyhedron::Dimension, Empty_Polyhedron(), errormsg1(), Matrix_Alloc(), Matrix_Free(), matrix::NbColumns, polyhedron::NbConstraints, matrix::NbRows, matrix::p, POL_ENSURE_INEQUALITIES, Pol_status, Polyhedron_Free(), Rays_Mult(), RETHROW, TRY, and UNCATCH.
Referenced by DomainPreimage(), Ehrhart_Quick_Apx_Full_Dim(), Enumerate_NoParameters(), main(), Param_Polyhedron_Scale_Integer(), and Polyhedron_Enumerate().
void Polyhedron_Print | ( | FILE * | Dst, | |
const char * | Format, | |||
const Polyhedron * | Pol | |||
) |
Definition at line 1630 of file polyhedron.c.
References polyhedron::Constraint, polyhedron::Dimension, polyhedron::NbBid, polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::NbRays, polyhedron::next, p, Polyhedron_Print(), polyhedron::Ray, value_notzero_p, and value_print.
Referenced by Compute_PDomains(), Constraints2Polyhedron(), Ehrhart_Quick_Apx_Full_Dim(), Elim_Columns(), Enumerate_NoParameters(), Find_m_faces(), main(), Polyhedron_Enumerate(), Polyhedron_Preprocess(), Polyhedron_Print(), PolyhedronLTQ(), PolyPrint(), PreElim_Columns(), Rays2Polyhedron(), traite_m_face(), and ZPolyhedronPrint().
void Polyhedron_PrintConstraints | ( | FILE * | Dst, | |
const char * | Format, | |||
Polyhedron * | Pol | |||
) |
Definition at line 4623 of file polyhedron.c.
References polyhedron::Constraint, polyhedron::Dimension, polyhedron::NbConstraints, and value_print.
Referenced by AffConstraints(), AffContraintes(), and Domain_PrintConstraints().
Polyhedron* Polyhedron_Scan | ( | Polyhedron * | D, | |
Polyhedron * | C, | |||
unsigned | NbMaxRays | |||
) |
Definition at line 3743 of file polyhedron.c.
References align_context(), assert, polyhedron::Dimension, Domain_Free(), DomainAddRays(), DomainIntersection(), DomainSimplify(), errormsg1(), Matrix_Alloc(), Matrix_Free(), matrix::NbRows, polyhedron::next, matrix::p, matrix::p_Init, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, value_set_si, and Vector_Set().
Referenced by Ehrhart_Quick_Apx_Full_Dim(), Enumerate_NoParameters(), main(), Polyhedron_Enumerate(), Polyhedron_Not_Empty(), and Polyhedron_Preprocess().
int PolyhedronIncludes | ( | Polyhedron * | Pol1, | |
Polyhedron * | Pol2 | |||
) |
Definition at line 2388 of file polyhedron.c.
References polyhedron::Constraint, polyhedron::Dimension, polyhedron::NbConstraints, polyhedron::NbRays, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, polyhedron::Ray, value_addmul, value_clear, value_init, value_neg_p, value_notzero_p, value_set_si, and value_zero_p.
Referenced by AddPolyToDomain(), DomainAddConstraints(), DomainAddRays(), DomainUnion(), Ehrhart_Quick_Apx_Full_Dim(), IncludeInRes(), main(), Polyhedron_Enumerate(), Remove_RedundantDomains(), test_Constraints_Remove_parm_eqs(), and test_Polyhedron_Remove_parm_eqs().
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.
Ray | Rays (may be modified!) | |
NbMaxConstrs | Estimated number of constraints in the 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().
static void Rays_Mult | ( | Value ** | A, | |
Matrix * | B, | |||
Value ** | C, | |||
unsigned | NbRays | |||
) | [static] |
Definition at line 3920 of file polyhedron.c.
References any_exception_error, CATCH, matrix::NbColumns, matrix::NbRows, matrix::p, RETHROW, TRY, UNCATCH, value_addmul, value_assign, value_clear, value_init, value_notone_p, value_set_si, Vector_AntiScale(), and Vector_Gcd().
Referenced by Polyhedron_Image(), and Polyhedron_Preimage().
static void Rays_Mult_Transpose | ( | Value ** | A, | |
Matrix * | B, | |||
Value ** | C, | |||
unsigned | NbRays | |||
) | [static] |
Definition at line 3959 of file polyhedron.c.
References any_exception_error, CATCH, matrix::NbColumns, matrix::NbRows, matrix::p, RETHROW, TRY, UNCATCH, value_addmul, value_assign, value_clear, value_init, value_notone_p, value_set_si, Vector_AntiScale(), and Vector_Gcd().
Referenced by Polyhedron_Image().
static 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 305 of file polyhedron.c.
References bexchange, SatMatrix::p, matrix::p, value_neg_p, value_zero_p, and Vector_Exchange().
Referenced by Chernikova().
static Polyhedron* Remove_Redundants | ( | Matrix * | Mat, | |
Matrix * | Ray, | |||
SatMatrix * | Sat, | |||
unsigned * | Filter | |||
) | [static] |
Definition at line 859 of file polyhedron.c.
References any_exception_error, bexchange, CATCH, polyhedron::Constraint, Empty_Polyhedron(), errormsg1(), exchange, F_SET, First_Non_Zero(), Gauss(), Matrix_Print(), MSB, polyhedron::NbBid, SatMatrix::NbColumns, matrix::NbColumns, polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::NbRays, matrix::NbRows, NEXT, SatMatrix::p, matrix::p, POL_FACETS, POL_INEQUALITIES, POL_POINTS, POL_VALID, POL_VERTICES, Polyhedron_Alloc(), Polyhedron_Free(), polyhedron::Ray, RETHROW, TRY, UNCATCH, value_clear, value_cmp_si, value_increment, value_init, value_neg_p, value_notzero_p, value_one_p, value_set_si, value_zero_p, Vector_Alloc(), Vector_Copy(), Vector_Equal(), Vector_Exchange(), Vector_Free(), Vector_Scale(), and Vector_Set().
Referenced by AddConstraints(), AddRays(), Constraints2Polyhedron(), Rays2Polyhedron(), SimplifyConstraints(), and SubConstraint().
Definition at line 354 of file polyhedron.c.
References errormsg1(), SatMatrix::NbRows, matrix::NbRows, SatMatrix::p, and SatMatrix::p_init.
Referenced by Chernikova().
static void SatVector_OR | ( | int * | p1, | |
int * | p2, | |||
int * | p3, | |||
unsigned | length | |||
) | [static] |
Definition at line 180 of file polyhedron.c.
Referenced by Chernikova().
static int SimplifyConstraints | ( | Polyhedron * | Pol1, | |
Polyhedron * | Pol2, | |||
unsigned * | Filter, | |||
unsigned | NbMaxRays | |||
) | [static] |
Definition at line 3120 of file polyhedron.c.
References any_exception_error, BuildSat(), CATCH, Chernikova(), polyhedron::Constraint, polyhedron::Dimension, emptyQ, errormsg1(), FindSimple(), Matrix_Alloc(), Matrix_Free(), polyhedron::NbBid, polyhedron::NbConstraints, polyhedron::NbRays, matrix::p_Init, POL_ISSET, POL_NO_DUAL, Pol_status, Polyhedron_Free(), polyhedron::Ray, Remove_Redundants(), RETHROW, Sat, SMFree(), TRY, UNCATCH, and Vector_Copy().
Referenced by DomainSimplify(), and Stras_DomainSimplify().
static void SimplifyEqualities | ( | Polyhedron * | Pol1, | |
Polyhedron * | Pol2, | |||
unsigned * | Filter | |||
) | [static] |
Definition at line 3207 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().
static SatMatrix* SMAlloc | ( | int | rows, | |
int | cols | |||
) | [static] |
Definition at line 109 of file polyhedron.c.
References errormsg1(), SatMatrix::NbColumns, SatMatrix::NbRows, SatMatrix::p, p, and SatMatrix::p_init.
Referenced by BuildSat(), Constraints2Polyhedron(), FindSimple(), Rays2Polyhedron(), and TransformSat().
static void SMFree | ( | SatMatrix ** | matrix | ) | [static] |
Definition at line 145 of file polyhedron.c.
References SatMatrix::p, and SatMatrix::p_init.
Referenced by AddConstraints(), AddRays(), BuildSat(), Constraints2Polyhedron(), FindSimple(), Rays2Polyhedron(), SimplifyConstraints(), and SubConstraint().
static void SMPrint | ( | SatMatrix * | matrix | ) | [static] |
Definition at line 162 of file polyhedron.c.
References SatMatrix::NbColumns, SatMatrix::NbRows, SatMatrix::p, and p.
Referenced by Chernikova(), Constraints2Polyhedron(), and Rays2Polyhedron().
static void SortConstraints | ( | Matrix * | Constraints, | |
unsigned | NbEq | |||
) | [static] |
Definition at line 1786 of file polyhedron.c.
References max, matrix::NbColumns, matrix::NbRows, matrix::p, value_abs_eq, value_abs_lt, value_eq, value_lt, value_pos_p, and Vector_Exchange().
Referenced by Constraints2Polyhedron().
Polyhedron* Stras_DomainSimplify | ( | Polyhedron * | Pol1, | |
Polyhedron * | Pol2, | |||
unsigned | NbMaxRays | |||
) |
Definition at line 3372 of file polyhedron.c.
References AddPolyToDomain(), any_exception_error, CATCH, polyhedron::Constraint, Constraints2Polyhedron(), polyhedron::Dimension, Empty_Polyhedron(), emptyQ, errormsg1(), Matrix_Alloc(), Matrix_Free(), MSB, polyhedron::NbConstraints, matrix::NbRows, NEXT, polyhedron::next, matrix::p, POL_ENSURE_VERTICES, Polyhedron_Free(), RETHROW, SimplifyConstraints(), SMVector_Init, TRY, UNCATCH, and Vector_Copy().
Polyhedron* SubConstraint | ( | Value * | Con, | |
Polyhedron * | Pol, | |||
unsigned | NbMaxRays, | |||
int | Pass | |||
) |
Definition at line 2508 of file polyhedron.c.
References any_exception_error, BuildSat(), CATCH, Chernikova(), polyhedron::Constraint, polyhedron::Dimension, errormsg1(), Matrix_Alloc(), Matrix_Free(), polyhedron::NbBid, polyhedron::NbConstraints, polyhedron::NbRays, matrix::p, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, POL_ISSET, POL_NO_DUAL, Pol_status, Polyhedron_Free(), polyhedron::Ray, Remove_Redundants(), RETHROW, Sat, SMFree(), TRY, UNCATCH, value_assign, value_decrement, value_notzero_p, value_oppose, value_set_si, and Vector_Copy().
Referenced by Disjoint_Domain(), DomainDifference(), and PDomainDifference().
Definition at line 266 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 1748 of file polyhedron.c.
References polyhedron::Constraint, errormsg1(), F_SET, polyhedron::NbBid, polyhedron::NbEq, POL_FACETS, POL_INEQUALITIES, POL_POINTS, POL_VALID, POL_VERTICES, Polyhedron_Alloc(), polyhedron::Ray, value_set_si, and Vector_Set().
Referenced by Constraints2Polyhedron(), Ehrhart_Quick_Apx_Full_Dim(), Enumerate_NoParameters(), Enumeration_zero(), Find_m_faces(), GenParamPolyhedron(), Polyhedron_Enumerate(), and Polyhedron_Preprocess().
int Pol_status |
Definition at line 89 of file polyhedron.c.
Referenced by AddConstraints(), AddRays(), DomainSimplify(), errormsg1(), GaussSimplify(), Polyhedron_Preimage(), SimplifyConstraints(), SimplifyEqualities(), and SubConstraint().