| Michael Stoll on Wed, 17 Jun 1998 18:41:48 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Class groups in Pari and Magma |
Dear developers of Pari and of Magma,
here are two examples of class group computations which show that
there is room for improvement in both programs.
(1) Take the field generated by X^5 + 239.
Pari computes its class groups (and units) in a few seconds,
whereas Magma allocates 109 MB of memory (on a machine with
64 MB RAM and 66 MB swap space), and the machine is kept
busy swapping.
The pari code is (pari-2.0.7alpha)
bnfclgp(x^5 + 239)
The Magma code is (Magma V 2.4-beta)
P<x> := PolynomialRing(Rationals());
K := NumberField(x^5 + 239);
ClassGroup(K : Verify := false);
(Doing
bnf = bnfinit(x^5 + 239); bnfcertify(bnf)
gave an error messages, however -- too many iterations in isprincipal
or so.)
(2) On the other hand, take the field generated by X^4 + 5*239*X^2 + 5*239^2.
Pari keeps doubling the stack (when started with the usual default size),
whereas Magma finds the class group in 54 seconds.
Here is another attempt with pari:
GP/PARI CALCULATOR Version 2.0.7 (alpha)
i486 running nextstep (ix86 kernel) 32-bit version
(readline enabled, extended help available)
Copyright 1989-1998 by
C. Batut, K. Belabas, D. Bernardi, H. Cohen and M. Olivier.
Type ? for help.
realprecision = 28 significant digits
seriesprecision = 16 significant terms
format = g0.28
parisize = 8000000, primelimit = 1000000, buffersize = 30000
gp (18:18)> default( parisize , 60000000)
parisize = 60000000
gp (18:18)> #
timer = 1 (on)
gp (18:18)> bnfclgp(x^4 + 5*239*x^2 + 5*239^2)
^C *** user interrupt after 21mn, 13,686 ms.
It uses 11 MB for the first ~12 min, then grows to 36 MB and stays
at this size until I killed it.
Best wishes,
Michael