M = isl_mat_left_hermite(M, 0, &U, NULL);
if (!M || !U)
goto error;
- H = isl_mat_sub_alloc(B->ctx, M->row, 0, B->n_row, 0, B->n_row);
+ H = isl_mat_sub_alloc(M, 0, B->n_row, 0, B->n_row);
H = isl_mat_lin_to_aff(H);
C = isl_mat_inverse_product(H, C);
if (!C)
if (i < B->n_row)
cst = isl_mat_alloc(B->ctx, B->n_row, 0);
else
- cst = isl_mat_sub_alloc(C->ctx, C->row, 1, B->n_row, 0, 1);
- T = isl_mat_sub_alloc(U->ctx, U->row, B->n_row, B->n_col - 1, 0, B->n_row);
+ cst = isl_mat_sub_alloc(C, 1, B->n_row, 0, 1);
+ T = isl_mat_sub_alloc(U, B->n_row, B->n_col - 1, 0, B->n_row);
cst = isl_mat_product(T, cst);
isl_mat_free(M);
isl_mat_free(C);
D, U->row[j][k]);
}
A = isl_mat_left_hermite(A, 0, NULL, NULL);
- T = isl_mat_sub_alloc(A->ctx, A->row, 0, A->n_row, 0, A->n_row);
+ T = isl_mat_sub_alloc(A, 0, A->n_row, 0, A->n_row);
T = isl_mat_lin_to_aff(T);
if (!T)
goto error;
goto error;
dim = B->n_col - 1;
- H = isl_mat_sub_alloc(B->ctx, B->row, 0, B->n_row, 1, dim);
+ H = isl_mat_sub_alloc(B, 0, B->n_row, 1, dim);
H = isl_mat_left_hermite(H, 0, &U, T2);
if (!H || !U || (T2 && !*T2))
goto error;
goto error;
isl_int_set_si(C->row[0][0], 1);
isl_mat_sub_neg(C->ctx, C->row+1, B->row, B->n_row, 0, 0, 1);
- H1 = isl_mat_sub_alloc(H->ctx, H->row, 0, H->n_row, 0, H->n_row);
+ H1 = isl_mat_sub_alloc(H, 0, H->n_row, 0, H->n_row);
H1 = isl_mat_lin_to_aff(H1);
TC = isl_mat_inverse_product(H1, C);
if (!TC)
}
isl_int_set_si(TC->row[0][0], 1);
}
- U1 = isl_mat_sub_alloc(U->ctx, U->row, 0, U->n_row, 0, B->n_row);
+ U1 = isl_mat_sub_alloc(U, 0, U->n_row, 0, B->n_row);
U1 = isl_mat_lin_to_aff(U1);
- U2 = isl_mat_sub_alloc(U->ctx, U->row, 0, U->n_row,
- B->n_row, U->n_row - B->n_row);
+ U2 = isl_mat_sub_alloc(U, 0, U->n_row, B->n_row, U->n_row - B->n_row);
U2 = isl_mat_lin_to_aff(U2);
isl_mat_free(U);
TC = isl_mat_product(U1, TC);
if (bset->n_eq == 0)
return bset;
- B = isl_mat_sub_alloc(bset->ctx, bset->eq, 0, bset->n_eq, 0, 1 + dim);
+ B = isl_mat_sub_alloc6(bset->ctx, bset->eq, 0, bset->n_eq, 0, 1 + dim);
TC = isl_mat_variable_compression(B, T2);
if (!TC)
goto error;
if (!bset || !modulo || !residue)
return -1;
- if (isl_basic_set_fast_dim_is_fixed(bset, pos, residue)) {
+ if (isl_basic_set_plain_dim_is_fixed(bset, pos, residue)) {
isl_int_set_si(*modulo, 0);
return 0;
}
ctx = bset->ctx;
total = isl_basic_set_total_dim(bset);
nparam = isl_basic_set_n_param(bset);
- H = isl_mat_sub_alloc(bset->ctx, bset->eq, 0, bset->n_eq, 1, total);
+ H = isl_mat_sub_alloc6(bset->ctx, bset->eq, 0, bset->n_eq, 1, total);
H = isl_mat_left_hermite(H, 0, &U, NULL);
if (!H)
return -1;
goto error;
isl_int_set_si(C->row[0][0], 1);
isl_mat_sub_neg(C->ctx, C->row+1, bset->eq, bset->n_eq, 0, 0, 1);
- H1 = isl_mat_sub_alloc(H->ctx, H->row, 0, H->n_row, 0, H->n_row);
+ H1 = isl_mat_sub_alloc(H, 0, H->n_row, 0, H->n_row);
H1 = isl_mat_lin_to_aff(H1);
C = isl_mat_inverse_product(H1, C);
isl_mat_free(H);
- U1 = isl_mat_sub_alloc(U->ctx, U->row, nparam+pos, 1, 0, bset->n_eq);
+ U1 = isl_mat_sub_alloc(U, nparam+pos, 1, 0, bset->n_eq);
U1 = isl_mat_lin_to_aff(U1);
isl_mat_free(U);
C = isl_mat_product(U1, C);
isl_int_init(r);
for (i = 1; i < set->n; ++i) {
- if (isl_basic_set_dim_residue_class(set->p[0], pos, &m, &r) < 0)
+ if (isl_basic_set_dim_residue_class(set->p[i], pos, &m, &r) < 0)
goto error;
isl_int_gcd(*modulo, *modulo, m);
+ isl_int_sub(m, *residue, r);
+ isl_int_gcd(*modulo, *modulo, m);
if (!isl_int_is_zero(*modulo))
isl_int_fdiv_r(*residue, *residue, *modulo);
if (isl_int_is_one(*modulo))
break;
- if (!isl_int_is_zero(*modulo))
- isl_int_fdiv_r(r, r, *modulo);
- if (isl_int_ne(*residue, r)) {
- isl_int_set_si(*modulo, 1);
- isl_int_set_si(*residue, 0);
- break;
- }
}
isl_int_clear(m);