/****************************************************************************
**
*A last_class.c ANUPQ source Eamonn O'Brien
**
*Y Copyright 1995-2001, Lehrstuhl D fuer Mathematik, RWTH Aachen, Germany
*Y Copyright 1995-2001, School of Mathematical Sciences, ANU, Australia
**
*/
#include "pq_defs.h"
#include "pcp_vars.h"
/* delete all entries for class pcp->cc and note that
it is still set up (that is, set pcp->ncset = 1) */
void last_class(struct pcp_vars *pcp)
{
register int *y = y_address;
register int i;
register int j;
register int p1;
register int bound;
register int structure;
register int ndgen = pcp->ndgen;
if (pcp->ncset != 0 || pcp->cc == 1) {
text(10, 0, 0, 0, 0);
return ;
}
/* remove all word and subgroup tables entries */
delete_tables(0, pcp);
/* remove all equations */
structure = pcp->structure;
for (i = pcp->ccbeg, bound = pcp->lastg; i <= bound; i++) {
if ((j = y[structure + i]) < 0) {
/* deallocate this equation */
y[-j] = 0;
}
}
/* initialise this value to 0 */
y[pcp->clend + pcp->cc] = 0;
--pcp->cc;
pcp->lastg = pcp->ccbeg - 1;
pcp->submlg = pcp->subgrp - pcp->lastg;
pcp->ccbeg = y[pcp->clend + pcp->cc - 1] + 1;
for (i = 1, bound = pcp->lastg; i <= bound; i++)
down_class(pcp->ppower + i, pcp);
p1 = y[pcp->ppcomm + 2];
for (i = 1, bound = pcp->ncomm; i <= bound; i++)
down_class(p1 + i, pcp);
for (i = 1; i <= ndgen; i++) {
down_class(pcp->dgen + i, pcp);
down_class(pcp->dgen - i, pcp);
}
pcp->ncset = 1;
}
Messung V0.5 C=92 H=95 G=93
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland