#include #include /* A multiple expression with base expressions of type EL. * * "space" is the space in which the multiple expression lives. * "n" is the number of base expression and is equal * to the output or set dimension of "space". * "p" is an array of size "n" of base expressions. * The array is only accessible when n > 0. * "dom" is the explicit domain, if present * The explicit domain is only accessible when n == 0. */ struct MULTI(BASE) { int ref; isl_space *space; int n; struct { #ifdef EXPLICIT_DOMAIN DOM *dom; #endif EL *p[1]; } u; }; __isl_give MULTI(BASE) *CAT(MULTI(BASE),_alloc)(__isl_take isl_space *space); __isl_keep isl_space *FN(MULTI(BASE),peek_space)(__isl_keep MULTI(BASE) *multi); #ifdef EXPLICIT_DOMAIN isl_bool CAT(MULTI(BASE),_has_non_trivial_domain)( __isl_keep MULTI(BASE) *multi); #endif