/* return the rank, t, of the smallest characteristic,
k-initial segment subgroup in the p-multiplicator */
int
close_subgroup(int k, int ***auts, struct pga_vars *pga, struct pcp_vars *pcp)
{ registerint *y = y_address;
registerint alpha, i, j;
int t = MIN(k + 1, pga->multiplicator_rank); /* least possible rank value */ int n = y[pcp->clend + pcp->cc - 1]; /* number of pcp generators of group */
for (alpha = 1; alpha <= pga->m && !complete; ++alpha) {
i = n; while (i < n + t && !complete) {
++i;
j = y[pcp->clend + pcp->cc]; /* find the last non-zero entry in the image of generator i */ while (auts[alpha][i][j] == 0 && j > n + t)
--j;
t = j - n;
complete = (t == pga->multiplicator_rank);
}
}
/* if rank of closure has increased, must now close new subgroup */ if (t != start)
t = close_subgroup(t - 1, auts, pga, pcp);
return t;
}
¤ Dauer der Verarbeitung: 0.25 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.