[Top][All Lists]

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

[Bug-gsl] Re: Bug in gsl_sf_hyperg_2F1

From: Andrew Benson
Subject: [Bug-gsl] Re: Bug in gsl_sf_hyperg_2F1
Date: Tue, 24 Aug 2010 21:02:26 -0700

On Tuesday, August 24, 2010, Andrew Benson wrote:
> Under GSL 1.14 (compiled with either gcc version 4.4.4 or gcc version
> 4.1.2) the gsl_sf_hyperg_2F1 function crashes with the following
> arguments:
> gsl_sf_hyperg_2F1(-10.34,2.05,3.05,0.1725)
> The expected answer (computed using Maple for example) is 0.3104735522
> I've attached an example case:
> $ g++ test.cpp -o test.x -lgsl -lgslcblas
> $ test.x
> gsl: hyperg_2F1.c:755: ERROR: error
> Default GSL error handler invoked.
> Abort
> The crash seems to occur only when the first argument is less than or equal
> to -10. For example,
> gsl_sf_hyperg_2F1(-10.0,2.05,3.05,0.1725)
> crashes, but
> gsl_sf_hyperg_2F1(-9.99999999999,2.05,3.05,0.1725)
> evaluates correctly to 0.321419346301974773.

Some further investigation shows that this combination of parameters is 
falling through all of the various methods for computing the result in 
gsl_sf_hyperg_2F1_e and hitting the "/* We give up. */" block at the end. 

This seems to be related to http://savannah.gnu.org/bugs/?24812 - if I make 
the changes suggested there (patch attached) then my test code works 

$ test.x
= 0.310473552213130111

I haven't checked that this doesn't break anything else (beyond running "make 
check" on the newly compiled code). 

Attachment: hyperg_2F1.c.patch
Description: Text Data

reply via email to

[Prev in Thread] Current Thread [Next in Thread]