During the construction of the initial tableau in tab_for_lexmin,
restore_lexmin would get called after the addition of each equality.
However, restore_lexmin performs some pivoting operations that could
invalidate the assumptions of last_var_col_or_int_par_col during
the addition of the next equality.
We therefore postpone the call to restore_lexmin until after
all equalities have been added.
Problem reported by Tobias Grosser <grosser@fim.uni-passau.de>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
if (isl_tab_kill_col(tab, i) < 0)
goto error;
tab->n_eq++;
-
- tab = restore_lexmin(tab);
}
return tab;
if (!tab || tab->empty)
return tab;
}
+ if (bmap->n_eq)
+ tab = restore_lexmin(tab);
for (i = 0; i < bmap->n_ineq; ++i) {
if (max)
isl_seq_neg(bmap->ineq[i] + 1 + tab->n_param,
small.pip \
sor1d.pip \
square.pip \
- sven.pip"
+ sven.pip \
+ tobi.pip"
for i in $PIP_TESTS; do
echo $i;
--- /dev/null
+2 3
+1 1 -281
+1 -1 14000
+
+-1
+
+6 6
+0 -392 0 8 -1 0
+0 392 8 0 1 0
+1 -1 0 0 0 0
+1 1 0 0 0 35
+1 392 0 0 1 0
+1 -392 0 0 -1 280
+
+Urs_unknowns