Skip to content

Commit 5bd6e59

Browse files
committed
Add v bound for half integer, and expand tests.
1 parent 5c1b7a6 commit 5bd6e59

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

src/besselk.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ function besselk_positive_args(nu, x::T) where T <: Union{Float32, Float64}
227227
iszero(nu) && return besselk0(x)
228228

229229
# check if nu is a half-integer:
230-
isinteger(nu-1/2) && return besselk_vhalfint(nu, x)
230+
besselk_vhalfint_check(nu, x) && return besselk_vhalfint(nu, x)
231231

232232
# use uniform debye expansion if x or nu is large
233233
besselik_debye_cutoff(nu, x) && return besselk_large_orders(nu, x)
@@ -447,3 +447,5 @@ function besselk_vhalfint(v, x::T) where T
447447
end
448448
b1
449449
end
450+
besselk_vhalfint_check(nu, x) = isinteger(nu-1/2) && (nu < 41.5) #@inline?
451+

test/besselk_test.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,9 @@ k1x_32 = besselk1x.(Float32.(x))
6868
@test besselk(100, 234.0) SpecialFunctions.besselk(100, 234.0)
6969

7070
# test half-integer orders:
71-
for v in (-3/2, -1/2, 1/2, 3/2, 5/2, 7/2, 9/2)
72-
@test besselk(v, 7.0) SpecialFunctions.besselk(v, 7.0)
73-
@test besselk(Float32(v), Float32(7.0)) SpecialFunctions.besselk(Float32(v), Float32(7.0))
71+
for (v,x) in Iterators.product(-35/2:1.0:81/2, range(0.0, 30.0, length=51)[2:end])
72+
@test besselk(v, x) SpecialFunctions.besselk(v, x)
73+
@test besselk(Float32(v), Float32(x)) SpecialFunctions.besselk(Float32(v), Float32(x))
7474
end
7575

7676
# test small arguments and order

0 commit comments

Comments
 (0)