reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
649 if (!M) 651 M = isl_mat_cow(M); 651 M = isl_mat_cow(M); 652 if (!M) 655 *U = isl_mat_identity(M->ctx, M->n_col); 655 *U = isl_mat_identity(M->ctx, M->n_col); 660 *Q = isl_mat_identity(M->ctx, M->n_col); 660 *Q = isl_mat_identity(M->ctx, M->n_col); 667 for (row = 0; row < M->n_row; ++row) { 669 first = isl_seq_abs_min_non_zero(M->row[row]+col, M->n_col-col); 669 first = isl_seq_abs_min_non_zero(M->row[row]+col, M->n_col-col); 674 exchange(M, U, Q, row, first, col); 675 if (isl_int_is_neg(M->row[row][col])) 676 oppose(M, U, Q, row, col); 678 while ((off = isl_seq_first_non_zero(M->row[row]+first, 679 M->n_col-first)) != -1) { 681 isl_int_fdiv_q(c, M->row[row][first], M->row[row][col]); 681 isl_int_fdiv_q(c, M->row[row][first], M->row[row][col]); 682 subtract(M, U, Q, row, col, first, c); 683 if (!isl_int_is_zero(M->row[row][first])) 684 exchange(M, U, Q, row, first, col); 689 if (isl_int_is_zero(M->row[row][i])) 692 isl_int_cdiv_q(c, M->row[row][i], M->row[row][col]); 692 isl_int_cdiv_q(c, M->row[row][i], M->row[row][col]); 694 isl_int_fdiv_q(c, M->row[row][i], M->row[row][col]); 694 isl_int_fdiv_q(c, M->row[row][i], M->row[row][col]); 697 subtract(M, U, Q, row, col, i, c); 703 return M; 713 isl_mat_free(M);