gen_fun::Hadamard_product: don't assume equalities are independent
[barvinok.git] / decomposer.h
blobcdc622098e4f6effee3ed6e547ef7fde419a94e3
1 #ifndef DECOMPOSER_H
2 #define DECOMPOSER_H
4 #include <gmp.h>
5 extern "C" {
6 #include <polylib/polylibgmp.h>
9 struct decomposer {
10 void decompose(Polyhedron *C);
11 virtual void handle(Polyhedron *P, int sign) = 0;
14 struct polar_decomposer : public decomposer {
15 void decompose(Polyhedron *C, unsigned MaxRays);
16 virtual void handle(Polyhedron *P, int sign);
17 virtual void handle_polar(Polyhedron *P, int sign) = 0;
20 struct vertex_decomposer {
21 Polyhedron *P;
22 unsigned nbV; // number of vertices
23 Param_Vertices *V; // current vertex
24 int vert; // current vertex index
25 polar_decomposer *pd;
27 vertex_decomposer(Polyhedron *P, unsigned nbV, polar_decomposer *pd) :
28 P(P), nbV(nbV), pd(pd) {}
29 void decompose_at_vertex(Param_Vertices *V, int _i, unsigned MaxRays);
32 #endif