Polly 20.0.0git
|
#include "isl_int.h"
#include <isl/lp.h>
#include <isl/map.h>
#include <isl/mat.h>
#include <isl/set.h>
#include <isl_config.h>
Go to the source code of this file.
Classes | |
struct | isl_tab_var |
struct | isl_tab_callback |
union | isl_tab_undo_val |
struct | isl_tab_undo |
struct | isl_tab |
struct | isl_trivial_region |
Macros | |
#define | ISL_TAB_SAVE_DUAL (1 << 0) |
#define | ISL_OPT_MAX (1 << 0) |
#define | ISL_OPT_FULL (1 << 1) |
#define | ISL_OPT_QE (1 << 2) |
Typedefs | |
typedef struct isl_tab_lexmin | isl_tab_lexmin |
typedef struct isl_tab_lexmin isl_tab_lexmin |
enum isl_ineq_type |
enum isl_tab_row_sign |
enum isl_tab_undo_type |
__isl_give isl_basic_map * isl_basic_map_update_from_tab | ( | __isl_take isl_basic_map * | bmap, |
struct isl_tab * | tab | ||
) |
Definition at line 2624 of file isl_tab.c.
References isl_tab::empty, extract_integer_sample(), isl_basic_map_drop_inequality(), isl_basic_map_gauss(), isl_basic_map_inequality_to_equality(), isl_basic_map_set_to_empty(), isl_tab_is_equality(), isl_tab_is_redundant(), isl_tab_sample_is_integer(), isl_tab::n_eq, and isl_tab::rational.
Referenced by basic_map_collect_diff(), isl_basic_map_implicit_equalities(), isl_basic_map_remove_redundancies(), isl_basic_set_update_from_tab(), and update_basic_maps().
__isl_give isl_basic_set * isl_basic_set_update_from_tab | ( | __isl_take isl_basic_set * | bset, |
struct isl_tab * | tab | ||
) |
Definition at line 2653 of file isl_tab.c.
References bset_from_bmap(), bset_to_bmap(), and isl_basic_map_update_from_tab().
Referenced by add_chamber(), add_vertex(), create_todo(), detect_implicit_equality_constraints(), gbr_get_sample(), set_from_updated_bmap(), sol_domain(), and uset_gist_full().
int isl_tab_add_div | ( | struct isl_tab * | tab, |
__isl_keep isl_vec * | div | ||
) |
Definition at line 2372 of file isl_tab.c.
References isl_tab_insert_div(), and isl_tab::n_var.
Referenced by tab_add_divs().
Definition at line 2108 of file isl_tab.c.
References add_zero_row(), isl_tab::bmap, isl_tab::con, isl_tab::cone, isl_mat::ctx, drop_row(), isl_assert, isl_basic_map_add_ineq(), isl_int_clear, isl_int_init, isl_int_set_si, isl_int_sgn, isl_int_swap, isl_seq_neg(), isl_stat_error, isl_stat_ok, isl_tab_add_row(), isl_tab_kill_col(), isl_tab_mark_empty(), isl_tab_push(), isl_tab_rollback(), isl_tab_snap(), isl_tab_undo_bmap_ineq, isl_tab::M, isl_tab::mat, isl_tab::n_col, isl_tab::n_var, isl_tab::need_undo, isl_mat::row, row_is_manifestly_zero(), sgn(), sign_of_max(), to_col(), and var().
Referenced by add_gbr_eq(), add_sub_equalities(), context_gbr_add_eq(), cut_lp_to_hyperplane(), detect_constant_with_tmp(), extend_affine_hull(), isl_tab_detect_equalities(), isl_tab_from_recession_cone(), tab_for_shifted_cone(), and wrap_in_facet().
Definition at line 1896 of file isl_tab.c.
References isl_tab::bmap, isl_tab::con, isl_tab::cone, isl_mat::ctx, isl_tab_var::index, isl_basic_map::ineq, isl_tab_var::is_nonneg, isl_tab_var::is_row, isl_assert, isl_basic_map_add_ineq(), isl_int_clear, isl_int_init, isl_int_set_si, isl_int_swap, isl_stat_error, isl_stat_ok, isl_tab_add_row(), isl_tab_mark_empty(), isl_tab_mark_redundant(), isl_tab_push(), isl_tab_push_var(), isl_tab_row_is_redundant(), isl_tab_undo_bmap_ineq, isl_tab_undo_nonneg, isl_tab::mat, isl_tab::n_con, isl_basic_map::n_eq, isl_tab::n_eq, isl_basic_map::n_ineq, restore_row(), and sgn().
Referenced by add_div_constraints(), add_gbr_ineq(), best_split(), can_intersect(), compute_chambers(), copy_ineq(), is_adj_ineq_extension_with_wraps(), isl_basic_set_vars_get_sign(), isl_tab_from_basic_map(), outside_point(), tab_add_constraint(), tab_add_constraints(), tab_detect_nonnegative_parameters(), tab_for_shifted_cone(), tab_shift_cone(), try_tightening(), and uset_gist_full().
Definition at line 1812 of file isl_tab.c.
References a(), b(), isl_tab::con, isl_mat::ctx, isl_tab_var::index, isl_tab_var::is_row, isl_tab_var::is_zero, isl_int_addmul, isl_int_clear, isl_int_divexact, isl_int_init, isl_int_lcm, isl_int_mul, isl_int_set, isl_int_set_si, isl_int_submul, isl_int_swap, isl_seq_clr(), isl_seq_combine(), isl_seq_normalize(), isl_tab_allocate_con(), isl_tab_row_unknown, isl_tab::M, isl_tab::mat, isl_tab::n_col, isl_tab::n_div, isl_tab::n_param, isl_tab::n_var, isl_mat::row, isl_tab::row_sign, and isl_tab::var.
Referenced by add_eq(), add_lexmin_eq(), add_lexmin_ineq(), add_lexmin_valid_eq(), isl_tab_add_eq(), isl_tab_add_ineq(), isl_tab_add_valid_eq(), isl_tab_from_recession_cone(), isl_tab_ineq_type(), isl_tab_min(), and propagate_equalities().
int isl_tab_add_sample | ( | struct isl_tab * | tab, |
__isl_take isl_vec * | sample | ||
) |
Definition at line 884 of file isl_tab.c.
References isl_mat::ctx, isl_mat_extend(), isl_realloc_array, isl_seq_cpy(), isl_vec_free(), isl_tab::mat, isl_mat::n_col, isl_mat::n_row, isl_tab::n_sample, isl_mat::row, isl_tab::sample_index, isl_tab::samples, and t.
Referenced by check_gbr_integer_feasible(), check_integer_feasible(), and extend_affine_hull().
Definition at line 2044 of file isl_tab.c.
References isl_tab::con, isl_int_is_neg, isl_seq_neg(), isl_tab_add_row(), isl_tab_kill_col(), isl_tab_mark_redundant(), isl_tab::mat, isl_tab::n_col, isl_mat::row, row_is_manifestly_zero(), to_col(), and var().
Referenced by add_lp_row(), greedy_search(), isl_basic_set_scan(), and isl_tab_sample().
Definition at line 33 of file isl_tab.c.
References isl_tab::basis, isl_tab::bottom, isl_tab::col_var, isl_tab::con, isl_tab::cone, isl_tab::empty, isl_tab_var::frozen, isl_tab::in_undo, isl_tab_var::index, isl_tab_var::is_nonneg, isl_tab_var::is_redundant, isl_tab_var::is_row, isl_tab_var::is_zero, isl_alloc_array, isl_calloc_type, isl_mat_alloc(), isl_tab_free(), isl_tab_undo_bottom, M(), isl_tab::M, isl_tab::mat, isl_tab::max_con, isl_tab::max_var, isl_tab::n_col, isl_tab::n_con, isl_tab::n_dead, isl_tab::n_div, isl_tab::n_eq, isl_tab::n_param, isl_tab::n_redundant, isl_tab::n_row, isl_tab::n_unbounded, isl_tab::n_var, isl_tab::n_zero, isl_tab::need_undo, isl_tab_var::negated, isl_tab_undo::next, isl_tab::rational, isl_tab::row_var, isl_tab::strict_redundant, isl_tab::top, isl_tab_undo::type, and isl_tab::var.
Referenced by isl_tab_from_basic_map(), isl_tab_from_recession_cone(), tab_for_lexmin(), and tab_for_shifted_cone().
int isl_tab_allocate_con | ( | struct isl_tab * | tab | ) |
Definition at line 1677 of file isl_tab.c.
References isl_tab::con, isl_mat::ctx, isl_tab_var::frozen, isl_tab_var::index, isl_tab_var::is_nonneg, isl_tab_var::is_redundant, isl_tab_var::is_row, isl_tab_var::is_zero, isl_assert, isl_tab_push_var(), isl_tab_undo_allocate, isl_tab::mat, isl_tab::max_con, isl_tab::n_con, isl_mat::n_row, isl_tab::n_row, isl_tab_var::negated, and isl_tab::row_var.
Referenced by add_cut(), add_parametric_cut(), add_zero_row(), and isl_tab_add_row().
__isl_give isl_map * isl_tab_basic_map_partial_lexopt | ( | __isl_take isl_basic_map * | bmap, |
__isl_take isl_basic_set * | dom, | ||
__isl_give isl_set ** | empty, | ||
unsigned | flags | ||
) |
Referenced by SF().
__isl_give isl_pw_multi_aff * isl_tab_basic_map_partial_lexopt_pw_multi_aff | ( | __isl_take isl_basic_map * | bmap, |
__isl_take isl_basic_set * | dom, | ||
__isl_give isl_set ** | empty, | ||
unsigned | flags | ||
) |
__isl_give isl_vec * isl_tab_basic_set_non_trivial_lexmin | ( | __isl_take isl_basic_set * | bset, |
int | n_op, | ||
int | n_region, | ||
struct isl_trivial_region * | region, | ||
int(*)(int con, void *user) | conflict, | ||
void * | user | ||
) |
Definition at line 5494 of file isl_tab_pip.c.
References better_next_side(), clear_lexmin_data(), isl_tab::conflict, isl_tab::conflict_user, enter_level(), init(), init_lexmin_data(), isl_basic_set_free(), isl_next_backtrack, isl_next_done, isl_vec_free(), isl_lexmin_data::local, isl_lexmin_data::n_op, isl_lexmin_data::n_region, pick_side(), isl_lexmin_data::region, isl_local_region::side, isl_lexmin_data::sol, isl_lexmin_data::tab, and user.
Referenced by solve_lp().
void isl_tab_clear_undo | ( | struct isl_tab * | tab | ) |
Definition at line 3698 of file isl_tab.c.
References free_undo(), and isl_tab::need_undo.
Referenced by propagate_equalities().
Definition at line 2489 of file isl_tab.c.
References close_row(), isl_tab::empty, isl_bool_error, isl_bool_false, isl_bool_true, isl_tab_var_from_row(), isl_tab::n_col, isl_tab::n_dead, isl_tab::n_redundant, isl_tab::n_row, sgn(), sign_of_max(), and var().
Referenced by isl_basic_set_is_bounded().
Definition at line 3654 of file isl_tab.c.
References get_constant(), isl_stat_error, isl_stat_ok, isl_tab::n_var, isl_tab::rational, and isl_tab::var.
Referenced by is_adj_ineq_extension_with_wraps().
Definition at line 624 of file isl_affine_hull.c.
References affine_hull(), isl_tab::basis, isl_tab::bmap, isl_mat::ctx, isl_vec::el, extend_affine_hull(), hull, initial_hull(), isl_assert, isl_basic_set_free(), isl_basic_set_from_vec(), isl_mat_free(), isl_seq_cpy(), isl_seq_normalize(), isl_tab_add_eq(), isl_tab_free(), isl_tab_rollback(), isl_tab_set_initial_basis_with_cone(), isl_tab_snap(), isl_vec_alloc(), isl_vec_copy(), isl_vec_free(), isl_tab::mat, isl_mat::n_col, isl_tab::n_outside, isl_tab::n_sample, isl_tab::n_unbounded, isl_tab::n_var, isl_tab::n_zero, isl_mat::row, isl_basic_map::sample, isl_tab::samples, and isl_vec::size.
Referenced by context_gbr_detect_equalities().
int isl_tab_detect_implicit_equalities | ( | struct isl_tab * | tab | ) |
Definition at line 2969 of file isl_tab.c.
References at_least_one(), close_row(), cut_to_hyperplane(), isl_tab::empty, isl_tab_detect_implicit_equalities(), isl_tab_var_from_row(), may_be_equality(), isl_tab::n_col, isl_tab::n_dead, isl_tab::n_redundant, isl_tab::rational, select_marked(), sgn(), sign_of_max(), var(), and var_from_col().
Referenced by add_vertex(), can_intersect(), context_gbr_detect_equalities(), detect_implicit_equality_constraints(), gbr_get_sample(), isl_basic_map_implicit_equalities(), isl_basic_map_remove_redundancies(), isl_map_coalesce(), isl_tab_detect_implicit_equalities(), sample_bounded(), and uset_gist_full().
int isl_tab_detect_redundant | ( | struct isl_tab * | tab | ) |
Definition at line 3261 of file isl_tab.c.
References con_is_redundant(), isl_tab::empty, isl_tab_mark_redundant(), isl_tab_var_from_row(), min_is_manifestly_unbounded(), isl_tab::n_dead, isl_tab::n_redundant, isl_tab::n_row, select_marked(), var(), and var_from_col().
Referenced by add_chamber(), add_selected_wraps_around_facet(), compute_chambers(), create_todo(), fuse(), isl_basic_map_remove_redundancies(), isl_map_coalesce(), n_non_redundant(), uset_gist_full(), and wrap_in_facet().
Definition at line 913 of file isl_tab.c.
References isl_mat_swap_rows(), isl_tab_free(), isl_tab_push(), isl_tab_undo_drop_sample, isl_tab::n_outside, isl_tab::sample_index, isl_tab::samples, and t.
Referenced by check_samples().
void isl_tab_dump | ( | __isl_keep struct isl_tab * | tab | ) |
Definition at line 4256 of file isl_tab.c.
References isl_tab_print_internal().
Definition at line 223 of file isl_tab.c.
References isl_tab::basis, isl_tab::col_var, isl_tab::con, isl_tab::cone, isl_mat::ctx, dup(), isl_tab::empty, if(), isl_alloc_array, isl_calloc_type, isl_mat_dup(), isl_tab_free(), isl_tab_undo_bottom, isl_tab::M, isl_tab::mat, isl_tab::max_con, isl_tab::max_var, isl_mat::n_col, isl_tab::n_col, isl_tab::n_con, isl_tab::n_dead, isl_tab::n_div, isl_tab::n_eq, isl_tab::n_outside, isl_tab::n_param, isl_tab::n_redundant, isl_mat::n_row, isl_tab::n_row, isl_tab::n_sample, isl_tab::n_unbounded, isl_tab::n_var, isl_tab::n_zero, isl_tab::rational, isl_tab::row_sign, isl_tab::row_var, isl_tab::samples, and isl_tab::var.
Referenced by create_todo(), and find_in_pos().
int isl_tab_extend_cons | ( | struct isl_tab * | tab, |
unsigned | n_new | ||
) |
Definition at line 105 of file isl_tab.c.
References isl_tab::con, isl_mat::ctx, isl_mat_extend(), isl_realloc_array, isl_tab::M, isl_tab::mat, isl_tab::max_con, isl_tab::n_col, isl_tab::n_con, isl_mat::n_row, isl_tab::n_row, isl_tab::row_sign, and isl_tab::row_var.
Referenced by add_cut(), add_gbr_eq(), add_gbr_ineq(), add_parametric_cut(), add_subs(), best_split(), can_intersect(), context_gbr_add_eq(), context_gbr_insert_div(), context_gbr_test_ineq(), context_lex_add_eq(), context_lex_add_ineq(), context_lex_test_ineq(), cut_to_hyperplane(), detect_constant_with_tmp(), enter_level(), extend_affine_hull(), gbr_tab(), is_adj_ineq_extension_with_wraps(), isl_basic_set_scan(), isl_tab_ineq_type(), isl_tab_insert_div(), isl_tab_lexmin_add_eq(), isl_tab_sample(), outside_point(), propagate_equalities(), tab_add_constraints(), tab_detect_nonnegative_parameters(), tab_insert_divs(), tab_shift_cone(), try_tightening(), uset_gist_full(), and wrap_in_facets().
int isl_tab_extend_vars | ( | struct isl_tab * | tab, |
unsigned | n_new | ||
) |
Definition at line 151 of file isl_tab.c.
References isl_tab::col_var, isl_mat::ctx, isl_mat_extend(), isl_realloc_array, isl_tab::M, isl_tab::mat, isl_tab::max_var, isl_mat::n_col, isl_tab::n_col, isl_mat::n_row, isl_tab::n_var, p, var(), and isl_tab::var.
Referenced by add_div(), add_subs(), context_gbr_insert_div(), isl_tab_insert_div(), and tab_insert_divs().
void isl_tab_free | ( | struct isl_tab * | tab | ) |
Definition at line 204 of file isl_tab.c.
References isl_tab::basis, isl_tab::bmap, isl_tab::col_var, isl_tab::con, isl_tab::dual, free_undo(), isl_basic_map_free(), isl_mat_free(), isl_vec_free(), isl_tab::mat, isl_tab::row_sign, isl_tab::row_var, isl_tab::sample_index, isl_tab::samples, and isl_tab::var.
Referenced by add_eq(), add_gbr_eq(), add_gbr_ineq(), add_lexmin_ineq(), add_lexmin_valid_eq(), basic_map_collect_diff(), check_gbr_integer_feasible(), check_integer_feasible(), check_samples(), clear(), clear_coalesce_info(), clear_lexmin_data(), compute_chambers(), context_gbr_add_eq(), context_gbr_add_ineq(), context_gbr_detect_equalities(), context_gbr_free(), context_gbr_invalidate(), context_gbr_restore(), context_gbr_test_ineq(), context_lex_add_eq(), context_lex_add_ineq(), context_lex_detect_nonnegative_parameters(), context_lex_free(), context_lex_invalidate(), context_lex_restore(), context_tab_for_lexmin(), cut_to_integer_lexmin(), delete_lp(), find_solutions(), find_solutions_main(), free_todo(), fuse(), gbr_tab(), isl_basic_map_implicit_equalities(), isl_basic_map_remove_redundancies(), isl_basic_set_compute_vertices(), isl_basic_set_interior_point(), isl_basic_set_is_bounded(), isl_basic_set_reduced_basis(), isl_basic_set_scan(), isl_basic_set_vars_get_sign(), isl_tab_alloc(), isl_tab_detect_equalities(), isl_tab_drop_sample(), isl_tab_dup(), isl_tab_from_basic_map(), isl_tab_from_recession_cone(), isl_tab_init_samples(), isl_tab_lexmin_free(), isl_tab_product(), isl_tab_solve_lp(), lower_dim_vertices_free(), pos_neg(), propagate_equalities(), rational_sample(), sample_bounded(), set_row_cst_to_div(), sh_data_free(), tab_detect_nonnegative_parameters(), tab_for_lexmin(), tab_for_shifted_cone(), test_ineq_data_clear(), update_ineq_free(), uset_affine_hull_bounded(), uset_gist_full(), and valid_direction().
int isl_tab_freeze_constraint | ( | struct isl_tab * | tab, |
int | con | ||
) |
Definition at line 1007 of file isl_tab.c.
References isl_tab::con, isl_tab_push_var(), isl_tab_undo_freeze, isl_tab::need_undo, and var().
Referenced by compute_chambers(), tab_freeze_constraints(), and uset_gist_full().
__isl_give struct isl_tab * isl_tab_from_basic_map | ( | __isl_keep isl_basic_map * | bmap, |
int | track | ||
) |
Definition at line 2384 of file isl_tab.c.
References add_eq(), isl_tab::bmap, isl_basic_map::ctx, isl_tab::empty, isl_basic_map::eq, isl_basic_map::ineq, isl_basic_map_copy(), isl_basic_map_dim(), ISL_BASIC_MAP_EMPTY, ISL_BASIC_MAP_RATIONAL, isl_dim_all, ISL_F_ISSET, isl_tab_add_ineq(), isl_tab_alloc(), isl_tab_free(), isl_tab_mark_empty(), isl_tab_track_bmap(), isl_basic_map::n_eq, isl_basic_map::n_ineq, isl_tab::preserve, isl_tab::rational, and total().
Referenced by basic_map_collect_diff(), fuse(), isl_basic_map_implicit_equalities(), isl_basic_map_remove_redundancies(), isl_map_coalesce(), isl_tab_from_basic_set(), isl_tab_solve_lp(), and test_ineq_is_satisfied().
__isl_give struct isl_tab * isl_tab_from_basic_set | ( | __isl_keep isl_basic_set * | bset, |
int | track | ||
) |
Definition at line 2424 of file isl_tab.c.
References isl_tab_from_basic_map().
Referenced by compute_chambers(), gbr_init_shifted(), is_bound(), isl_basic_set_compute_vertices(), isl_basic_set_reduced_basis(), isl_basic_set_scan(), isl_basic_set_vars_get_sign(), isl_context_gbr_alloc(), rational_sample(), sample_bounded(), uset_affine_hull_bounded(), uset_gist_full(), and valid_direction().
struct isl_tab * isl_tab_from_recession_cone | ( | __isl_keep isl_basic_set * | bset, |
int | parametric | ||
) |
Definition at line 2432 of file isl_tab.c.
References add_eq(), isl_tab::con, isl_tab::cone, isl_tab_var::is_nonneg, isl_basic_set_dim(), ISL_BASIC_SET_RATIONAL, isl_dim_all, isl_dim_param, ISL_F_ISSET, isl_int_clear, isl_int_init, isl_int_set_si, isl_int_swap, isl_tab_add_eq(), isl_tab_add_row(), isl_tab_alloc(), isl_tab_free(), isl_tab_push_var(), isl_tab_undo_nonneg, offset, isl_tab::rational, and total().
Referenced by context_gbr_detect_equalities(), gbr_get_sample(), and isl_basic_set_is_bounded().
Definition at line 100 of file isl_tab.c.
References isl_mat_get_ctx(), and isl_tab::mat.
Referenced by add_sub_equalities(), close_row(), con_drop_entries(), cut_to_hyperplane(), detect_constant_with_tmp(), drop_last_con_in_row(), extract_sample_sequence(), fix_constant_divs(), isl_tab_check_con(), isl_tab_insert_div(), isl_tab_is_constant(), isl_tab_pivot(), isl_tab_restore_redundant(), perform_undo_var(), restore_last_redundant(), var_drop_entry(), and var_insert_entry().
__isl_give isl_vec * isl_tab_get_sample_value | ( | struct isl_tab * | tab | ) |
Definition at line 2565 of file isl_tab.c.
References isl_vec::block, isl_mat::ctx, isl_blk::data, isl_tab_var::index, isl_tab_var::is_row, isl_int_clear, isl_int_divexact, isl_int_gcd, isl_int_init, isl_int_mul, isl_int_set_si, isl_seq_scale(), isl_vec_alloc(), isl_vec_normalize(), m, isl_tab::mat, isl_tab::n_var, isl_mat::row, and isl_tab::var.
Referenced by add_solution(), check_integer_feasible(), compute_chambers(), enter_level(), gbr_get_sample(), gbr_get_shifted_sample(), isl_basic_set_interior_point(), isl_tab_lexmin_get_solution(), isl_tab_sample(), isl_tab_solve_lp(), rational_sample(), solve_lp(), and valid_direction().
enum isl_ineq_type isl_tab_ineq_type | ( | struct isl_tab * | tab, |
isl_int * | ineq | ||
) |
Definition at line 4090 of file isl_tab.c.
References at_least_zero(), isl_tab::con, con_is_redundant(), isl_tab_var::index, isl_ineq_cut, isl_ineq_error, isl_ineq_redundant, isl_int_abs_ge, isl_int_is_neg, isl_tab_add_row(), isl_tab_extend_cons(), isl_tab_rollback(), isl_tab_row_is_redundant(), isl_tab_snap(), isl_tab::mat, isl_tab::rational, isl_mat::row, separation_type(), and type.
Referenced by bset_covers_tab(), can_intersect(), check_wraps(), status_in(), and type_of_relaxed().
Definition at line 865 of file isl_tab.c.
References isl_mat::ctx, isl_alloc_array, isl_mat_alloc(), isl_tab_free(), isl_tab::mat, isl_tab::n_outside, isl_tab::n_sample, isl_tab::n_var, isl_tab::sample_index, and isl_tab::samples.
Referenced by context_tab_for_lexmin(), and isl_context_gbr_alloc().
int isl_tab_insert_div | ( | struct isl_tab * | tab, |
int | pos, | ||
__isl_keep isl_vec * | div, | ||
isl_stat(*)(void *user, isl_int *) | add_ineq, | ||
void * | user | ||
) |
Definition at line 2321 of file isl_tab.c.
References add_div_constraints(), isl_tab::bmap, div_is_nonneg(), isl_tab_var::is_nonneg, isl_basic_map_dim(), isl_basic_map_insert_div(), isl_die, isl_dim_div, isl_error_invalid, isl_tab_extend_cons(), isl_tab_extend_vars(), isl_tab_get_ctx(), isl_tab_insert_var(), isl_tab_push_var(), isl_tab_undo_bmap_div, isl_tab::n_var, pos(), user, and isl_tab::var.
Referenced by context_tab_insert_div(), and isl_tab_add_div().
int isl_tab_insert_var | ( | struct isl_tab * | tab, |
int | pos | ||
) |
Definition at line 1761 of file isl_tab.c.
References isl_tab::col_var, isl_mat::ctx, isl_tab_var::frozen, isl_tab_var::index, isl_tab_var::is_nonneg, isl_tab_var::is_redundant, isl_tab_var::is_row, isl_tab_var::is_zero, isl_assert, isl_int_set_si, isl_tab_push_var(), isl_tab_undo_allocate, isl_tab::M, isl_tab::mat, isl_mat::n_col, isl_tab::n_col, isl_tab::n_row, isl_tab_var::negated, isl_mat::row, isl_tab::var, and var_insert_entry().
Referenced by add_div(), add_sub_vars(), context_gbr_insert_div(), isl_tab_insert_div(), and tab_insert_divs().
Definition at line 3635 of file isl_tab.c.
References get_constant(), isl_bool_error, isl_bool_false, isl_die, isl_error_invalid, isl_tab_get_ctx(), isl_tab::n_var, isl_tab::rational, var(), and isl_tab::var.
Referenced by tab_insert_divs().
int isl_tab_is_equality | ( | struct isl_tab * | tab, |
int | con | ||
) |
Definition at line 3315 of file isl_tab.c.
References isl_tab::con, isl_tab_var::index, isl_tab_var::is_redundant, isl_tab_var::is_row, isl_tab_var::is_zero, isl_int_is_zero, isl_seq_first_non_zero(), isl_tab::M, isl_tab::mat, isl_tab::n_col, isl_tab::n_dead, isl_mat::row, and row_is_big().
Referenced by can_select(), is_relaxed_extension(), isl_basic_map_update_from_tab(), isl_tab_make_equalities_explicit(), tab_shift_cone(), and update_ineq().
int isl_tab_is_redundant | ( | struct isl_tab * | tab, |
int | con | ||
) |
Definition at line 3425 of file isl_tab.c.
References isl_tab::con, isl_tab_var::index, isl_tab_var::is_redundant, isl_tab_var::is_row, isl_tab_var::is_zero, isl_tab_check_con(), and isl_tab::n_redundant.
Referenced by add_selected_wraps(), can_select(), has_redundant_cuts(), ineq_status_in(), is_relaxed_extension(), isl_basic_map_update_from_tab(), n_non_redundant(), number_of_constraints_increases(), tab_insert_divs(), and update_ineq().
int isl_tab_kill_col | ( | struct isl_tab * | tab, |
int | col | ||
) |
Definition at line 1559 of file isl_tab.c.
References isl_tab_var::index, isl_tab_var::is_zero, isl_tab_push_var(), isl_tab_undo_zero, isl_tab::n_col, isl_tab::n_dead, isl_tab::need_undo, swap_cols(), and var_from_col().
Referenced by add_eq(), add_lexmin_eq(), add_lexmin_valid_eq(), close_row(), isl_tab_add_eq(), isl_tab_add_valid_eq(), and propagate_equalities().
__isl_give isl_tab_lexmin * isl_tab_lexmin_add_eq | ( | __isl_take isl_tab_lexmin * | tl, |
isl_int * | eq | ||
) |
Definition at line 5613 of file isl_tab_pip.c.
References add_lexmin_ineq(), isl_seq_neg(), isl_tab_extend_cons(), isl_tab_lexmin_free(), and isl_tab::n_var.
Referenced by zero_out_node_coef().
__isl_give isl_tab_lexmin * isl_tab_lexmin_cut_to_integer | ( | __isl_take isl_tab_lexmin * | tl | ) |
Definition at line 5638 of file isl_tab_pip.c.
References CUT_ONE, cut_to_integer_lexmin(), isl_tab_lexmin_free(), and isl_tab_lexmin::tab.
Referenced by non_neg_lexmin().
int isl_tab_lexmin_dim | ( | __isl_keep isl_tab_lexmin * | tl | ) |
Definition at line 5604 of file isl_tab_pip.c.
Referenced by zero_out_node_coef().
__isl_null isl_tab_lexmin * isl_tab_lexmin_free | ( | __isl_take isl_tab_lexmin * | tl | ) |
Definition at line 5561 of file isl_tab_pip.c.
References isl_ctx_deref(), and isl_tab_free().
Referenced by isl_tab_lexmin_add_eq(), isl_tab_lexmin_cut_to_integer(), isl_tab_lexmin_from_basic_set(), non_neg_lexmin(), and zero_out_node_coef().
__isl_give isl_tab_lexmin * isl_tab_lexmin_from_basic_set | ( | __isl_take isl_basic_set * | bset | ) |
Definition at line 5576 of file isl_tab_pip.c.
References isl_tab_lexmin::ctx, isl_basic_set_free(), isl_basic_set_get_ctx(), isl_calloc_type, isl_ctx_ref(), isl_tab_lexmin_free(), isl_tab_lexmin::tab, and tab_for_lexmin().
Referenced by non_neg_lexmin().
__isl_give isl_vec * isl_tab_lexmin_get_solution | ( | __isl_keep isl_tab_lexmin * | tl | ) |
Definition at line 5653 of file isl_tab_pip.c.
References isl_tab_get_sample_value(), and isl_vec_alloc().
Referenced by non_empty_solution().
__isl_give isl_basic_map * isl_tab_make_equalities_explicit | ( | struct isl_tab * | tab, |
__isl_take isl_basic_map * | bmap | ||
) |
Definition at line 3201 of file isl_tab.c.
References isl_tab::bmap, isl_tab::empty, gauss_if_shared(), isl_basic_map_free(), isl_basic_map_inequality_to_equality(), isl_tab_is_equality(), isl_basic_map::n_eq, isl_tab::n_eq, isl_basic_map::n_ineq, and rotate_constraints().
Referenced by isl_map_coalesce().
Definition at line 996 of file isl_tab.c.
References isl_tab::empty, isl_stat_error, isl_stat_ok, isl_tab_push(), isl_tab_undo_empty, and isl_tab::need_undo.
Referenced by add_lexmin_eq(), check_gbr_integer_feasible(), close_row(), context_gbr_add_eq(), cut_to_hyperplane(), cut_to_integer_lexmin(), detect_constant_with_tmp(), drop_eq(), find_solutions(), force_better_solution(), isl_tab_add_eq(), isl_tab_add_ineq(), isl_tab_from_basic_map(), restore_lexmin(), tab_for_lexmin(), and tab_for_shifted_cone().
int isl_tab_mark_rational | ( | struct isl_tab * | tab | ) |
Definition at line 985 of file isl_tab.c.
References isl_tab_push(), isl_tab_undo_rational, isl_tab::need_undo, and isl_tab::rational.
Referenced by check_facets().
int isl_tab_mark_redundant | ( | struct isl_tab * | tab, |
int | row | ||
) |
Definition at line 956 of file isl_tab.c.
References isl_mat::ctx, isl_tab_var::index, isl_assert, isl_tab_push_var(), isl_tab_undo_nonneg, isl_tab_undo_redundant, isl_tab_var_from_row(), isl_tab::mat, isl_tab::n_redundant, isl_tab::n_row, isl_tab::need_undo, isl_tab::preserve, isl_tab::row_var, swap_rows(), and var().
Referenced by add_lexmin_ineq(), close_row(), find_solutions_main(), isl_tab_add_ineq(), isl_tab_add_valid_eq(), isl_tab_detect_redundant(), and isl_tab_pivot().
enum isl_lp_result isl_tab_min | ( | struct isl_tab * | tab, |
isl_int * | f, | ||
isl_int | denom, | ||
isl_int * | opt, | ||
isl_int * | opt_denom, | ||
unsigned | flags | ||
) |
Definition at line 3348 of file isl_tab.c.
References isl_tab::con, isl_mat::ctx, isl_tab::dual, isl_vec::el, isl_tab::empty, f, find_pivot(), get_rounded_sample_value(), isl_tab_var::index, isl_tab_var::is_row, ISL_FL_ISSET, isl_int_mul, isl_int_neg, isl_int_set, isl_int_set_si, isl_lp_empty, isl_lp_error, isl_lp_ok, isl_lp_unbounded, isl_tab_add_row(), isl_tab_pivot(), isl_tab_rollback(), ISL_TAB_SAVE_DUAL, isl_tab_snap(), isl_vec_alloc(), isl_vec_free(), isl_tab::M, isl_tab::mat, isl_tab::n_con, isl_tab_var::negated, pos(), res, isl_mat::row, and var().
Referenced by compute_max(), compute_min(), cut_lp_to_hyperplane(), is_bound(), isl_basic_set_scan(), isl_tab_solve_lp(), solve_lp(), and test_ineq_is_satisfied().
int isl_tab_min_at_most_neg_one | ( | struct isl_tab * | tab, |
struct isl_tab_var * | var | ||
) |
Definition at line 1454 of file isl_tab.c.
References find_pivot(), isl_tab_var::index, isl_tab_var::is_redundant, isl_tab_pivot(), min_is_manifestly_unbounded(), pivot_row(), restore_row(), row_at_most_neg_one(), var(), and var_from_col().
Referenced by best_split(), con_is_redundant(), and tab_detect_nonnegative_parameters().
Definition at line 3685 of file isl_tab.c.
References isl_bool_error, isl_bool_ok(), and isl_tab::need_undo.
Referenced by propagate_equalities().
__isl_keep isl_basic_set * isl_tab_peek_bset | ( | struct isl_tab * | tab | ) |
Definition at line 4171 of file isl_tab.c.
References isl_tab::bmap, and bset_from_bmap().
Referenced by add_chamber(), context_gbr_detect_equalities(), context_gbr_peek_basic_set(), context_lex_peek_basic_set(), create_todo(), gbr_get_sample(), gbr_init_shifted(), tab_equalities(), and tab_shift_cone().
int isl_tab_pivot | ( | struct isl_tab * | tab, |
int | row, | ||
int | col | ||
) |
Definition at line 1125 of file isl_tab.c.
References isl_tab::col_var, isl_mat::ctx, isl_tab_var::frozen, isl_tab::in_undo, isl_ctx_next_operation(), isl_int_addmul, isl_int_is_one, isl_int_is_zero, isl_int_mul, isl_int_neg, isl_int_sgn, isl_int_swap, isl_seq_normalize(), isl_tab_get_ctx(), isl_tab_mark_redundant(), isl_tab_row_is_redundant(), isl_tab_var_from_row(), isl_tab::M, isl_tab::mat, isl_tab::n_col, isl_tab::n_redundant, isl_tab::n_row, isl_mat::row, isl_tab::row_var, sgn(), t, update_row_sign(), var(), and var_from_col().
Referenced by add_eq(), add_lexmin_valid_eq(), at_least_one(), at_least_zero(), isl_tab_min(), isl_tab_min_at_most_neg_one(), propagate_equalities(), restore_basis(), restore_lexmin(), restore_row(), sign_of_max(), sign_of_min(), to_col(), to_row(), and var_reaches().
Definition at line 434 of file isl_tab.c.
References isl_tab::basis, isl_tab::bottom, isl_tab::col_var, isl_tab::con, isl_tab::cone, isl_mat::ctx, isl_tab::empty, isl_tab::in_undo, isl_alloc_array, isl_assert, isl_calloc_type, isl_tab_free(), isl_tab_undo_bottom, isl_tab::M, isl_tab::mat, isl_tab::max_con, isl_tab::max_var, isl_tab::n_col, isl_tab::n_con, isl_tab::n_dead, isl_tab::n_div, isl_tab::n_eq, isl_tab::n_param, isl_tab::n_redundant, isl_mat::n_row, isl_tab::n_row, isl_tab::n_unbounded, isl_tab::n_var, isl_tab::n_zero, isl_tab::need_undo, isl_tab_undo::next, pos(), isl_tab::rational, isl_tab::row_sign, isl_tab::row_var, isl_tab::sample_index, isl_tab::samples, isl_tab::strict_redundant, t, tab_mat_product(), isl_tab::top, isl_tab_undo::type, update_index1(), update_index2(), and isl_tab::var.
Referenced by gbr_tab().
isl_stat isl_tab_push | ( | struct isl_tab * | tab, |
enum isl_tab_undo_type | type | ||
) |
Definition at line 835 of file isl_tab.c.
References push_union(), and type.
Referenced by add_lexmin_eq(), add_lexmin_ineq(), isl_tab_add_eq(), isl_tab_add_ineq(), isl_tab_drop_sample(), isl_tab_mark_empty(), and isl_tab_mark_rational().
Definition at line 844 of file isl_tab.c.
References isl_tab_undo_val::col_var, isl_tab::col_var, isl_mat::ctx, isl_alloc_array, isl_stat_error, isl_tab_undo_saved_basis, isl_tab::mat, isl_tab::n_col, and push_union().
Referenced by check_integer_feasible(), context_lex_best_split(), context_lex_detect_nonnegative_parameters(), context_lex_save(), context_lex_test_ineq(), and pick_side().
isl_stat isl_tab_push_callback | ( | struct isl_tab * | tab, |
struct isl_tab_callback * | callback | ||
) |
Definition at line 857 of file isl_tab.c.
References isl_tab_undo_val::callback, isl_tab_undo_callback, and push_union().
Referenced by sol_inc_level().
isl_stat isl_tab_push_var | ( | struct isl_tab * | tab, |
enum isl_tab_undo_type | type, | ||
struct isl_tab_var * | var | ||
) |
Definition at line 824 of file isl_tab.c.
References isl_tab::col_var, push_union(), isl_tab::row_var, type, var(), and isl_tab_undo_val::var_index.
Referenced by add_cut(), add_lexmin_eq(), add_lexmin_ineq(), add_lexmin_valid_eq(), add_parametric_cut(), close_row(), context_gbr_insert_div(), isl_tab_add_ineq(), isl_tab_allocate_con(), isl_tab_freeze_constraint(), isl_tab_from_recession_cone(), isl_tab_insert_div(), isl_tab_insert_var(), isl_tab_kill_col(), isl_tab_mark_redundant(), isl_tab_relax(), and isl_tab_unrestrict().
int isl_tab_relax | ( | struct isl_tab * | tab, |
int | con | ||
) |
Definition at line 2778 of file isl_tab.c.
References isl_tab::con, isl_mat::ctx, isl_die, isl_error_invalid, isl_int_add, isl_int_is_zero, isl_int_sub, isl_tab_push_var(), isl_tab_undo_relax, isl_tab::M, isl_tab::mat, max_is_manifestly_unbounded(), min_is_manifestly_unbounded(), isl_tab::n_dead, isl_tab::n_redundant, isl_tab::n_row, restore_row(), isl_mat::row, to_row(), and var().
Referenced by is_relaxed_extension().
Definition at line 3841 of file isl_tab.c.
References isl_die, isl_error_invalid, isl_stat_error, isl_stat_ok, isl_tab_get_ctx(), isl_tab_var_from_row(), isl_tab::n_redundant, isl_tab::need_undo, restore_last_redundant(), isl_tab::row_var, and var().
Referenced by isl_basic_map_remove_redundancies().
isl_stat isl_tab_rollback | ( | struct isl_tab * | tab, |
struct isl_tab_undo * | snap | ||
) |
Definition at line 4014 of file isl_tab.c.
References isl_tab::bottom, free_undo(), free_undo_record(), isl_tab::in_undo, isl_stat_error, isl_stat_ok, isl_tab_undo::next, perform_undo(), and isl_tab::top.
Referenced by add_chamber(), add_lexmin_eq(), add_selected_wraps_around_facet(), basic_map_collect_diff(), best_split(), can_intersect(), can_select(), check_facets(), check_integer_feasible(), coalesce_expand_tab_divs(), coalesce_with_subs(), compute_chambers(), context_gbr_best_split(), context_gbr_restore(), context_gbr_test_ineq(), context_lex_best_split(), context_lex_detect_nonnegative_parameters(), context_lex_restore(), context_lex_test_ineq(), create_todo(), del_lp_row(), enter_level(), gbr_get_sample(), greedy_search(), init_todo(), is_adj_ineq_extension_with_wraps(), is_relaxed_extension(), isl_basic_set_compute_vertices(), isl_basic_set_scan(), isl_basic_set_vars_get_sign(), isl_tab_add_eq(), isl_tab_detect_equalities(), isl_tab_ineq_type(), isl_tab_min(), isl_tab_sample(), outside_point(), propagate_equalities(), tab_detect_nonnegative_parameters(), tab_insert_divs(), update_todo(), uset_affine_hull_bounded(), and wrap_in_facet().
int isl_tab_row_is_redundant | ( | struct isl_tab * | tab, |
int | row | ||
) |
Definition at line 742 of file isl_tab.c.
References isl_tab::col_var, isl_tab_var::is_nonneg, isl_int_is_neg, isl_int_is_zero, isl_tab_var_from_row(), isl_tab::M, isl_tab::mat, isl_tab::n_dead, isl_mat::row, isl_tab::row_var, isl_tab::strict_redundant, and var_from_col().
Referenced by add_lexmin_ineq(), isl_tab_add_ineq(), isl_tab_ineq_type(), and isl_tab_pivot().
int isl_tab_sample_is_integer | ( | struct isl_tab * | tab | ) |
Definition at line 2523 of file isl_tab.c.
References isl_tab_var::index, isl_tab_var::is_row, isl_int_is_divisible_by, isl_tab::mat, isl_tab::n_var, isl_mat::row, and isl_tab::var.
Referenced by gbr_get_sample(), greedy_search(), isl_basic_map_update_from_tab(), and isl_tab_sample().
Definition at line 933 of file isl_tab.c.
References isl_stat_error, isl_tab_undo_saved_samples, isl_tab_undo_val::n, isl_tab::n_sample, and push_union().
Referenced by context_gbr_save(), and context_lex_save().
int isl_tab_select_facet | ( | struct isl_tab * | tab, |
int | con | ||
) |
Definition at line 2906 of file isl_tab.c.
References isl_tab::con, and cut_to_hyperplane().
Referenced by add_selected_wraps_around_facet(), can_select(), check_facets(), fix_constant_divs(), init_todo(), is_relaxed_extension(), and update_todo().
Definition at line 2842 of file isl_tab.c.
References isl_int_addmul, isl_int_is_neg, isl_int_is_zero, isl_int_submul, isl_tab::M, isl_tab::mat, max_is_manifestly_unbounded(), min_is_manifestly_unbounded(), isl_tab::n_row, pos(), isl_mat::row, to_row(), var(), and isl_tab::var.
Referenced by shift_div().
int isl_tab_sign_of_max | ( | struct isl_tab * | tab, |
int | con | ||
) |
Definition at line 1284 of file isl_tab.c.
References isl_tab::con, isl_mat::ctx, isl_assert, isl_tab::mat, sign_of_max(), and var().
Referenced by can_select().
struct isl_tab_undo * isl_tab_snap | ( | struct isl_tab * | tab | ) |
Definition at line 3674 of file isl_tab.c.
References isl_tab::need_undo, and isl_tab::top.
Referenced by add_chamber(), add_lexmin_eq(), add_lp_row(), add_selected_wraps_around_facet(), basic_map_collect_diff(), best_split(), can_intersect(), can_select(), check_facets(), check_integer_feasible(), coalesce_expand_tab_divs(), coalesce_with_subs(), compute_chambers(), context_gbr_best_split(), context_gbr_save(), context_gbr_test_ineq(), context_lex_best_split(), context_lex_detect_nonnegative_parameters(), context_lex_save(), context_lex_test_ineq(), create_todo(), gbr_get_sample(), greedy_search(), init_todo(), is_adj_ineq_extension_with_wraps(), is_relaxed_extension(), isl_basic_set_compute_vertices(), isl_basic_set_scan(), isl_basic_set_vars_get_sign(), isl_tab_add_eq(), isl_tab_detect_equalities(), isl_tab_ineq_type(), isl_tab_min(), isl_tab_sample(), outside_point(), pick_side(), propagate_equalities(), tab_detect_nonnegative_parameters(), tab_insert_divs(), try_wrap_in_facets(), update_todo(), and uset_affine_hull_bounded().
Definition at line 3053 of file isl_tab.c.
References isl_tab::con, isl_stat_error, isl_stat_ok, isl_tab_check_con(), update_con_after_move(), and var().
Referenced by swap_eq().
isl_stat isl_tab_track_bmap | ( | struct isl_tab * | tab, |
__isl_take isl_basic_map * | bmap | ||
) |
Definition at line 4140 of file isl_tab.c.
References isl_tab::bmap, isl_mat::ctx, isl_tab::empty, isl_assert, isl_basic_map_cow(), isl_basic_map_free(), isl_basic_map_set_to_empty(), isl_stat_error, isl_stat_ok, isl_tab::mat, isl_tab::n_con, and isl_tab::n_eq.
Referenced by isl_tab_from_basic_map(), and isl_tab_track_bset().
isl_stat isl_tab_track_bset | ( | struct isl_tab * | tab, |
__isl_take isl_basic_set * | bset | ||
) |
Definition at line 4166 of file isl_tab.c.
References bset_to_bmap(), and isl_tab_track_bmap().
Referenced by context_gbr_detect_equalities(), context_tab_for_lexmin(), and gbr_get_sample().
int isl_tab_unrestrict | ( | struct isl_tab * | tab, |
int | con | ||
) |
Definition at line 2888 of file isl_tab.c.
References isl_tab::con, isl_tab_push_var(), isl_tab_undo_unrestrict, and var().
Referenced by is_adj_ineq_extension_with_wraps().
struct isl_tab_var * isl_tab_var_from_row | ( | struct isl_tab * | tab, |
int | i | ||
) |
Definition at line 571 of file isl_tab.c.
References isl_tab::row_var, and var_from_index().
Referenced by best_split(), check_table(), find_solutions(), first_neg(), isl_tab_cone_is_bounded(), isl_tab_detect_implicit_equalities(), isl_tab_detect_redundant(), isl_tab_mark_redundant(), isl_tab_pivot(), isl_tab_print_internal(), isl_tab_restore_redundant(), isl_tab_row_is_redundant(), max_is_manifestly_unbounded(), min_is_manifestly_unbounded(), pivot_row(), reset_any_to_unknown(), restore_last_redundant(), and swap_rows().