isl_basic_set_multiplicative_call: handle parametric input
authorSven Verdoolaege <skimo@kotnet.org>
Mon, 4 Oct 2010 20:08:54 +0000 (22:08 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Wed, 6 Oct 2010 09:40:12 +0000 (11:40 +0200)
Due to a mistake in the original implementation, the wrong dimensions
would get dropped from factors of the input in case this input was
parametric.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
isl_polynomial.c

index 444d8eb..180a89d 100644 (file)
@@ -3745,9 +3745,9 @@ static __isl_give isl_pw_qpolynomial *compressed_multiplicative_call(
                            nparam + n + f->len[i], nvar - n - f->len[i]);
                bset_i = isl_basic_set_drop_constraints_involving(bset_i,
                            nparam, n);
-               bset_i = isl_basic_set_drop_dims(bset_i,
-                           nparam + n + f->len[i], nvar - n - f->len[i]);
-               bset_i = isl_basic_set_drop_dims(bset_i, nparam, n);
+               bset_i = isl_basic_set_drop(bset_i, isl_dim_set,
+                           n + f->len[i], nvar - n - f->len[i]);
+               bset_i = isl_basic_set_drop(bset_i, isl_dim_set, 0, n);
 
                pwqp_i = fn(bset_i);
                pwqp = isl_pw_qpolynomial_mul(pwqp, pwqp_i);