Lines Matching full:group

138 	int *group;		/* group to which a column belongs */  member
139 int *cnt; /* number of columns in the group */
140 int *rowgroup; /* group to which a constraint belongs */
144 * each column initially belongs to its own group and the groups
155 g->group = isl_alloc_array(H->ctx, int, H->n_col); in init_groups()
159 if (!g->pos || !g->group || !g->cnt || !g->rowgroup) in init_groups()
171 g->group[i] = i; in init_groups()
178 /* Update group[k] to the group column k belongs to.
179 * When merging two groups, only the group of the current
180 * group leader is changed. Here we change the group of
181 * the other members to also point to the group that the
182 * old group leader now points to.
186 int p = g->group[k]; in update_group()
188 p = g->group[p]; in update_group()
189 g->group[k] = p; in update_group()
192 /* Merge group i with all groups of the subsequent columns
202 g->rowgroup[j] = g->group[i]; in update_group_i_with_row_j()
206 if (g->group[k] != g->group[i] && 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()
210 if (g->group[i] < g->group[k]) { in update_group_i_with_row_j()
211 g->cnt[g->group[i]] += g->cnt[g->group[k]]; in update_group_i_with_row_j()
212 g->cnt[g->group[k]] = 0; in update_group_i_with_row_j()
213 g->group[g->group[k]] = g->group[i]; in update_group_i_with_row_j()
215 g->cnt[g->group[k]] += g->cnt[g->group[i]]; in update_group_i_with_row_j()
216 g->cnt[g->group[i]] = 0; in update_group_i_with_row_j()
217 g->group[g->group[i]] = g->group[k]; in update_group_i_with_row_j()
225 /* Update the group information based on the constraint matrix.
256 free(g->group); in clear_groups()
311 int group = g.group[done]; in isl_basic_set_factorizer() local
312 for (i = 1; i < g.cnt[group]; ++i) { in isl_basic_set_factorizer()
313 if (g.group[done + i] == group) in isl_basic_set_factorizer()
315 for (j = done + g.cnt[group]; j < nvar; ++j) in isl_basic_set_factorizer()
316 if (g.group[j] == group) in isl_basic_set_factorizer()
321 g.group[j] = g.group[done + i]; in isl_basic_set_factorizer()
325 done += g.cnt[group]; in isl_basic_set_factorizer()
326 g.pos[n++] = g.cnt[group]; in isl_basic_set_factorizer()