summaryrefslogtreecommitdiff
path: root/isl_lp_piplib.c
diff options
context:
space:
mode:
authorSven Verdoolaege <skimo@kotnet.org>2008-08-15 21:56:30 +0200
committerSven Verdoolaege <skimo@kotnet.org>2008-08-25 10:15:08 +0200
commit6ee7c30d7fedfd81f6254fe15534a154ce7624a1 (patch)
treeaa3add251079db8f50677b0f2b2be262712fc24e /isl_lp_piplib.c
parentfb6acf38cd8a8220b2282406613fe229aa96fa73 (diff)
downloadisl-6ee7c30d7fedfd81f6254fe15534a154ce7624a1.tar.gz
isl-6ee7c30d7fedfd81f6254fe15534a154ce7624a1.tar.bz2
isl-6ee7c30d7fedfd81f6254fe15534a154ce7624a1.zip
add convex hull computation
Diffstat (limited to 'isl_lp_piplib.c')
-rw-r--r--isl_lp_piplib.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/isl_lp_piplib.c b/isl_lp_piplib.c
index 0072295d..8289e794 100644
--- a/isl_lp_piplib.c
+++ b/isl_lp_piplib.c
@@ -4,7 +4,8 @@
#include "isl_map_piplib.h"
enum isl_lp_result isl_pip_solve_lp(struct isl_basic_map *bmap, int maximize,
- isl_int *f, isl_int denom, isl_int *opt)
+ isl_int *f, isl_int denom, isl_int *opt,
+ isl_int *opt_denom)
{
enum isl_lp_result res = isl_lp_ok;
PipMatrix *domain = NULL;
@@ -35,7 +36,12 @@ enum isl_lp_result isl_pip_solve_lp(struct isl_basic_map *bmap, int maximize,
else if (entier_zero_p(sol->list->vector->the_deno[0]))
res = isl_lp_unbounded;
else {
- if (maximize)
+ if (opt_denom) {
+ isl_seq_cpy_from_pip(opt,
+ &sol->list->vector->the_vector[0], 1);
+ isl_seq_cpy_from_pip(opt_denom,
+ &sol->list->vector->the_deno[0], 1);
+ } else if (maximize)
mpz_fdiv_q(*opt, sol->list->vector->the_vector[0],
sol->list->vector->the_deno[0]);
else