printf("%d = ", generator); for (i = 1; i <= length; ++i)
printf("%d^%d ", FIELD2(y[address + i]), FIELD1(y[address + i]));
printf("\n");
}
/* find the definition of generator of supplied weight
and set it up with address pointer */
int
find_definition(int generator, int pointer, int weight, struct pcp_vars *pcp)
{ registerint *y = y_address;
registerint u, v; registerint structure = pcp->structure; #include"access.h"
pointer += weight + 1; do {
u = PART2(y[structure + generator]);
v = PART3(y[structure + generator]);
/* deal with case where generator is a defining generator */ if (generator < v)
v = generator;
if (u == 0)
y[--pointer] = v; else { if (v == 0) { /* definition is a power, u^p */
v = 2; while (u > y[pcp->clend + 1]) {
++v;
u = PART2(y[structure + u]);
} for (; v > 0; --v)
y[--pointer] = u; return pointer;
} else { /* definition is a commutator [v, u] */
y[--pointer] = v;
generator = u;
}
}
} while (u != 0);
return pointer;
}
/* what layer of the lower exponent-p central series is generator in? */
if (pointer <= 0) {
printf("%d = ", gen);
print_word(pointer, pcp);
} else {
u = PART2(pointer);
v = PART3(pointer); if (u == 0)
printf("%d is defined on image of defining generator %d\n", gen, v); else { for (i = 1; i <= weight; ++i)
y[pcp->lused + i] = 0;
find_definition(gen, pcp->lused, weight, pcp); if (v == 0)
printf("%d is defined on %d^%d = ", gen, u, pcp->p); else
printf("%d is defined on [%d, %d] = ", gen, u, v);
for (i = 1; i <= weight; ++i) if ((value = y[pcp->lused + i]) != 0)
printf("%d ", value);
printf("\n");
}
}
}
}
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet)
¤
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.