Polly 20.0.0git
|
#include <isl_map_private.h>
#include <isl_aff_private.h>
#include <isl/set.h>
#include <isl_seq.h>
#include <isl_tab.h>
#include <isl_space_private.h>
#include <isl_morph.h>
#include <isl_vertices_private.h>
#include <isl_mat_private.h>
#include <isl_vec_private.h>
Go to the source code of this file.
Classes | |
struct | isl_vertex_list |
struct | isl_chamber_list |
struct | isl_facet_todo |
Macros | |
#define | SELECTED 1 |
#define | DESELECTED -1 |
#define | UNSELECTED 0 |
#define DESELECTED -1 |
Definition at line 23 of file isl_vertices.c.
#define SELECTED 1 |
Definition at line 22 of file isl_vertices.c.
#define UNSELECTED 0 |
Definition at line 24 of file isl_vertices.c.
|
static |
Definition at line 660 of file isl_vertices.c.
References isl_chamber_list::c, isl_tab::con, isl_mat::ctx, isl_chamber::dom, free_chamber_list(), isl_tab_var::frozen, if(), isl_alloc_array, isl_basic_set_copy(), isl_basic_set_cow(), isl_basic_set_finalize(), isl_basic_set_set_rational(), isl_basic_set_simplify(), isl_basic_set_update_from_tab(), isl_calloc_type, isl_tab_detect_redundant(), isl_tab_peek_bset(), isl_tab_rollback(), isl_tab_snap(), isl_tab::mat, isl_tab::n_con, isl_chamber::n_vertices, and isl_chamber::vertices.
Referenced by compute_chambers().
|
static |
Definition at line 122 of file isl_vertices.c.
References isl_mat::ctx, isl_vertex::dom, free_vertex_list(), isl_assert, isl_basic_set_copy(), isl_basic_set_cow(), isl_basic_set_dim(), isl_basic_set_finalize(), isl_basic_set_params(), isl_basic_set_simplify(), isl_basic_set_update_from_tab(), isl_bool_error, isl_bool_false, isl_bool_true, isl_calloc_type, isl_dim_set, isl_tab_detect_implicit_equalities(), isl_tab::mat, isl_vertex_list::v, and isl_vertex::vertex.
Referenced by isl_basic_set_compute_vertices().
|
static |
Definition at line 570 of file isl_vertices.c.
References isl_bool_error, isl_bool_false, isl_bool_true, isl_ineq_error, isl_ineq_redundant, isl_tab_ineq_type(), and type.
Referenced by compute_chambers().
|
static |
Definition at line 1448 of file isl_vertices.c.
References fn, for(), isl_alloc_array, isl_basic_set_copy(), isl_calloc_type, isl_cell_free(), isl_cell_get_ctx(), isl_stat_error, isl_vertices_copy(), and user.
Referenced by triangulate().
|
static |
Definition at line 621 of file isl_vertices.c.
References isl_basic_set_get_ctx(), isl_bool_error, isl_bool_false, isl_bool_true, isl_die, isl_error_internal, isl_ineq_redundant, isl_tab_add_ineq(), isl_tab_detect_implicit_equalities(), isl_tab_extend_cons(), isl_tab_ineq_type(), isl_tab_rollback(), isl_tab_snap(), isl_tab::n_dead, and type.
Referenced by compute_chambers().
|
static |
Definition at line 268 of file isl_vertices.c.
References DESELECTED, isl_tab::empty, is_independent(), isl_bool_error, isl_bool_false, isl_bool_true, isl_dim_set, isl_space_offset(), isl_tab_is_equality(), isl_tab_is_redundant(), isl_tab_rollback(), isl_tab_select_facet(), isl_tab_sign_of_max(), isl_tab_snap(), and sgn().
Referenced by isl_basic_set_compute_vertices().
|
static |
Definition at line 914 of file isl_vertices.c.
References add_chamber(), isl_facet_todo::bset, bset_covers_tab(), can_intersect(), isl_facet_todo::constraint, isl_vec::el, free_chamber_list(), free_todo(), init_todo(), isl_alloc_array, isl_basic_set_contains(), isl_basic_set_free(), isl_basic_set_get_ctx(), isl_basic_set_n_equality(), isl_basic_set_params(), isl_die, isl_error_internal, isl_tab_add_ineq(), isl_tab_detect_redundant(), isl_tab_free(), isl_tab_freeze_constraint(), isl_tab_from_basic_set(), isl_tab_get_sample_value(), isl_tab_rollback(), isl_tab_snap(), isl_vec_free(), isl_vertices_free(), isl_vertices_get_ctx(), isl_tab::n_con, isl_facet_todo::next, isl_facet_todo::tab, update_todo(), and vertices_add_chambers().
Referenced by isl_basic_set_compute_vertices().
|
static |
Definition at line 741 of file isl_vertices.c.
References isl_tab::bmap, isl_facet_todo::bset, isl_tab::con, isl_facet_todo::constraint, isl_mat::ctx, isl_vec::el, free_todo(), isl_tab_var::frozen, if(), isl_basic_map::ineq, isl_basic_set_copy(), isl_basic_set_cow(), ISL_BASIC_SET_NO_REDUNDANT, isl_basic_set_set_rational(), isl_basic_set_simplify(), isl_basic_set_sort_constraints(), isl_basic_set_update_from_tab(), isl_calloc_type, ISL_F_SET, isl_seq_neg(), isl_tab_detect_redundant(), isl_tab_dup(), isl_tab_peek_bset(), isl_tab_rollback(), isl_tab_snap(), isl_vec_alloc(), isl_tab::mat, isl_tab::n_con, isl_tab::n_var, and isl_facet_todo::tab.
Referenced by init_todo(), and update_todo().
|
static |
Definition at line 363 of file isl_vertices.c.
References isl_basic_set_copy(), isl_basic_set_cow(), isl_basic_set_update_from_tab(), and isl_tab_detect_implicit_equalities().
Referenced by isl_basic_set_compute_vertices().
|
static |
Definition at line 555 of file isl_vertices.c.
References isl_chamber_list::c, isl_chamber::dom, isl_basic_set_free(), isl_chamber_list::next, and isl_chamber::vertices.
Referenced by add_chamber(), compute_chambers(), and vertices_add_chambers().
|
static |
Definition at line 727 of file isl_vertices.c.
References isl_facet_todo::bset, isl_facet_todo::constraint, isl_basic_set_free(), isl_tab_free(), isl_vec_free(), isl_facet_todo::next, and isl_facet_todo::tab.
Referenced by compute_chambers(), create_todo(), has_opposite(), and update_todo().
|
static |
Definition at line 71 of file isl_vertices.c.
References isl_vertex::dom, isl_basic_set_free(), isl_vertex_list::next, isl_vertex_list::v, and isl_vertex::vertex.
Referenced by add_vertex(), isl_basic_set_compute_vertices(), and vertices_from_list().
|
static |
Definition at line 827 of file isl_vertices.c.
References isl_facet_todo::bset, free_todo(), isl_basic_set_plain_is_equal(), and isl_facet_todo::next.
Referenced by update_todo().
|
static |
Definition at line 793 of file isl_vertices.c.
References isl_tab::con, create_todo(), isl_tab_var::frozen, isl_tab_var::is_redundant, isl_tab_rollback(), isl_tab_select_facet(), isl_tab_snap(), isl_tab::n_con, isl_facet_todo::next, and isl_facet_todo::tab.
Referenced by compute_chambers().
|
static |
Definition at line 237 of file isl_vertices.c.
References f, isl_bool_error, isl_bool_false, isl_bool_ok(), isl_mat_rank(), isl_seq_cpy(), isl_seq_first_non_zero(), and n.
Referenced by can_select().
__isl_give isl_vertices * isl_basic_set_compute_vertices | ( | __isl_keep isl_basic_set * | bset | ) |
Definition at line 418 of file isl_vertices.c.
References add_vertex(), can_select(), compute_chambers(), DESELECTED, detect_implicit_equality_constraints(), isl_tab::empty, free_vertex_list(), init(), isl_alloc_array, isl_basic_set_check_no_locals(), isl_basic_set_copy(), isl_basic_set_dim(), isl_basic_set_free(), isl_basic_set_n_equality(), isl_basic_set_plain_is_empty(), isl_basic_set_set_rational(), isl_dim_set, isl_mat_alloc(), isl_mat_free(), isl_tab_free(), isl_tab_from_basic_set(), isl_tab_rollback(), isl_tab_snap(), lower_dim_vertices(), lower_dim_vertices_free(), isl_tab::n_dead, isl_tab::n_eq, SELECTED, isl_tab::strict_redundant, test, UNSELECTED, vertices_0D(), vertices_empty(), and vertices_from_list().
Referenced by bernstein_coefficients_base(), lower_dim_vertices(), test_chambers(), and test_vertices().
|
static |
Definition at line 1236 of file isl_vertices.c.
References isl_vec::el, isl_seq_cpy(), isl_tab_free(), isl_tab_get_sample_value(), isl_vec::size, and tab_for_shifted_cone().
Referenced by isl_vertices_foreach_disjoint_cell().
|
static |
Definition at line 1130 of file isl_vertices.c.
References isl_vertex::dom, isl_cell::dom, id, isl_cell::ids, isl_alloc_array, isl_basic_set_free(), isl_calloc_type, isl_cell_free(), isl_vertices_free(), isl_cell::n_vertices, and isl_cell::vertices.
Referenced by isl_vertices_foreach_cell(), and isl_vertices_foreach_disjoint_cell().
isl_stat isl_cell_foreach_simplex | ( | __isl_take isl_cell * | cell, |
isl_stat(*)(__isl_take isl_cell *simplex, void *user) | fn, | ||
void * | user | ||
) |
Definition at line 1581 of file isl_vertices.c.
References fn, isl_alloc_array, isl_basic_set_dim(), isl_cell_free(), isl_cell_get_ctx(), isl_dim_all, isl_dim_set, isl_stat_error, isl_vec_alloc(), isl_vec_free(), total(), triangulate(), and user.
Referenced by bernstein_coefficients_cell().
isl_stat isl_cell_foreach_vertex | ( | __isl_keep isl_cell * | cell, |
isl_stat(*)(__isl_take isl_vertex *vertex, void *user) | fn, | ||
void * | user | ||
) |
Definition at line 1366 of file isl_vertices.c.
References fn, isl_stat_error, isl_stat_ok, isl_vertex_alloc(), isl_vertices_copy(), and user.
__isl_null isl_cell * isl_cell_free | ( | __isl_take isl_cell * | cell | ) |
Definition at line 1160 of file isl_vertices.c.
References isl_basic_set_free(), and isl_vertices_free().
Referenced by add_cell(), bernstein_coefficients_cell(), call_on_simplex(), isl_cell_alloc(), and isl_cell_foreach_simplex().
isl_ctx * isl_cell_get_ctx | ( | __isl_keep isl_cell * | cell | ) |
Definition at line 1120 of file isl_vertices.c.
Referenced by call_on_simplex(), isl_cell_foreach_simplex(), and triangulate().
__isl_give isl_basic_set * isl_cell_get_domain | ( | __isl_keep isl_cell * | cell | ) |
Definition at line 1125 of file isl_vertices.c.
References isl_basic_set_copy().
Referenced by add_cell().
__isl_give isl_vertices * isl_morph_vertices | ( | __isl_take isl_morph * | morph, |
__isl_take isl_vertices * | vertices | ||
) |
Definition at line 1404 of file isl_vertices.c.
References isl_morph::dom, isl_assert, isl_morph_basic_set(), isl_morph_copy(), isl_morph_dom_params(), isl_morph_free(), isl_morph_ran_params(), and isl_vertices_free().
Referenced by lower_dim_vertices().
|
static |
Definition at line 1087 of file isl_vertices.c.
References id, isl_alloc_type, isl_vertices_free(), isl_vertices_get_ctx(), and isl_vertex::vertex.
Referenced by isl_cell_foreach_vertex(), and isl_vertices_foreach_vertex().
__isl_null isl_vertex * isl_vertex_free | ( | __isl_take isl_vertex * | vertex | ) |
Definition at line 1110 of file isl_vertices.c.
References isl_vertices_free(), and isl_vertex::vertex.
Referenced by find_vertex().
isl_ctx * isl_vertex_get_ctx | ( | __isl_keep isl_vertex * | vertex | ) |
Definition at line 1041 of file isl_vertices.c.
References isl_vertices_get_ctx().
Referenced by find_vertex().
__isl_give isl_basic_set * isl_vertex_get_domain | ( | __isl_keep isl_vertex * | vertex | ) |
Definition at line 1053 of file isl_vertices.c.
References isl_vertex::dom, isl_basic_set_copy(), isl_basic_set_params(), isl_basic_set_set_integral(), and isl_vertex::vertex.
Referenced by find_vertex().
__isl_give isl_multi_aff * isl_vertex_get_expr | ( | __isl_keep isl_vertex * | vertex | ) |
Definition at line 1073 of file isl_vertices.c.
References isl_basic_set_copy(), isl_multi_aff_from_basic_set_equalities(), and isl_vertex::vertex.
Referenced by find_vertex().
isl_size isl_vertex_get_id | ( | __isl_keep isl_vertex * | vertex | ) |
Definition at line 1046 of file isl_vertices.c.
References isl_size_error.
__isl_give isl_vertices * isl_vertices_copy | ( | __isl_keep isl_vertices * | vertices | ) |
Definition at line 29 of file isl_vertices.c.
References isl_vertices::ref.
Referenced by call_on_simplex(), isl_cell_foreach_vertex(), isl_vertices_foreach_cell(), isl_vertices_foreach_disjoint_cell(), and isl_vertices_foreach_vertex().
isl_stat isl_vertices_foreach_cell | ( | __isl_keep isl_vertices * | vertices, |
isl_stat(*)(__isl_take isl_cell *cell, void *user) | fn, | ||
void * | user | ||
) |
Definition at line 1311 of file isl_vertices.c.
References fn, isl_basic_set_copy(), isl_cell_alloc(), isl_stat_error, isl_stat_ok, isl_vertices_copy(), and user.
isl_stat isl_vertices_foreach_disjoint_cell | ( | __isl_keep isl_vertices * | vertices, |
isl_stat(*)(__isl_take isl_cell *cell, void *user) | fn, | ||
void * | user | ||
) |
Definition at line 1263 of file isl_vertices.c.
References fn, isl_basic_set_copy(), isl_basic_set_interior_point(), isl_basic_set_set_integral(), isl_basic_set_tighten_outward(), isl_cell_alloc(), isl_stat_error, isl_stat_ok, isl_vec_free(), isl_vertices_copy(), and user.
Referenced by bernstein_coefficients_base(), and test_chambers().
isl_stat isl_vertices_foreach_vertex | ( | __isl_keep isl_vertices * | vertices, |
isl_stat(*)(__isl_take isl_vertex *vertex, void *user) | fn, | ||
void * | user | ||
) |
Definition at line 1339 of file isl_vertices.c.
References fn, isl_stat_error, isl_stat_ok, isl_vertex_alloc(), isl_vertices_copy(), and user.
Referenced by test_vertices().
__isl_null isl_vertices * isl_vertices_free | ( | __isl_take isl_vertices * | vertices | ) |
Definition at line 38 of file isl_vertices.c.
References isl_basic_set_free().
Referenced by bernstein_coefficients_base(), compute_chambers(), isl_cell_alloc(), isl_cell_free(), isl_morph_vertices(), isl_vertex_alloc(), isl_vertex_free(), test_chambers(), test_vertices(), vertices_0D(), vertices_add_chambers(), and vertices_from_list().
isl_ctx * isl_vertices_get_ctx | ( | __isl_keep isl_vertices * | vertices | ) |
Definition at line 1394 of file isl_vertices.c.
Referenced by compute_chambers(), isl_vertex_alloc(), isl_vertex_get_ctx(), and vertices_add_chambers().
isl_size isl_vertices_get_n_vertices | ( | __isl_keep isl_vertices * | vertices | ) |
Definition at line 1399 of file isl_vertices.c.
References isl_size_error.
Referenced by test_vertices().
|
static |
Definition at line 326 of file isl_vertices.c.
References isl_basic_set_compute_vertices(), isl_basic_set_free(), isl_basic_set_full_compression(), isl_morph_basic_set(), isl_morph_copy(), isl_morph_inverse(), and isl_morph_vertices().
Referenced by isl_basic_set_compute_vertices(), and lower_dim_vertices_free().
|
static |
Definition at line 349 of file isl_vertices.c.
References isl_basic_set_free(), isl_tab_free(), and lower_dim_vertices().
Referenced by isl_basic_set_compute_vertices().
|
static |
Definition at line 1177 of file isl_vertices.c.
References isl_vec::el, isl_tab::empty, ISL_BASIC_MAP_EMPTY, isl_basic_set_dim(), ISL_BASIC_SET_RATIONAL, isl_dim_all, ISL_F_ISSET, isl_int_set_si, isl_seq_clr(), isl_seq_cpy(), isl_tab_add_eq(), isl_tab_add_ineq(), isl_tab_alloc(), isl_tab_free(), isl_tab_mark_empty(), isl_vec_alloc(), isl_vec_free(), isl_tab::rational, isl_vec::size, and total().
Referenced by isl_basic_set_interior_point().
|
static |
Definition at line 1523 of file isl_vertices.c.
References call_on_simplex(), fn, isl_cell::ids, isl_alloc_array, isl_basic_set_dim(), isl_cell_get_ctx(), isl_dim_param, isl_dim_set, isl_seq_first_non_zero(), isl_stat_error, isl_stat_ok, triangulate(), user, and vertex_on_facet().
Referenced by isl_cell_foreach_simplex(), and triangulate().
|
static |
Definition at line 851 of file isl_vertices.c.
References isl_tab::con, create_todo(), drop(), free_todo(), isl_tab_var::frozen, has_opposite(), isl_tab_var::is_redundant, isl_tab_rollback(), isl_tab_select_facet(), isl_tab_snap(), isl_tab::n_con, isl_facet_todo::next, and isl_facet_todo::tab.
Referenced by compute_chambers().
|
static |
Definition at line 1495 of file isl_vertices.c.
References isl_int_clear, isl_int_init, isl_seq_cpy(), isl_seq_elim(), isl_seq_first_non_zero(), isl_seq_last_non_zero(), and m.
Referenced by triangulate().
|
static |
Definition at line 194 of file isl_vertices.c.
References isl_vertices::bset, isl_vertices::c, isl_vertex::dom, isl_chamber::dom, isl_basic_set_copy(), isl_basic_set_params(), isl_calloc_array, isl_calloc_type, isl_vertices_free(), isl_vertices::n_chambers, isl_chamber::n_vertices, isl_vertices::n_vertices, isl_vertices::ref, isl_vertices::v, isl_vertex::vertex, and isl_chamber::vertices.
Referenced by isl_basic_set_compute_vertices().
|
static |
Definition at line 590 of file isl_vertices.c.
References isl_chamber_list::c, free_chamber_list(), isl_alloc_array, isl_vertices_free(), isl_vertices_get_ctx(), and isl_chamber_list::next.
Referenced by compute_chambers().
|
static |
Definition at line 169 of file isl_vertices.c.
References isl_vertices::bset, isl_basic_set_copy(), isl_calloc_type, isl_vertices::n_chambers, isl_vertices::n_vertices, and isl_vertices::ref.
Referenced by isl_basic_set_compute_vertices().
|
static |
Definition at line 85 of file isl_vertices.c.
References isl_vertices::bset, free_vertex_list(), isl_alloc_array, isl_basic_set_copy(), isl_calloc_type, isl_vertices_free(), isl_vertices::n_vertices, isl_vertex_list::next, isl_vertices::ref, isl_vertex_list::v, and isl_vertices::v.
Referenced by isl_basic_set_compute_vertices().