[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 15:10:39 -0700 |
User-agent: |
KMail/1.13.5 (Linux/2.6.33.6-147.2.4.fc13.i686.PAE; KDE/4.4.5; i686; ; ) |
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
successfully:
$ test.x
= 0.310473552213130111
I haven't checked that this doesn't break anything else (beyond running "make
check" on the newly compiled code).
hyperg_2F1.c.patch
Description: Text Data