@@ -275,12 +275,14 @@ float{T<:Number}(::Type{T}) = typeof(float(zero(T)))
275
275
276
276
for Ti in (Int8, Int16, Int32, Int64)
277
277
@eval begin
278
+ unsafe_trunc (:: Type{$Ti} , x:: Float16 ) = unsafe_trunc ($ Ti, Float32 (x))
278
279
unsafe_trunc (:: Type{$Ti} , x:: Float32 ) = fptosi ($ Ti, x)
279
280
unsafe_trunc (:: Type{$Ti} , x:: Float64 ) = fptosi ($ Ti, x)
280
281
end
281
282
end
282
283
for Ti in (UInt8, UInt16, UInt32, UInt64)
283
284
@eval begin
285
+ unsafe_trunc (:: Type{$Ti} , x:: Float16 ) = unsafe_trunc ($ Ti, Float32 (x))
284
286
unsafe_trunc (:: Type{$Ti} , x:: Float32 ) = fptoui ($ Ti, x)
285
287
unsafe_trunc (:: Type{$Ti} , x:: Float64 ) = fptoui ($ Ti, x)
286
288
end
@@ -314,6 +316,8 @@ function unsafe_trunc(::Type{Int128}, x::Float32)
314
316
copysign (unsafe_trunc (UInt128,x) % Int128, x)
315
317
end
316
318
319
+ unsafe_trunc (:: Type{UInt128} , x:: Float16 ) = unsafe_trunc (UInt128, Float32 (x))
320
+ unsafe_trunc (:: Type{Int128} , x:: Float16 ) = unsafe_trunc (Int128, Float32 (x))
317
321
318
322
# matches convert methods
319
323
# also determines floor, ceil, round
0 commit comments