return NULL;
}
+__isl_give isl_qpolynomial *isl_qpolynomial_gist_params(
+ __isl_take isl_qpolynomial *qp, __isl_take isl_set *context)
+{
+ isl_space *space = isl_qpolynomial_get_domain_space(qp);
+ isl_set *dom_context = isl_set_universe(space);
+ dom_context = isl_set_intersect_params(dom_context, context);
+ return isl_qpolynomial_gist(qp, dom_context);
+}
+
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_qpolynomial(
__isl_take isl_qpolynomial *qp)
{
#define IS_ZERO is_zero
#undef FIELD
#define FIELD qp
+#undef DEFAULT_IS_ZERO
+#define DEFAULT_IS_ZERO 1
#include <isl_pw_templ.c>
return isl_qpolynomial_is_one(pwqp->p[0].qp);
}
+__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add(
+ __isl_take isl_pw_qpolynomial *pwqp1,
+ __isl_take isl_pw_qpolynomial *pwqp2)
+{
+ return isl_pw_qpolynomial_union_add_(pwqp1, pwqp2);
+}
+
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_mul(
__isl_take isl_pw_qpolynomial *pwqp1,
__isl_take isl_pw_qpolynomial *pwqp2)
isl_term *dup;
unsigned total;
- if (term)
+ if (!term)
return NULL;
total = isl_space_dim(term->dim, isl_dim_all) + term->div->n_row;
{
isl_local_space *ls;
isl_aff *aff;
- unsigned total;
if (!term)
return NULL;
isl_assert(term->dim->ctx, pos < isl_term_dim(term, isl_dim_div),
return NULL);
- total = term->div->n_col - term->div->n_row - 2;
- /* No nested divs for now */
- isl_assert(term->dim->ctx,
- isl_seq_first_non_zero(term->div->row[pos] + 2 + total,
- term->div->n_row) == -1,
- return NULL);
-
ls = isl_local_space_alloc_div(isl_space_copy(term->dim),
isl_mat_copy(term->div));
aff = isl_aff_alloc(ls);
isl_seq_cpy(aff->v->el, term->div->row[pos], aff->v->size);
+ aff = isl_aff_normalize(aff);
+
return aff;
}