isl_basic_map_new_from_polylib: add memory management annotations
[barvinok.git] / polysign.h
blobe3e058a01af084496b6fc9a005b7d057d2f74106
1 #include <barvinok/polylib.h>
3 #if defined(__cplusplus)
4 extern "C" {
5 #endif
7 struct barvinok_options;
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 glpk_polyhedron_affine_sign(Polyhedron *D, Matrix *T,
14 struct barvinok_options *options);
15 enum order_sign polyhedron_affine_sign(Polyhedron *D, Matrix *T,
16 struct barvinok_options *options);
17 enum order_sign PL_polyhedron_affine_sign(Polyhedron *D, Matrix *T,
18 struct barvinok_options *options);
19 enum order_sign cdd_polyhedron_affine_sign(Polyhedron *D, Matrix *T,
20 struct barvinok_options *options);
21 enum order_sign cddf_polyhedron_affine_sign(Polyhedron *D, Matrix *T,
22 struct barvinok_options *options);
23 enum order_sign isl_polyhedron_affine_sign(Polyhedron *D, Matrix *T,
24 struct barvinok_options *options);
26 enum lp_result { lp_ok = 0, lp_unbounded, lp_empty };
27 enum lp_dir { lp_min, lp_max };
29 enum lp_result constraints_opt(Matrix *C, Value *obj, Value denom,
30 enum lp_dir dir, Value *opt,
31 struct barvinok_options *options);
32 enum lp_result glpk_constraints_opt(Matrix *C, Value *obj, Value denom,
33 enum lp_dir dir, Value *opt);
34 enum lp_result PL_constraints_opt(Matrix *C, Value *obj, Value denom,
35 enum lp_dir dir, Value *opt,
36 unsigned MaxRays);
37 enum lp_result cdd_constraints_opt(Matrix *C, Value *obj, Value denom,
38 enum lp_dir dir, Value *opt);
39 enum lp_result cddf_constraints_opt(Matrix *C, Value *obj, Value denom,
40 enum lp_dir dir, Value *opt);
41 enum lp_result isl_constraints_opt(Matrix *C, Value *obj, Value denom,
42 enum lp_dir dir, Value *opt);
44 enum lp_result polyhedron_opt(Polyhedron *P, Value *obj, Value denom,
45 enum lp_dir dir, Value *opt,
46 struct barvinok_options *options);
47 enum lp_result PL_polyhedron_opt(Polyhedron *P, Value *obj, Value denom,
48 enum lp_dir dir, Value *opt);
50 #if defined(__cplusplus)
52 #endif