Polly 20.0.0git
Typedefs | Functions
mat.h File Reference
#include <stdio.h>
#include <isl/ctx.h>
#include <isl/vec.h>
#include <isl/val_type.h>

Go to the source code of this file.

Typedefs

typedef struct isl_mat isl_mat
 

Functions

isl_ctxisl_mat_get_ctx (__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_identity (isl_ctx *ctx, unsigned n_row)
 
__isl_give isl_matisl_mat_copy (__isl_keep 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)
 
__isl_give isl_valisl_mat_get_element_val (__isl_keep isl_mat *mat, int row, int col)
 
__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_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_vecisl_mat_vec_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_vecisl_mat_vec_inverse_product (__isl_take isl_mat *mat, __isl_take isl_vec *vec)
 
__isl_give isl_matisl_mat_aff_direct_sum (__isl_take isl_mat *left, __isl_take isl_mat *right)
 
__isl_give isl_matisl_mat_diagonal (__isl_take isl_mat *mat1, __isl_take isl_mat *mat2)
 
__isl_give isl_matisl_mat_left_hermite (__isl_take isl_mat *M, int neg, __isl_give isl_mat **U, __isl_give isl_mat **Q)
 
__isl_give isl_matisl_mat_lin_to_aff (__isl_take isl_mat *mat)
 
__isl_give isl_matisl_mat_inverse_product (__isl_take isl_mat *left, __isl_take isl_mat *right)
 
__isl_give isl_matisl_mat_product (__isl_take isl_mat *left, __isl_take isl_mat *right)
 
__isl_give isl_matisl_mat_transpose (__isl_take isl_mat *mat)
 
__isl_give isl_matisl_mat_right_inverse (__isl_take isl_mat *mat)
 
__isl_give isl_matisl_mat_right_kernel (__isl_take isl_mat *mat)
 
__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)
 
__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_rows (__isl_take isl_mat *mat, unsigned row, unsigned n)
 
__isl_give isl_matisl_mat_move_cols (__isl_take isl_mat *mat, unsigned dst_col, unsigned src_col, unsigned n)
 
__isl_give isl_matisl_mat_add_rows (__isl_take isl_mat *mat, 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_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_add (__isl_keep isl_mat *mat, int dst_col, int src_col)
 
__isl_give isl_matisl_mat_unimodular_complete (__isl_take isl_mat *M, int row)
 
__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_give isl_matisl_mat_from_row_vec (__isl_take isl_vec *vec)
 
__isl_give isl_matisl_mat_concat (__isl_take isl_mat *top, __isl_take isl_mat *bot)
 
__isl_give isl_matisl_mat_vec_concat (__isl_take isl_mat *top, __isl_take isl_vec *bot)
 
isl_bool isl_mat_is_equal (__isl_keep isl_mat *mat1, __isl_keep isl_mat *mat2)
 
isl_bool isl_mat_has_linearly_independent_rows (__isl_keep isl_mat *mat1, __isl_keep isl_mat *mat2)
 
isl_size isl_mat_rank (__isl_keep isl_mat *mat)
 
int isl_mat_initial_non_zero_cols (__isl_keep 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)
 

Typedef Documentation

◆ isl_mat

typedef struct isl_mat isl_mat

Definition at line 24 of file mat.h.

Function Documentation

◆ 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_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_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_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_get_ctx()

isl_ctx * isl_mat_get_ctx ( __isl_keep isl_mat mat)

◆ 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_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_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_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_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_rows()

isl_size isl_mat_rows ( __isl_keep isl_mat mat)

◆ 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_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_vec_mat_product()

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