return NULL;
}
+__isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_insert_dims(
+ __isl_take isl_qpolynomial_fold *fold,
+ enum isl_dim_type type, unsigned first, unsigned n)
+{
+ int i;
+
+ if (!fold)
+ return NULL;
+ if (n == 0 && !isl_dim_is_named_or_nested(fold->dim, type))
+ return fold;
+
+ fold = isl_qpolynomial_fold_cow(fold);
+ if (!fold)
+ return NULL;
+ fold->dim = isl_dim_insert(fold->dim, type, first, n);
+ if (!fold->dim)
+ goto error;
+
+ for (i = 0; i < fold->n; ++i) {
+ fold->qp[i] = isl_qpolynomial_insert_dims(fold->qp[i],
+ type, first, n);
+ if (!fold->qp[i])
+ goto error;
+ }
+
+ return fold;
+error:
+ isl_qpolynomial_fold_free(fold);
+ return NULL;
+}
+
static int isl_qpolynomial_cst_sign(__isl_keep isl_qpolynomial *qp)
{
struct isl_upoly_cst *cst;
return isl_qpolynomial_insert_dims(qp, type, pos, n);
}
-__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_insert_dims(
- __isl_take isl_pw_qpolynomial *pwqp, enum isl_dim_type type,
- unsigned first, unsigned n)
-{
- int i;
-
- if (n == 0)
- return pwqp;
-
- pwqp = isl_pw_qpolynomial_cow(pwqp);
- if (!pwqp)
- return NULL;
-
- pwqp->dim = isl_dim_insert(pwqp->dim, type, first, n);
- if (!pwqp->dim)
- goto error;
-
- for (i = 0; i < pwqp->n; ++i) {
- pwqp->p[i].set = isl_set_insert(pwqp->p[i].set, type, first, n);
- if (!pwqp->p[i].set)
- goto error;
- pwqp->p[i].qp = isl_qpolynomial_insert_dims(pwqp->p[i].qp,
- type, first, n);
- if (!pwqp->p[i].qp)
- goto error;
- }
-
- return pwqp;
-error:
- isl_pw_qpolynomial_free(pwqp);
- return NULL;
-}
-
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add_dims(
__isl_take isl_pw_qpolynomial *pwqp,
enum isl_dim_type type, unsigned n)
return NULL;
}
+__isl_give PW *FN(PW,insert_dims)(__isl_take PW *pw, enum isl_dim_type type,
+ unsigned first, unsigned n)
+{
+ int i;
+
+ if (!pw)
+ return NULL;
+ if (n == 0 && !isl_dim_is_named_or_nested(pw->dim, type))
+ return pw;
+
+ pw = FN(PW,cow)(pw);
+ if (!pw)
+ return NULL;
+
+ pw->dim = isl_dim_insert(pw->dim, type, first, n);
+ if (!pw->dim)
+ goto error;
+
+ for (i = 0; i < pw->n; ++i) {
+ pw->p[i].set = isl_set_insert(pw->p[i].set, type, first, n);
+ if (!pw->p[i].set)
+ goto error;
+ pw->p[i].FIELD = FN(EL,insert_dims)(pw->p[i].FIELD,
+ type, first, n);
+ if (!pw->p[i].FIELD)
+ goto error;
+ }
+
+ return pw;
+error:
+ FN(PW,free)(pw);
+ return NULL;
+}
+
__isl_give PW *FN(PW,fix_dim)(__isl_take PW *pw,
enum isl_dim_type type, unsigned pos, isl_int v)
{