82 for (i = 0; i <
B->n_row; ++i) {
87 for (j = 0; j <
B->n_col - 1; ++j)
89 B->row[i][1 + j],
M->row[i][i]);
99 for (i = 0; i <
B->n_row; ++i) {
165 struct isl_mat *
A = NULL, *U = NULL;
178 for (i = 0; i <
B->n_row; ++i) {
184 for (k = 0; k < U->n_col; ++k)
187 for (j = 1; j < U->n_row; ++j)
188 for (k = 0; k < U->n_col; ++k)
323 if (cst->n_col == 0) {
332 for (i = 0; i <
B->n_row; ++i) {
360 else if (
B->n_row == 1)
475 for (i = 0; i < nparam; ++i) {
477 isl_int_set(mat->row[1 + i][1 + i], mat->row[0][0]);
535 isl_mat *H = NULL, *
C, *H1, *U = NULL, *U1, *U2;
551 if (!H || !U || (T2 && !*T2))
575 for (i = 0; i <
B->n_row; ++i) {
681 isl_assert(bset->ctx, bset->n_eq <= dim,
goto error);
689 if (TC->
n_col == 0) {
739 struct isl_mat *H = NULL, *U = NULL, *
C, *H1, *U1;
743 if (!bset || !modulo || !residue)
757 if (
total < 0 || nparam < 0)
765 total-bset->n_eq, modulo);
824 if (!
set || !modulo || !residue)
845 for (i = 1; i <
set->n; ++i) {
885 if (!*modulo || !*residue)
888 &(*modulo)->n, &(*residue)->n) < 0)
static RegisterPass< ScopPrinterWrapperPass > M("dot-scops", "Polly - Print Scops of function")
#define isl_die(ctx, errno, msg, code)
#define isl_assert(ctx, test, code)
#define ISL_F_ISSET(p, f)
__isl_give isl_basic_set * isl_basic_set_remove_equalities(__isl_take isl_basic_set *bset, __isl_give isl_mat **T, __isl_give isl_mat **T2)
static __isl_give isl_mat * parameter_compression_multi(__isl_keep isl_mat *B, __isl_keep isl_vec *d)
__isl_give isl_mat * isl_mat_parameter_compression(__isl_take isl_mat *B, __isl_take isl_vec *d)
static __isl_take isl_mat * parameter_compression_1(__isl_keep isl_mat *B, __isl_keep isl_vec *d)
__isl_give isl_mat * isl_mat_final_variable_compression(__isl_take isl_mat *B, int first, __isl_give isl_mat **T2)
static __isl_give isl_mat * particular_solution(__isl_keep isl_mat *B, __isl_keep isl_vec *d)
static __isl_give isl_basic_set * compress_variables(__isl_take isl_basic_set *bset, __isl_give isl_mat **T, __isl_give isl_mat **T2)
static __isl_give isl_mat * empty_compression(isl_ctx *ctx, unsigned dim, __isl_give isl_mat **T2, __isl_take isl_mat *free1, __isl_take isl_mat *free2, __isl_take isl_mat *free3)
isl_stat isl_basic_set_dim_residue_class(__isl_keep isl_basic_set *bset, int pos, isl_int *modulo, isl_int *residue)
__isl_give isl_mat * isl_mat_parameter_compression_ext(__isl_take isl_mat *B, __isl_take isl_mat *A)
static __isl_give isl_mat * insert_parameter_rows(__isl_take isl_mat *mat, unsigned nparam)
__isl_give isl_mat * isl_mat_variable_compression(__isl_take isl_mat *B, __isl_give isl_mat **T2)
isl_stat isl_set_dim_residue_class_val(__isl_keep isl_set *set, int pos, __isl_give isl_val **modulo, __isl_give isl_val **residue)
isl_stat isl_set_dim_residue_class(__isl_keep isl_set *set, int pos, isl_int *modulo, isl_int *residue)
static __isl_give isl_basic_set * return_with_identity(__isl_take isl_basic_set *bset, __isl_give isl_mat **T, __isl_give isl_mat **T2)
#define isl_int_is_zero(i)
#define isl_int_is_one(i)
#define isl_int_gcd(r, i, j)
#define isl_int_neg(r, i)
#define isl_int_is_divisible_by(i, j)
#define isl_int_fdiv_r(r, i, j)
#define isl_int_set(r, i)
#define isl_int_divexact(r, i, j)
#define isl_int_mul(r, i, j)
#define isl_int_set_si(r, i)
#define isl_int_sub(r, i, j)
isl_bool isl_basic_set_plain_dim_is_fixed(__isl_keep isl_basic_set *bset, unsigned dim, isl_int *val)
__isl_give isl_basic_set * isl_basic_set_set_to_empty(__isl_take isl_basic_set *bset)
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
isl_stat isl_basic_set_check_no_locals(__isl_keep isl_basic_set *bset)
isl_stat isl_basic_set_check_no_params(__isl_keep isl_basic_set *bset)
__isl_give isl_basic_set * isl_basic_set_preimage(__isl_take isl_basic_set *bset, __isl_take isl_mat *mat)
#define ISL_BASIC_SET_EMPTY
__isl_give isl_basic_set * isl_basic_set_gauss(__isl_take isl_basic_set *bset, int *progress)
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_give isl_mat * isl_mat_cow(__isl_take isl_mat *mat)
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_mat * isl_mat_sub_alloc6(isl_ctx *ctx, isl_int **row, unsigned first_row, unsigned n_row, unsigned first_col, unsigned n_col)
void isl_mat_col_mul(__isl_keep isl_mat *mat, int dst_col, isl_int f, int src_col)
__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)
void isl_seq_scale_down(isl_int *dst, isl_int *src, isl_int m, unsigned len)
void isl_seq_gcd(isl_int *p, unsigned len, isl_int *gcd)
void isl_seq_clr(isl_int *p, unsigned len)
void isl_seq_cpy(isl_int *dst, isl_int *src, unsigned len)
static __isl_give isl_union_map * total(__isl_take isl_union_map *umap, __isl_give isl_map *(*fn)(__isl_take isl_map *))
__isl_give isl_val * isl_val_alloc(isl_ctx *ctx)
void isl_vec_lcm(__isl_keep isl_vec *vec, isl_int *lcm)
__isl_give isl_vec * isl_vec_set(__isl_take isl_vec *vec, isl_int v)
__isl_give isl_vec * isl_vec_cow(__isl_take isl_vec *vec)
isl_ctx * isl_basic_map_get_ctx(__isl_keep isl_basic_map *bmap)
struct isl_basic_set isl_basic_set
__isl_give isl_mat * isl_mat_transpose(__isl_take isl_mat *mat)
__isl_give isl_mat * isl_mat_copy(__isl_keep isl_mat *mat)
__isl_give isl_mat * isl_mat_product(__isl_take isl_mat *left, __isl_take isl_mat *right)
__isl_give isl_mat * isl_mat_insert_rows(__isl_take isl_mat *mat, unsigned row, unsigned n)
__isl_give isl_mat * isl_mat_identity(isl_ctx *ctx, unsigned n_row)
__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_give isl_mat * isl_mat_drop_rows(__isl_take isl_mat *mat, unsigned row, unsigned n)
__isl_give isl_mat * isl_mat_diagonal(__isl_take isl_mat *mat1, __isl_take isl_mat *mat2)
__isl_give isl_mat * isl_mat_right_inverse(__isl_take isl_mat *mat)
__isl_give isl_mat * isl_mat_lin_to_aff(__isl_take isl_mat *mat)
__isl_null isl_mat * isl_mat_free(__isl_take isl_mat *mat)
__isl_give isl_mat * isl_mat_alloc(isl_ctx *ctx, unsigned n_row, unsigned n_col)
isl_ctx * isl_mat_get_ctx(__isl_keep isl_mat *mat)
__isl_give isl_mat * isl_mat_inverse_product(__isl_take isl_mat *left, __isl_take isl_mat *right)
__isl_give isl_mat * isl_mat_normalize(__isl_take isl_mat *mat)
__isl_give isl_mat * isl_mat_aff_direct_sum(__isl_take isl_mat *left, __isl_take isl_mat *right)
__isl_give isl_mat * isl_mat_drop_cols(__isl_take isl_mat *mat, unsigned col, unsigned n)
__isl_give isl_mat * isl_mat_unimodular_complete(__isl_take isl_mat *M, int row)
isl_size isl_basic_set_dim(__isl_keep isl_basic_set *bset, enum isl_dim_type type)
isl_ctx * isl_set_get_ctx(__isl_keep isl_set *set)
__isl_null isl_basic_set * isl_basic_set_free(__isl_take isl_basic_set *bset)
isl_ctx * isl_basic_set_get_ctx(__isl_keep isl_basic_set *bset)
__isl_give isl_basic_set * isl_basic_set_copy(__isl_keep isl_basic_set *bset)
__isl_null isl_val * isl_val_free(__isl_take isl_val *v)
__isl_null isl_vec * isl_vec_free(__isl_take isl_vec *vec)
__isl_give isl_vec * isl_vec_alloc(isl_ctx *ctx, unsigned size)