- isl_seq_cpy(m->row[1 + i], face->eq[i], 1 + dim);
- U = isl_mat_right_inverse(m);
- Q = isl_mat_right_inverse(isl_mat_copy(U));
- U = isl_mat_drop_cols(U, 1 + face->n_eq, dim - face->n_eq);
- Q = isl_mat_drop_rows(Q, 1 + face->n_eq, dim - face->n_eq);
- U = isl_mat_drop_cols(U, 0, 1);
- Q = isl_mat_drop_rows(Q, 0, 1);
- bounds = isl_mat_product(bounds, U);
- bounds = isl_mat_product(bounds, Q);
- while (isl_seq_first_non_zero(bounds->row[bounds->n_row-1],
- bounds->n_col) == -1) {
- bounds->n_row--;
- isl_assert(set->ctx, bounds->n_row > 1, goto error);
- }
- if (!wrap_facet(set, bounds->row[0],
- bounds->row[bounds->n_row-1]))
+ if (!isl_seq_eq(bounds->row[0], face->eq[i], 1 + dim) &&
+ !isl_seq_is_neg(bounds->row[0],
+ face->eq[i], 1 + dim))
+ break;
+ isl_assert(set->ctx, i < face->n_eq, goto error);
+ if (!isl_set_wrap_facet(set, bounds->row[0], face->eq[i]))