bugGNU Scientific Library - Bugs: bug #21819, gsl_sf_bessel_J_CF1() crash for...

 
 

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

bug #21819: gsl_sf_bessel_J_CF1() crash for large arguments

Submitted by:  -Deleted Account- <bjg>
Submitted on:  Mon 17 Dec 2007 10:21:45 PM UTC  
 
Category: Runtime errorSeverity: 3 - Normal
Operating System: Status: Fixed
Assigned to: -Deleted Account- <bjg>Open/Closed: Closed
Release: 1.10

Sat 15 Mar 2008 02:13:51 PM UTC, comment #3:

fixed by f2c8297ac8957f1791cb9ed52a581b6b78b0e7d2

-Deleted Account- <bjg>In charge of this item.
Mon 17 Dec 2007 10:24:02 PM UTC, comment #2:

From: Koichi Takahashi <ktakahashi@molsci.org>
To: Jonny Taylor <j.m.taylor@dur.ac.uk>
Cc: -unavailable-
Subject: [Bug-gsl] Re: gsl_sf_bessel__J_CF1 bug again
Date: Sun, 02 Dec 2007 06:06:11 -0800

At this range, x is still not large enough to use the asymptotic form?
In gsl_sf_bessel_jl_e,

else if(x > 1000.0 && x > 100.0ll)
{
//asymptotic
}
else
{
//CF1
}

so, for example, 100 * 50 * 50 = 250,000.
For l=50, the iteration starts to exceed 10,000 around x=9900.
If we want to stick to 10,000 max iteration, we have to switch to
the asymptotic version with something like x > 3ll. Maybe this is
too small? If so I'd consider increasing the max iteration.
Maybe we should do both. Or there can be a better method.

koichi

-Deleted Account- <bjg>In charge of this item.
Mon 17 Dec 2007 10:23:36 PM UTC, comment #1:

From: Jonny Taylor <j.m.taylor@dur.ac.uk>
To: Koichi Takahashi <ktakahashi@molsci.org>
Cc: -unavailable-
Subject: [Bug-gsl] Re: gsl_sf_bessel__J_CF1 bug again
Date: Sun, 2 Dec 2007 10:49:33 +0000

While the symptom is the same, the cause is different. For those
numbers it seems that 10,000 iterations is simply not enough.
Interestingly, In fact, in all three cases it requires less than 50
additional iterations to converge!?

The naive fix is simply to increase the maximum permitted number of
iterations, but a more sophisticated fix would probably need to
justify a maximum number of iterations, and propose an alternative
method of generating the result in the cases where the number of
iterations is prohibitive...

Jonny

-Deleted Account- <bjg>In charge of this item.
Mon 17 Dec 2007 10:21:45 PM UTC, original submission:

Reply-To: Koichi Takahashi <ktakahashi@molsci.org>
From: Koichi Takahashi <ktakahashi.molsci@gmail.com>
To: -unavailable-
CC: Brian Gough <bjg@gnu.org>, Jonathan Taylor <j.m.taylor@durham.ac.uk>
Subject: gsl_sf_bessel__J_CF1 bug again
Date: Sun, 02 Dec 2007 00:11:02 -0800

Hi,

Unfortunately, I found some additional sets of numbers that still
crash gsl_sf_bessel_J_CF1() even with the cvs version. Symptom
is exactly the same as what I reported before. I tested on
x86_64.

main()
{
// this used to crash, but now fixed in the current cvs.
// double a = gsl_sf_bessel_jl( 30, 3875.6138424501978 );

// at least the following three sets of values still crashes.
double a = gsl_sf_bessel_jl( 49, 9912.6308956132361 );
// double a = gsl_sf_bessel_jl( 49, 9950.3478935215589 );
// double a = gsl_sf_bessel_jl( 52, 9930.5181281798232 );

printf("%g\n",a);
}

Let me know if there is anything I could do to help you fixing
this issue.

thanks,
Koichi

-Deleted Account- <bjg>In charge of this item.

 

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

Please enter the title of George Orwell's famous dystopian book (it's a date):

 

 

Follow 3 latest changes.

Date Changed By Updated Field Previous Value => Replaced By
Sat 15 Mar 2008 02:13:51 PM UTCbjgStatusConfirmed=>Fixed
  Open/ClosedOpen=>Closed
Mon 17 Dec 2007 10:23:36 PM UTCbjgRelease=>1.10

Back to the top


Powered by Savane 3.1-cleanup1