return NULL;
for (i = 0; i < pw->n; ++i) {
pw->p[i].set = isl_set_fix(pw->p[i].set, type, pos, v);
- if (!pw->p[i].set)
- goto error;
+ if (FN(PW,exploit_equalities_and_remove_if_empty)(pw, i) < 0)
+ return FN(PW,free)(pw);
}
return pw;
-error:
- FN(PW,free)(pw);
- return NULL;
}
/* Fix the value of the variable at position "pos" of type "type" of "pw"
if (!equal)
isl_die(ctx, isl_error_unknown, "unexpected result", return -1);
+ str = "{ [a,b,c] -> (([(2*[a/3]+1)/5]) * ([(2*[c/3]+1)/5])) : b = 1 }";
+ pwqp2 = isl_pw_qpolynomial_read_from_str(ctx, str);
+ str = "{ [a,b,c] -> (([(2*[a/3]+b)/5]) * ([(2*[c/3]+b)/5])) }";
+ pwqp1 = isl_pw_qpolynomial_read_from_str(ctx, str);
+ pwqp1 = isl_pw_qpolynomial_fix_val(pwqp1, isl_dim_set, 1,
+ isl_val_one(ctx));
+ equal = isl_pw_qpolynomial_plain_is_equal(pwqp1, pwqp2);
+ isl_pw_qpolynomial_free(pwqp1);
+ isl_pw_qpolynomial_free(pwqp2);
+ if (equal < 0)
+ return -1;
+ if (!equal)
+ isl_die(ctx, isl_error_unknown, "unexpected result", return -1);
+
return 0;
}