bugGNU Scientific Library - Bugs: bug #23101, gsl_cdf_chisq_Pinv inverse failed...

 
 

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

bug #23101: gsl_cdf_chisq_Pinv inverse failed to converge

Submitter:  -Deleted Account- <bjg>
Submitted:  Tue 29 Apr 2008 01:36:20 PM UTC
   
 
Category:  Accuracy problem Severity:  3 - Normal
Operating System:  Status:  Fixed
Assigned to:  bjg Open/Closed:  Closed
Release:  1.11

Tue 29 Apr 2008 01:39:36 PM UTC, comment #1: 

fixed by 6d5d363d069aa108b351dff86872f7e10137f496

-Deleted Account- <bjg>
Tue 29 Apr 2008 01:36:20 PM UTC, original submission:  

While testing my use of gsl_cdf_chisq_Pinv I ran into the following
error message.

gsl: gammainv.c:105: ERROR: inverse failed to converge
Default GSL error handler invoked.
Aborted

I looked into this and discovered the issue is in the routine
cdf/gammainv.c. When nu = 1.93238145206123590e-01 and nu = 0.75, the
number of allowed iterations at line 78 is too small. That is, I
change the line from

     if (dP == 0.0 || n++ > 32)

to

     if (dP == 0.0 || n++ > 40)

and it no longer fails. In fact, the problem is most likely in line
60, which is

       double x0 = (xg < -sqrt (a)) ? a : sqrt (a) * xg + a;

For nu = 1.5 and around P = 1.93238145206123590e-01, xg is very close
to -sqrt( a ), and the guess x0 can jump from a = 0.75 to 0.

Thanks,
Bret Beck


-Deleted Account- <bjg>

 

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

Attached Files
file #15549:  bug.c added by bjg (528B - text/x-csrc)

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

Follow 3 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2008-04-29 bjg Open/ClosedOpen Closed
2008-04-29 bjg StatusConfirmed Fixed
2008-04-29 bjg Attached File- Added bug.c, #15549

Back to the top

Powered by Savane 3.13-4448.
Corresponding source code