@@ -8743,6 +8743,10 @@ Lists can be inspected using the following functions.
isl_stat isl_set_list_foreach(__isl_keep isl_set_list *list,
isl_stat (*fn)(__isl_take isl_set *el, void *user),
void *user);
+ isl_bool isl_set_list_every(__isl_keep isl_set_list *list,
+ isl_bool (*test)(__isl_take isl_set *el,
+ void *user),
+ void *user);
isl_stat isl_set_list_foreach_scc(
__isl_keep isl_set_list *list,
isl_bool (*follows)(__isl_keep isl_set *a,
@@ -72,6 +72,9 @@ EXPORT \
isl_stat isl_##EL##_list_foreach(__isl_keep isl_##EL##_list *list, \
isl_stat (*fn)(__isl_take isl_##EL *el, void *user), \
void *user); \
+isl_bool isl_##EL##_list_every(__isl_keep isl_##EL##_list *list, \
+ isl_bool (*test)(__isl_keep isl_##EL *el, void *user), \
+ void *user); \
__isl_give isl_##EL##_list *isl_##EL##_list_map( \
__isl_take isl_##EL##_list *list, \
__isl_give isl_##EL * (*fn)(__isl_take isl_##EL *el, \
@@ -393,6 +393,27 @@ isl_stat FN(LIST(EL),foreach)(__isl_keep LIST(EL) *list,
return isl_stat_ok;
}
+/* Does "test" succeed on every element of "list"?
+ */
+isl_bool FN(LIST(EL),every)(__isl_keep LIST(EL) *list,
+ isl_bool (*test)(__isl_keep EL *el, void *user), void *user)
+{
+ int i;
+
+ if (!list)
+ return isl_bool_error;
+
+ for (i = 0; i < list->n; ++i) {
+ isl_bool r;
+
+ r = test(list->p[i], user);
+ if (r < 0 || !r)
+ return r;
+ }
+
+ return isl_bool_true;
+}
+
/* Replace each element in "list" by the result of calling "fn"
* on the element.
*/