short_rat::print: correctly print out terms with a zero coefficient
[barvinok.git] / polysign.h
blob2680adde5a5558f14c12f841d7a2db5c8a276102
1 #include <barvinok/polylib.h>
3 #if defined(__cplusplus)
4 extern "C" {
5 #endif
7 #include "lexmin.h"
9 enum order_sign { order_lt, order_le, order_eq, order_ge, order_gt, order_unknown,
10 order_undefined };
12 /* Returns the sign of the affine function specified by T on the polyhedron D */
13 enum order_sign polyhedron_affine_sign(Polyhedron *D, Matrix *T,
14 struct barvinok_options *options);
15 enum order_sign PL_polyhedron_affine_sign(Polyhedron *D, Matrix *T,
16 struct barvinok_options *options);
17 enum order_sign cdd_polyhedron_affine_sign(Polyhedron *D, Matrix *T,
18 struct barvinok_options *options);
19 enum order_sign cddf_polyhedron_affine_sign(Polyhedron *D, Matrix *T,
20 struct barvinok_options *options);
22 enum lp_result { lp_ok = 0, lp_unbounded, lp_empty };
24 /* Computes min and max of obj/denom over D, with min rounded up
25 * and max rounded down to an integer. obj has D->Dimension+1
26 * elements, with the constant term in position D->Dimension.
28 enum lp_result polyhedron_range(Polyhedron *D, Value *obj, Value denom,
29 Value *min, Value *max,
30 struct barvinok_options *options);
31 enum lp_result PL_polyhedron_range(Polyhedron *D, Value *obj, Value denom,
32 Value *min, Value *max,
33 struct barvinok_options *options);
34 enum lp_result glpk_polyhedron_range(Polyhedron *D, Value *obj, Value denom,
35 Value *min, Value *max,
36 struct barvinok_options *options);
37 enum lp_result cdd_polyhedron_range(Polyhedron *D, Value *obj, Value denom,
38 Value *min, Value *max,
39 struct barvinok_options *options);
40 enum lp_result cddf_polyhedron_range(Polyhedron *D, Value *obj, Value denom,
41 Value *min, Value *max,
42 struct barvinok_options *options);
43 #if defined(__cplusplus)
45 #endif