/***************************************************************************** ** ** consistency.c NQ Werner Nickel ** nickel@mathematik.tu-darmstadt.de
*/
#include"nq.h" #include"glimt.h"/* for addRow */
void printEv(expvec ev) { long i;
for (i = 1; i <= NrPcGens + NrCenGens; i++)
printf(" "EXP_FORMAT" ", ev[i]);
}
staticvoid do_cba(gen c, gen b, gen a) { int i;
expvec ev1, ev2;
if (Wt(c) + Wt(b) + Wt(abs(a)) > Class + 1) return;
/* the left hand side first : c (b a) = c a b^a */
ev1 = ExpVecWord(Generators[c]);
Collect(ev1, Generators[a], (expo)1);
Collect(ev1, Conjugate[b][a], (expo)1);
/* then the right hand side : (c b) a */
ev2 = ExpVecWord(Generators[c]);
Collect(ev2, Generators[b], (expo)1);
Collect(ev2, Generators[a], (expo)1);
for (i = 1; i <= NrPcGens + NrCenGens; i++) {
ev1[i] -= ev2[i]; if (((ev1[i] << 1) >> 1) != ev1[i])
printf("# Possible overflow in do_cba( %d, %d, %d )\n",
c, b, a);
}
/* c * ( b * a ) = ( c * b ) * a for all generators c > b > a.
*/ for (a = 1; !EarlyStop && a <= Dimension[1]; a++) for (b = a + 1; !EarlyStop && b <= NrPcGens; b++) for (c = b + 1; !EarlyStop && c <= NrPcGens; c++)
do_cba(c, b, a);
/* ** c * ( b * b' ) = ( c * b ) * b' and ** c * ( b' * b ) = ( c * b' ) * b for all c > b, ** Exponent[b] == 0
*/ for (b = 1; !EarlyStop && b <= NrPcGens; b++) if (Exponent[b] == (expo)0) for (c = b + 1; !EarlyStop && c <= NrPcGens; c++)
do_cbb(c, b);
/* ** c * ( c' * b ) = ( c * c' ) * b and ** c * ( c' * b ) = ( c * c' ) * b' for all generators c > b, ** Exponent[c] == 0.
*/ for (c = 1; !EarlyStop && c <= NrPcGens; c++) if (Exponent[c] == (expo)0) { for (b = 1; !EarlyStop && b <= min(c - 1, Dimension[1]); b++)
do_ccb(c, b); for (b = 1; !EarlyStop && b < c; b++) if (Exponent[b] == (expo)0) do_ccb(c, -b);
}
/* ** c * b^n = ( c * b ) * b^(n-1) for all generators c > b, ** Exponent[b] == n > 0.
*/ for (b = 1; !EarlyStop && b <= NrPcGens; b++) if (Exponent[b] > (expo)0) for (c = b + 1; !EarlyStop && c <= NrPcGens; c++)
do_cbn(c, b);
/* ** c^n * b = c^(n-1) * ( c * b ) for all generators c > b, ** Exponent[c] == n > 0.
*/ for (c = 1; !EarlyStop && c <= NrPcGens; c++) if (Exponent[c] > (expo)0) { for (b = 1; !EarlyStop && b <= min(c - 1, Dimension[1]); b++)
do_cnb(c, b); for (b = 1; !EarlyStop && b < c; b++) if (Exponent[b] == (expo)0) do_cnb(c, -b);
}
/* ** c^n * c = c * c^n for all generators c, Exponent[c] == n > 0.
*/ for (c = 1; !EarlyStop && c <= NrPcGens; c++) if (Exponent[c] > (expo)0)
do_cnc(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.