polylib 5.22.8
|
Go to the source code of this file.
Classes | |
struct | _Polyhedron_union |
Macros | |
#define | WS 200 |
Typedefs | |
typedef struct _Polyhedron_union | Polyhedron_union |
Functions | |
static int | ppcm1 (int a, int b) |
Matrix * | CalcBase (Matrix *R) |
static void | Soustraire_ligne (Matrix *R, int l1, int l2, int piv) |
static int | existepivot (Matrix *R, int l) |
static void | swap_line (Matrix *R, int l1, int l2) |
int | pgcd1 (int a, int b) |
void | new_eadd (evalue *e1, evalue *res) |
Matrix * | Reduce_Matrix (Matrix *Mat) |
void | Scalar_product (Value *p1, Value *p2, unsigned length, Value *r) |
Matrix * | Orthogonal_Base (Matrix *Mat) |
void | Remove_Element (Enumeration *en, Enumeration **re, Enumeration *prev) |
void | Remove_RedundantDomains (Enumeration **Ures) |
int | IncludeInRes (Polyhedron *p, Enumeration *e, unsigned MR) |
Polyhedron * | DMUnion (Enumeration *en, unsigned MR) |
void | AffConstraints (Polyhedron *Poldisj) |
int | Degenerate (Enumeration *en) |
Enumeration * | Domain_Enumerate (Polyhedron *D, Polyhedron *C, unsigned MAXRAYS, const char **pn) |
Enumeration * | Polyhedron_Image_Enumerate (Polyhedron *D, Polyhedron *C, Matrix *T, unsigned MAXRAYS, const char **par_name) |
#define WS 200 |
Definition at line 3 of file ext_ehrhart.c.
typedef struct _Polyhedron_union Polyhedron_union |
void AffConstraints | ( | Polyhedron * | Poldisj | ) |
Definition at line 651 of file ext_ehrhart.c.
References polyhedron::next, P_VALUE_FMT, and Polyhedron_PrintConstraints().
Referenced by Domain_Enumerate(), and Polyhedron_Image_Enumerate().
Definition at line 26 of file ext_ehrhart.c.
References existepivot(), Matrix_Alloc(), matrix::NbRows, matrix::p, Soustraire_ligne(), swap_line(), value_addmul, value_divexact, value_gcd, value_multiply, value_neg_p, value_notzero_p, value_oppose, value_set_si, and value_zero_p.
Referenced by Polyhedron_Image_Enumerate().
int Degenerate | ( | Enumeration * | en | ) |
Definition at line 659 of file ext_ehrhart.c.
References _evalue::d, _enumeration::EP, value_mone_p, value_notzero_p, and _evalue::x.
Referenced by Domain_Enumerate().
Polyhedron * DMUnion | ( | Enumeration * | en, |
unsigned | MR | ||
) |
Definition at line 640 of file ext_ehrhart.c.
References DomainUnion(), _enumeration::next, and _enumeration::ValidityDomain.
Referenced by Domain_Enumerate().
Enumeration * Domain_Enumerate | ( | Polyhedron * | D, |
Polyhedron * | C, | ||
unsigned | MAXRAYS, | ||
const char ** | pn | ||
) |
Definition at line 671 of file ext_ehrhart.c.
References AffConstraints(), _evalue::d, Degenerate(), Disjoint_Domain(), DMUnion(), Domain_Free(), DomainDifference(), DomainIntersection(), ecopy(), emptyQ, _enumeration::EP, free_evalue_refs(), IncludeInRes(), MAXRAYS, new_eadd(), polyhedron::next, _enumeration::next, _Polyhedron_union::next, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, Polyhedron_Enumerate(), _Polyhedron_union::pt, Remove_RedundantDomains(), _enumeration::ValidityDomain, value_assign, value_init, value_zero_p, and _evalue::x.
Referenced by main(), Polyhedron_Image_Enumerate(), and Polyhedron_LexSmallerEnumerate().
|
static |
Definition at line 198 of file ext_ehrhart.c.
References matrix::NbRows, matrix::p, value_notzero_p, and value_zero_p.
Referenced by CalcBase().
int IncludeInRes | ( | Polyhedron * | p, |
Enumeration * | e, | ||
unsigned | MR | ||
) |
Definition at line 630 of file ext_ehrhart.c.
References _enumeration::next, PolyhedronIncludes(), and _enumeration::ValidityDomain.
Referenced by Domain_Enumerate().
Definition at line 283 of file ext_ehrhart.c.
References _enode::arr, _evalue::d, ecopy(), new_eadd(), new_enode(), periodic, polynomial, ppcm1(), value_addto, value_assign, value_clear, value_divexact, value_gcd, value_init, value_multiply, value_notone_p, value_notzero_p, value_set_si, value_zero_p, and _evalue::x.
Referenced by Domain_Enumerate(), and new_eadd().
Definition at line 534 of file ext_ehrhart.c.
References Matrix_Alloc(), matrix::NbColumns, matrix::NbRows, Vector::p, matrix::p, Scalar_product(), value_assign, value_clear, value_divexact, value_gcd, value_init, value_lcm, value_multiply, value_notone_p, value_set_si, value_subtract, Vector_Alloc(), Vector_AntiScale(), and Vector_Gcd().
int pgcd1 | ( | int | a, |
int | b | ||
) |
Definition at line 230 of file ext_ehrhart.c.
Referenced by ppcm1().
Enumeration * Polyhedron_Image_Enumerate | ( | Polyhedron * | D, |
Polyhedron * | C, | ||
Matrix * | T, | ||
unsigned | MAXRAYS, | ||
const char ** | par_name | ||
) |
Definition at line 799 of file ext_ehrhart.c.
References AddConstraints(), AddPolyToDomain(), AffConstraints(), CalcBase(), polyhedron::Constraint, polyhedron::Dimension, Domain_Enumerate(), DomainImage(), emptyQ, Matrix_Alloc(), Matrix_Copy(), Matrix_Free(), Matrix_Print(), MAXRAYS, matrix::NbColumns, polyhedron::NbConstraints, matrix::NbRows, Vector::p, matrix::p, P_VALUE_FMT, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, Polyhedron_Copy(), Polyhedron_Free(), Reduce_Matrix(), Scalar_product(), Transpose(), value_assign, value_clear, value_decrement, value_init, value_oppose, value_pos_p, value_set_si, value_subtract, value_zero_p, Vector_Alloc(), and Vector_Free().
|
static |
Definition at line 494 of file ext_ehrhart.c.
References matrix::NbColumns, matrix::NbRows, matrix::p, and value_clear.
Referenced by Polyhedron_Image_Enumerate().
void Remove_Element | ( | Enumeration * | en, |
Enumeration ** | re, | ||
Enumeration * | prev | ||
) |
Definition at line 598 of file ext_ehrhart.c.
References _enumeration::next.
Referenced by Remove_RedundantDomains().
void Remove_RedundantDomains | ( | Enumeration ** | Ures | ) |
Definition at line 609 of file ext_ehrhart.c.
References _enumeration::next, PolyhedronIncludes(), Remove_Element(), and _enumeration::ValidityDomain.
Referenced by Domain_Enumerate().
void Scalar_product | ( | Value * | p1, |
Value * | p2, | ||
unsigned | length, | ||
Value * | r | ||
) |
Definition at line 512 of file ext_ehrhart.c.
References value_addmul, and value_set_si.
Referenced by Orthogonal_Base(), and Polyhedron_Image_Enumerate().
|
static |
Definition at line 246 of file ext_ehrhart.c.
References matrix::NbColumns, matrix::p, value_clear, value_divexact, value_gcd, value_init, value_multiply, value_notzero_p, value_set_si, value_subtract, and value_zero_p.
Referenced by CalcBase().
|
static |
Definition at line 218 of file ext_ehrhart.c.
References matrix::NbColumns, matrix::p, and value_assign.
Referenced by CalcBase().