#ifndef ISL_REORDERING_H #define ISL_REORDERING_H #include /* pos maps original dimensions to new dimensions. * The final dimension is given by dim. * The number of dimensions (i.e., the range of values) in the result * may be larger than the number of dimensions in the input. * In particular, the possible values of the entries in pos ranges from 0 to * the total dimension of dim - 1, unless isl_reordering_extend * has been called. */ struct isl_reordering { int ref; isl_space *dim; unsigned len; int pos[1]; }; typedef struct isl_reordering isl_reordering; __isl_give isl_reordering *isl_parameter_alignment_reordering( __isl_keep isl_space *alignee, __isl_keep isl_space *aligner); __isl_give isl_reordering *isl_reordering_copy(__isl_keep isl_reordering *exp); void *isl_reordering_free(__isl_take isl_reordering *exp); __isl_give isl_reordering *isl_reordering_extend_space( __isl_take isl_reordering *exp, __isl_take isl_space *dim); __isl_give isl_reordering *isl_reordering_extend(__isl_take isl_reordering *exp, unsigned extra); #endif