__isl_give isl_dim *isl_pw_qpolynomial_get_dim(
__isl_keep isl_pw_qpolynomial *pwqp);
+__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_reset_dim(
+ __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_dim *dim);
unsigned isl_pw_qpolynomial_dim(__isl_keep isl_pw_qpolynomial *pwqp,
enum isl_dim_type type);
int isl_pw_qpolynomial_involves_dims(__isl_keep isl_pw_qpolynomial *pwqp,
__isl_give isl_dim *isl_pw_qpolynomial_fold_get_dim(
__isl_keep isl_pw_qpolynomial_fold *pwf);
+__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_reset_dim(
+ __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_dim *dim);
unsigned isl_pw_qpolynomial_fold_dim(__isl_keep isl_pw_qpolynomial_fold *pwf,
enum isl_dim_type type);
return pw ? isl_dim_copy(pw->dim) : NULL;
}
+__isl_give PW *FN(PW,reset_dim)(__isl_take PW *pw, __isl_take isl_dim *dim)
+{
+ int i;
+
+ pw = FN(PW,cow)(pw);
+ if (!pw || !dim)
+ goto error;
+
+ for (i = 0; i < pw->n; ++i) {
+ pw->p[i].set = isl_set_reset_dim(pw->p[i].set,
+ isl_dim_copy(dim));
+ if (!pw->p[i].set)
+ goto error;
+ }
+ isl_dim_free(pw->dim);
+ pw->dim = dim;
+
+ return pw;
+error:
+ isl_dim_free(dim);
+ FN(PW,free)(pw);
+ return NULL;
+}
+
__isl_give PW *FN(PW,morph)(__isl_take PW *pw, __isl_take isl_morph *morph)
{
int i;