1 #ifndef LATTICE_POINT_H
2 #define LATTICE_POINT_H
5 #include <barvinok/evalue.h>
7 #if defined(__cplusplus)
11 evalue
*fractional_part(Value
*coef
, Value denom
, int nvar
, Polyhedron
*PD
);
12 evalue
*ceiling(Value
*coef
, Value denom
, int nvar
, Polyhedron
*PD
);
13 Matrix
*relative_coordinates(Param_Vertices
*V
, Matrix
*basis
);
15 #if defined(__cplusplus)
19 #if defined(__cplusplus)
21 #include <NTL/vec_ZZ.h>
22 #include <NTL/mat_ZZ.h>
28 struct barvinok_options
;
30 evalue
*multi_monom(vec_ZZ
& p
);
31 int normal_mod(Value
*coef
, int len
, Value
*m
);
32 void lattice_point_fixed(Value
*vertex
, Value
*vertex_res
,
33 Matrix
*Rays
, Matrix
*Rays_res
,
35 void lattice_points_fixed(Value
*vertex
, Value
*vertex_res
,
36 Matrix
*Rays
, Matrix
*Rays_res
, Matrix
*points
,
38 void lattice_point(Param_Vertices
*V
, const mat_ZZ
& rays
, vec_ZZ
& num
,
39 evalue
**E_vertex
, barvinok_options
*options
);
41 /* This structure encodes the power of the term in a rational generating function.
43 * Either E == NULL or constant = 0
44 * If E != NULL, then the power is E
45 * If E == NULL, then the power is constant
52 void lattice_point(Param_Vertices
* V
, const mat_ZZ
& rays
, vec_ZZ
& lambda
,
53 term_info
* term
, unsigned long det
,
54 barvinok_options
*options
);