From help-octave-request at bevo dot che dot wisc dot edu Tue Sep 9 11:33:26 2003 Subject: Re: Besseli Function From: "John W. Eaton" To: David Bateman Cc: Jose Otavio Bueno , help-octave@bevo.che.wisc.edu Date: Tue, 9 Sep 2003 11:31:54 -0500 On 9-Sep-2003, David Bateman wrote: | My question is then, why not just used the scaled calculation always? A quick | test with the unpatched code shows that there seems to be little speed | difference. | octave:1> x = 20*rand(100,100)-10; tic; y0 = airy(0,x); toc | ans = 0.14151 | octave:2> x = 20*rand(100,100)-10; tic; y1 = exp( - 2. / 3. .* x .* sqrt(x)).*airy(0,x,true); toc | ans = 0.13462 | | Is there possibly a problem with precision? Perhaps. It would help if someone could do some checking. I did a spot check of besseli (0, x) and found that for some numbers in the range x = 79.5:0.0001:80, one method was off from the other by 1e+17, but the result value is on the order of 1e+33, so the relative error is less than eps, which should be OK. | If not I propose to just used | the scaled calculations always internally, and return the scaled or unscaled | values depending on the the optional argument.. I think this is a good solution unless some checks reveal big differences in the results. Then you can still get the scaled result back if that's what you want. And we are probably doing a reasonable job of computing the unscaled results too. Thanks, jwe ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------