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