reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1007 if (!left || !right) 1010 isl_assert(left->ctx, left->n_row == left->n_col, goto error); 1010 isl_assert(left->ctx, left->n_row == left->n_col, goto error); 1010 isl_assert(left->ctx, left->n_row == left->n_col, goto error); 1011 isl_assert(left->ctx, left->n_row == right->n_row, goto error); 1011 isl_assert(left->ctx, left->n_row == right->n_row, goto error); 1013 if (left->n_row == 0) { 1014 isl_mat_free(left); 1018 left = isl_mat_cow(left); 1018 left = isl_mat_cow(left); 1020 if (!left || !right) 1025 for (row = 0; row < left->n_row; ++row) { 1027 pivot = row_abs_min_non_zero(left->row+row, left->n_row-row, row); 1027 pivot = row_abs_min_non_zero(left->row+row, left->n_row-row, row); 1031 isl_assert(left->ctx, pivot >= 0, goto error); 1035 if (inv_exchange(&left, &right, pivot, row) < 0) 1037 if (isl_int_is_neg(left->row[row][row])) 1038 inv_oppose(left, right, row); 1040 while ((off = row_first_non_zero(left->row+first, 1041 left->n_row-first, row)) != -1) { 1043 isl_int_fdiv_q(a, left->row[first][row], 1044 left->row[row][row]); 1045 inv_subtract(left, right, row, first, a); 1046 if (!isl_int_is_zero(left->row[first][row])) { 1047 if (inv_exchange(&left, &right, row, first) < 0) 1054 if (isl_int_is_zero(left->row[i][row])) 1056 isl_int_gcd(a, left->row[row][row], left->row[i][row]); 1056 isl_int_gcd(a, left->row[row][row], left->row[i][row]); 1057 isl_int_divexact(b, left->row[i][row], a); 1058 isl_int_divexact(a, left->row[row][row], a); 1060 isl_seq_combine(left->row[i] + i, 1061 a, left->row[i] + i, 1062 b, left->row[row] + i, 1063 left->n_col - i); 1070 isl_int_set(a, left->row[0][0]); 1071 for (row = 1; row < left->n_row; ++row) 1072 isl_int_lcm(a, a, left->row[row][row]); 1075 isl_assert(left->ctx, 0, goto error); 1077 for (row = 0; row < left->n_row; ++row) { 1078 isl_int_divexact(left->row[row][row], a, left->row[row][row]); 1078 isl_int_divexact(left->row[row][row], a, left->row[row][row]); 1079 if (isl_int_is_one(left->row[row][row])) 1082 left->row[row][row], right->n_col); 1086 isl_mat_free(left); 1089 isl_mat_free(left);