optionally use isl to perform parametric vertex enumeration
[barvinok.git] / basis_reduction.c
blobc7872927674be3c8fcbf6ab31ccb701da594214d
1 #include <assert.h>
2 #include <barvinok/basis_reduction.h>
3 #include <barvinok/options.h>
4 #include "config.h"
6 #ifndef HAVE_LIBGLPK
7 Matrix *glpk_Polyhedron_Reduced_Basis(Polyhedron *P,
8 struct barvinok_options *options)
10 assert(0);
12 #endif
14 #ifndef HAVE_LIBCDDGMP
15 Matrix *cdd_Polyhedron_Reduced_Basis(Polyhedron *P,
16 struct barvinok_options *options)
18 assert(0);
20 #endif
22 Matrix *Polyhedron_Reduced_Basis(Polyhedron *P, struct barvinok_options *options)
24 if (options->gbr_lp_solver == BV_GBR_GLPK)
25 return glpk_Polyhedron_Reduced_Basis(P, options);
26 else if (options->gbr_lp_solver == BV_GBR_CDD)
27 return cdd_Polyhedron_Reduced_Basis(P, options);
28 else if (options->gbr_lp_solver == BV_GBR_PIP)
29 return pip_Polyhedron_Reduced_Basis(P, options);
30 else if (options->gbr_lp_solver == BV_GBR_PIP_DUAL)
31 return pip_dual_Polyhedron_Reduced_Basis(P, options);
32 else
33 assert(0);