WordCopy(Conjugate[n][m], w);
WordCopyExpVec(t, w + lw);
free(t); if (Conjugate[n][m] != Generators[n]) free(Conjugate[n][m]);
Conjugate[n][m] = w;
}
/* ** The next nilpotency class to be calculated is Class+1. Therefore ** commutators of weight Class+1, which are currently trivial, will ** get tails.
*/ void Tails(void) {
int *Dim = Dimension; long b, c, i, j, time = 0; long m, M, n, N;
if (Verbose) time = RunTime();
/* ** Precompute exponents of the new generators which are defined ** as a commutator [h,g] with wt(h)=Class. There is no conclusive ** evidence that is worth the effort. One probably also has to use ** those power relations that have a non-trivial right hand side.
*/ #if 0 if (0) { int l;
gen i, g, h, t;
expvec ev;
for (t = NrPcGens + 1; t <= NrPcGens + NrCenGens; t++) {
h = Definition[t].h;
g = Definition[t].g; if (h < 0 || Wt(h) < Class) continue; if (g != (gen)0 && Exponent[h] != (expo)0) {
l = tail_cnb(h, g, &ev); /* printf( "t: %d, ", t ); for( i = 1; i <= NrPcGens+NrCenGens; i++ ) if( ev[i] != (expo)0 ) printf( " %d^"EXP_FORMAT"", i, ev[i] );
printf( "\n" );*/ if (l == 1) { if (ev[t] == (expo)0)
printf("Error, exponent zero\n"); if (Verbose)
printf("# Setting exponent "EXP_FORMAT" for %d\n", ev[t], t);
Exponent[t] = ev[t];
addRow(ev);
}
} if (g != (gen)0 && Exponent[g] != (expo)0) {
l = tail_cbn(h, g, &ev); /* printf( "t: %d, ", t ); for( i = 1; i <= NrPcGens+NrCenGens; i++ ) if( ev[i] != (expo)0 ) printf( " %d^"EXP_FORMAT"", i, ev[i] );
printf( "\n" );*/ if (l == 1) { if (ev[t] == (expo)0)
printf("Error, exponent zero\n"); if (Verbose)
printf("# Setting exponent "EXP_FORMAT" for %d\n", ev[t], t);
Exponent[t] = ev[t];
addRow(ev);
}
}
}
} #endif
N = NrPcGens; for (c = Class; c >= 1; c--) {
n = N;
M = 1; for (b = 1; b <= c - b + 1; b++) { /* tails for comutators [ <c-b+1>, <b> ] */ for (j = Dim[c - b + 1]; j >= 1; j--) {
m = M; for (i = 1; n > m && i <= Dim[b]; i++) { if (b != 1)
Tail(n, m); if (Exponent[m] == (expo)0)
Tail(n, -m); if (Exponent[n] == (expo)0)
Tail(-n, m); if (Exponent[m] + Exponent[n] == (expo)0)
Tail(-n, -m);
m++;
}
n--;
}
M += Dim[b];
}
N -= Dim[c];
}
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.