Karim Belabas on Tue, 06 May 2014 09:34:36 +0200

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

Re: Strange results in lower bound for regulator in bnfcertify()

* Georgi Guninski [2014-05-06 08:33]:
> 2.5.5 on linux x86_64.
> With debug info the lower bound for the regulator
> in bnfcertify() is greater than the regulator.
> Why so?

This is due to an incorrect use of fudge factors in minimforunits(),
which returns
  m := min_{u unit, not a root of 1} T_2(u).

This is done using a variant of qfminim() which (since T_2 can in general
only be approximated and not computed exactly) actually computes, for 
a know unit u_0,

  min_{T_2(u) < T_2(u_0) * (1 + epsilon), u unit} T_2(u)

i.e. possibly

  m * (1 + epsilon).

i.e. an upper bound for m (but very close to m). This was harmless in
our application since this is only used to approximate a rational
integer via rounding, and the epsilon cannot change that value.

I just changed that code so that the routine returns an acctual lower
bound (but very close to m).



P.S. See also


This lower bound implementation should be rewritten, since the original
author no longer supports it, we have no written reference for it, and
the Magma implementation (for which there is a good published reference)
is quite a bit faster. Not enthusiastic about doing it myself: been
aware of the issue since 1995, postponed fixing it since then. I'll open
an issue in the BTS shortly.

Karim Belabas, IMB (UMR 5251)  Tel: (+33) (0)5 40 00 26 17
Universite Bordeaux 1          Fax: (+33) (0)5 40 00 69 50
351, cours de la Liberation    http://www.math.u-bordeaux1.fr/~kbelabas/
F-33405 Talence (France)       http://pari.math.u-bordeaux1.fr/  [PARI/GP]