Skip to content

Commit 9d7227e

Browse files
committed
fix type promotions
1 parent 77dfa1f commit 9d7227e

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

src/besseli.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -306,9 +306,9 @@ end
306306

307307
besseli_large_argument_scaled(v, x::T) where T = T(_besseli_large_argument(v, x) / sqrt(2 ** x)))
308308

309-
function _besseli_large_argument(v, x::ComplexOrReal{T}) where T
309+
function _besseli_large_argument(v, x::T) where T
310310
MaxIter = 5000
311-
S = eltype(x)
311+
S = promote_type(T, Float64)
312312
v, x = S(v), S(x)
313313

314314
fv2 = 4 * v^2

src/besselk.jl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,10 +362,12 @@ end
362362

363363
# computes K_{nu+1}/K_{nu} using continued fractions and the modified Lentz method
364364
# generally slow to converge for small x
365+
besselk_ratio_knu_knup1(v, x::Float32) = Float32(besselk_ratio_knu_knup1(v, Float64(x)))
366+
besselk_ratio_knu_knup1(v, x::ComplexF32) = ComplexF32(besselk_ratio_knu_knup1(v, ComplexF64(x)))
365367
function besselk_ratio_knu_knup1(v, x::ComplexOrReal{T}) where T
366368
MaxIter = 1000
367369
S = eltype(x)
368-
(hn, Dn, Cn) = (S(1e-150), zero(S), S(1e-150))
370+
(hn, Dn, Cn) = (S(1e-50), zero(S), S(1e-50))
369371

370372
jf = one(S)
371373
vv = v * v
@@ -457,6 +459,8 @@ end
457459

458460
besselk_large_argument_scaled(v, x::T) where T = T(_besselk_large_argument(v, x) * sqrt(pi / 2x))
459461

462+
_besselk_large_argument(v, x::Float32) = Float32(_besselk_large_argument(v, Float64(x)))
463+
_besselk_large_argument(v, x::ComplexF32) = ComplexF32(_besselk_large_argument(v, ComplexF64(x)))
460464
function _besselk_large_argument(v, x::ComplexOrReal{T}) where T
461465
MaxIter = 5000
462466
S = eltype(x)

0 commit comments

Comments
 (0)