C<add_constant> and C<add_coefficient> 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 <isl/aff.h>
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
__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);
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)