Polyhedron_Sample: postpone removal of rays until we know domain is unbounded
[barvinok.git] / polysign.c
blob4a5e85fbd0ac5b3500d77f4dad356989fdfa1c02
1 #include <barvinok/options.h>
2 #include <barvinok/util.h>
3 #include "polysign.h"
4 #include "config.h"
6 #ifndef HAVE_LIBCDDGMP
7 enum order_sign cdd_polyhedron_affine_sign(Polyhedron *D, Matrix *T,
8 struct barvinok_options *options)
10 assert(0);
13 enum order_sign cddf_polyhedron_affine_sign(Polyhedron *D, Matrix *T,
14 struct barvinok_options *options)
16 assert(0);
18 #endif
20 enum order_sign polyhedron_affine_sign(Polyhedron *D, Matrix *T,
21 struct barvinok_options *options)
23 if (options->lp_solver == BV_LP_POLYLIB)
24 return PL_polyhedron_affine_sign(D, T, options);
25 else if (options->lp_solver == BV_LP_CDD)
26 return cdd_polyhedron_affine_sign(D, T, options);
27 else if (options->lp_solver == BV_LP_CDDF)
28 return cddf_polyhedron_affine_sign(D, T, options);
29 else
30 assert(0);
33 enum lp_result polyhedron_range(Polyhedron *D, Value *obj, Value denom,
34 Value *min, Value *max,
35 struct barvinok_options *options)
37 if (options->lp_solver == BV_LP_POLYLIB)
38 return PL_polyhedron_range(D, obj, denom, min, max, options);
39 else if (options->lp_solver == BV_LP_CDD)
40 return cdd_polyhedron_range(D, obj, denom, min, max, options);
41 else if (options->lp_solver == BV_LP_CDDF)
42 return cddf_polyhedron_range(D, obj, denom, min, max, options);
43 else
44 assert(0);