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). Cheers, K.B. P.S. See also http://pari.math.u-bordeaux1.fr/archives/pari-dev-1207/msg00013.html 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] `