Skip to content

Commit 5264aea

Browse files
authored
Merge pull request #61 from Samuel3008/master
Improve sphericalbesselj inference
2 parents 6c8be6f + fc0fb59 commit 5264aea

File tree

2 files changed

+21
-21
lines changed

2 files changed

+21
-21
lines changed

src/sphericalbessel.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ function sphericalbesselj_recurrence(nu::Integer, x::T) where T
9191
nu_start += 1
9292
end
9393
return sJ0
94-
elseif x < nu
94+
else
9595
# compute sphericalbessely with forward recurrence and use continued fraction
9696
sYnm1, sYn = sphericalbessely_forward_recurrence(nu, x)
9797
H = besselj_ratio_jnu_jnum1(nu + T(3)/2, x)

test/sphericalbessel_test.jl

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
# test very small inputs
22
x = 1e-15
3-
@test Bessels.sphericalbesselj(0, x) SpecialFunctions.sphericalbesselj(0, x)
4-
@test Bessels.sphericalbesselj(1, x) SpecialFunctions.sphericalbesselj(1, x)
5-
@test Bessels.sphericalbesselj(5.5, x) SpecialFunctions.sphericalbesselj(5.5, x)
6-
@test Bessels.sphericalbesselj(10, x) SpecialFunctions.sphericalbesselj(10, x)
7-
@test Bessels.sphericalbessely(0, x) SpecialFunctions.sphericalbessely(0, x)
8-
@test Bessels.sphericalbessely(1, x) SpecialFunctions.sphericalbessely(1, x)
9-
@test Bessels.sphericalbessely(5.5, x) SpecialFunctions.sphericalbessely(5.5, x)
10-
@test Bessels.sphericalbessely(10, x) SpecialFunctions.sphericalbessely(10, x)
11-
@test Bessels.sphericalbesselk(5.5, x) SpecialFunctions.besselk(5.5 + 1/2, x) * sqrt( 2 / (x*pi))
12-
@test Bessels.sphericalbesselk(10, x) SpecialFunctions.besselk(10 + 1/2, x) * sqrt( 2 / (x*pi))
3+
@test @inferred(Bessels.sphericalbesselj(0, x)) SpecialFunctions.sphericalbesselj(0, x)
4+
@test @inferred(Bessels.sphericalbesselj(1, x)) SpecialFunctions.sphericalbesselj(1, x)
5+
@test @inferred(Bessels.sphericalbesselj(5.5, x)) SpecialFunctions.sphericalbesselj(5.5, x)
6+
@test @inferred(Bessels.sphericalbesselj(10, x)) SpecialFunctions.sphericalbesselj(10, x)
7+
@test @inferred(Bessels.sphericalbessely(0, x)) SpecialFunctions.sphericalbessely(0, x)
8+
@test @inferred(Bessels.sphericalbessely(1, x)) SpecialFunctions.sphericalbessely(1, x)
9+
@test @inferred(Bessels.sphericalbessely(5.5, x)) SpecialFunctions.sphericalbessely(5.5, x)
10+
@test @inferred(Bessels.sphericalbessely(10, x)) SpecialFunctions.sphericalbessely(10, x)
11+
@test @inferred(Bessels.sphericalbesselk(5.5, x)) SpecialFunctions.besselk(5.5 + 1/2, x) * sqrt( 2 / (x*pi))
12+
@test @inferred(Bessels.sphericalbesselk(10, x)) SpecialFunctions.besselk(10 + 1/2, x) * sqrt( 2 / (x*pi))
1313

1414
x = 1e-20
15-
@test Bessels.sphericalbesseli(0, x) SpecialFunctions.besseli(0 + 1/2, x) * sqrt( pi / (x*2))
16-
@test Bessels.sphericalbesseli(1, x) SpecialFunctions.besseli(1 + 1/2, x) * sqrt( pi / (x*2))
17-
@test Bessels.sphericalbesseli(2, x) SpecialFunctions.besseli(2 + 1/2, x) * sqrt( pi / (x*2))
18-
@test Bessels.sphericalbesseli(3, x) SpecialFunctions.besseli(3 + 1/2, x) * sqrt( pi / (x*2))
19-
@test Bessels.sphericalbesseli(4, x) SpecialFunctions.besseli(4 + 1/2, x) * sqrt( pi / (x*2))
20-
@test Bessels.sphericalbesseli(6.5, x) SpecialFunctions.besseli(6.5 + 1/2, x) * sqrt( pi / (x*2))
15+
@test @inferred(Bessels.sphericalbesseli(0, x)) SpecialFunctions.besseli(0 + 1/2, x) * sqrt( pi / (x*2))
16+
@test @inferred(Bessels.sphericalbesseli(1, x)) SpecialFunctions.besseli(1 + 1/2, x) * sqrt( pi / (x*2))
17+
@test @inferred(Bessels.sphericalbesseli(2, x)) SpecialFunctions.besseli(2 + 1/2, x) * sqrt( pi / (x*2))
18+
@test @inferred(Bessels.sphericalbesseli(3, x)) SpecialFunctions.besseli(3 + 1/2, x) * sqrt( pi / (x*2))
19+
@test @inferred(Bessels.sphericalbesseli(4, x)) SpecialFunctions.besseli(4 + 1/2, x) * sqrt( pi / (x*2))
20+
@test @inferred(Bessels.sphericalbesseli(6.5, x)) SpecialFunctions.besseli(6.5 + 1/2, x) * sqrt( pi / (x*2))
2121

2222
# test zero
2323
@test isone(Bessels.sphericalbesselj(0, 0.0))
@@ -78,10 +78,10 @@ x = NaN
7878
@test isnan(Bessels.sphericalbesseli(6.4, x))
7979

8080
# test Float16, Float32 types
81-
@test Bessels.sphericalbesselj(Float16(1.4), Float16(1.2)) isa Float16
82-
@test Bessels.sphericalbessely(Float16(1.4), Float16(1.2)) isa Float16
83-
@test Bessels.sphericalbesselj(1.4f0, 1.2f0) isa Float32
84-
@test Bessels.sphericalbessely(1.4f0, 1.2f0) isa Float32
81+
@test @inferred(Bessels.sphericalbesselj(Float16(1.4), Float16(1.2))) isa Float16
82+
@test @inferred(Bessels.sphericalbessely(Float16(1.4), Float16(1.2))) isa Float16
83+
@test @inferred(Bessels.sphericalbesselj(1.4f0, 1.2f0)) isa Float32
84+
@test @inferred(Bessels.sphericalbessely(1.4f0, 1.2f0)) isa Float32
8585

8686
@test Bessels.sphericalbesselk(Float16(1.4), Float16(1.2)) isa Float16
8787
@test Bessels.sphericalbesselk(1.0f0, 1.2f0) isa Float32

0 commit comments

Comments
 (0)