bug-gsl
[Top][All Lists]
Advanced

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

[Bug-gsl] Accuracy problem from functions in specfunc


From: Daming Zou
Subject: [Bug-gsl] Accuracy problem from functions in specfunc
Date: Wed, 19 Mar 2014 12:27:20 +0800

Hello,

I’m testing about floating point accuracy, and I have found that 9 functions in 
specfunc have potential bugs of inaccuracy.

I’m using gsl-1.1.6 in Ubuntu 64bit.

Below is the inputs. To make the inputs precise, I encode them in hexadecimal.

double i2d(unsigned long int x) {
    double d = *(double*)(&x);
    return d;
}

gsl_sf_hyperg_0F1(i2d(0x13675FCCC1DE0AE1), i2d(0xDD0DD58CDBC5592)) with 
estimate of the absolute error(result->err, the same below) is 6.501089E+185, 
but actual absolute error is 1.149822E+198.

gsl_sf_hyperg_0F1(i2d(0x19A2961396A4C4D0), i2d(0x19A2961396A4C4D0)) with 
estimate of the absolute error is 5.877511E+155, but actual absolute error is 
1.140714E+168.

gsl_sf_hyperg_0F1(i2d(0x1BDB9BF0824AECEA), i2d(0x22F7C93FACA8FCBB)) with 
estimate of the absolute error is 9.611187E+144, but actual absolute error is 
2.234939E+157.

gsl_sf_clausen(i2d(0xC2D4C8E2EBF0F5E0)) with estimate of the absolute error is 
1.808299E-16, but actual absolute error is 1.153174E-02.

gsl_sf_clausen(i2d(0x42AC3A936C2D0F3E)) with estimate of the absolute error is 
2.047340E-16, but actual absolute error is 7.243544E-04.

gsl_sf_exprel_2(i2d(0xBF9C62E5D62AD9D9)) with estimate of the absolute error is 
4.400140E-16, but actual absolute error is 9.869315E-04.

gsl_sf_psi_1(i2d(0xDFBE8E425E52DE59)) with estimate of the absolute error is 
1.448389E-13, but actual absolute error is 1.125952E+01.

gsl_sf_psi_1(i2d(0xC74262F4CCE814C6)) with estimate of the absolute error is 
7.427255E-14, but actual absolute error is 4.347871E+00.

gsl_sf_zeta(i2d(0xBFD85EC3692520C1)) with estimate of the absolute error is 
3.307754E-15, but actual absolute error is 1.283687E-03.

gsl_sf_eta(i2d(0xBFD12087E34CCC81)) with estimate of the absolute error is 
1.042941E-14, but actual absolute error is 1.141164E-03.

gsl_sf_gamma_inc_Q(i2d(0x3D6015265DC415D9), i2d(0x336A62C7B4081920)) with 
estimate of the absolute error is 8.881784E-16, but actual absolute error is 
6.319112E-11.

gsl_sf_pochrel(i2d(0xD272424D4D731852), i2d(0x1EC8DCEFA40C71DF)) with estimate 
of the absolute error is 9.072393E-14, but actual absolute error is 
1.113754E+02.

gsl_sf_pochrel(i2d(0xCD88BA943FE1B3E9), i2d(0x3E47245280744497)) with estimate 
of the absolute error is 1.051328E-13, but actual absolute error is 
2.373726E+23.

gsl_sf_pochrel(i2d(0xCC1F1549401470B0), i2d(0x9547D22A7AE65BEC)) with estimate 
of the absolute error is 5.949131E-14, but actual absolute error is 
1.690742E+02.

gsl_sf_ellint_P(i2d(0x275AC794A3F9C13C), i2d(0x235BA8619CF10FD8), 
i2d(0x741226BBB54FE9F9)) with estimate of the absolute error is 1.842198E-134, 
but actual absolute error is 4.148260E-119.

We can see that in most cases the actual errors are many orders of magnitudes 
larger than the estimated ones, indicating potentially serious problems in 
practice.

Thanks,
Daming





reply via email to

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