iscc: support application of piecewise quasipolynomial (fold) on set
[barvinok.git] / lattice_width.h
blobf29bd8ccf0f70682d8e46265d335695b43d40139
1 #include <barvinok/polylib.h>
3 #if defined(__cplusplus)
4 extern "C" {
5 #endif
7 struct barvinok_options;
9 struct width_direction {
10 Vector *width; /* The lattice width, a vector of length n+2.
11 * width[n] is the constant term
12 * width[n+1] is the denominator
14 Vector *dir; /* The direction in which width is obtained */
15 Polyhedron *domain; /* Chamber where this width is minimal */
18 struct width_direction_array {
19 int n; /* Number of elements (used) in wd array */
20 int alloc; /* Number of elements allocated in wd array */
21 struct width_direction *wd;
24 evalue *Polyhedron_Lattice_Width(Polyhedron *P, Polyhedron *C,
25 struct barvinok_options *options);
27 struct width_direction_array *
28 Polyhedron_Lattice_Width_Directions(Polyhedron *P, Polyhedron *C,
29 struct barvinok_options *options);
30 void free_width_direction_array(struct width_direction_array *dirs);
32 #if defined(__cplusplus)
34 #endif