Skip to content

Commit f5cf89e

Browse files
committed
precompute variables
1 parent 711f9ac commit f5cf89e

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/besselj.jl

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -226,11 +226,15 @@ function besselj_debye(v, x)
226226
T = eltype(x)
227227
S = promote_type(T, Float64)
228228
x = S(x)
229-
b = sqrt(v^2 - x^2)
230-
n = v * log(v/x + sqrt((v/x)^2 - 1)) - b
231-
coef = inv(sqrt(2*T(pi))) * exp(-n) / sqrt(b)
232-
p = v / sqrt(v^2 - x^2)
233-
p2 = v^2/fma(v,v, -x^2)
229+
230+
vmx = fma(v,v, -x^2)
231+
vdx = v/x
232+
b = sqrt(vmx)
233+
234+
n = v * log(vdx + sqrt(vdx^2 - 1)) - b
235+
coef = SQ1O2PI(S) * exp(-n) / sqrt(b)
236+
p = v / b
237+
p2 = v^2 / vmx
234238

235239
return coef * Uk_poly_Jn(p, v, p2, T)
236240
end

0 commit comments

Comments
 (0)