From: Sven Verdoolaege Date: Fri, 24 Jun 2011 11:14:52 +0000 (+0200) Subject: add isl_aff_plain_is_equal X-Git-Tag: isl-0.07~79 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ad33e92491a0eabc81314118f1de4ff0ca832d25;p=platform%2Fupstream%2Fisl.git add isl_aff_plain_is_equal Signed-off-by: Sven Verdoolaege --- diff --git a/doc/user.pod b/doc/user.pod index e1c7270..8060791 100644 --- a/doc/user.pod +++ b/doc/user.pod @@ -2236,10 +2236,13 @@ set the I of the constant or coefficient, while C and C add an integer value to the possibly rational constant or coefficient. -To check whether an affine expressions is obviously zero, use +To check whether an affine expressions is obviously zero +or obviously equal to some other affine expression, use #include int isl_aff_plain_is_zero(__isl_keep isl_aff *aff); + int isl_aff_plain_is_equal(__isl_keep isl_aff *aff1, + __isl_keep isl_aff *aff2); Operations include diff --git a/include/isl/aff.h b/include/isl/aff.h index da23d44..64d16d8 100644 --- a/include/isl/aff.h +++ b/include/isl/aff.h @@ -42,6 +42,7 @@ __isl_give isl_aff *isl_aff_add_constant_si(__isl_take isl_aff *aff, int v); __isl_give isl_aff *isl_aff_add_coefficient_si(__isl_take isl_aff *aff, enum isl_dim_type type, int pos, int v); +int isl_aff_plain_is_equal(__isl_keep isl_aff *aff1, __isl_keep isl_aff *aff2); int isl_aff_plain_is_zero(__isl_keep isl_aff *aff); __isl_give isl_div *isl_aff_get_div(__isl_keep isl_aff *aff, int pos); diff --git a/isl_aff.c b/isl_aff.c index 1faa493..d0fe73a 100644 --- a/isl_aff.c +++ b/isl_aff.c @@ -151,6 +151,20 @@ int isl_aff_plain_is_zero(__isl_keep isl_aff *aff) return isl_seq_first_non_zero(aff->v->el + 1, aff->v->size - 1) < 0; } +int isl_aff_plain_is_equal(__isl_keep isl_aff *aff1, __isl_keep isl_aff *aff2) +{ + int equal; + + if (!aff1 || !aff2) + return -1; + + equal = isl_local_space_is_equal(aff1->ls, aff2->ls); + if (equal < 0 || !equal) + return equal; + + return isl_vec_is_equal(aff1->v, aff2->v); +} + int isl_aff_get_denominator(__isl_keep isl_aff *aff, isl_int *v) { if (!aff)