Bill Allombert on Wed, 03 Feb 2010 15:45:38 +0100


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

Re: PARI stable release 2.3.5 (for real now)


On Wed, Feb 03, 2010 at 12:14:57AM -0800, Ilya Zakharevich wrote:
> On Mon, Feb 01, 2010 at 05:56:27PM -0800, Ilya Zakharevich wrote:
> > On Fri, Jan 29, 2010 at 11:09:50PM +0100, Bill Allombert wrote:
> > > I put an hopefully final snapshot at
> > > <http://pari.math.u-bordeaux.fr/~bill/pari-2.3.5-pre2.tar.gz>
> 
> > > Please test!
> 
> > ..././pari-2.3.5/src/language/es.c: In function 'os_read':
> > ..././pari-2.3.5/src/language/es.c:2835: warning: ignoring return value
> >   of 'read', declared with attribute warn_unused_result

This is a known issue with galois.c. We should get rid of os_read entirely,
since it is not used in a POSIX compliant way. This need to be fixed in
the development branch first.

> > Otherwise fine.
> 
> In fact, I compiled GP/PARI now (above is from Math::Pari), and see a
> couple of problems:
> 
>   *) startup copyright notice mentions 2006;

2.3.5 is a bug fix update, so we do not update the startup copyright notice.

>   *) intnum() is still borken (same as in 3.0):
> 
>     ? intnum(Z=[0,-1/2],[[1],-3/2],1/sqrt(Z)*(1+Z)^(-3/2))
>     %1 = 7.150393303262919781690330041 + 1018.215229301285883563073358 I
> 
>      (I presume this is integral from 0 to infinity...)

The development version has the same behaviour. Please report this issue.

>   *) moreover, putting some printf()s inside, one can see that the
>      expression is calculated for negative Z:
> 
>     ? intnum(Z=[0,-1/2],[[1],-3/2],if(print(Z),1,1)/sqrt(Z)*(1+Z)^(-3/2))
> 
>      [output skipped].  [*]

I think I already see a similar bug issue.

>  [*] P.S. I see that some functions do not take expression-sequences,
>      as intnum() in the example above.  (This is why I need this ugly
>      `if'-hack.)  I thought this was fixed long ago...

This is fixed in the development branch.

>      P.P.S. Is there any simpler way to put print() inside intnum()?

Sure:
intnum(Z=[0,-1/2],[[1],-3/2],if(1,print(Z);1/sqrt(Z)*(1+Z)^(-3/2)))

Cheers,
Bill