4 #include <NTL/mat_ZZ.h>
5 #include <barvinok/polylib.h>
6 #include <barvinok/options.h>
11 signed_cone(const mat_ZZ
& rays
, int sign
, unsigned long det
) :
12 C(NULL
), rays(rays
), sign(sign
), det(det
) {}
13 signed_cone(Polyhedron
*C
, const mat_ZZ
& rays
, int sign
,
14 unsigned long det
= 0) :
15 C(C
), rays(rays
), sign(sign
), det(det
) {}
22 struct signed_cone_consumer
{
23 virtual void handle(const signed_cone
& sc
, barvinok_options
*options
) = 0;
24 virtual ~signed_cone_consumer() {}
27 struct vertex_decomposer
{
29 Param_Vertices
*V
; // current vertex
30 int vert
; // current vertex index
31 signed_cone_consumer
& scc
;
33 vertex_decomposer(Param_Polyhedron
*PP
, signed_cone_consumer
& scc
) :
35 void decompose_at_vertex(Param_Vertices
*V
, int _i
, barvinok_options
*options
);
38 void barvinok_decompose(Polyhedron
*C
, signed_cone_consumer
& scc
,
39 barvinok_options
*options
);