1#include <isl/set.h> 2#include <isl/vertices.h> 3 4#if defined(__cplusplus) 5extern "C" { 6#endif 7 8struct isl_morph; 9 10/* A parametric vertex. "vertex" contains the actual description 11 * of the vertex as a singleton parametric set. "dom" is the projection 12 * of "vertex" onto the parameter space, i.e., the activity domain 13 * of the vertex. 14 */ 15struct isl_vertex { 16 isl_basic_set *dom; 17 isl_basic_set *vertex; 18}; 19 20/* A chamber in the chamber decomposition. The indices of the "n_vertices" 21 * active vertices are stored in "vertices". 22 */ 23struct isl_chamber { 24 int n_vertices; 25 int *vertices; 26 isl_basic_set *dom; 27}; 28 29struct isl_vertices { 30 int ref; 31 32 /* The rational basic set spanned by the vertices. */ 33 isl_basic_set *bset; 34 35 int n_vertices; 36 struct isl_vertex *v; 37 38 int n_chambers; 39 struct isl_chamber *c; 40}; 41 42struct isl_cell { 43 int n_vertices; 44 int *ids; 45 isl_vertices *vertices; 46 isl_basic_set *dom; 47}; 48 49struct isl_external_vertex { 50 isl_vertices *vertices; 51 int id; 52}; 53 54int isl_vertices_foreach_disjoint_cell(__isl_keep isl_vertices *vertices, 55 int (*fn)(__isl_take isl_cell *cell, void *user), void *user); 56int isl_cell_foreach_simplex(__isl_take isl_cell *cell, 57 int (*fn)(__isl_take isl_cell *simplex, void *user), void *user); 58 59__isl_give isl_vertices *isl_morph_vertices(__isl_take struct isl_morph *morph, 60 __isl_take isl_vertices *vertices); 61 62#if defined(__cplusplus) 63} 64#endif 65