reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/polly/lib/External/isl/isl_mat.c
 1123 	mat = isl_mat_cow(mat);
 1123 	mat = isl_mat_cow(mat);
 1124 	if (!mat)
 1127 	inv = isl_mat_identity(mat->ctx, mat->n_col);
 1127 	inv = isl_mat_identity(mat->ctx, mat->n_col);
 1134 	for (row = 0; row < mat->n_row; ++row) {
 1136 		pivot = isl_seq_abs_min_non_zero(mat->row[row]+row, mat->n_col-row);
 1136 		pivot = isl_seq_abs_min_non_zero(mat->row[row]+row, mat->n_col-row);
 1140 			isl_assert(mat->ctx, pivot >= 0, goto error);
 1144 			exchange(mat, &inv, NULL, row, pivot, row);
 1145 		if (isl_int_is_neg(mat->row[row][row]))
 1146 			oppose(mat, &inv, NULL, row, row);
 1148 		while ((off = isl_seq_first_non_zero(mat->row[row]+first,
 1149 						    mat->n_col-first)) != -1) {
 1151 			isl_int_fdiv_q(a, mat->row[row][first],
 1152 						    mat->row[row][row]);
 1153 			subtract(mat, &inv, NULL, row, row, first, a);
 1154 			if (!isl_int_is_zero(mat->row[row][first]))
 1155 				exchange(mat, &inv, NULL, row, row, first);
 1160 			if (isl_int_is_zero(mat->row[row][i]))
 1162 			isl_int_gcd(a, mat->row[row][row], mat->row[row][i]);
 1162 			isl_int_gcd(a, mat->row[row][row], mat->row[row][i]);
 1163 			isl_int_divexact(b, mat->row[row][i], a);
 1164 			isl_int_divexact(a, mat->row[row][row], a);
 1166 			isl_mat_col_combine(mat, i, a, i, b, row);
 1172 	isl_int_set(a, mat->row[0][0]);
 1173 	for (row = 1; row < mat->n_row; ++row)
 1174 		isl_int_lcm(a, a, mat->row[row][row]);
 1179 	for (row = 0; row < mat->n_row; ++row) {
 1180 		isl_int_divexact(mat->row[row][row], a, mat->row[row][row]);
 1180 		isl_int_divexact(mat->row[row][row], a, mat->row[row][row]);
 1181 		if (isl_int_is_one(mat->row[row][row]))
 1183 		isl_mat_col_scale(inv, row, mat->row[row][row]);
 1187 	isl_mat_free(mat);
 1191 	isl_mat_free(mat);