Polly 22.0.0git
isl_tab.c File Reference
#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.

Functions

struct isl_tabisl_tab_alloc (struct isl_ctx *ctx, unsigned n_row, unsigned n_var, unsigned M)
isl_ctxisl_tab_get_ctx (struct isl_tab *tab)
int isl_tab_extend_cons (struct isl_tab *tab, unsigned n_new)
int isl_tab_extend_vars (struct isl_tab *tab, unsigned n_new)
static void free_undo_record (struct isl_tab_undo *undo)
static void free_undo (struct isl_tab *tab)
void isl_tab_free (struct isl_tab *tab)
struct isl_tabisl_tab_dup (struct isl_tab *tab)
static __isl_give isl_mattab_mat_product (__isl_keep isl_mat *mat1, __isl_keep isl_mat *mat2, unsigned row1, unsigned row2, unsigned col1, unsigned col2, unsigned off, unsigned r1, unsigned r2, unsigned d1, unsigned d2)
static void update_index1 (struct isl_tab_var *var, unsigned r1, unsigned r2, unsigned d1, unsigned d2)
static void update_index2 (struct isl_tab_var *var, unsigned row1, unsigned col1, unsigned r1, unsigned r2, unsigned d1, unsigned d2)
struct isl_tabisl_tab_product (struct isl_tab *tab1, struct isl_tab *tab2)
static struct isl_tab_varvar_from_index (struct isl_tab *tab, int i)
struct isl_tab_varisl_tab_var_from_row (struct isl_tab *tab, int i)
static struct isl_tab_varvar_from_col (struct isl_tab *tab, int i)
static int max_is_manifestly_unbounded (struct isl_tab *tab, struct isl_tab_var *var)
static int min_is_manifestly_unbounded (struct isl_tab *tab, struct isl_tab_var *var)
static int row_cmp (struct isl_tab *tab, int r1, int r2, int c, isl_int *t)
static int pivot_row (struct isl_tab *tab, struct isl_tab_var *var, int sgn, int c)
static void find_pivot (struct isl_tab *tab, struct isl_tab_var *var, struct isl_tab_var *skip_var, int sgn, int *row, int *col)
int isl_tab_row_is_redundant (struct isl_tab *tab, int row)
static void swap_rows (struct isl_tab *tab, int row1, int row2)
static isl_stat push_union (struct isl_tab *tab, enum isl_tab_undo_type type, union isl_tab_undo_val u) WARN_UNUSED
isl_stat isl_tab_push_var (struct isl_tab *tab, enum isl_tab_undo_type type, struct isl_tab_var *var)
isl_stat isl_tab_push (struct isl_tab *tab, enum isl_tab_undo_type type)
isl_stat isl_tab_push_basis (struct isl_tab *tab)
isl_stat isl_tab_push_callback (struct isl_tab *tab, struct isl_tab_callback *callback)
struct isl_tabisl_tab_init_samples (struct isl_tab *tab)
int isl_tab_add_sample (struct isl_tab *tab, __isl_take isl_vec *sample)
struct isl_tabisl_tab_drop_sample (struct isl_tab *tab, int s)
isl_stat isl_tab_save_samples (struct isl_tab *tab)
int isl_tab_mark_redundant (struct isl_tab *tab, int row)
int isl_tab_mark_rational (struct isl_tab *tab)
isl_stat isl_tab_mark_empty (struct isl_tab *tab)
int isl_tab_freeze_constraint (struct isl_tab *tab, int con)
static void update_row_sign (struct isl_tab *tab, int row, int col, int row_sgn)
int isl_tab_pivot (struct isl_tab *tab, int row, int col)
static int to_row (struct isl_tab *tab, struct isl_tab_var *var, int sign) WARN_UNUSED
static void check_table (struct isl_tab *tab) __attribute__((unused))
static int sign_of_max (struct isl_tab *tab, struct isl_tab_var *var)
int isl_tab_sign_of_max (struct isl_tab *tab, int con)
static int row_is_neg (struct isl_tab *tab, int row)
static int row_sgn (struct isl_tab *tab, int row)
static int restore_row (struct isl_tab *tab, struct isl_tab_var *var)
static int at_least_zero (struct isl_tab *tab, struct isl_tab_var *var)
static int sign_of_min (struct isl_tab *tab, struct isl_tab_var *var)
static int row_at_most_neg_one (struct isl_tab *tab, int row)
int isl_tab_min_at_most_neg_one (struct isl_tab *tab, struct isl_tab_var *var)
static int at_least_one (struct isl_tab *tab, struct isl_tab_var *var)
static void swap_cols (struct isl_tab *tab, int col1, int col2)
int isl_tab_kill_col (struct isl_tab *tab, int col)
static int row_is_manifestly_non_integral (struct isl_tab *tab, int row)
static int tab_is_manifestly_empty (struct isl_tab *tab)
static isl_stat close_row (struct isl_tab *tab, struct isl_tab_var *var, int temp_var) WARN_UNUSED
int isl_tab_allocate_con (struct isl_tab *tab)
static int var_insert_entry (struct isl_tab *tab, int first)
static int var_drop_entry (struct isl_tab *tab, int first)
int isl_tab_insert_var (struct isl_tab *tab, int r)
int isl_tab_add_row (struct isl_tab *tab, isl_int *line)
static isl_stat drop_row (struct isl_tab *tab, int row)
static isl_stat drop_col (struct isl_tab *tab, int col)
isl_stat isl_tab_add_ineq (struct isl_tab *tab, isl_int *ineq)
static int to_col (struct isl_tab *tab, struct isl_tab_var *var) WARN_UNUSED
static struct isl_tabadd_eq (struct isl_tab *tab, isl_int *eq)
static int row_is_big (struct isl_tab *tab, int row)
static int row_is_manifestly_zero (struct isl_tab *tab, int row)
int isl_tab_add_valid_eq (struct isl_tab *tab, isl_int *eq)
static int add_zero_row (struct isl_tab *tab)
isl_stat isl_tab_add_eq (struct isl_tab *tab, isl_int *eq)
static __isl_give isl_vecineq_for_div (__isl_keep isl_basic_map *bmap, unsigned div)
static isl_stat add_div_constraints (struct isl_tab *tab, unsigned div, isl_stat(*add_ineq)(void *user, isl_int *), void *user)
static int div_is_nonneg (struct isl_tab *tab, __isl_keep isl_vec *div)
int isl_tab_insert_div (struct isl_tab *tab, int pos, __isl_keep isl_vec *div, isl_stat(*add_ineq)(void *user, isl_int *), void *user)
int isl_tab_add_div (struct isl_tab *tab, __isl_keep isl_vec *div)
__isl_give struct isl_tabisl_tab_from_basic_map (__isl_keep isl_basic_map *bmap, int track)
__isl_give struct isl_tabisl_tab_from_basic_set (__isl_keep isl_basic_set *bset, int track)
struct isl_tabisl_tab_from_recession_cone (__isl_keep isl_basic_set *bset, int parametric)
isl_bool isl_tab_cone_is_bounded (struct isl_tab *tab)
int isl_tab_sample_is_integer (struct isl_tab *tab)
static struct isl_vecextract_integer_sample (struct isl_tab *tab)
__isl_give isl_vecisl_tab_get_sample_value (struct isl_tab *tab)
static void get_rounded_sample_value (struct isl_tab *tab, struct isl_tab_var *var, int sgn, isl_int *v)
__isl_give isl_basic_mapisl_basic_map_update_from_tab (__isl_take isl_basic_map *bmap, struct isl_tab *tab)
__isl_give isl_basic_setisl_basic_set_update_from_tab (__isl_take isl_basic_set *bset, struct isl_tab *tab)
static isl_stat drop_last_con_in_row (struct isl_tab *tab, int r)
static isl_stat cut_to_hyperplane (struct isl_tab *tab, struct isl_tab_var *var)
static isl_stat isl_tab_check_con (struct isl_tab *tab, int con)
int isl_tab_relax (struct isl_tab *tab, int con)
int isl_tab_shift_var (struct isl_tab *tab, int pos, isl_int shift)
int isl_tab_unrestrict (struct isl_tab *tab, int con)
int isl_tab_select_facet (struct isl_tab *tab, int con)
static int may_be_equality (struct isl_tab *tab, int row)
static struct isl_tab_varselect_marked (struct isl_tab *tab)
int isl_tab_detect_implicit_equalities (struct isl_tab *tab)
static int update_con_after_move (struct isl_tab *tab, int i, int old)
isl_stat isl_tab_swap_constraints (struct isl_tab *tab, int con1, int con2)
static int rotate_constraints (struct isl_tab *tab, int first, int n)
static isl_stat con_drop_entries (struct isl_tab *tab, unsigned first, unsigned n)
static isl_stat swap_eq (unsigned a, unsigned b, void *user)
static isl_stat drop_eq (unsigned n, void *user)
static __isl_give isl_basic_mapgauss_if_shared (__isl_take isl_basic_map *bmap, struct isl_tab *tab)
__isl_give isl_basic_mapisl_tab_make_equalities_explicit (struct isl_tab *tab, __isl_take isl_basic_map *bmap)
static int con_is_redundant (struct isl_tab *tab, struct isl_tab_var *var)
int isl_tab_detect_redundant (struct isl_tab *tab)
int isl_tab_is_equality (struct isl_tab *tab, int con)
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)
int isl_tab_is_redundant (struct isl_tab *tab, int con)
static isl_bool is_constant (struct isl_tab *tab, struct isl_tab_var *var, isl_int *value)
static int reached (struct isl_tab *tab, struct isl_tab_var *var, int sgn, isl_int target, isl_int *tmp)
static isl_bool var_reaches (struct isl_tab *tab, struct isl_tab_var *var, int sgn, isl_int target, isl_int *tmp)
static isl_bool detect_constant_with_tmp (struct isl_tab *tab, struct isl_tab_var *var, isl_int *target, isl_int *tmp)
static isl_bool get_constant (struct isl_tab *tab, struct isl_tab_var *var, isl_int *value)
isl_bool isl_tab_is_constant (struct isl_tab *tab, int var, isl_int *value)
isl_stat isl_tab_detect_constants (struct isl_tab *tab)
struct isl_tab_undoisl_tab_snap (struct isl_tab *tab)
isl_bool isl_tab_need_undo (struct isl_tab *tab)
void isl_tab_clear_undo (struct isl_tab *tab)
static isl_stat unrelax (struct isl_tab *tab, struct isl_tab_var *var) WARN_UNUSED
static isl_stat ununrestrict (struct isl_tab *tab, struct isl_tab_var *var)
static isl_stat restore_last_redundant (struct isl_tab *tab)
static isl_stat perform_undo_var (struct isl_tab *tab, struct isl_tab_undo *undo) WARN_UNUSED
isl_stat isl_tab_restore_redundant (struct isl_tab *tab)
static isl_stat drop_bmap_div (struct isl_tab *tab, int pos)
static int restore_basis (struct isl_tab *tab, int *col_var)
static void drop_samples_since (struct isl_tab *tab, int n)
static isl_stat perform_undo (struct isl_tab *tab, struct isl_tab_undo *undo) WARN_UNUSED
isl_stat isl_tab_rollback (struct isl_tab *tab, struct isl_tab_undo *snap)
static enum isl_ineq_type separation_type (struct isl_tab *tab, unsigned row)
enum isl_ineq_type isl_tab_ineq_type (struct isl_tab *tab, isl_int *ineq)
isl_stat isl_tab_track_bmap (struct isl_tab *tab, __isl_take isl_basic_map *bmap)
isl_stat isl_tab_track_bset (struct isl_tab *tab, __isl_take isl_basic_set *bset)
__isl_keep isl_basic_setisl_tab_peek_bset (struct isl_tab *tab)
static void isl_tab_print_internal (__isl_keep struct isl_tab *tab, FILE *out, int indent)
void isl_tab_dump (__isl_keep struct isl_tab *tab)

Function Documentation

◆ add_div_constraints()

isl_stat add_div_constraints ( struct isl_tab * tab,
unsigned div,
isl_stat(* add_ineq )(void *user, isl_int *),
void * user )
static

◆ add_eq()

◆ add_zero_row()

int add_zero_row ( struct isl_tab * tab)
static

◆ at_least_one()

int at_least_one ( struct isl_tab * tab,
struct isl_tab_var * var )
static

◆ at_least_zero()

int at_least_zero ( struct isl_tab * tab,
struct isl_tab_var * var )
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().

◆ check_table()

◆ close_row()

◆ con_drop_entries()

isl_stat con_drop_entries ( struct isl_tab * tab,
unsigned first,
unsigned n )
static

◆ con_is_redundant()

int con_is_redundant ( struct isl_tab * tab,
struct isl_tab_var * var )
static

◆ cut_to_hyperplane()

◆ detect_constant_with_tmp()

◆ div_is_nonneg()

int div_is_nonneg ( struct isl_tab * tab,
__isl_keep isl_vec * div )
static

◆ drop_bmap_div()

isl_stat drop_bmap_div ( struct isl_tab * tab,
int pos )
static

◆ drop_col()

isl_stat drop_col ( struct isl_tab * tab,
int col )
static

◆ drop_eq()

isl_stat drop_eq ( unsigned n,
void * user )
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().

◆ drop_last_con_in_row()

isl_stat drop_last_con_in_row ( struct isl_tab * tab,
int r )
static

◆ drop_row()

◆ drop_samples_since()

void drop_samples_since ( struct isl_tab * tab,
int n )
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().

◆ extract_integer_sample()

◆ find_pivot()

◆ free_undo()

void free_undo ( struct isl_tab * tab)
static

◆ free_undo_record()

void free_undo_record ( struct isl_tab_undo * undo)
static

◆ gauss_if_shared()

◆ get_constant()

isl_bool get_constant ( struct isl_tab * tab,
struct isl_tab_var * var,
isl_int * value )
static

◆ get_rounded_sample_value()

void get_rounded_sample_value ( struct isl_tab * tab,
struct isl_tab_var * var,
int sgn,
isl_int * v )
static

◆ ineq_for_div()

__isl_give isl_vec * ineq_for_div ( __isl_keep isl_basic_map * bmap,
unsigned div )
static

◆ is_constant()

isl_bool is_constant ( struct isl_tab * tab,
struct isl_tab_var * var,
isl_int * value )
static

◆ isl_basic_map_update_from_tab()

◆ isl_basic_set_update_from_tab()

◆ isl_tab_add_div()

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_keep, isl_tab_insert_div(), and isl_tab::n_var.

Referenced by tab_add_divs().

◆ isl_tab_add_eq()

◆ isl_tab_add_ineq()

◆ isl_tab_add_row()

◆ isl_tab_add_sample()

◆ isl_tab_add_valid_eq()

◆ isl_tab_alloc()

◆ isl_tab_allocate_con()

◆ isl_tab_check_con()

isl_stat isl_tab_check_con ( struct isl_tab * tab,
int con )
static

◆ isl_tab_clear_undo()

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().

◆ isl_tab_cone_is_bounded()

◆ isl_tab_detect_constants()

isl_stat isl_tab_detect_constants ( struct isl_tab * tab)

◆ isl_tab_detect_implicit_equalities()

◆ isl_tab_detect_redundant()

◆ isl_tab_drop_sample()

struct isl_tab * isl_tab_drop_sample ( struct isl_tab * tab,
int s )

◆ isl_tab_dump()

void isl_tab_dump ( __isl_keep struct isl_tab * tab)

Definition at line 4256 of file isl_tab.c.

References __isl_keep, and isl_tab_print_internal().

◆ isl_tab_dup()

◆ isl_tab_extend_cons()

◆ isl_tab_extend_vars()

◆ isl_tab_free()

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().

◆ isl_tab_freeze_constraint()

int isl_tab_freeze_constraint ( struct isl_tab * tab,
int con )

◆ isl_tab_from_basic_map()

◆ isl_tab_from_basic_set()

◆ isl_tab_from_recession_cone()

◆ isl_tab_get_ctx()

◆ isl_tab_get_sample_value()

◆ isl_tab_ineq_type()

◆ isl_tab_init_samples()

◆ isl_tab_insert_div()

◆ isl_tab_insert_var()

◆ isl_tab_is_constant()

isl_bool isl_tab_is_constant ( struct isl_tab * tab,
int var,
isl_int * value )

◆ isl_tab_is_equality()

◆ isl_tab_is_redundant()

◆ isl_tab_kill_col()

◆ isl_tab_make_equalities_explicit()

◆ isl_tab_mark_empty()

◆ isl_tab_mark_rational()

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().

◆ isl_tab_mark_redundant()

◆ isl_tab_min()

◆ isl_tab_min_at_most_neg_one()

◆ isl_tab_need_undo()

isl_bool isl_tab_need_undo ( struct isl_tab * tab)

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_tab_peek_bset()

◆ isl_tab_pivot()

◆ isl_tab_print_internal()

void isl_tab_print_internal ( __isl_keep struct isl_tab * tab,
FILE * out,
int indent )
static

◆ isl_tab_product()

◆ isl_tab_push()

isl_stat isl_tab_push ( struct isl_tab * tab,
enum isl_tab_undo_type type )

◆ isl_tab_push_basis()

◆ isl_tab_push_callback()

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_tab_push_var()

◆ isl_tab_relax()

◆ isl_tab_restore_redundant()

◆ isl_tab_rollback()

◆ isl_tab_row_is_redundant()

◆ isl_tab_sample_is_integer()

◆ isl_tab_save_samples()

isl_stat isl_tab_save_samples ( struct isl_tab * tab)

◆ isl_tab_select_facet()

int isl_tab_select_facet ( struct isl_tab * tab,
int con )

◆ isl_tab_shift_var()

◆ isl_tab_sign_of_max()

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().

◆ isl_tab_snap()

◆ isl_tab_swap_constraints()

isl_stat isl_tab_swap_constraints ( struct isl_tab * tab,
int con1,
int con2 )

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_tab_track_bmap()

◆ isl_tab_track_bset()

isl_stat isl_tab_track_bset ( struct isl_tab * tab,
__isl_take isl_basic_set * bset )

◆ isl_tab_unrestrict()

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().

◆ isl_tab_var_from_row()

◆ max_is_manifestly_unbounded()

int max_is_manifestly_unbounded ( struct isl_tab * tab,
struct isl_tab_var * var )
static

◆ may_be_equality()

int may_be_equality ( struct isl_tab * tab,
int row )
static

◆ min_is_manifestly_unbounded()

◆ perform_undo()

◆ perform_undo_var()

◆ pivot_row()

◆ push_union()

◆ reached()

int reached ( struct isl_tab * tab,
struct isl_tab_var * var,
int sgn,
isl_int target,
isl_int * tmp )
static

◆ restore_basis()

int restore_basis ( struct isl_tab * tab,
int * col_var )
static

◆ restore_last_redundant()

isl_stat restore_last_redundant ( struct isl_tab * tab)
static

◆ restore_row()

int restore_row ( struct isl_tab * tab,
struct isl_tab_var * var )
static

◆ rotate_constraints()

int rotate_constraints ( struct isl_tab * tab,
int first,
int n )
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().

◆ row_at_most_neg_one()

int row_at_most_neg_one ( struct isl_tab * tab,
int row )
static

◆ row_cmp()

int row_cmp ( struct isl_tab * tab,
int r1,
int r2,
int c,
isl_int * t )
static

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().

◆ row_is_big()

int row_is_big ( struct isl_tab * tab,
int row )
static

◆ row_is_manifestly_non_integral()

int row_is_manifestly_non_integral ( struct isl_tab * tab,
int row )
static

◆ row_is_manifestly_zero()

int row_is_manifestly_zero ( struct isl_tab * tab,
int row )
static

◆ row_is_neg()

int row_is_neg ( struct isl_tab * tab,
int row )
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().

◆ row_sgn()

int row_sgn ( struct isl_tab * tab,
int 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().

◆ select_marked()

struct isl_tab_var * select_marked ( struct isl_tab * tab)
static

◆ separation_type()

◆ sign_of_max()

◆ sign_of_min()

◆ swap_cols()

void swap_cols ( struct isl_tab * tab,
int col1,
int col2 )
static

◆ swap_eq()

isl_stat swap_eq ( unsigned a,
unsigned b,
void * user )
static

Definition at line 3126 of file isl_tab.c.

References a(), b(), isl_tab_swap_constraints(), and user.

Referenced by gauss_if_shared().

◆ swap_rows()

void swap_rows ( struct isl_tab * tab,
int row1,
int row2 )
static

◆ tab_is_manifestly_empty()

int tab_is_manifestly_empty ( struct isl_tab * tab)
static

◆ tab_mat_product()

__isl_give isl_mat * tab_mat_product ( __isl_keep isl_mat * mat1,
__isl_keep isl_mat * mat2,
unsigned row1,
unsigned row2,
unsigned col1,
unsigned col2,
unsigned off,
unsigned r1,
unsigned r2,
unsigned d1,
unsigned d2 )
static

Definition at line 323 of file isl_tab.c.

References __isl_give, __isl_keep, isl_mat_alloc(), isl_seq_clr(), isl_seq_cpy(), n, and isl_mat::row.

Referenced by isl_tab_product().

◆ to_col()

int to_col ( struct isl_tab * tab,
struct isl_tab_var * var )
static

◆ to_row()

◆ unrelax()

◆ ununrestrict()

isl_stat ununrestrict ( struct isl_tab * tab,
struct isl_tab_var * 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().

◆ update_con_after_move()

int update_con_after_move ( struct isl_tab * tab,
int i,
int old )
static

◆ update_index1()

void update_index1 ( struct isl_tab_var * var,
unsigned r1,
unsigned r2,
unsigned d1,
unsigned d2 )
static

Definition at line 383 of file isl_tab.c.

References var().

Referenced by isl_tab_product().

◆ update_index2()

void update_index2 ( struct isl_tab_var * var,
unsigned row1,
unsigned col1,
unsigned r1,
unsigned r2,
unsigned d1,
unsigned d2 )
static

Definition at line 397 of file isl_tab.c.

References var().

Referenced by isl_tab_product().

◆ update_row_sign()

void update_row_sign ( struct isl_tab * tab,
int row,
int col,
int row_sgn )
static

◆ var_drop_entry()

int var_drop_entry ( struct isl_tab * tab,
int first )
static

◆ var_from_col()

◆ var_from_index()

struct isl_tab_var * var_from_index ( struct isl_tab * tab,
int i )
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().

◆ var_insert_entry()

int var_insert_entry ( struct isl_tab * tab,
int first )
static

◆ var_reaches()

isl_bool var_reaches ( struct isl_tab * tab,
struct isl_tab_var * var,
int sgn,
isl_int target,
isl_int * tmp )
static