Package: pari
Version: 2.8.0

I have experienced the problem described below with bnfinit, depending upon the precision I use. The full session is provided at the bottom of this email.

I am using Windows 8.1 and have had this problem with GP/PARI CALCULATOR Version 2.8.0 (development 16683-83c548e) as well as the overnight build created this morning (Monday, 28 July).

I initially noticed the problem because the fundamental unit was failing to be returned with the same "missing units in bnf" error as below. But then I noticed despite this fundamental unit problem with \p 462, a value for the regulator is being returned with \p 462, but it is the wrong value (roughly 1/2 its actual value).

The thing that is even more odd is also shown below. The correct regulator and fundamental unit are returned when both more precision is used and when less precision is used.

If you need any further information, please do not hesitate to contact me.

Regards,

Paul


                                   GP/PARI CALCULATOR Version 2.8.0 (development 16686-58e5671)
                                    i686 running mingw (ix86/GMP-5.1.3 kernel) 32-bit version
                                         compiled: Jul 28 2014, gcc version 4.9.0 (GCC)
                                                     threading engine: single
                                          (readline v6.2 enabled, extended help enabled)

                                              Copyright (C) 2000-2014 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 = 4000000, primelimit = 500000
? allocatemem(64*10^6)
  ***   Warning: new stack size = 64000000 (61.035 Mbytes).
? \p 462
   realprecision = 462 significant digits
? f=x^3 - 64598*x^2 - 29814*x - 44722
%1 = x^3 - 64598*x^2 - 29814*x - 44722
? nf=bnfinit(f);printf("%.8f\n",nf.reg);nf.fu
12.40819432
  ***   at top-level: ...intf("%.8f\n",nf.reg);nf.fu
  ***                                             ^--
  *** _.fu: missing units in bnf.
  ***   Break loop: type 'break' to go back to GP prompt
break> break

? \p 200
   realprecision = 202 significant digits (200 digits displayed)
? nf=bnfinit(f);printf("%.8f\n",nf.reg);nf.fu
24.71684825
%2 = [Mod(13*x^2 + 6*x + 9, x^3 - 64598*x^2 - 29814*x - 44722)]
? \p 800
   realprecision = 809 significant digits (800 digits displayed)
? nf=bnfinit(f);printf("%.8f\n",nf.reg);nf.fu
24.71684825
%3 = [Mod(13*x^2 + 6*x + 9, x^3 - 64598*x^2 - 29814*x - 44722)]
?