Go to the source code of this file.
Functions | |
void | count_points (int pos, Polyhedron *P, Value *context, Value *res) |
PROCEDURES TO COMPUTE ENUMERATION. | |
void | eadd (evalue *e1, evalue *res) |
adds one evalue to evalue 'res. | |
enode * | ecopy (enode *e) |
void | edot (enode *v1, enode *v2, evalue *res) |
computes the inner product of two vectors. | |
enode * | new_enode (enode_type type, int size, int pos) |
EHRHART POLYNOMIAL SYMBOLIC ALGEBRA SYSTEM. | |
void | free_evalue_refs (evalue *e) |
releases all memory referenced by e. | |
Enumeration * | Polyhedron_Enumerate (Polyhedron *P, Polyhedron *C, unsigned MAXRAYS, const char **pname) |
Procedure to count points in a parameterized polytope. | |
void | print_enode (FILE *DST, enode *p, const char **pname) |
prints the enode to DST | |
void | print_evalue (FILE *DST, evalue *e, const char **pname) |
void | reduce_evalue (evalue *e) |
void | Enumeration_Free (Enumeration *en) |
Enumeration * | Ehrhart_Quick_Apx (Matrix *M, Matrix *C, Matrix **Validity_Lattice, unsigned MAXRAYS) |
Computes the approximation of the Ehrhart polynomial of a polyhedron (implicit form -> matrix), treating the non-full-dimensional case. | |
Enumeration * | Enumeration_zero (unsigned int nbParms, unsigned int maxRays) |
returns a constant Ehrhart polynomial whose value is zero for any value of the parameters. | |
Variables | |
int | overflow_warning_flag |
|
PROCEDURES TO COMPUTE ENUMERATION. recursive procedure, recurse for each imbriquation
Definition at line 1128 of file ehrhart.c. References emptyQ, lower_upper_bounds(), polyhedron::next, P_VALUE_FMT, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, Polyhedron, value_add_int, value_addto, value_assign, value_clear, value_increment, value_init, value_le, value_lt, value_notmone_p, value_print, value_set_si, and value_subtract. Referenced by check_poly(), Enumerate_NoParameters(), and P_Enum(). |
|
adds one evalue to evalue 'res. result = res + e1
Definition at line 393 of file ehrhart.c. References _enode::arr, _evalue::d, ecopy(), enode, evalue, free_evalue_refs(), periodic, polynomial, value_addto, value_clear, value_divexact, value_gcd, value_init, value_multiply, value_notone_p, value_notzero_p, and value_zero_p. Referenced by edot(). |
|
Definition at line 150 of file ehrhart.c. References _enode::arr, _evalue::d, enode, new_enode(), _enode::pos, _enode::size, _enode::type, value_assign, value_init, and value_zero_p. Referenced by Domain_Enumerate(), eadd(), and new_eadd(). |
|
computes the inner product of two vectors. Result = result (evalue) = v1.v2 (dot product)
Definition at line 509 of file ehrhart.c. References _enode::arr, _evalue::d, eadd(), emul(), enode, evalue, evector, free_evalue_refs(), _enode::size, _enode::type, value_init, and value_set_si. Referenced by P_Enum(). |
|
Computes the approximation of the Ehrhart polynomial of a polyhedron (implicit form -> matrix), treating the non-full-dimensional case.
Definition at line 2618 of file ehrhart.c. References Constraints2Polyhedron(), Ehrhart_Quick_Apx_Full_Dim(), Enumeration, full_dimensionize(), Matrix, Matrix_Free(), maxRays, mpolyhedron_compress_last_vars(), matrix::NbColumns, Polyhedron, Polyhedron_Free(), and show_matrix. Referenced by Constraints_EhrhartQuickApx(), and main(). |
|
Definition at line 2203 of file ehrhart.c. References Domain_Free(), Enumeration, _enumeration::EP, free_evalue_refs(), _enumeration::next, and _enumeration::ValidityDomain. Referenced by main(), and test_Constraints_fullDimensionize(). |
|
returns a constant Ehrhart polynomial whose value is zero for any value of the parameters.
Definition at line 2715 of file ehrhart.c. References Constraints2Polyhedron(), Enumeration, Matrix, Matrix_Alloc(), Matrix_Free(), maxRays, matrix::p, Polyhedron, Polyhedron_Enumerate(), Polyhedron_Free(), Universe_Polyhedron(), and value_set_si. Referenced by test_Constraints_fullDimensionize(). |
|
releases all memory referenced by e. (recursive)
Definition at line 122 of file ehrhart.c. References _evalue::d, enode, evalue, p, value_clear, and value_notzero_p. Referenced by dehomogenize_evalue(), Domain_Enumerate(), eadd(), edot(), Enumeration_Free(), main(), P_Enum(), and reduce_evalue(). |
|
EHRHART POLYNOMIAL SYMBOLIC ALGEBRA SYSTEM. The newly allocated enode can be freed with a simple free(x)
Definition at line 97 of file ehrhart.c. References _enode::arr, _evalue::d, enode, evalue, _enode::pos, _enode::size, size, _enode::type, value_init, and value_set_si. Referenced by ecopy(), emul(), Enumerate_NoParameters(), new_eadd(), and P_Enum(). |
|
|
prints the enode to DST
Definition at line 199 of file ehrhart.c. References enode, evector, p, periodic, polynomial, and print_evalue(). Referenced by P_Enum(), and print_evalue(). |
|
Definition at line 175 of file ehrhart.c. References _evalue::d, evalue, print_enode(), value_notone_p, value_notzero_p, and value_print. Referenced by compute_poly(), Ehrhart_Quick_Apx_Full_Dim(), Enumerate_NoParameters(), main(), P_Enum(), Polyhedron_Enumerate(), print_enode(), and test_Constraints_fullDimensionize(). |
|
Definition at line 278 of file ehrhart.c. References _evalue::d, eequal(), enode, evalue, free_evalue_refs(), p, periodic, polynomial, value_clear, value_notzero_p, value_one_p, and value_zero_p. Referenced by Ehrhart_Quick_Apx_Full_Dim(), and Polyhedron_Enumerate(). |
|
Definition at line 13 of file ehrhart.h. Referenced by Ehrhart_Quick_Apx_Full_Dim(), Enumerate_NoParameters(), P_Enum(), and Polyhedron_Enumerate(). |