rename isl_qpolynomial_is_equal to isl_qpolynomial_plain_is_equal
authorSven Verdoolaege <skimo@kotnet.org>
Thu, 23 Jun 2011 07:19:56 +0000 (09:19 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Sat, 25 Jun 2011 20:22:04 +0000 (22:22 +0200)
The current implementation only checks whether two qpolynomials are
obviously equal.  There may be non-obvious relations between the divs
that make two qpolynomials equal even if they do not appear to be equal.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
bound.c
include/isl/polynomial.h
isl_fold.c
isl_polynomial.c
isl_pw_templ.c

diff --git a/bound.c b/bound.c
index b99afcf..f83e025 100644 (file)
--- a/bound.c
+++ b/bound.c
@@ -113,7 +113,7 @@ static int verify_point(__isl_take isl_point *pnt, void *user)
        nvar = isl_set_dim(dom, isl_dim_set);
        opt = isl_qpolynomial_drop_dims(opt, isl_dim_set, 0, nvar);
        if (vpb->exact && bounded)
-               ok = isl_qpolynomial_is_equal(opt, bound);
+               ok = isl_qpolynomial_plain_is_equal(opt, bound);
        else if (sign > 0)
                ok = isl_qpolynomial_le_cst(opt, bound);
        else
index d24469c..9fd4ccc 100644 (file)
@@ -44,7 +44,7 @@ __isl_give isl_qpolynomial *isl_qpolynomial_var(__isl_take isl_dim *dim,
 __isl_give isl_qpolynomial *isl_qpolynomial_copy(__isl_keep isl_qpolynomial *qp);
 void isl_qpolynomial_free(__isl_take isl_qpolynomial *qp);
 
-int isl_qpolynomial_is_equal(__isl_keep isl_qpolynomial *qp1,
+int isl_qpolynomial_plain_is_equal(__isl_keep isl_qpolynomial *qp1,
        __isl_keep isl_qpolynomial *qp2);
 int isl_qpolynomial_is_zero(__isl_keep isl_qpolynomial *qp);
 int isl_qpolynomial_is_nan(__isl_keep isl_qpolynomial *qp);
@@ -265,7 +265,7 @@ __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_reset_dim(
        __isl_take isl_qpolynomial_fold *fold, __isl_take isl_dim *dim);
 
 int isl_qpolynomial_fold_is_empty(__isl_keep isl_qpolynomial_fold *fold);
-int isl_qpolynomial_fold_is_equal(__isl_keep isl_qpolynomial_fold *fold1,
+int isl_qpolynomial_fold_plain_is_equal(__isl_keep isl_qpolynomial_fold *fold1,
        __isl_keep isl_qpolynomial_fold *fold2);
 
 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_fold(
index b69adf9..e211caf 100644 (file)
@@ -918,7 +918,7 @@ __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_from_pw_qpolynomial(
        return pwf;
 }
 
-int isl_qpolynomial_fold_is_equal(__isl_keep isl_qpolynomial_fold *fold1,
+int isl_qpolynomial_fold_plain_is_equal(__isl_keep isl_qpolynomial_fold *fold1,
        __isl_keep isl_qpolynomial_fold *fold2)
 {
        int i;
@@ -931,7 +931,7 @@ int isl_qpolynomial_fold_is_equal(__isl_keep isl_qpolynomial_fold *fold1,
 
        /* We probably want to sort the qps first... */
        for (i = 0; i < fold1->n; ++i) {
-               int eq = isl_qpolynomial_is_equal(fold1->qp[i], fold2->qp[i]);
+               int eq = isl_qpolynomial_plain_is_equal(fold1->qp[i], fold2->qp[i]);
                if (eq < 0 || !eq)
                        return eq;
        }
index 83cc9f4..ee32b38 100644 (file)
@@ -1659,7 +1659,7 @@ error:
        return NULL;
 }
 
-int isl_qpolynomial_is_equal(__isl_keep isl_qpolynomial *qp1,
+int isl_qpolynomial_plain_is_equal(__isl_keep isl_qpolynomial *qp1,
        __isl_keep isl_qpolynomial *qp2)
 {
        int equal;
index a3c76a1..092300f 100644 (file)
@@ -447,7 +447,8 @@ __isl_give PW *FN(PW,coalesce)(__isl_take PW *pw)
 
        for (i = pw->n - 1; i >= 0; --i) {
                for (j = i - 1; j >= 0; --j) {
-                       if (!FN(EL,is_equal)(pw->p[i].FIELD, pw->p[j].FIELD))
+                       if (!FN(EL,plain_is_equal)(pw->p[i].FIELD,
+                                                       pw->p[j].FIELD))
                                continue;
                        pw->p[j].set = isl_set_union(pw->p[j].set,
                                                        pw->p[i].set);