2727@inline split_exponent (:: Type{Float32} , q:: Int ) = _split_exponent (q, UInt (6 ), UInt (31 ), UInt (2 ))
2828
2929"""
30- ldexpk(a::IEEEFloat , n::Int) -> IEEEFloat
30+ ldexpk(a, n)
3131
3232Computes `a × 2^n`.
3333"""
34- @inline function ldexpk (x:: T , q:: Int ) where {T<: IEEEFloat }
34+ @inline function ldexpk (x:: T , q:: Int ) where {T<: Union{Float32,Float64} }
3535 bias = exponent_bias (T)
3636 emax = exponent_raw_max (T)
3737 m, q = split_exponent (T, q)
@@ -45,11 +45,11 @@ Computes `a × 2^n`.
4545 x * u
4646end
4747
48- @inline function ldexp2k (x:: T , e:: Int ) where {T<: IEEEFloat }
48+ @inline function ldexp2k (x:: T , e:: Int ) where {T<: Union{Float32,Float64} }
4949 x * pow2i (T, e >> 1 ) * pow2i (T, e - (e >> 1 ))
5050end
5151
52- @inline function ldexp3k (x:: T , e:: Int ) where {T<: IEEEFloat }
52+ @inline function ldexp3k (x:: T , e:: Int ) where {T<: Union{Float32,Float64} }
5353 reinterpret (T, reinterpret (Unsigned, x) + (Int64 (e) << significand_bits (T)) % fpinttype (T))
5454end
5555
@@ -58,7 +58,7 @@ const threshold_exponent(::Type{Float64}) = 300
5858const threshold_exponent (:: Type{Float32} ) = 64
5959
6060"""
61- ilogbk(x::IEEEFloat ) -> Int
61+ ilogbk(x) -> Int
6262
6363Returns the integral part of the logarithm of `|x|`, using 2 as base for the logarithm; in other
6464words this returns the binary exponent of `x` so that
@@ -67,14 +67,14 @@ words this returns the binary exponent of `x` so that
6767
6868where `significand ∈ [1, 2)`.
6969"""
70- @inline function ilogbk (d:: T ) where {T<: IEEEFloat }
70+ @inline function ilogbk (d:: T ) where {T<: Union{Float32,Float64} }
7171 m = d < T (2 )^- threshold_exponent (T)
7272 d = ifelse (m, d * T (2 )^ threshold_exponent (T), d)
7373 q = float2integer (d) & exponent_raw_max (T)
7474 q = ifelse (m, q - (threshold_exponent (T) + exponent_bias (T)), q - exponent_bias (T))
7575end
7676
77- @inline function ilogb2k (d:: T ) where {T<: IEEEFloat }
77+ @inline function ilogb2k (d:: T ) where {T<: Union{Float32,Float64} }
7878 (float2integer (d) & exponent_raw_max (T)) - exponent_bias (T)
7979end
8080
@@ -117,7 +117,7 @@ const c1f = -0.333332866430282592773438f0
117117global @inline atan2k_fast_kernel (x:: Float64 ) = @horner x c1d c2d c3d c4d c5d c6d c7d c8d c9d c10d c11d c12d c13d c14d c15d c16d c17d c18d c19d c20d
118118global @inline atan2k_fast_kernel (x:: Float32 ) = @horner x c1f c2f c3f c4f c5f c6f c7f c8f c9f
119119
120- @inline function atan2k_fast (y:: T , x:: T ) where {T<: IEEEFloat }
120+ @inline function atan2k_fast (y:: T , x:: T ) where {T<: Union{Float32,Float64} }
121121 q = 0
122122 if x < 0
123123 x = - x
139139global @inline atan2k_kernel (x:: Double{Float64} ) = @horner x. hi c1d c2d c3d c4d c5d c6d c7d c8d c9d c10d c11d c12d c13d c14d c15d c16d c17d c18d c19d c20d
140140global @inline atan2k_kernel (x:: Double{Float32} ) = dadd (c1f, x. hi * (@horner x. hi c2f c3f c4f c5f c6f c7f c8f c9f))
141141
142- @inline function atan2k (y:: Double{T} , x:: Double{T} ) where {T<: IEEEFloat }
142+ @inline function atan2k (y:: Double{T} , x:: Double{T} ) where {T<: Union{Float32,Float64} }
143143 q = 0
144144 if x < 0
145145 x = - x
@@ -193,7 +193,7 @@ global @inline expk_kernel(x::Float32) = @horner x c1f c2f c3f c4f c5f
193193global under_expk (:: Type{Float64} ) = - 1000.0
194194global under_expk (:: Type{Float32} ) = - 104f0
195195
196- @inline function expk (d:: Double{T} ) where {T<: IEEEFloat }
196+ @inline function expk (d:: Double{T} ) where {T<: Union{Float32,Float64} }
197197 q = round (T (d) * T (MLN2E))
198198
199199 s = dadd (d, q * - L2U (T))
@@ -215,7 +215,7 @@ global under_expk(::Type{Float32}) = -104f0
215215end
216216
217217
218- @inline function expk2 (d:: Double{T} ) where {T<: IEEEFloat }
218+ @inline function expk2 (d:: Double{T} ) where {T<: Union{Float32,Float64} }
219219 q = round (T (d) * T (MLN2E))
220220
221221 s = dadd (d, - q * L2U (T))
@@ -251,7 +251,7 @@ const c1f = 0.666666686534881591796875f0
251251global @inline logk2_kernel (x:: Float64 ) = @horner x c1d c2d c3d c4d c5d c6d c7d c8d
252252global @inline logk2_kernel (x:: Float32 ) = @horner x c1f c2f c3f c4f
253253
254- @inline function logk2 (d:: Double{T} ) where {T<: IEEEFloat }
254+ @inline function logk2 (d:: Double{T} ) where {T<: Union{Float32,Float64} }
255255 e = ilogbk (d. hi * T (1.0 / 0.75 ))
256256 m = scale (d, pow2i (T, - e))
257257
@@ -285,7 +285,7 @@ const c1fd = Double(0.66666662693023681640625f0, 3.69183861259614332084311f-9)
285285global @inline logk_kernel (x:: Double{Float64} ) = dadd2 (c1dd, dmul (x, @horner x. hi c2d c3d c4d c5d c6d c7d c8d c9d c10d))
286286global @inline logk_kernel (x:: Double{Float32} ) = dadd2 (c1fd, dmul (x, @horner x. hi c2f c3f c4f))
287287
288- @inline function logk (d:: T ) where {T<: IEEEFloat }
288+ @inline function logk (d:: T ) where {T<: Union{Float32,Float64} }
289289 o = d < realmin (T)
290290 o && (d *= T (Int64 (1 ) << 32 ) * T (Int64 (1 ) << 32 ))
291291
0 commit comments