Polly 20.0.0git
Functions
isl_mat.c File Reference
#include <isl_ctx_private.h>
#include <isl_map_private.h>
#include <isl/space.h>
#include <isl_seq.h>
#include <isl_mat_private.h>
#include <isl_vec_private.h>
#include <isl_space_private.h>
#include <isl_val_private.h>

Go to the source code of this file.

Functions

isl_ctxisl_mat_get_ctx (__isl_keep isl_mat *mat)
 
uint32_t isl_mat_get_hash (__isl_keep isl_mat *mat)
 
__isl_give isl_matisl_mat_alloc (isl_ctx *ctx, unsigned n_row, unsigned n_col)
 
__isl_give isl_matisl_mat_extend (__isl_take isl_mat *mat, unsigned n_row, unsigned n_col)
 
__isl_give isl_matisl_mat_sub_alloc6 (isl_ctx *ctx, isl_int **row, unsigned first_row, unsigned n_row, unsigned first_col, unsigned n_col)
 
__isl_give isl_matisl_mat_sub_alloc (__isl_keep isl_mat *mat, unsigned first_row, unsigned n_row, unsigned first_col, unsigned n_col)
 
void isl_mat_sub_copy (struct isl_ctx *ctx, isl_int **dst, isl_int **src, unsigned n_row, unsigned dst_col, unsigned src_col, unsigned n_col)
 
void isl_mat_sub_neg (struct isl_ctx *ctx, isl_int **dst, isl_int **src, unsigned n_row, unsigned dst_col, unsigned src_col, unsigned n_col)
 
__isl_give isl_matisl_mat_copy (__isl_keep isl_mat *mat)
 
__isl_give isl_matisl_mat_dup (__isl_keep isl_mat *mat)
 
__isl_give isl_matisl_mat_cow (__isl_take isl_mat *mat)
 
__isl_null isl_matisl_mat_free (__isl_take isl_mat *mat)
 
isl_size isl_mat_rows (__isl_keep isl_mat *mat)
 
isl_size isl_mat_cols (__isl_keep isl_mat *mat)
 
static isl_stat check_col (__isl_keep isl_mat *mat, int col)
 
static isl_stat check_row (__isl_keep isl_mat *mat, int row)
 
static isl_stat check_col_range (__isl_keep isl_mat *mat, unsigned first, unsigned n)
 
static isl_stat check_row_range (__isl_keep isl_mat *mat, unsigned first, unsigned n)
 
int isl_mat_get_element (__isl_keep isl_mat *mat, int row, int col, isl_int *v)
 
__isl_give isl_valisl_mat_get_element_val (__isl_keep isl_mat *mat, int row, int col)
 
__isl_give isl_matisl_mat_set_element (__isl_take isl_mat *mat, int row, int col, isl_int v)
 
__isl_give isl_matisl_mat_set_element_si (__isl_take isl_mat *mat, int row, int col, int v)
 
__isl_give isl_matisl_mat_set_element_val (__isl_take isl_mat *mat, int row, int col, __isl_take isl_val *v)
 
__isl_give isl_matisl_mat_diag (isl_ctx *ctx, unsigned n_row, isl_int d)
 
__isl_give isl_matisl_mat_zero (isl_ctx *ctx, unsigned n_row, unsigned n_col)
 
__isl_give isl_matisl_mat_identity (isl_ctx *ctx, unsigned n_row)
 
isl_bool isl_mat_is_scaled_identity (__isl_keep isl_mat *mat)
 
__isl_give isl_vecisl_mat_vec_product (__isl_take isl_mat *mat, __isl_take isl_vec *vec)
 
__isl_give isl_vecisl_mat_vec_inverse_product (__isl_take isl_mat *mat, __isl_take isl_vec *vec)
 
__isl_give isl_vecisl_vec_mat_product (__isl_take isl_vec *vec, __isl_take isl_mat *mat)
 
__isl_give isl_matisl_mat_aff_direct_sum (__isl_take isl_mat *left, __isl_take isl_mat *right)
 
static void exchange (__isl_keep isl_mat *M, __isl_keep isl_mat **U, __isl_keep isl_mat **Q, unsigned row, unsigned i, unsigned j)
 
static void subtract (__isl_keep isl_mat *M, __isl_keep isl_mat **U, __isl_keep isl_mat **Q, unsigned row, unsigned i, unsigned j, isl_int m)
 
static void oppose (__isl_keep isl_mat *M, __isl_keep isl_mat **U, __isl_keep isl_mat **Q, unsigned row, unsigned col)
 
__isl_give isl_matisl_mat_left_hermite (__isl_take isl_mat *M, int neg, __isl_give isl_mat **U, __isl_give isl_mat **Q)
 
static __isl_give isl_mateliminate (__isl_take isl_mat *mat, int row, int col)
 
__isl_give isl_matisl_mat_reverse_gauss (__isl_take isl_mat *mat)
 
__isl_give isl_matisl_mat_lexnonneg_rows (__isl_take isl_mat *mat)
 
static int hermite_first_zero_col (__isl_keep isl_mat *H, int first_col, int n_row)
 
isl_size isl_mat_rank (__isl_keep isl_mat *mat)
 
__isl_give isl_matisl_mat_right_kernel (__isl_take isl_mat *mat)
 
__isl_give isl_matisl_mat_lin_to_aff (__isl_take isl_mat *mat)
 
__isl_give isl_matisl_mat_diagonal (__isl_take isl_mat *mat1, __isl_take isl_mat *mat2)
 
static int row_first_non_zero (isl_int **row, unsigned n_row, unsigned col)
 
static int row_abs_min_non_zero (isl_int **row, unsigned n_row, unsigned col)
 
static isl_stat inv_exchange (__isl_keep isl_mat **left, __isl_keep isl_mat **right, unsigned i, unsigned j)
 
static void inv_oppose (__isl_keep isl_mat *left, __isl_keep isl_mat *right, unsigned row)
 
static void inv_subtract (__isl_keep isl_mat *left, __isl_keep isl_mat *right, unsigned row, unsigned i, isl_int m)
 
__isl_give isl_matisl_mat_inverse_product (__isl_take isl_mat *left, __isl_take isl_mat *right)
 
void isl_mat_col_scale (__isl_keep isl_mat *mat, unsigned col, isl_int m)
 
void isl_mat_col_combine (__isl_keep isl_mat *mat, unsigned dst, isl_int m1, unsigned src1, isl_int m2, unsigned src2)
 
__isl_give isl_matisl_mat_right_inverse (__isl_take isl_mat *mat)
 
__isl_give isl_matisl_mat_transpose (__isl_take isl_mat *mat)
 
__isl_give isl_matisl_mat_swap_cols (__isl_take isl_mat *mat, unsigned i, unsigned j)
 
__isl_give isl_matisl_mat_swap_rows (__isl_take isl_mat *mat, unsigned i, unsigned j)
 
__isl_give isl_matisl_mat_product (__isl_take isl_mat *left, __isl_take isl_mat *right)
 
static int preimage (struct isl_ctx *ctx, isl_int **q, unsigned n, unsigned n_div, int has_div, struct isl_mat *mat)
 
__isl_give isl_basic_setisl_basic_set_preimage (__isl_take isl_basic_set *bset, __isl_take isl_mat *mat)
 
__isl_give isl_setisl_set_preimage (__isl_take isl_set *set, __isl_take isl_mat *mat)
 
isl_stat isl_mat_sub_transform (isl_int **row, unsigned n_row, unsigned first_col, __isl_take isl_mat *mat)
 
void isl_mat_print_internal (__isl_keep isl_mat *mat, FILE *out, int indent)
 
void isl_mat_dump (__isl_keep isl_mat *mat)
 
__isl_give isl_matisl_mat_drop_cols (__isl_take isl_mat *mat, unsigned col, unsigned n)
 
__isl_give isl_matisl_mat_drop_rows (__isl_take isl_mat *mat, unsigned row, unsigned n)
 
__isl_give isl_matisl_mat_insert_cols (__isl_take isl_mat *mat, unsigned col, unsigned n)
 
__isl_give isl_matisl_mat_insert_zero_cols (__isl_take isl_mat *mat, unsigned first, unsigned n)
 
__isl_give isl_matisl_mat_add_zero_cols (__isl_take isl_mat *mat, unsigned n)
 
__isl_give isl_matisl_mat_insert_rows (__isl_take isl_mat *mat, unsigned row, unsigned n)
 
__isl_give isl_matisl_mat_add_rows (__isl_take isl_mat *mat, unsigned n)
 
__isl_give isl_matisl_mat_insert_zero_rows (__isl_take isl_mat *mat, unsigned row, unsigned n)
 
__isl_give isl_matisl_mat_add_zero_rows (__isl_take isl_mat *mat, unsigned n)
 
void isl_mat_col_submul (__isl_keep isl_mat *mat, int dst_col, isl_int f, int src_col)
 
void isl_mat_col_add (__isl_keep isl_mat *mat, int dst_col, int src_col)
 
void isl_mat_col_mul (__isl_keep isl_mat *mat, int dst_col, isl_int f, int src_col)
 
__isl_give isl_matisl_mat_col_addmul (__isl_take isl_mat *mat, int dst_col, isl_int f, int src_col)
 
__isl_give isl_matisl_mat_col_neg (__isl_take isl_mat *mat, int col)
 
__isl_give isl_matisl_mat_row_neg (__isl_take isl_mat *mat, int row)
 
__isl_give isl_matisl_mat_unimodular_complete (__isl_take isl_mat *M, int row)
 
__isl_give isl_matisl_mat_concat (__isl_take isl_mat *top, __isl_take isl_mat *bot)
 
isl_bool isl_mat_is_equal (__isl_keep isl_mat *mat1, __isl_keep isl_mat *mat2)
 
__isl_give isl_matisl_mat_from_row_vec (__isl_take isl_vec *vec)
 
__isl_give isl_vecisl_mat_get_row (__isl_keep isl_mat *mat, unsigned row)
 
__isl_give isl_matisl_mat_vec_concat (__isl_take isl_mat *top, __isl_take isl_vec *bot)
 
__isl_give isl_matisl_mat_move_cols (__isl_take isl_mat *mat, unsigned dst_col, unsigned src_col, unsigned n)
 
isl_stat isl_mat_row_gcd (__isl_keep isl_mat *mat, int row, isl_int *gcd)
 
void isl_mat_gcd (__isl_keep isl_mat *mat, isl_int *gcd)
 
__isl_give isl_matisl_mat_scale (__isl_take isl_mat *mat, isl_int m)
 
__isl_give isl_matisl_mat_scale_down (__isl_take isl_mat *mat, isl_int m)
 
__isl_give isl_matisl_mat_scale_down_row (__isl_take isl_mat *mat, int row, isl_int m)
 
__isl_give isl_matisl_mat_normalize (__isl_take isl_mat *mat)
 
__isl_give isl_matisl_mat_normalize_row (__isl_take isl_mat *mat, int row)
 
int isl_mat_initial_non_zero_cols (__isl_keep isl_mat *mat)
 
__isl_give isl_matisl_mat_row_basis (__isl_take isl_mat *mat)
 
__isl_give isl_matisl_mat_row_basis_extension (__isl_take isl_mat *mat1, __isl_take isl_mat *mat2)
 
isl_bool isl_mat_has_linearly_independent_rows (__isl_keep isl_mat *mat1, __isl_keep isl_mat *mat2)
 

Function Documentation

◆ check_col()

static isl_stat check_col ( __isl_keep isl_mat mat,
int  col 
)
static

◆ check_col_range()

static isl_stat check_col_range ( __isl_keep isl_mat mat,
unsigned  first,
unsigned  n 
)
static

◆ check_row()

static isl_stat check_row ( __isl_keep isl_mat mat,
int  row 
)
static

◆ check_row_range()

static isl_stat check_row_range ( __isl_keep isl_mat mat,
unsigned  first,
unsigned  n 
)
static

◆ eliminate()

static __isl_give isl_mat * eliminate ( __isl_take isl_mat mat,
int  row,
int  col 
)
static

◆ exchange()

static void exchange ( __isl_keep isl_mat M,
__isl_keep isl_mat **  U,
__isl_keep isl_mat **  Q,
unsigned  row,
unsigned  i,
unsigned  j 
)
static

Definition at line 585 of file isl_mat.c.

References isl_int_swap, isl_mat_swap_rows(), M(), and isl_mat::row.

Referenced by isl_mat_left_hermite(), and isl_mat_right_inverse().

◆ hermite_first_zero_col()

static int hermite_first_zero_col ( __isl_keep isl_mat H,
int  first_col,
int  n_row 
)
static

◆ inv_exchange()

static isl_stat inv_exchange ( __isl_keep isl_mat **  left,
__isl_keep isl_mat **  right,
unsigned  i,
unsigned  j 
)
static

Definition at line 976 of file isl_mat.c.

References isl_mat_swap_rows(), isl_stat_error, and isl_stat_ok.

Referenced by isl_mat_inverse_product().

◆ inv_oppose()

static void inv_oppose ( __isl_keep isl_mat left,
__isl_keep isl_mat right,
unsigned  row 
)
static

Definition at line 987 of file isl_mat.c.

References isl_seq_neg(), and isl_mat::row.

Referenced by isl_mat_inverse_product().

◆ inv_subtract()

static void inv_subtract ( __isl_keep isl_mat left,
__isl_keep isl_mat right,
unsigned  row,
unsigned  i,
isl_int  m 
)
static

Definition at line 994 of file isl_mat.c.

References isl_int_neg, isl_seq_combine(), m, and isl_mat::row.

Referenced by isl_mat_inverse_product().

◆ isl_basic_set_preimage()

__isl_give isl_basic_set * isl_basic_set_preimage ( __isl_take isl_basic_set bset,
__isl_take isl_mat mat 
)

◆ isl_mat_add_rows()

__isl_give isl_mat * isl_mat_add_rows ( __isl_take isl_mat mat,
unsigned  n 
)

◆ isl_mat_add_zero_cols()

__isl_give isl_mat * isl_mat_add_zero_cols ( __isl_take isl_mat mat,
unsigned  n 
)

Definition at line 1584 of file isl_mat.c.

References isl_mat_insert_zero_cols(), and n.

Referenced by isl_local_space_add_div(), and isl_local_space_preimage_multi_aff().

◆ isl_mat_add_zero_rows()

__isl_give isl_mat * isl_mat_add_zero_rows ( __isl_take isl_mat mat,
unsigned  n 
)

Definition at line 1640 of file isl_mat.c.

References isl_mat_insert_zero_rows(), and n.

◆ isl_mat_aff_direct_sum()

__isl_give isl_mat * isl_mat_aff_direct_sum ( __isl_take isl_mat left,
__isl_take isl_mat right 
)

◆ isl_mat_alloc()

__isl_give isl_mat * isl_mat_alloc ( isl_ctx ctx,
unsigned  n_row,
unsigned  n_col 
)

Definition at line 53 of file isl_mat.c.

References isl_mat::block, isl_mat::ctx, isl_blk::data, isl_mat::flags, isl_alloc_type, isl_blk_alloc(), isl_blk_free(), isl_blk_is_error(), isl_calloc_array, isl_ctx_ref(), isl_mat::max_col, isl_mat::n_col, isl_mat::n_row, isl_mat::ref, and isl_mat::row.

Referenced by add_node(), can_wrap_in_facet(), check_eq_adj_eq(), compute_facet(), construct_extended_path(), construct_trivial(), convex_hull_1d(), convex_hull_pair_pointed(), empty_compression(), initial_facet_constraint(), is_adj_ineq_extension(), isl_basic_map_drop_redundant_divs(), isl_basic_map_equalities_matrix(), isl_basic_map_get_divs(), isl_basic_map_inequalities_matrix(), isl_basic_set_compute_vertices(), isl_basic_set_dim_residue_class(), isl_basic_set_factorizer(), isl_basic_set_scan_samples(), isl_local_reorder(), isl_local_space_alloc(), isl_mat_aff_direct_sum(), isl_mat_concat(), isl_mat_diag(), isl_mat_diagonal(), isl_mat_dup(), isl_mat_extend(), isl_mat_final_variable_compression(), isl_mat_from_row_vec(), isl_mat_insert_cols(), isl_mat_insert_rows(), isl_mat_lin_to_aff(), isl_mat_move_cols(), isl_mat_parameter_compression(), isl_mat_product(), isl_mat_right_kernel(), isl_mat_transpose(), isl_mat_vec_inverse_product(), isl_mat_zero(), isl_merge_divs(), isl_qpolynomial_alloc(), isl_set_wrap_facet(), isl_tab_alloc(), isl_tab_init_samples(), node_transformation(), parameter_compression_1(), parameter_compression_multi(), particular_solution(), plug_in(), SF(), sol_add(), tab_equalities(), tab_mat_product(), uset_unshifted_simple_hull_from_basic_set_list(), and wrap_in_facets().

◆ isl_mat_col_add()

void isl_mat_col_add ( __isl_keep isl_mat mat,
int  dst_col,
int  src_col 
)

Definition at line 1657 of file isl_mat.c.

References isl_int_add.

Referenced by sort_divs().

◆ isl_mat_col_addmul()

__isl_give isl_mat * isl_mat_col_addmul ( __isl_take isl_mat mat,
int  dst_col,
isl_int  f,
int  src_col 
)

Definition at line 1681 of file isl_mat.c.

References check_col(), f, isl_int_addmul, isl_int_is_zero, isl_mat_cow(), and isl_mat_free().

Referenced by reduce_div().

◆ isl_mat_col_combine()

void isl_mat_col_combine ( __isl_keep isl_mat mat,
unsigned  dst,
isl_int  m1,
unsigned  src1,
isl_int  m2,
unsigned  src2 
)

Definition at line 1109 of file isl_mat.c.

References isl_int_addmul, isl_int_clear, isl_int_init, isl_int_mul, and isl_int_set.

Referenced by isl_mat_right_inverse().

◆ isl_mat_col_mul()

void isl_mat_col_mul ( __isl_keep isl_mat mat,
int  dst_col,
isl_int  f,
int  src_col 
)

Definition at line 1669 of file isl_mat.c.

References f, and isl_int_mul.

Referenced by invert_div(), and parameter_compression_1().

◆ isl_mat_col_neg()

__isl_give isl_mat * isl_mat_col_neg ( __isl_take isl_mat mat,
int  col 
)

Definition at line 1703 of file isl_mat.c.

References check_col(), isl_int_is_zero, isl_int_neg, isl_mat_cow(), and isl_mat_free().

Referenced by invert_div().

◆ isl_mat_col_scale()

void isl_mat_col_scale ( __isl_keep isl_mat mat,
unsigned  col,
isl_int  m 
)

Definition at line 1101 of file isl_mat.c.

References isl_int_mul, and m.

Referenced by isl_mat_right_inverse().

◆ isl_mat_col_submul()

void isl_mat_col_submul ( __isl_keep isl_mat mat,
int  dst_col,
isl_int  f,
int  src_col 
)

Definition at line 1648 of file isl_mat.c.

References f, and isl_int_submul.

Referenced by normalize_divs().

◆ isl_mat_cols()

isl_size isl_mat_cols ( __isl_keep isl_mat mat)

◆ isl_mat_concat()

__isl_give isl_mat * isl_mat_concat ( __isl_take isl_mat top,
__isl_take isl_mat bot 
)

◆ isl_mat_copy()

__isl_give isl_mat * isl_mat_copy ( __isl_keep isl_mat mat)

◆ isl_mat_cow()

__isl_give isl_mat * isl_mat_cow ( __isl_take isl_mat mat)

◆ isl_mat_diag()

__isl_give isl_mat * isl_mat_diag ( isl_ctx ctx,
unsigned  n_row,
isl_int  d 
)

◆ isl_mat_diagonal()

__isl_give isl_mat * isl_mat_diagonal ( __isl_take isl_mat mat1,
__isl_take isl_mat mat2 
)

◆ isl_mat_drop_cols()

__isl_give isl_mat * isl_mat_drop_cols ( __isl_take isl_mat mat,
unsigned  col,
unsigned  n 
)

◆ isl_mat_drop_rows()

__isl_give isl_mat * isl_mat_drop_rows ( __isl_take isl_mat mat,
unsigned  row,
unsigned  n 
)

◆ isl_mat_dump()

void isl_mat_dump ( __isl_keep isl_mat mat)

Definition at line 1500 of file isl_mat.c.

References isl_mat_print_internal().

◆ isl_mat_dup()

__isl_give isl_mat * isl_mat_dup ( __isl_keep isl_mat mat)

Definition at line 211 of file isl_mat.c.

References isl_mat_alloc(), isl_seq_cpy(), and isl_mat::row.

Referenced by isl_mat_cow(), and isl_tab_dup().

◆ isl_mat_extend()

__isl_give isl_mat * isl_mat_extend ( __isl_take isl_mat mat,
unsigned  n_row,
unsigned  n_col 
)

◆ isl_mat_free()

__isl_null isl_mat * isl_mat_free ( __isl_take isl_mat mat)

Definition at line 240 of file isl_mat.c.

References isl_blk_free(), isl_ctx_deref(), ISL_F_ISSET, and ISL_MAT_BORROWED.

Referenced by affine_hull_with_cone(), basic_map_from_equalities(), basic_set_append_equalities(), basic_set_parameter_preimage(), clear_node(), coalesce_after_aligning_divs(), collect_inequalities(), common_constraints(), compress_variables(), construct_extended_path(), convex_hull_1d(), eliminate(), empty_compression(), equalities_in_underlying_set(), extract_compressed_stride_constraints(), gbr_get_sample(), gist_strides(), homogeneous_map(), identity_on_parameters(), initial_basis(), initial_facet_constraint(), initial_hull(), isl_aff_expand_divs(), isl_basic_map_equalities_matrix(), isl_basic_map_expand_divs(), isl_basic_map_from_constraint_matrices(), isl_basic_map_inequalities_matrix(), isl_basic_map_make_strides_explicit(), isl_basic_map_preimage_vars(), isl_basic_map_reduce_coefficients(), isl_basic_map_transform_dims(), isl_basic_set_compute_vertices(), isl_basic_set_dim_residue_class(), isl_basic_set_factorizer(), isl_basic_set_opt(), isl_basic_set_opt_lp_val_aligned(), isl_basic_set_preimage(), isl_basic_set_reduced_basis(), isl_basic_set_sample_with_cone(), isl_basic_set_scan(), isl_basic_set_scan_samples(), isl_basic_set_variable_compression(), isl_factorizer_groups(), isl_local_free(), isl_local_space_alloc_div(), isl_local_space_free(), isl_local_space_intersect(), isl_local_space_preimage_multi_aff(), isl_local_space_replace_divs(), isl_mat_aff_direct_sum(), isl_mat_col_addmul(), isl_mat_col_neg(), isl_mat_concat(), isl_mat_cow(), isl_mat_diagonal(), isl_mat_drop_cols(), isl_mat_drop_rows(), isl_mat_extend(), isl_mat_final_variable_compression(), isl_mat_has_linearly_independent_rows(), isl_mat_insert_cols(), isl_mat_insert_rows(), isl_mat_inverse_product(), isl_mat_left_hermite(), isl_mat_lexnonneg_rows(), isl_mat_lin_to_aff(), isl_mat_move_cols(), isl_mat_parameter_compression(), isl_mat_parameter_compression_ext(), isl_mat_product(), isl_mat_rank(), isl_mat_reverse_gauss(), isl_mat_right_inverse(), isl_mat_right_kernel(), isl_mat_row_basis_extension(), isl_mat_row_neg(), isl_mat_set_element(), isl_mat_set_element_si(), isl_mat_set_element_val(), isl_mat_sub_transform(), isl_mat_swap_cols(), isl_mat_swap_rows(), isl_mat_transpose(), isl_mat_unimodular_complete(), isl_mat_vec_inverse_product(), isl_mat_vec_product(), isl_morph_alloc(), isl_morph_free(), isl_multi_aff_from_aff_mat(), isl_qpolynomial_coeff(), isl_qpolynomial_dup(), isl_qpolynomial_free(), isl_qpolynomial_from_aff(), isl_qpolynomial_from_term(), isl_sched_node_update_vmap(), isl_set_preimage(), isl_set_wrap_facet(), isl_tab_compute_reduced_basis(), isl_tab_detect_equalities(), isl_tab_free(), isl_tab_set_initial_basis_with_cone(), isl_term_alloc(), isl_term_free(), isl_vec_mat_product(), main(), mark_all_unknown(), modulo_affine_hull(), modulo_lineality(), normalize_divs(), parameter_compression_multi(), parameter_compute_divs(), particular_solution(), preimage(), print_disjunct(), reduce_divs(), return_with_identity(), round_up_in_cone(), sample_eq(), set_append_equalities(), set_from_affine_matrix(), set_minimum(), set_minimum_pa(), set_parameter_preimage(), SF(), sol_add(), sol_push_sol_mat(), solve_ilp_with_eq(), solve_lp(), split_domain(), split_domain_pma(), tab_equalities(), tab_shift_cone(), tighten_on_relaxed_facet(), update_ineq_free(), uset_gist(), uset_gist_compressed(), uset_gist_full(), uset_unshifted_simple_hull_from_basic_set_list(), with_merged_divs(), and wraps_free().

◆ isl_mat_from_row_vec()

__isl_give isl_mat * isl_mat_from_row_vec ( __isl_take isl_vec vec)

Definition at line 1819 of file isl_mat.c.

References isl_mat_alloc(), isl_seq_cpy(), isl_vec_free(), and isl_mat::row.

Referenced by isl_mat_vec_concat().

◆ isl_mat_gcd()

void isl_mat_gcd ( __isl_keep isl_mat mat,
isl_int gcd 
)

Definition at line 1920 of file isl_mat.c.

References gcd(), isl_int_clear, isl_int_gcd, isl_int_init, isl_int_set_si, and isl_seq_gcd().

Referenced by isl_mat_normalize().

◆ isl_mat_get_ctx()

isl_ctx * isl_mat_get_ctx ( __isl_keep isl_mat mat)

◆ isl_mat_get_element()

int isl_mat_get_element ( __isl_keep isl_mat mat,
int  row,
int  col,
isl_int v 
)

Definition at line 319 of file isl_mat.c.

References check_col(), check_row(), isl_int_set, and isl_mat::row.

Referenced by extract_schedule_row().

◆ isl_mat_get_element_val()

__isl_give isl_val * isl_mat_get_element_val ( __isl_keep isl_mat mat,
int  row,
int  col 
)

◆ isl_mat_get_hash()

uint32_t isl_mat_get_hash ( __isl_keep isl_mat mat)

Definition at line 32 of file isl_mat.c.

References isl_hash_byte, isl_hash_hash, isl_hash_init, and isl_seq_get_hash().

Referenced by isl_local_space_get_hash().

◆ isl_mat_get_row()

__isl_give isl_vec * isl_mat_get_row ( __isl_keep isl_mat mat,
unsigned  row 
)

◆ isl_mat_has_linearly_independent_rows()

isl_bool isl_mat_has_linearly_independent_rows ( __isl_keep isl_mat mat1,
__isl_keep isl_mat mat2 
)

◆ isl_mat_identity()

__isl_give isl_mat * isl_mat_identity ( isl_ctx ctx,
unsigned  n_row 
)

◆ isl_mat_initial_non_zero_cols()

int isl_mat_initial_non_zero_cols ( __isl_keep isl_mat mat)

Definition at line 2016 of file isl_mat.c.

References row_first_non_zero().

Referenced by isl_sched_node_update_vmap().

◆ isl_mat_insert_cols()

__isl_give isl_mat * isl_mat_insert_cols ( __isl_take isl_mat mat,
unsigned  col,
unsigned  n 
)

◆ isl_mat_insert_rows()

__isl_give isl_mat * isl_mat_insert_rows ( __isl_take isl_mat mat,
unsigned  row,
unsigned  n 
)

◆ isl_mat_insert_zero_cols()

__isl_give isl_mat * isl_mat_insert_zero_cols ( __isl_take isl_mat mat,
unsigned  first,
unsigned  n 
)

◆ isl_mat_insert_zero_rows()

__isl_give isl_mat * isl_mat_insert_zero_rows ( __isl_take isl_mat mat,
unsigned  row,
unsigned  n 
)

◆ isl_mat_inverse_product()

__isl_give isl_mat * isl_mat_inverse_product ( __isl_take isl_mat left,
__isl_take isl_mat right 
)

◆ isl_mat_is_equal()

isl_bool isl_mat_is_equal ( __isl_keep isl_mat mat1,
__isl_keep isl_mat mat2 
)

◆ isl_mat_is_scaled_identity()

isl_bool isl_mat_is_scaled_identity ( __isl_keep isl_mat mat)

◆ isl_mat_left_hermite()

__isl_give isl_mat * isl_mat_left_hermite ( __isl_take isl_mat M,
int  neg,
__isl_give isl_mat **  U,
__isl_give isl_mat **  Q 
)

◆ isl_mat_lexnonneg_rows()

__isl_give isl_mat * isl_mat_lexnonneg_rows ( __isl_take isl_mat mat)

◆ isl_mat_lin_to_aff()

__isl_give isl_mat * isl_mat_lin_to_aff ( __isl_take isl_mat mat)

◆ isl_mat_move_cols()

__isl_give isl_mat * isl_mat_move_cols ( __isl_take isl_mat mat,
unsigned  dst_col,
unsigned  src_col,
unsigned  n 
)

◆ isl_mat_normalize()

__isl_give isl_mat * isl_mat_normalize ( __isl_take isl_mat mat)

◆ isl_mat_normalize_row()

__isl_give isl_mat * isl_mat_normalize_row ( __isl_take isl_mat mat,
int  row 
)

Definition at line 2003 of file isl_mat.c.

References isl_mat_cow(), isl_seq_normalize(), and isl_mat::row.

Referenced by isl_basic_map_drop_redundant_divs().

◆ isl_mat_print_internal()

void isl_mat_print_internal ( __isl_keep isl_mat mat,
FILE *  out,
int  indent 
)

Definition at line 1471 of file isl_mat.c.

References isl_int_print.

Referenced by isl_mat_dump(), isl_morph_print_internal(), isl_tab_print_internal(), and main().

◆ isl_mat_product()

__isl_give isl_mat * isl_mat_product ( __isl_take isl_mat left,
__isl_take isl_mat right 
)

◆ isl_mat_rank()

isl_size isl_mat_rank ( __isl_keep isl_mat mat)

◆ isl_mat_reverse_gauss()

__isl_give isl_mat * isl_mat_reverse_gauss ( __isl_take isl_mat mat)

◆ isl_mat_right_inverse()

__isl_give isl_mat * isl_mat_right_inverse ( __isl_take isl_mat mat)

◆ isl_mat_right_kernel()

__isl_give isl_mat * isl_mat_right_kernel ( __isl_take isl_mat mat)

◆ isl_mat_row_basis()

__isl_give isl_mat * isl_mat_row_basis ( __isl_take isl_mat mat)

Definition at line 2034 of file isl_mat.c.

References isl_mat_reverse_gauss().

◆ isl_mat_row_basis_extension()

__isl_give isl_mat * isl_mat_row_basis_extension ( __isl_take isl_mat mat1,
__isl_take isl_mat mat2 
)

◆ isl_mat_row_gcd()

isl_stat isl_mat_row_gcd ( __isl_keep isl_mat mat,
int  row,
isl_int gcd 
)

Definition at line 1910 of file isl_mat.c.

References check_row(), gcd(), isl_seq_gcd(), isl_stat_error, isl_stat_ok, and isl_mat::row.

Referenced by reduce_stride_constraints().

◆ isl_mat_row_neg()

__isl_give isl_mat * isl_mat_row_neg ( __isl_take isl_mat mat,
int  row 
)

◆ isl_mat_rows()

isl_size isl_mat_rows ( __isl_keep isl_mat mat)

◆ isl_mat_scale()

__isl_give isl_mat * isl_mat_scale ( __isl_take isl_mat mat,
isl_int  m 
)

Definition at line 1939 of file isl_mat.c.

References isl_int_is_one, isl_mat_cow(), isl_seq_scale(), and m.

◆ isl_mat_scale_down()

__isl_give isl_mat * isl_mat_scale_down ( __isl_take isl_mat mat,
isl_int  m 
)

Definition at line 1956 of file isl_mat.c.

References isl_int_is_one, isl_mat_cow(), isl_seq_scale_down(), and m.

Referenced by isl_mat_normalize().

◆ isl_mat_scale_down_row()

__isl_give isl_mat * isl_mat_scale_down_row ( __isl_take isl_mat mat,
int  row,
isl_int  m 
)

Definition at line 1973 of file isl_mat.c.

References isl_int_is_one, isl_mat_cow(), isl_seq_scale_down(), m, and isl_mat::row.

Referenced by split_scaled().

◆ isl_mat_set_element()

__isl_give isl_mat * isl_mat_set_element ( __isl_take isl_mat mat,
int  row,
int  col,
isl_int  v 
)

◆ isl_mat_set_element_si()

__isl_give isl_mat * isl_mat_set_element_si ( __isl_take isl_mat mat,
int  row,
int  col,
int  v 
)

◆ isl_mat_set_element_val()

__isl_give isl_mat * isl_mat_set_element_val ( __isl_take isl_mat mat,
int  row,
int  col,
__isl_take isl_val v 
)

◆ isl_mat_sub_alloc()

__isl_give isl_mat * isl_mat_sub_alloc ( __isl_keep isl_mat mat,
unsigned  first_row,
unsigned  n_row,
unsigned  first_col,
unsigned  n_col 
)

◆ isl_mat_sub_alloc6()

__isl_give isl_mat * isl_mat_sub_alloc6 ( isl_ctx ctx,
isl_int **  row,
unsigned  first_row,
unsigned  n_row,
unsigned  first_col,
unsigned  n_col 
)

◆ isl_mat_sub_copy()

void isl_mat_sub_copy ( struct isl_ctx ctx,
isl_int **  dst,
isl_int **  src,
unsigned  n_row,
unsigned  dst_col,
unsigned  src_col,
unsigned  n_col 
)

◆ isl_mat_sub_neg()

void isl_mat_sub_neg ( struct isl_ctx ctx,
isl_int **  dst,
isl_int **  src,
unsigned  n_row,
unsigned  dst_col,
unsigned  src_col,
unsigned  n_col 
)

◆ isl_mat_sub_transform()

isl_stat isl_mat_sub_transform ( isl_int **  row,
unsigned  n_row,
unsigned  first_col,
__isl_take isl_mat mat 
)

◆ isl_mat_swap_cols()

__isl_give isl_mat * isl_mat_swap_cols ( __isl_take isl_mat mat,
unsigned  i,
unsigned  j 
)

◆ isl_mat_swap_rows()

__isl_give isl_mat * isl_mat_swap_rows ( __isl_take isl_mat mat,
unsigned  i,
unsigned  j 
)

◆ isl_mat_transpose()

__isl_give isl_mat * isl_mat_transpose ( __isl_take isl_mat mat)

◆ isl_mat_unimodular_complete()

__isl_give isl_mat * isl_mat_unimodular_complete ( __isl_take isl_mat M,
int  row 
)

◆ isl_mat_vec_concat()

__isl_give isl_mat * isl_mat_vec_concat ( __isl_take isl_mat top,
__isl_take isl_vec bot 
)

Definition at line 1858 of file isl_mat.c.

References isl_mat_concat(), and isl_mat_from_row_vec().

◆ isl_mat_vec_inverse_product()

__isl_give isl_vec * isl_mat_vec_inverse_product ( __isl_take isl_mat mat,
__isl_take isl_vec vec 
)

◆ isl_mat_vec_product()

__isl_give isl_vec * isl_mat_vec_product ( __isl_take isl_mat mat,
__isl_take isl_vec vec 
)

◆ isl_mat_zero()

__isl_give isl_mat * isl_mat_zero ( isl_ctx ctx,
unsigned  n_row,
unsigned  n_col 
)

Definition at line 405 of file isl_mat.c.

References isl_mat::ctx, isl_mat_alloc(), isl_seq_clr(), isl_mat::n_col, isl_mat::n_row, and isl_mat::row.

Referenced by reduce_divs(), and solve_lp().

◆ isl_set_preimage()

__isl_give isl_set * isl_set_preimage ( __isl_take isl_set set,
__isl_take isl_mat mat 
)

◆ isl_vec_mat_product()

__isl_give isl_vec * isl_vec_mat_product ( __isl_take isl_vec vec,
__isl_take isl_mat mat 
)

◆ oppose()

static void oppose ( __isl_keep isl_mat M,
__isl_keep isl_mat **  U,
__isl_keep isl_mat **  Q,
unsigned  row,
unsigned  col 
)
static

Definition at line 615 of file isl_mat.c.

References isl_int_neg, isl_seq_neg(), M(), and isl_mat::row.

Referenced by isl_mat_left_hermite(), isl_mat_right_inverse(), and tab_add_constraint().

◆ preimage()

static int preimage ( struct isl_ctx ctx,
isl_int **  q,
unsigned  n,
unsigned  n_div,
int  has_div,
struct isl_mat mat 
)
static

◆ row_abs_min_non_zero()

static int row_abs_min_non_zero ( isl_int **  row,
unsigned  n_row,
unsigned  col 
)
static

◆ row_first_non_zero()

static int row_first_non_zero ( isl_int **  row,
unsigned  n_row,
unsigned  col 
)
static

◆ subtract()

static void subtract ( __isl_keep isl_mat M,
__isl_keep isl_mat **  U,
__isl_keep isl_mat **  Q,
unsigned  row,
unsigned  i,
unsigned  j,
isl_int  m 
)
static

Definition at line 599 of file isl_mat.c.

References isl_int_addmul, isl_int_submul, M(), m, and isl_mat::row.

Referenced by isl_mat_left_hermite(), and isl_mat_right_inverse().