1 #ifndef LATTICE_POINT_H
2 #define LATTICE_POINT_H
4 #include <barvinok/evalue.h>
6 #if defined(__cplusplus)
10 evalue
*fractional_part(Value
*coef
, Value denom
, int nvar
, Polyhedron
*PD
);
11 evalue
*ceiling(Value
*coef
, Value denom
, int nvar
, Polyhedron
*PD
);
12 Matrix
*relative_coordinates(Param_Vertices
*V
, Matrix
*basis
);
14 #if defined(__cplusplus)
18 #if defined(__cplusplus)
20 #include <NTL/vec_ZZ.h>
21 #include <NTL/mat_ZZ.h>
25 struct barvinok_options
;
27 evalue
*multi_monom(vec_ZZ
& p
);
28 int normal_mod(Value
*coef
, int len
, Value
*m
);
29 void lattice_point_fixed(Value
*vertex
, Value
*vertex_res
,
30 Matrix
*Rays
, Matrix
*Rays_res
,
32 void lattice_points_fixed(Value
*vertex
, Value
*vertex_res
,
33 Matrix
*Rays
, Matrix
*Rays_res
, Matrix
*points
,
35 void lattice_point(Param_Vertices
*V
, const mat_ZZ
& rays
, vec_ZZ
& num
,
36 evalue
**E_vertex
, barvinok_options
*options
);
38 /* This structure encodes the power of the term in a rational generating function.
40 * Either E == NULL or constant = 0
41 * If E != NULL, then the power is E
42 * If E == NULL, then the power is constant
49 void lattice_point(Param_Vertices
* V
, const mat_ZZ
& rays
, vec_ZZ
& lambda
,
50 term_info
* term
, unsigned long det
,
51 barvinok_options
*options
);