Lines Matching refs:cell
1122 isl_ctx *isl_cell_get_ctx(__isl_keep isl_cell *cell) in isl_cell_get_ctx() argument
1124 return cell ? cell->dom->ctx : NULL; in isl_cell_get_ctx()
1127 __isl_give isl_basic_set *isl_cell_get_domain(__isl_keep isl_cell *cell) in isl_cell_get_domain() argument
1129 return cell ? isl_basic_set_copy(cell->dom) : NULL; in isl_cell_get_domain()
1136 isl_cell *cell = NULL; in isl_cell_alloc() local
1141 cell = isl_calloc_type(dom->ctx, isl_cell); in isl_cell_alloc()
1142 if (!cell) in isl_cell_alloc()
1145 cell->n_vertices = vertices->c[id].n_vertices; in isl_cell_alloc()
1146 cell->ids = isl_alloc_array(dom->ctx, int, cell->n_vertices); in isl_cell_alloc()
1147 if (cell->n_vertices && !cell->ids) in isl_cell_alloc()
1149 for (i = 0; i < cell->n_vertices; ++i) in isl_cell_alloc()
1150 cell->ids[i] = vertices->c[id].vertices[i]; in isl_cell_alloc()
1151 cell->vertices = vertices; in isl_cell_alloc()
1152 cell->dom = dom; in isl_cell_alloc()
1154 return cell; in isl_cell_alloc()
1156 isl_cell_free(cell); in isl_cell_alloc()
1162 __isl_null isl_cell *isl_cell_free(__isl_take isl_cell *cell) in isl_cell_free() argument
1164 if (!cell) in isl_cell_free()
1167 isl_vertices_free(cell->vertices); in isl_cell_free()
1168 free(cell->ids); in isl_cell_free()
1169 isl_basic_set_free(cell->dom); in isl_cell_free()
1170 free(cell); in isl_cell_free()
1266 isl_stat (*fn)(__isl_take isl_cell *cell, void *user), void *user) in isl_vertices_foreach_disjoint_cell() argument
1270 isl_cell *cell; in isl_vertices_foreach_disjoint_cell() local
1281 cell = isl_cell_alloc(isl_vertices_copy(vertices), dom, 0); in isl_vertices_foreach_disjoint_cell()
1282 if (!cell) in isl_vertices_foreach_disjoint_cell()
1284 return fn(cell, user); in isl_vertices_foreach_disjoint_cell()
1297 cell = isl_cell_alloc(isl_vertices_copy(vertices), dom, i); in isl_vertices_foreach_disjoint_cell()
1298 if (!cell) in isl_vertices_foreach_disjoint_cell()
1300 r = fn(cell, user); in isl_vertices_foreach_disjoint_cell()
1314 isl_stat (*fn)(__isl_take isl_cell *cell, void *user), void *user) in isl_vertices_foreach_cell() argument
1317 isl_cell *cell; in isl_vertices_foreach_cell() local
1329 cell = isl_cell_alloc(isl_vertices_copy(vertices), dom, i); in isl_vertices_foreach_cell()
1330 if (!cell) in isl_vertices_foreach_cell()
1333 r = fn(cell, user); in isl_vertices_foreach_cell()
1368 isl_stat isl_cell_foreach_vertex(__isl_keep isl_cell *cell, in isl_cell_foreach_vertex() argument
1374 if (!cell) in isl_cell_foreach_vertex()
1377 if (cell->n_vertices == 0) in isl_cell_foreach_vertex()
1380 for (i = 0; i < cell->n_vertices; ++i) { in isl_cell_foreach_vertex()
1383 vertex = isl_vertex_alloc(isl_vertices_copy(cell->vertices), in isl_cell_foreach_vertex()
1384 cell->ids[i]); in isl_cell_foreach_vertex()
1450 static isl_stat call_on_simplex(__isl_keep isl_cell *cell, in call_on_simplex() argument
1458 ctx = isl_cell_get_ctx(cell); in call_on_simplex()
1463 simplex->vertices = isl_vertices_copy(cell->vertices); in call_on_simplex()
1466 simplex->dom = isl_basic_set_copy(cell->dom); in call_on_simplex()
1525 static isl_stat triangulate(__isl_keep isl_cell *cell, __isl_keep isl_vec *v, in triangulate() argument
1536 ctx = isl_cell_get_ctx(cell); in triangulate()
1537 d = isl_basic_set_dim(cell->vertices->bset, isl_dim_set); in triangulate()
1538 nparam = isl_basic_set_dim(cell->vertices->bset, isl_dim_param); in triangulate()
1543 return call_on_simplex(cell, simplex_ids, n_simplex, in triangulate()
1547 vertex = cell->vertices->v[other_ids[0]].vertex; in triangulate()
1548 bset = cell->vertices->bset; in triangulate()
1561 ov = cell->vertices->v[other_ids[j]].vertex; in triangulate()
1568 if (triangulate(cell, v, simplex_ids, n_simplex + 1, in triangulate()
1583 isl_stat isl_cell_foreach_simplex(__isl_take isl_cell *cell, in isl_cell_foreach_simplex() argument
1592 if (!cell) in isl_cell_foreach_simplex()
1595 d = isl_basic_set_dim(cell->vertices->bset, isl_dim_set); in isl_cell_foreach_simplex()
1596 total = isl_basic_set_dim(cell->vertices->bset, isl_dim_all); in isl_cell_foreach_simplex()
1600 if (cell->n_vertices == d + 1) in isl_cell_foreach_simplex()
1601 return fn(cell, user); in isl_cell_foreach_simplex()
1603 ctx = isl_cell_get_ctx(cell); in isl_cell_foreach_simplex()
1612 r = triangulate(cell, v, simplex_ids, 0, in isl_cell_foreach_simplex()
1613 cell->ids, cell->n_vertices, fn, user); in isl_cell_foreach_simplex()
1618 isl_cell_free(cell); in isl_cell_foreach_simplex()
1624 isl_cell_free(cell); in isl_cell_foreach_simplex()