flintlib / arb

Arb has been merged into FLINT -- use https://github.com/flintlib/flint/ instead
http://arblib.org/
GNU Lesser General Public License v2.1
456 stars 137 forks source link

improve bessel k expansion transition #361

Closed p15-git-acc closed 3 years ago

p15-git-acc commented 3 years ago

See https://github.com/fredrik-johansson/arb/issues/360.

For positive real nu and z, the cutoff criterion appears to be affine and not depend on nu. I didn't check other values of nu or z.

Evaluating besselk(2.0, 57.9668555791947111700112064539202300037282162) for various precisions:

Before:

100 [1.136872868128306888443825590e-26 +/- 2.95e-54]
110 [1.136872868128306888443825589950e-26 +/- 4.01e-57]
120 [+/- 1.19e-9]
130 [+/- 1.17e-12]
140 [+/- 1.18e-15]
150 [+/- 1.15e-18]
160 [+/- 1.14e-21]
170 [+/- 1.13e-24]
180 [1e-26 +/- 2.46e-27]
190 [1.137e-26 +/- 2.36e-30]
200 [1.136873e-26 +/- 2.39e-33]
210 [1.136872868e-26 +/- 2.35e-36]
220 [1.136872868128e-26 +/- 4.11e-39]
230 [1.136872868128307e-26 +/- 2.14e-42]
240 [1.136872868128306888e-26 +/- 5.46e-45]
250 [1.136872868128306888444e-26 +/- 2.75e-48]

After:

100 [1.136872868128306888443825590e-26 +/- 2.95e-54]
110 [1.136872868128306888443825589950e-26 +/- 4.01e-57]
120 [1.136872868128306888443825589950094e-26 +/- 6.98e-60]
130 [1.1368728681283068884438255899500943247e-26 +/- 6.98e-64]
140 [1.136872868128306888443825589950094324651e-26 +/- 1.13e-66]
150 [1.1368728681283068884438255899500943246509356e-26 +/- 6.42e-70]
160 [1.136872868128306888443825589950094324650935557e-26 +/- 5.01e-72]
170 [1.136872868128306888443825589950094324650935557413e-26 +/- 3.10e-75]
180 [1.13687286812830688844382558995009432465093555741322e-26 +/- 5.56e-77]
190 [1.13687286812830688844382558995009432465093555741322e-26 +/- 5.48e-77]
200 [1.13687286812830688844382558995009432465093555741322e-26 +/- 5.48e-77]
210 [1.13687286812830688844382558995009432465093555741322e-26 +/- 5.48e-77]
220 [1.13687286812830688844382558995009432465093555741322e-26 +/- 5.48e-77]
230 [1.13687286812830688844382558995009432465093555741322e-26 +/- 5.48e-77]
240 [1.13687286812830688844382558995009432465093555741322e-26 +/- 5.48e-77]
250 [1.13687286812830688844382558995009432465093555741322e-26 +/- 5.48e-77]
p15-git-acc commented 3 years ago

The threshold does depend on nu, and the data I was using to determine the threshold for this PR didn't use big enough nu.