|
bnf = bnfinit(f,1);
n = poldegree(f);
un = lift(concat([bnf.tu[2]],bnf.fu));
r = #un;
p2v(n,b) = vector(n,j,polcoeff(b,j-1));
\\print units
print("[[ ");
for(i=1,#un, print(p2v(n,un[i]),","));
print("],\n");
\\print exponents
print("[ ");
{
for(i=1,#elms-1,
c = bnfisunit(bnf, Polrev(elms[i]));
if (#c==0, error("element must be a unit"));
c = vector(r,j,if(j==1,lift(c[r]),c[j-1]));
print(c,",");
);
}
print("],\n");
\\ get the rank of the group
rank=bnf.tu[1];
print(rank,"];");
[ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet)
]
|