[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug-gsl] Accuracy problem from functions in specfunc,
Daming Zou <=