Lines Matching refs:H

147 static int init_groups(struct isl_factor_groups *g, __isl_keep isl_mat *H)  in init_groups()  argument
151 if (!H) in init_groups()
154 g->pos = isl_alloc_array(H->ctx, int, H->n_col); in init_groups()
155 g->group = isl_alloc_array(H->ctx, int, H->n_col); in init_groups()
156 g->cnt = isl_alloc_array(H->ctx, int, H->n_col); in init_groups()
157 g->rowgroup = isl_alloc_array(H->ctx, int, H->n_row); in init_groups()
162 for (i = 0; i < H->n_row; ++i) in init_groups()
164 for (i = 0, j = 0; i < H->n_col; ++i) { in init_groups()
165 for ( ; j < H->n_row; ++j) in init_groups()
166 if (!isl_int_is_zero(H->row[j][i])) in init_groups()
170 for (i = 0; i < H->n_col; ++i) { in init_groups()
198 __isl_keep isl_mat *H) in update_group_i_with_row_j() argument
203 for (k = i + 1; k < H->n_col && j >= g->pos[k]; ++k) { in update_group_i_with_row_j()
207 !isl_int_is_zero(H->row[j][k])) { in update_group_i_with_row_j()
208 isl_assert(H->ctx, g->cnt[g->group[k]] != 0, return -1); in update_group_i_with_row_j()
209 isl_assert(H->ctx, g->cnt[g->group[i]] != 0, return -1); in update_group_i_with_row_j()
227 static int update_groups(struct isl_factor_groups *g, __isl_keep isl_mat *H) in update_groups() argument
231 for (i = 0; i < H->n_col && g->cnt[0] < H->n_col; ++i) { in update_groups()
232 if (g->pos[i] == H->n_row) in update_groups()
236 for (j = g->pos[i] + 1; j < H->n_row; ++j) { in update_groups()
237 if (isl_int_is_zero(H->row[j][i])) in update_groups()
241 if (update_group_i_with_row_j(g, i, j, H) < 0) in update_groups()
245 for (i = 1; i < H->n_col; ++i) in update_groups()
273 isl_mat *H, *U, *Q; in isl_basic_set_factorizer() local
285 H = isl_mat_alloc(bset->ctx, bset->n_eq + bset->n_ineq, nvar); in isl_basic_set_factorizer()
286 if (!H) in isl_basic_set_factorizer()
288 isl_mat_sub_copy(bset->ctx, H->row, bset->eq, bset->n_eq, in isl_basic_set_factorizer()
290 isl_mat_sub_copy(bset->ctx, H->row + bset->n_eq, bset->ineq, bset->n_ineq, in isl_basic_set_factorizer()
292 H = isl_mat_left_hermite(H, 0, &U, &Q); in isl_basic_set_factorizer()
294 if (init_groups(&g, H) < 0) in isl_basic_set_factorizer()
296 if (update_groups(&g, H) < 0) in isl_basic_set_factorizer()
300 isl_mat_free(H); in isl_basic_set_factorizer()
331 isl_mat_free(H); in isl_basic_set_factorizer()
336 isl_mat_free(H); in isl_basic_set_factorizer()