/* Functions defined in this file */ void badusage(void);
int main(int argc, char *argv[])
{ int arg, ngens, neqns, i, *templevel;
gen **words;
boolean subgens = FALSE, invsubgens = TRUE;
rewriting_system rws, *rwsptr;
reduction_equation *eqn; char gpname[100], inf[100], subname[100], outf[100];
rwsptr = &rws;
rwsptr->maxeqns = MAXEQNS;
rwsptr->maxreducelen = MAXREDUCELEN;
rwsptr->cosets = FALSE; /* even in the cosets case we read relations from original group file */
/* First read in the defining relations for the group. */ if ((rfile = fopen(gpname, "r")) == 0) {
fprintf(stderr, "Cannot open file %s.\n", gpname); exit(1);
}
read_kbinput_simple(rfile, TRUE, rwsptr);
fclose(rfile); if (rws.ordering == WTLEX) {
fprintf(stderr, "Sorry - cannot currently handle subgroup generators in " "the wtlex case.\n"); exit(1);
}
ngens = rws.num_gens;
neqns = rws.num_eqns;
/* Now read in the subgroup generators from the separate file. */ if ((rfile = fopen(inf, "r")) == 0) {
fprintf(stderr, "Cannot open file %s.\n", inf); exit(1);
}
tmalloc(words, gen *, MAXGEN + 1);
read_subgens(rfile, words, subgens, invsubgens, rwsptr);
fclose(rfile);
rws.separator = ngens + 1; /* Note ngens remains the original number of main generators, but *rws.num_gensisnowthetotalnumber,includingnewgenerators. *Adjusttheorderingasnecessary.
*/ if (rws.ordering == SHORTLEX) {
rws.ordering = WREATHPROD;
tmalloc(rws.level, int, rws.num_gens + 1); for (i = 1; i <= ngens; i++)
rws.level[i] = 2; for (i = rws.separator; i <= rws.num_gens; i++)
rws.level[i] = 1;
} elseif (rws.ordering == RECURSIVE || rws.ordering == RT_RECURSIVE) { /* This will change the ordering back from RT_RECURSIVE to RECURSIVE. */
rws.ordering = WREATHPROD;
tmalloc(rws.level, int, rws.num_gens + 1); for (i = 1; i <= ngens; i++)
rws.level[i] = i + 1; for (i = rws.separator; i <= rws.num_gens; i++)
rws.level[i] = 1;
} elseif (rws.ordering == WREATHPROD) {
tmalloc(templevel, int, rws.num_gens + 1); for (i = 1; i <= ngens; i++)
templevel[i] = rws.level[i] + 1; for (i = rws.separator; i <= rws.num_gens; i++)
templevel[i] = 1;
tfree(rws.level);
rws.level = templevel;
}
¤ 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.0.12Bemerkung:
(vorverarbeitet am 2026-06-18)
¤
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.