Polly 20.0.0git
|
#include <isl_ctx_private.h>
#include <isl_mat_private.h>
#include <isl_vec_private.h>
#include "isl_map_private.h"
#include "isl_tab.h"
#include <isl_seq.h>
#include <isl_config.h>
#include <bset_to_bmap.c>
#include <bset_from_bmap.c>
Go to the source code of this file.
|
static |
Definition at line 2237 of file isl_tab.c.
References isl_tab::bmap, isl_basic_map::div, isl_vec::el, ineq_for_div(), isl_basic_map_dim(), isl_dim_all, isl_int_add, isl_int_set, isl_int_sub_ui, isl_seq_neg(), isl_stat_error, isl_stat_ok, isl_tab_add_ineq(), isl_vec_free(), isl_basic_map::n_div, total(), and user.
Referenced by isl_tab_insert_div().
Definition at line 1991 of file isl_tab.c.
References isl_tab::con, isl_mat::ctx, isl_tab_var::index, isl_assert, isl_seq_first_non_zero(), isl_tab_add_row(), isl_tab_free(), isl_tab_kill_col(), isl_tab_pivot(), isl_tab::M, isl_tab::mat, isl_tab::n_col, isl_tab::n_dead, isl_tab::n_eq, and isl_mat::row.
Referenced by isl_tab_from_basic_map(), and isl_tab_from_recession_cone().
|
static |
Definition at line 2085 of file isl_tab.c.
References isl_tab::con, isl_tab_var::index, isl_int_set_si, isl_seq_clr(), isl_tab_allocate_con(), isl_tab::M, isl_tab::mat, isl_tab::n_col, and isl_mat::row.
Referenced by isl_tab_add_eq().
|
static |
Definition at line 1513 of file isl_tab.c.
References find_pivot(), isl_int_ge, isl_int_lt, isl_tab_pivot(), isl_tab::mat, max_is_manifestly_unbounded(), isl_mat::row, to_row(), and var().
Referenced by isl_tab_detect_implicit_equalities().
|
static |
Definition at line 1345 of file isl_tab.c.
References find_pivot(), isl_int_is_neg, isl_tab_pivot(), isl_tab::mat, isl_mat::row, and var().
Referenced by isl_tab_ineq_type().
|
static |
Definition at line 1231 of file isl_tab.c.
References isl_mat::ctx, isl_tab::empty, isl_assert, isl_int_is_neg, isl_int_is_pos, isl_tab_var_from_row(), isl_tab::M, isl_tab::mat, isl_tab::n_redundant, isl_mat::row, and var().
|
static |
Definition at line 1635 of file isl_tab.c.
References isl_die, isl_error_internal, isl_int_is_pos, isl_int_is_zero, isl_stat_error, isl_stat_ok, isl_tab_get_ctx(), isl_tab_kill_col(), isl_tab_mark_empty(), isl_tab_mark_redundant(), isl_tab_push_var(), isl_tab_undo_zero, isl_tab::M, isl_tab::mat, isl_mat::n_col, isl_tab::n_dead, isl_tab::need_undo, isl_mat::row, tab_is_manifestly_empty(), and var().
Referenced by cut_to_hyperplane(), isl_tab_cone_is_bounded(), and isl_tab_detect_implicit_equalities().
Definition at line 3102 of file isl_tab.c.
References isl_tab::con, isl_die, isl_error_internal, isl_stat_error, isl_stat_ok, isl_tab_get_ctx(), n, isl_tab::n_con, and update_con_after_move().
Referenced by drop_eq().
|
static |
Definition at line 3231 of file isl_tab.c.
References isl_tab_min_at_most_neg_one(), isl_tab::rational, sgn(), sign_of_min(), and var().
Referenced by isl_tab_detect_redundant(), and isl_tab_ineq_type().
|
static |
Definition at line 2688 of file isl_tab.c.
References close_row(), isl_tab::con, drop_last_con_in_row(), 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_die, isl_error_invalid, isl_int_set, isl_int_set_si, isl_seq_clr(), isl_seq_neg(), isl_stat_error, isl_stat_ok, isl_tab_extend_cons(), isl_tab_get_ctx(), isl_tab_mark_empty(), isl_tab::M, isl_tab::mat, isl_tab::n_col, isl_tab::n_con, isl_tab::n_row, isl_tab_var::negated, isl_mat::row, isl_tab::row_var, sgn(), sign_of_max(), and var().
Referenced by isl_tab_detect_implicit_equalities(), and isl_tab_select_facet().
|
static |
Definition at line 3548 of file isl_tab.c.
References isl_vec::el, get_rounded_sample_value(), isl_bool_error, isl_bool_false, isl_bool_not(), isl_bool_true, isl_int_add_ui, isl_int_ne, isl_int_set, isl_int_set_si, isl_int_sub_ui, isl_seq_clr(), isl_tab_add_eq(), isl_tab_extend_cons(), isl_tab_get_ctx(), isl_tab_mark_empty(), isl_vec_alloc(), isl_vec_free(), isl_tab::n_var, pos(), reached(), var(), isl_tab::var, and var_reaches().
Referenced by get_constant().
|
static |
Definition at line 2288 of file isl_tab.c.
References isl_tab_var::is_nonneg, isl_int_is_neg, isl_int_is_zero, isl_tab::M, isl_tab::n_var, and isl_tab::var.
Referenced by isl_tab_insert_div().
Definition at line 3867 of file isl_tab.c.
References isl_tab::bmap, isl_basic_map_dim(), isl_basic_map_drop_div(), isl_dim_div, isl_mat_drop_cols(), isl_stat_error, isl_stat_ok, isl_tab::n_var, pos(), and isl_tab::samples.
Referenced by perform_undo().
Definition at line 1877 of file isl_tab.c.
References isl_tab::col_var, isl_stat_error, isl_stat_ok, isl_tab::n_col, swap_cols(), var(), and var_drop_entry().
Referenced by perform_undo_var().
|
static |
Definition at line 3141 of file isl_tab.c.
References con_drop_entries(), isl_tab_mark_empty(), n, isl_tab::n_eq, and user.
Referenced by gauss_if_shared().
Definition at line 2663 of file isl_tab.c.
References isl_tab::con, drop_row(), isl_tab_var::index, isl_tab_var::is_row, isl_die, isl_error_internal, isl_stat_error, isl_stat_ok, isl_tab_get_ctx(), and isl_tab::n_con.
Referenced by cut_to_hyperplane().
Definition at line 1860 of file isl_tab.c.
References isl_mat::ctx, isl_assert, isl_stat_error, isl_stat_ok, isl_tab::mat, isl_tab::n_con, isl_tab::n_row, isl_mat::row, isl_tab::row_var, and swap_rows().
Referenced by drop_last_con_in_row(), isl_tab_add_eq(), and perform_undo_var().
|
static |
Definition at line 3948 of file isl_tab.c.
References isl_mat_swap_rows(), n, isl_tab::n_sample, isl_tab::sample_index, isl_tab::samples, and t.
Referenced by perform_undo().
Definition at line 2542 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_divexact, isl_int_set_si, isl_vec_alloc(), isl_tab::mat, isl_tab::n_var, isl_mat::row, and isl_tab::var.
Referenced by isl_basic_map_update_from_tab().
|
static |
Definition at line 705 of file isl_tab.c.
References isl_tab::col_var, isl_mat::ctx, isl_tab_var::is_nonneg, isl_assert, isl_int_is_zero, isl_int_sgn, isl_tab::M, isl_tab::mat, isl_tab::n_dead, pivot_row(), isl_mat::row, sgn(), var(), and var_from_col().
Referenced by at_least_one(), at_least_zero(), isl_tab_min(), isl_tab_min_at_most_neg_one(), restore_row(), sign_of_max(), sign_of_min(), to_col(), and var_reaches().
|
static |
Definition at line 193 of file isl_tab.c.
References isl_tab::bottom, free_undo_record(), isl_tab_undo::next, and isl_tab::top.
Referenced by isl_tab_clear_undo(), isl_tab_free(), isl_tab_rollback(), and push_union().
|
static |
Definition at line 182 of file isl_tab.c.
References isl_tab_undo_val::col_var, isl_tab_undo_saved_basis, isl_tab_undo::type, and isl_tab_undo::u.
Referenced by free_undo(), and isl_tab_rollback().
|
static |
Definition at line 3155 of file isl_tab.c.
References isl_tab::bmap, drop_eq(), isl_basic_map_free(), isl_basic_map_gauss5(), isl_basic_map_has_single_reference(), and swap_eq().
Referenced by isl_tab_make_equalities_explicit().
|
static |
Definition at line 3602 of file isl_tab.c.
References detect_constant_with_tmp(), is_constant(), isl_bool_false, isl_int_clear, isl_int_init, row_is_big(), and var().
Referenced by isl_tab_detect_constants(), and isl_tab_is_constant().
|
static |
Definition at line 2603 of file isl_tab.c.
References isl_int_cdiv_q, isl_int_fdiv_q, isl_int_set_si, isl_tab::mat, isl_mat::row, sgn(), and var().
Referenced by detect_constant_with_tmp(), and isl_tab_min().
|
static |
Definition at line 2200 of file isl_tab.c.
References isl_vec::el, isl_basic_map_dim(), isl_dim_all, isl_int_neg, isl_seq_cpy(), isl_vec_alloc(), and total().
Referenced by add_div_constraints().
|
static |
Definition at line 3444 of file isl_tab.c.
References isl_bool_false, isl_bool_true, isl_int_divexact, isl_seq_first_non_zero(), isl_tab::M, isl_tab::mat, n, isl_tab::n_col, isl_tab::n_dead, pos(), isl_mat::row, row_is_big(), and var().
Referenced by get_constant().
__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().
Definition at line 2751 of file isl_tab.c.
References isl_die, isl_error_invalid, isl_stat_error, isl_stat_ok, isl_tab_get_ctx(), and isl_tab::n_con.
Referenced by isl_tab_is_redundant(), and isl_tab_swap_constraints().
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().
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 | r | ||
) |
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_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().
|
static |
Definition at line 4179 of file isl_tab.c.
References isl_basic_map_print_internal(), isl_mat_print_internal(), isl_tab_row_neg, isl_tab_row_pos, isl_tab_row_unknown, isl_tab_var_from_row(), and var_from_col().
Referenced by isl_tab_dump().
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().
|
static |
Definition at line 585 of file isl_tab.c.
References isl_tab_var::is_nonneg, isl_int_is_neg, isl_tab_var_from_row(), isl_tab::M, isl_tab::mat, isl_tab::n_redundant, isl_mat::row, and var().
Referenced by at_least_one(), isl_tab_relax(), isl_tab_shift_var(), perform_undo_var(), sign_of_max(), unrelax(), and var_reaches().
|
static |
Definition at line 2914 of file isl_tab.c.
References isl_int_is_zero, isl_int_lt, isl_tab::mat, isl_tab::rational, and isl_mat::row.
Referenced by isl_tab_detect_implicit_equalities().
|
static |
Definition at line 606 of file isl_tab.c.
References isl_tab_var::is_nonneg, isl_int_is_pos, isl_tab_var_from_row(), isl_tab::M, isl_tab::mat, isl_tab::n_redundant, isl_mat::row, and var().
Referenced by isl_tab_detect_redundant(), isl_tab_min_at_most_neg_one(), isl_tab_relax(), isl_tab_shift_var(), perform_undo_var(), sign_of_min(), and var_reaches().
|
static |
Definition at line 3968 of file isl_tab.c.
References isl_tab::bmap, isl_tab_undo_val::callback, isl_tab_undo_val::col_var, isl_mat::ctx, drop_bmap_div(), drop_samples_since(), isl_tab::empty, isl_assert, isl_basic_map_free_equality(), isl_basic_map_free_inequality(), isl_stat_error, isl_stat_ok, isl_tab_undo_allocate, isl_tab_undo_bmap_div, isl_tab_undo_bmap_eq, isl_tab_undo_bmap_ineq, isl_tab_undo_callback, isl_tab_undo_drop_sample, isl_tab_undo_empty, isl_tab_undo_freeze, isl_tab_undo_nonneg, isl_tab_undo_rational, isl_tab_undo_redundant, isl_tab_undo_relax, isl_tab_undo_saved_basis, isl_tab_undo_saved_samples, isl_tab_undo_unrestrict, isl_tab_undo_zero, isl_tab::mat, isl_tab_undo_val::n, isl_tab::n_outside, perform_undo_var(), isl_tab::rational, restore_basis(), isl_tab_callback::run, isl_tab_undo::type, isl_tab_undo::u, and isl_tab_undo_val::var_index.
Referenced by isl_tab_rollback().
|
static |
Definition at line 3782 of file isl_tab.c.
References isl_mat::ctx, drop_col(), drop_row(), isl_assert, isl_die, isl_error_internal, isl_stat_error, isl_stat_ok, isl_tab_get_ctx(), isl_tab_undo_allocate, isl_tab_undo_freeze, isl_tab_undo_nonneg, isl_tab_undo_redundant, isl_tab_undo_relax, isl_tab_undo_unrestrict, isl_tab_undo_zero, isl_tab::mat, max_is_manifestly_unbounded(), min_is_manifestly_unbounded(), isl_tab::n_dead, isl_tab::n_redundant, restore_last_redundant(), to_row(), isl_tab_undo::type, isl_tab_undo::u, unrelax(), ununrestrict(), var(), var_from_index(), and isl_tab_undo_val::var_index.
Referenced by perform_undo().
|
static |
Definition at line 660 of file isl_tab.c.
References isl_tab_var::is_nonneg, isl_int_clear, isl_int_init, isl_int_sgn, isl_tab_var_from_row(), isl_tab::M, isl_tab::mat, isl_tab::n_redundant, isl_mat::row, row_cmp(), isl_tab::row_var, sgn(), t, and var().
Referenced by find_pivot(), isl_tab_min_at_most_neg_one(), sign_of_min(), and to_row().
|
static |
Definition at line 799 of file isl_tab.c.
References isl_mat::ctx, free_undo(), isl_alloc_type, isl_stat_error, isl_stat_ok, isl_tab::mat, isl_tab::need_undo, isl_tab_undo::next, isl_tab::top, isl_tab_undo::type, type, and isl_tab_undo::u.
Referenced by isl_tab_push(), isl_tab_push_basis(), isl_tab_push_callback(), isl_tab_push_var(), and isl_tab_save_samples().
|
static |
Definition at line 3477 of file isl_tab.c.
References isl_int_ge, isl_int_le, isl_int_mul, isl_tab::mat, isl_mat::row, row_is_big(), sgn(), and var().
Referenced by detect_constant_with_tmp(), and var_reaches().
|
static |
Definition at line 3899 of file isl_tab.c.
References isl_tab::col_var, isl_mat::ctx, isl_alloc_array, isl_assert, isl_int_is_zero, isl_tab_pivot(), isl_tab::M, isl_tab::mat, isl_tab::n_col, isl_mat::row, var(), and var_from_index().
Referenced by perform_undo().
Definition at line 3764 of file isl_tab.c.
References isl_die, isl_error_internal, isl_stat_error, isl_stat_ok, isl_tab_get_ctx(), isl_tab_var_from_row(), isl_tab::n_redundant, restore_row(), and var().
Referenced by isl_tab_restore_redundant(), and perform_undo_var().
|
static |
Definition at line 1324 of file isl_tab.c.
References find_pivot(), isl_tab_pivot(), row_is_neg(), row_sgn(), and var().
Referenced by isl_tab_add_ineq(), isl_tab_min_at_most_neg_one(), isl_tab_relax(), restore_last_redundant(), sign_of_min(), unrelax(), and ununrestrict().
|
static |
Definition at line 3075 of file isl_tab.c.
References isl_tab::con, n, update_con_after_move(), and var().
Referenced by isl_tab_make_equalities_explicit().
|
static |
Definition at line 1432 of file isl_tab.c.
References isl_int_abs_ge, isl_int_is_neg, isl_int_is_pos, isl_tab::M, isl_tab::mat, and isl_mat::row.
Referenced by isl_tab_min_at_most_neg_one().
Definition at line 623 of file isl_tab.c.
References isl_int_mul, isl_int_sgn, isl_int_submul, isl_tab::M, isl_tab::mat, isl_mat::row, and t.
Referenced by pivot_row().
|
static |
Definition at line 2022 of file isl_tab.c.
References isl_int_is_zero, isl_tab::M, isl_tab::mat, and isl_mat::row.
Referenced by get_constant(), is_constant(), isl_tab_is_equality(), reached(), and row_is_manifestly_zero().
|
static |
Definition at line 1579 of file isl_tab.c.
References isl_int_eq, isl_int_is_divisible_by, isl_seq_first_non_zero(), isl_tab::M, isl_tab::mat, isl_tab::n_col, isl_tab::n_dead, and isl_mat::row.
Referenced by tab_is_manifestly_empty().
|
static |
Definition at line 2027 of file isl_tab.c.
References 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 isl_tab_add_eq(), and isl_tab_add_valid_eq().
|
static |
Definition at line 1298 of file isl_tab.c.
References isl_int_is_neg, isl_int_is_pos, isl_tab::M, isl_tab::mat, and isl_mat::row.
Referenced by restore_row().
|
static |
Definition at line 1309 of file isl_tab.c.
References isl_int_is_zero, isl_int_sgn, isl_tab::M, isl_tab::mat, and isl_mat::row.
Referenced by restore_row(), and update_row_sign().
|
static |
Definition at line 2932 of file isl_tab.c.
References isl_tab::con, isl_tab::n_con, isl_tab::n_dead, isl_tab::n_redundant, and var().
Referenced by isl_tab_detect_implicit_equalities(), and isl_tab_detect_redundant().
|
static |
Definition at line 4051 of file isl_tab.c.
References isl_ineq_adj_eq, isl_ineq_adj_ineq, isl_ineq_separate, isl_int_eq, isl_int_is_negone, isl_int_is_one, isl_seq_first_non_zero(), isl_tab::M, isl_tab::mat, isl_tab::n_col, isl_tab::n_dead, pos(), isl_tab::rational, and isl_mat::row.
Referenced by isl_tab_ineq_type().
|
static |
Definition at line 1264 of file isl_tab.c.
References find_pivot(), isl_int_is_pos, isl_int_sgn, isl_tab_pivot(), isl_tab::mat, max_is_manifestly_unbounded(), isl_mat::row, to_row(), and var().
Referenced by cut_to_hyperplane(), isl_tab_add_eq(), isl_tab_cone_is_bounded(), isl_tab_detect_implicit_equalities(), and isl_tab_sign_of_max().
|
static |
Definition at line 1378 of file isl_tab.c.
References find_pivot(), isl_tab_var::index, isl_tab_var::is_redundant, isl_int_is_neg, isl_int_sgn, isl_tab_pivot(), isl_tab::mat, min_is_manifestly_unbounded(), pivot_row(), restore_row(), isl_mat::row, var(), and var_from_col().
Referenced by con_is_redundant().
|
static |
Definition at line 1535 of file isl_tab.c.
References isl_tab::col_var, isl_tab_var::index, isl_mat_swap_cols(), isl_tab::M, isl_tab::mat, t, and var_from_col().
Referenced by drop_col(), and isl_tab_kill_col().
|
static |
Definition at line 3126 of file isl_tab.c.
References a(), b(), isl_tab_swap_constraints(), and user.
Referenced by gauss_if_shared().
|
static |
Definition at line 770 of file isl_tab.c.
References isl_tab_var::index, isl_mat_swap_rows(), isl_tab_var_from_row(), isl_tab::mat, isl_tab::row_sign, isl_tab::row_var, and t.
Referenced by drop_row(), and isl_tab_mark_redundant().
|
static |
Definition at line 1597 of file isl_tab.c.
References isl_tab::empty, isl_tab_var::index, isl_tab_var::is_row, isl_tab::n_var, isl_tab::rational, row_is_manifestly_non_integral(), and isl_tab::var.
Referenced by close_row().
|
static |
Definition at line 323 of file isl_tab.c.
References isl_mat_alloc(), isl_seq_clr(), isl_seq_cpy(), n, and isl_mat::row.
Referenced by isl_tab_product().
|
static |
Definition at line 1954 of file isl_tab.c.
References isl_mat::ctx, find_pivot(), isl_assert, isl_int_is_pos, isl_int_is_zero, isl_tab_pivot(), isl_tab::M, isl_tab::mat, isl_tab::n_dead, isl_mat::row, and var().
Referenced by isl_tab_add_eq(), and isl_tab_add_valid_eq().
|
static |
Definition at line 1205 of file isl_tab.c.
References isl_mat::ctx, isl_assert, isl_int_is_zero, isl_tab_pivot(), isl_tab::M, isl_tab::mat, isl_tab::n_redundant, pivot_row(), isl_mat::row, and var().
Referenced by at_least_one(), isl_tab_relax(), isl_tab_shift_var(), perform_undo_var(), sign_of_max(), unrelax(), and var_reaches().
|
static |
Definition at line 3711 of file isl_tab.c.
References isl_mat::ctx, isl_assert, isl_int_add, isl_int_is_zero, isl_int_sub, isl_stat_error, isl_stat_ok, isl_tab::M, isl_tab::mat, max_is_manifestly_unbounded(), isl_tab::n_row, restore_row(), isl_mat::row, sgn(), to_row(), and var().
Referenced by perform_undo_var().
|
static |
Definition at line 3747 of file isl_tab.c.
References isl_stat_error, isl_stat_ok, restore_row(), and var().
Referenced by perform_undo_var().
|
static |
Definition at line 3031 of file isl_tab.c.
References isl_tab::col_var, isl_tab::con, isl_mat::ctx, isl_tab_var::index, isl_tab_var::is_row, isl_die, isl_error_internal, isl_tab::mat, p, and isl_tab::row_var.
Referenced by con_drop_entries(), isl_tab_swap_constraints(), and rotate_constraints().
|
static |
|
static |
|
static |
Definition at line 1044 of file isl_tab.c.
References isl_mat::ctx, isl_assert, isl_int_sgn, isl_tab_row_neg, isl_tab_row_pos, isl_tab_row_unknown, isl_tab::M, isl_tab::mat, isl_tab::n_row, isl_mat::row, row_sgn(), isl_tab::row_sign, and row_sign().
Referenced by isl_tab_pivot().
|
static |
Definition at line 1736 of file isl_tab.c.
References isl_tab::col_var, isl_tab_var::index, isl_tab_var::is_row, isl_die, isl_error_internal, isl_tab_get_ctx(), isl_tab::n_var, isl_tab::row_var, and isl_tab::var.
Referenced by drop_col().
|
static |
Definition at line 576 of file isl_tab.c.
References isl_tab::col_var, and var_from_index().
Referenced by find_pivot(), isl_tab_detect_implicit_equalities(), isl_tab_detect_redundant(), isl_tab_kill_col(), isl_tab_min_at_most_neg_one(), isl_tab_pivot(), isl_tab_print_internal(), isl_tab_row_is_redundant(), sign_of_min(), and swap_cols().
|
static |
Definition at line 563 of file isl_tab.c.
References isl_tab::con, and isl_tab::var.
Referenced by isl_tab_var_from_row(), perform_undo_var(), restore_basis(), and var_from_col().
|
static |
Definition at line 1707 of file isl_tab.c.
References isl_tab::col_var, isl_tab_var::index, isl_tab_var::is_row, isl_die, isl_error_internal, isl_tab_get_ctx(), isl_tab::max_var, isl_tab::n_var, isl_tab::row_var, and isl_tab::var.
Referenced by isl_tab_insert_var().
|
static |
Definition at line 3505 of file isl_tab.c.
References find_pivot(), isl_bool_error, isl_bool_false, isl_bool_true, isl_tab_pivot(), max_is_manifestly_unbounded(), min_is_manifestly_unbounded(), reached(), sgn(), to_row(), and var().
Referenced by detect_constant_with_tmp().