1
- besseljy_large_argument_min (:: Type{Float32} ) = 15.0f0
1
+ # besseljy_large_argument_min(::Type{Float32}) = 15.0f0
2
2
besseljy_large_argument_min (:: Type{Float64} ) = 20.0
3
3
besseljy_large_argument_min (:: Type{T} ) where T <: AbstractFloat = 40.0
4
4
5
- besseljy_large_argument_cutoff (v, x:: Float32 ) = (x > 1.2f0 * v && x > besseljy_large_argument_min (Float32))
5
+ # besseljy_large_argument_cutoff(v, x::Float32) = (x > 1.2f0*v && x > besseljy_large_argument_min(Float32))
6
6
besseljy_large_argument_cutoff (v, x:: Float64 ) = (x > 1.65 * v && x > besseljy_large_argument_min (Float64))
7
7
besseljy_large_argument_cutoff (v, x:: T ) where T = (x > 4 * v && x > besseljy_large_argument_min (T))
8
8
@@ -39,6 +39,7 @@ function _α_αp_asymptotic(v, x::Float64)
39
39
return _α_αp_poly_30 (v, x)
40
40
end
41
41
end
42
+ #=
42
43
function _α_αp_asymptotic(v, x::Float32)
43
44
if x > 4*v
44
45
return _α_αp_poly_5(v, x)
@@ -48,7 +49,7 @@ function _α_αp_asymptotic(v, x::Float32)
48
49
return _α_αp_poly_30(v, x)
49
50
end
50
51
end
51
-
52
+ =#
52
53
# Float64
53
54
# can only use for x > 20.0
54
55
# 30 terms gives ~5e-16 relative error when x > 1.6*nu
83
84
# a = 27.7479; b = 22.3588; c = 3.74567
84
85
# this method requires significantly more terms when x gets closer to nu
85
86
# so it becomes more efficient to use recurrence (or another algorithm) in this region
87
+ #=
86
88
function _α_αp_poly_5(v, x::T) where T
87
89
xinv = inv(x)^2
88
90
μ = 4 * T(v)^2
@@ -98,6 +100,7 @@ function _α_αp_poly_5(v, x::T) where T
98
100
return α, αp
99
101
return α, αp
100
102
end
103
+ =#
101
104
function _α_αp_poly_10 (v, x:: T ) where T
102
105
xinv = inv (x)^ 2
103
106
μ = 4 * v^ 2
@@ -118,6 +121,7 @@ function _α_αp_poly_10(v, x::T) where T
118
121
return α, αp
119
122
return α, αp
120
123
end
124
+ #=
121
125
function _α_αp_poly_15(v, x::T) where T
122
126
xinv = inv(x)^2
123
127
μ = 4 * v^2
@@ -142,6 +146,7 @@ function _α_αp_poly_15(v, x::T) where T
142
146
α = x * (evalpoly(xinv, (s0, -s1, -s2/3, -s3/5, -s4/7, -s5/9, -s6/11, -s7/13, -s8/15, -s9/17, -s10/19, -s11/21, -s12/23, -s13/25, -s14/27, -s15/29)))
143
147
return α, αp
144
148
end
149
+ =#
145
150
function _α_αp_poly_20 (v, x:: T ) where T
146
151
xinv = inv (x)^ 2
147
152
μ = 4 * v^ 2
0 commit comments