Merge branch 'topcom'
[barvinok.git] / polysign.c
blob981d1ce9d4e5a7f31df0bc53f022a63a84f199b8
1 #include <assert.h>
2 #include <barvinok/options.h>
3 #include <barvinok/util.h>
4 #include "polysign.h"
5 #include "config.h"
7 #ifndef HAVE_LIBGLPK
8 enum order_sign glpk_polyhedron_affine_sign(Polyhedron *D, Matrix *T,
9 struct barvinok_options *options)
11 assert(0);
14 enum lp_result glpk_polyhedron_range(Polyhedron *D, Value *obj, Value denom,
15 Value *min, Value *max,
16 struct barvinok_options *options)
18 assert(0);
20 #endif
22 #ifndef HAVE_LIBCDDGMP
23 enum order_sign cdd_polyhedron_affine_sign(Polyhedron *D, Matrix *T,
24 struct barvinok_options *options)
26 assert(0);
29 enum order_sign cddf_polyhedron_affine_sign(Polyhedron *D, Matrix *T,
30 struct barvinok_options *options)
32 assert(0);
35 enum lp_result cdd_polyhedron_range(Polyhedron *D, Value *obj, Value denom,
36 Value *min, Value *max,
37 struct barvinok_options *options)
39 assert(0);
42 enum lp_result cddf_polyhedron_range(Polyhedron *D, Value *obj, Value denom,
43 Value *min, Value *max,
44 struct barvinok_options *options)
46 assert(0);
48 #endif
50 enum order_sign polyhedron_affine_sign(Polyhedron *D, Matrix *T,
51 struct barvinok_options *options)
53 if (options->lp_solver == BV_LP_POLYLIB)
54 return PL_polyhedron_affine_sign(D, T, options);
55 else if (options->lp_solver == BV_LP_GLPK)
56 return glpk_polyhedron_affine_sign(D, T, options);
57 else if (options->lp_solver == BV_LP_CDD)
58 return cdd_polyhedron_affine_sign(D, T, options);
59 else if (options->lp_solver == BV_LP_CDDF)
60 return cddf_polyhedron_affine_sign(D, T, options);
61 else
62 assert(0);
65 enum lp_result polyhedron_range(Polyhedron *D, Value *obj, Value denom,
66 Value *min, Value *max,
67 struct barvinok_options *options)
69 if (options->lp_solver == BV_LP_POLYLIB)
70 return PL_polyhedron_range(D, obj, denom, min, max, options);
71 else if (options->lp_solver == BV_LP_GLPK)
72 return glpk_polyhedron_range(D, obj, denom, min, max, options);
73 else if (options->lp_solver == BV_LP_CDD)
74 return cdd_polyhedron_range(D, obj, denom, min, max, options);
75 else if (options->lp_solver == BV_LP_CDDF)
76 return cddf_polyhedron_range(D, obj, denom, min, max, options);
77 else
78 assert(0);