Karim BELABAS on Sat, 8 Mar 2003 16:17:28 +0100 (MET)


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: qfbclassno


On Fri, 7 Mar 2003, Karim BELABAS wrote:
[Original bug report by Rob Harley:]
> (18:56) gp > qfbclassno(-71034143)
> %1 = 0
[...]
> It's a weird bug: I can correct it in at least two different ways (modifying
> internal parameters), but I still don't understand exactly why it occurs
> [ something else is broken which I don't understand yet ], and whether I can
> fix it in a "clean" way [ given that the code is heuristic and offers no
> guarantee whatsoever ]

[Igor later wrote:]
> ? qfbclassno(-2878367)
> 1056

Both of these are now fixed in development version, by modifying a number of
heuristic parameters: as written, the code could run into difficulties if
the truncated Euler product approximating the class number did not yield an
upper bound. The current code should never return 0.

The code still offers no guarantee, since implementing the "correct" BS/GS
method (e.g, from GTM 138) would make it generically much slower. At least it
does work for all values < 10^6 in absolute value [ didn't bother to check
larger ones ]. But it will presumably not work if the exponent of the group
is small compared to the class number, and the Euler product doesn't happen
to give almost the right value.

Note that qfbclassno is often much faster than quadclassunit (which also
doesn't give a guaranteed answer, even under GRH, since we cheat on Bach's
bound), so there is still some use for this routine.

Also note that quadclassunit used to be unreliable for non-fundamental
discriminants (another TODO item). I believe I have fixed this also, hence
there is no longer a Warning when quadclassunit is fed a non-fundamental
discriminant.

Cheers,

    Karim.

P.S: All this only applies to the development version (I will probably not
backport it, since it doesn't fix a formal bug, only heuristically improve
some parameters). So, if someone wants to continue this thread, please
move it to pari-dev. I'm interested in bizarre behaviour of either
quadclassunit(D non-fundamental) or qfbclassno(D < 0).
-- 
Karim Belabas                     Tel: (+33) (0)1 69 15 57 48
Dép. de Mathématiques, Bât. 425   Fax: (+33) (0)1 69 15 60 19
Université Paris-Sud              http://www.math.u-psud.fr/~belabas/
F-91405 Orsay (France)            http://www.parigp-home.de/  [PARI/GP]