Karim BELABAS on Thu, 21 Nov 2002 19:46:23 +0100 (MET)

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

Re: bug on Itanium

On Thu, 21 Nov 2002, Bill Allombert wrote:

> On Thu, Nov 21, 2002 at 12:32:43PM +0100, Bill Allombert wrote:
> > On the other hand, on ia64 with gcc 3.2 and 2.96, I get
> > qflll(1/mathilbert(7)) --> oo loop
> It also happen on alpha, so I suppose it is 64 bits specific.

I very recently modified the floating point LLL code for exact inputs, and
did not pay attention to [ pre-existing ] dependance on sizeof(long) [ my
main machines all have 32-bit architectures ].

I have fixed the problem.

When the entries are exact, the new code is expected to be fault-tolerant (it
should never abort with a "precision problem"), and much faster. Floating
point LLL should be faster than lllint except 1) for small entries, 2) in
large dimensions (say 100 and more).

Example: compare qflll(1/mathilbert(50)) with the stable version, or 2.2.4
at various precision. You can also try qflll(, 1)

My primary goal was nffactor() in high degrees (had to finish a paper...).
It works nicely here (~ factor 100 speedup in my applications).

I have also switched the whole polred[abs] machinery to always use floating
point LLL code, even for totally real fields, where the Gram matrix is exact.
I expect the polred functions to be _much_ faster for large totally real
polynomial [ such as produced by quadhilbert, quadray, bnrstark... ].

So if something's wrong with this code, it should show up quickly, on many

Happy hunting,

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             Email: Karim.Belabas@math.u-psud.fr
F-91405 Orsay (France)           http://www.math.u-psud.fr/~belabas/
PARI/GP Home Page: http://www.parigp-home.de/