bugGNU Scientific Library - Bugs: bug #50713, Non termination of the incomplete...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #50713: Non termination of the incomplete gamma function due to floating-point rounding errors

Submitter:  Patrick Alken <psa>
Submitted:  Mon 03 Apr 2017 10:05:29 PM UTC
   
 
Category:  None Severity:  3 - Normal
Operating System:  Status:  Duplicate
Assigned to:  None Open/Closed:  Closed
Release: 

Mon 03 Apr 2017 10:06:11 PM UTC, comment #1: 

duplicate of #50459

Patrick Alken <psa>
Group administrator
Mon 03 Apr 2017 10:05:29 PM UTC, original submission:  

from maurica =dot= fonenantsoa =at= gmail =dot= com

Bug of non termination of the incomplete gamma function due to
floating-point rounding errors in GSL 2.3

The function
int gsl_sf_gamma_inc_e(const double a, const double x, gsl_sf_result*
result) from gsl/gsl_sf_gamma.h
does not terminate for any value of a and x such that a < -2^52 && 0 < x <=
0.25

For example, the call to gsl_sf_gamma_inc_e in the following program:
#include <stdio.h>
#include <gsl/gsl_sf_gamma.h>
int main (void)
{
  double a = -1E25, x = 0.1;
  gsl_sf_result* result;
  printf ("%i\n", gsl_sf_gamma_inc_e(a, x, result));
  return 0;
}

does not terminate as explained below:
int gsl_sf_gamma_inc_e(const double a, const double x, gsl_sf_result*
result)
{
...
  else
  {
    ...
    double alpha = da; // alpha = 0
    ...
    do
    {
      ...
      alpha -= 1.0; // when alpha reaches -2^-52 (~4.5E15)
                    // then alpha - 1 is rounded to alpha itself
                    // thus alpha will not be updated anymore
    } while(alpha > a); // a = -1E25
  ...
  }
}

To guarantee termination for any possible input, the case a < -2^52 && 0 <
x <= 0.25 should be prevented.

Patrick Alken <psa>
Group administrator

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by psa (Submitted the item)
  •  

    Follow 2 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2017-04-03 psa StatusNone Duplicate
        Open/ClosedOpen Closed

    Back to the top

    Powered by Savane 3.13-4448.
    Corresponding source code