diff --git a/base/special/bessel.jl b/base/special/bessel.jl index 778ef468e8b33..dc77627492e94 100644 --- a/base/special/bessel.jl +++ b/base/special/bessel.jl @@ -233,7 +233,7 @@ function besselj(nu::Float64, z::Complex128) end besselj(nu::Cint, x::Float64) = ccall((:jn, libm), Float64, (Cint, Float64), nu, x) -besselj(nu::Cint, x::Float32) = ccall((:jn, libm), Float32, (Cint, Float32), nu, x) +besselj(nu::Cint, x::Float32) = ccall((:jnf, libm), Float32, (Cint, Float32), nu, x) function besseljx(nu::Float64, z::Complex128) diff --git a/test/math.jl b/test/math.jl index 95aa40cbec123..bf2a159081b24 100644 --- a/test/math.jl +++ b/test/math.jl @@ -387,12 +387,20 @@ j33 = besselj(3,3.) @test besselj(-3,-3) == j33 @test besselj(-3,3) == -j33 @test besselj(3,-3) == -j33 +@test besselj(3,3f0) ≈ Float32(j33) +@test besselj(3,complex(3.)) ≈ j33 +@test besselj(3,complex(3f0)) ≈ Float32(j33) +@test besselj(3,complex(3)) ≈ j33 j43 = besselj(4,3.) @test besselj(4,3) == j43 @test besselj(-4,-3) == j43 @test besselj(-4,3) == j43 @test besselj(4,-3) == j43 +@test besselj(4,3f0) ≈ Float32(j43) +@test besselj(4,complex(3.)) ≈ j43 +@test besselj(4,complex(3f0)) ≈ Float32(j43) +@test besselj(4,complex(3)) ≈ j43 @test_approx_eq j33 0.30906272225525164362 @test_approx_eq j43 0.13203418392461221033