#include <isl_flow.h>
#include <isl_constraint.h>
#include <isl_polynomial.h>
+#include <isl_union_map.h>
static char *srcdir;
isl_pw_qpolynomial_free(pwqp);
}
+void test_union(isl_ctx *ctx)
+{
+ const char *str;
+ isl_union_set *uset;
+ isl_union_map *umap1, *umap2;
+
+ str = "{ [i] : 0 <= i <= 1 }";
+ uset = isl_union_set_from_set(isl_set_read_from_str(ctx, str, -1));
+ str = "{ [1] -> [0] }";
+ umap1 = isl_union_map_from_map(isl_map_read_from_str(ctx, str, -1));
+
+ umap2 = isl_union_set_lex_gt_union_set(isl_union_set_copy(uset), uset);
+ assert(isl_union_map_is_equal(umap1, umap2));
+
+ isl_union_map_free(umap1);
+ isl_union_map_free(umap2);
+}
+
int main()
{
struct isl_ctx *ctx;
assert(srcdir);
ctx = isl_ctx_alloc();
+ test_union(ctx);
test_split_periods(ctx);
test_parse(ctx);
test_pwqp(ctx);
__isl_give isl_union_map *isl_union_set_lex_gt_union_set(
__isl_take isl_union_set *uset1, __isl_take isl_union_set *uset2)
{
- return isl_union_set_lex_lt_union_set(uset2, uset1);
+ return isl_union_map_reverse(isl_union_set_lex_lt_union_set(uset2, uset1));
}
__isl_give isl_union_map *isl_union_set_lex_ge_union_set(
__isl_take isl_union_set *uset1, __isl_take isl_union_set *uset2)
{
- return isl_union_set_lex_le_union_set(uset2, uset1);
+ return isl_union_map_reverse(isl_union_set_lex_le_union_set(uset2, uset1));
}
__isl_give isl_union_map *isl_union_map_lex_gt_union_map(
__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2)
{
- return isl_union_map_lex_lt_union_map(umap2, umap1);
+ return isl_union_map_reverse(isl_union_map_lex_lt_union_map(umap2, umap1));
}
__isl_give isl_union_map *isl_union_map_lex_ge_union_map(
__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2)
{
- return isl_union_map_lex_le_union_map(umap2, umap1);
+ return isl_union_map_reverse(isl_union_map_lex_le_union_map(umap2, umap1));
}
static int intersect_domain_entry(void **entry, void *user)