/* add pseudo-generators to redundant defining generators; alsorecomputerequiredinversesofdefininggenerators;
thisroutinemustbecalledbeforeacalltocollectdefining relations;ifthereareredundantdefininggenerators,callsto eliminateshouldonlybedoneaftercallingupdate_generator becausethespacereservedforthepseudo-generator(s)added
by update_generator in structure is not set up yet */
} elseif (value < 0) { /* old entry was non-trivial so we deallocate it
and insert pseudo-generator */
extend_tail(dgen + f, 0, f, pcp); if (pcp->overflow) return;
}
}
/* update submlg to account for any new pseudo-generators introduced */
pcp->submlg = pcp->subgrp - pcp->lastg;
/* now, recompute required inverses -- weknowtheinverseofftotheendofclasspcp->cc-1; denotethisbyf';evaluatef*f'andtaketheinverseof
this result to give the class pcp->cc part of f^-1 */
for (f = 1; f <= ndgen; f++) { if (y[dgen - f] > 0) continue;
if (is_space_exhausted(2 * pcp->lastg + 2, pcp)) return;
/* f^(-1) was nontrivial, so make room for lower class entries */
start = -y[dgen - f];
extra = y[start + 1];
ycol = lused + length + 3; for (i = 1; i <= length; i++)
y[ycol + extra - i] = y[ycol - i];
/* copy header block and lower class entries */ for (i = 1; i <= extra; i++)
y[lused + i + 2] = y[start + i + 1];
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 und die Messung sind noch experimentell.