#include <isl_map_private.h>
#include <isl_constraint_private.h>
#include <isl_space_private.h>
-#include <isl_div_private.h>
#include <isl/seq.h>
#include <isl_aff_private.h>
#include <isl_local_space_private.h>
}
}
-__isl_give isl_constraint *isl_constraint_alloc(int eq,
+__isl_give isl_constraint *isl_constraint_alloc_vec(int eq,
__isl_take isl_local_space *ls, __isl_take isl_vec *v)
{
isl_constraint *constraint;
return NULL;
}
+__isl_give isl_constraint *isl_constraint_alloc(int eq,
+ __isl_take isl_local_space *ls)
+{
+ isl_ctx *ctx;
+ isl_vec *v;
+
+ if (!ls)
+ return NULL;
+
+ ctx = isl_local_space_get_ctx(ls);
+ v = isl_vec_alloc(ctx, 1 + isl_local_space_dim(ls, isl_dim_all));
+ v = isl_vec_clr(v);
+ return isl_constraint_alloc_vec(eq, ls, v);
+}
+
struct isl_constraint *isl_basic_map_constraint(struct isl_basic_map *bmap,
isl_int **line)
{
if (!v)
goto error;
isl_seq_cpy(v->el, line[0], v->size);
- constraint = isl_constraint_alloc(eq, ls, v);
+ constraint = isl_constraint_alloc_vec(eq, ls, v);
isl_basic_map_free(bmap);
return constraint;
return isl_basic_map_constraint((struct isl_basic_map *)bset, line);
}
-struct isl_constraint *isl_equality_alloc(__isl_take isl_space *dim)
+__isl_give isl_constraint *isl_equality_alloc(__isl_take isl_local_space *ls)
{
- struct isl_basic_map *bmap;
-
- if (!dim)
- return NULL;
-
- bmap = isl_basic_map_alloc_space(dim, 0, 1, 0);
- if (!bmap)
- return NULL;
-
- isl_basic_map_alloc_equality(bmap);
- isl_seq_clr(bmap->eq[0], 1 + isl_basic_map_total_dim(bmap));
- return isl_basic_map_constraint(bmap, &bmap->eq[0]);
+ return isl_constraint_alloc(1, ls);
}
-struct isl_constraint *isl_inequality_alloc(__isl_take isl_space *dim)
+__isl_give isl_constraint *isl_inequality_alloc(__isl_take isl_local_space *ls)
{
- struct isl_basic_map *bmap;
-
- if (!dim)
- return NULL;
-
- bmap = isl_basic_map_alloc_space(dim, 0, 0, 1);
- if (!bmap)
- return NULL;
-
- isl_basic_map_alloc_inequality(bmap);
- isl_seq_clr(bmap->ineq[0], 1 + isl_basic_map_total_dim(bmap));
- return isl_basic_map_constraint(bmap, &bmap->ineq[0]);
+ return isl_constraint_alloc(0, ls);
}
struct isl_constraint *isl_constraint_dup(struct isl_constraint *c)
if (!c)
return NULL;
- return isl_constraint_alloc(c->eq, isl_local_space_copy(c->ls),
+ return isl_constraint_alloc_vec(c->eq, isl_local_space_copy(c->ls),
isl_vec_copy(c->v));
}
isl_int_set(*v, constraint->v->el[pos]);
}
-struct isl_div *isl_constraint_div(struct isl_constraint *constraint, int pos)
+__isl_give isl_aff *isl_constraint_get_div(__isl_keep isl_constraint *constraint,
+ int pos)
{
if (!constraint)
return NULL;
__isl_give isl_constraint *isl_equality_from_aff(__isl_take isl_aff *aff)
{
int k;
+ isl_local_space *ls;
isl_basic_set *bset;
if (!aff)
return NULL;
- bset = isl_basic_set_from_local_space(isl_aff_get_local_space(aff));
+ ls = isl_aff_get_domain_local_space(aff);
+ bset = isl_basic_set_from_local_space(ls);
bset = isl_basic_set_extend_constraints(bset, 1, 0);
k = isl_basic_set_alloc_equality(bset);
if (k < 0)
__isl_give isl_constraint *isl_inequality_from_aff(__isl_take isl_aff *aff)
{
int k;
+ isl_local_space *ls;
isl_basic_set *bset;
if (!aff)
return NULL;
- bset = isl_basic_set_from_local_space(isl_aff_get_local_space(aff));
+ ls = isl_aff_get_domain_local_space(aff);
+ bset = isl_basic_set_from_local_space(ls);
bset = isl_basic_set_extend_constraints(bset, 0, 1);
k = isl_basic_set_alloc_inequality(bset);
if (k < 0)