From ad33e92491a0eabc81314118f1de4ff0ca832d25 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Fri, 24 Jun 2011 13:14:52 +0200 Subject: [PATCH] add isl_aff_plain_is_equal Signed-off-by: Sven Verdoolaege --- doc/user.pod | 5 ++++- include/isl/aff.h | 1 + isl_aff.c | 14 ++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/doc/user.pod b/doc/user.pod index e1c7270b..80607916 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 da23d443..64d16d8f 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 1faa4937..d0fe73a8 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) -- 2.11.4.GIT