package: pari-stable
version: 2.5.4

Over the last couple of years I've been investigating the 3-class groups of unramified cyclic extensions of degree 3 over quadratic fields as part of a joint project with Nigel Boston and Farshid Hajir. I've been doing the class group computations using both Magma and Pari and a small number of discrepancies have appeared when I compare the results.

I've attached a file called polylist. It contains a list called "plist" with 29 entries. Each entry in plist has three components:

1) The class group of K as computed by Magma (V2.19-5).
2) The class group of K as computed by Pari (V2.5.4) -- but with the invariants in reverse order to match the convention in Magma.
3) The coefficient sequence for a polynomial of degree 6 over Q that defines the extension K.

I've just run through this list again and recomputed the class groups and, curiously, Pari's result now agrees with Magma's result for a couple of the entries. In particular, those with index: 1, 6, 8, 11, 14, 16, 19, 20, 21, 26. For the other 16 entries though, they still disagree and I get the results as listed in the file. I don't know how to explain this change in behavior.

The calculation of the entries in plist[2] is below so you can see the code that I'm using and an example of the discrepancy directly. After conversations with a couple of people (in particular, Nigel Boston and Daniel Mayer), I have reason to believe that Magma's results are probably correct.

System: The main calculations have been running on a Mac Pro under Mac OS X 10.8.5. I've also duplicated these results on a slightly older laptop (MacBook Pro; Mac OS X 10.7.5). Same Pari version in both cases.

I've computed the class groups for over 1.8 million cubic extensions over imaginary quadratic fields and these 29 extensions were the only ones where the results didn't match. I'm close to finishing similar calculations in the real quadratic case and there seem to be slightly more mismatches so far but still a very tiny percentage of the total.

Thanks for your help.

Michael Bush

--
Michael Bush
Assistant Professor
Dept. of Mathematics
Washington and Lee University


========================================================================
Example:  plist is defined in the attached file "polylist" and the format of each entry is described above. 

plist[2] is as follows:

    [
        [ 6, 1458 ],
        [ 2, 2, 2, 2, 6, 2916 ],
        [ 1135762133040301952, 0, 3271187089568, 0, 3135918, 0, 1 ]
    ]

The code/output below shows how I set up the class group computations in Magma and Pari to compute the first two entries in plist[2]. 

========================================================================
Magma calculation (gives the first entry in plist[2]):

Magma V2.19-5     Tue Mar  3 2015 12:18:18 on 35241-math-bush [Seed = 747476107]
Type ? for help.  Type <Ctrl>-D to quit.
> load "polylist";
Loading "polylist"
> R<x> := PolynomialRing(Rationals());
> f := R!plist[2][3];
> f;
x^6 + 3135918*x^4 + 3271187089568*x^2 + 1135762133040301952
> K := NumberField(f);
> C := ConditionalClassGroup(K);
> C;
Abelian Group isomorphic to Z/6 + Z/1458
Defined on 2 generators
Relations:
    6*C.1 = 0
    1458*C.2 = 0

> AQInvariants(FPGroup(C));
[ 6, 1458 ]

========================================================================
Pari calculation (gives the second entry in plist[2] -- after reversing order):

                  GP/PARI CALCULATOR Version 2.5.4 (released)
          i386 running darwin (x86-64/GMP-5.0.5 kernel) 64-bit version
           compiled: Jan  8 2014, gcc-4.5.4 (MacPorts gcc45 4.5.4_7) 
               (readline not compiled in, extended help enabled)

                     Copyright (C) 2000-2013 The PARI Group

PARI/GP is free software, covered by the GNU General Public License, and comes 
WITHOUT ANY WARRANTY WHATSOEVER.

Type ? for help, \q to quit.
Type ?12 for how to get moral (and possibly technical) support.

parisize = 8000000, primelimit = 500509
? {
c = [ 1135762133040301952, 0, 3271187089568, 0, 3135918, 0, 1 ];
f = 0; for(i=1,length(c),f = f + c[i]*x^(i-1));
print(f,"\n");
bb=bnfinit(f).clgp[2]
}
x^6 + 3135918*x^4 + 3271187089568*x^2 + 1135762133040301952

%1 = [2916, 6, 2, 2, 2, 2]