13#define SUFFIX multi_aff
17#define ARG2 isl_multi_aff
23#define SUFFIX pw_multi_aff
27#define ARG2 isl_pw_multi_aff
42 FN(
PW,align_params_multi_aff)(&pw, &
ma);
44 n =
FN(
PW,n_piece)(pw);
49 FN(
PW,get_space)(pw));
51 for (i = 0; i <
n; ++i) {
57 isl_multi_aff_copy(
ma));
59 el =
FN(
PW,take_base_at)(pw, i);
60 el =
FN(
EL,pullback_multi_aff)(el, isl_multi_aff_copy(
ma));
61 pw =
FN(
PW,restore_base_at)(pw, i, el);
64 pw =
FN(
PW,reset_space)(pw, space);
65 isl_multi_aff_free(
ma);
69 isl_multi_aff_free(
ma);
89 FN(
PW,get_space)(pw));
97 isl_multi_aff_copy(
pma->p[0].maff));
100 for (i = 1; i <
pma->n; ++i) {
103 res_i =
FN(
PW,pullback_multi_aff)(
FN(
PW,copy)(pw),
104 isl_multi_aff_copy(
pma->p[i].maff));
105 res_i =
FN(
PW,intersect_domain)(res_i,
122 FN(
PW,align_params_pw_multi_aff)(&pw, &
pma);
123 return FN(
PW,pullback_pw_multi_aff_aligned)(pw,
pma);
__isl_export __isl_give isl_space * isl_pw_multi_aff_get_space(__isl_keep isl_pw_multi_aff *pma)
__isl_null isl_pw_multi_aff * isl_pw_multi_aff_free(__isl_take isl_pw_multi_aff *pma)
struct isl_multi_aff isl_multi_aff
__isl_give isl_multi_aff * isl_multi_aff_align_divs(__isl_take isl_multi_aff *maff)
__isl_overload __isl_give isl_set * isl_set_preimage_multi_aff(__isl_take isl_set *set, __isl_take isl_multi_aff *ma)
__isl_give isl_set * isl_set_copy(__isl_keep isl_set *set)
__isl_null isl_space * isl_space_free(__isl_take isl_space *space)
__isl_give isl_space * isl_space_join(__isl_take isl_space *left, __isl_take isl_space *right)