You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
function_convert(::Type{U}, x::Tf) where {T, f, U <:Normed{T,f}, Tf <:Union{Float32, Float64}}
if T == UInt128 && f ==53
0<= x <=Tf(3.777893186295717e22) ||throw_converterror(U, x)
else
0<= x <=Tf((typemax(T)-rawone(U))/rawone(U)+1) ||throw_converterror(U, x)
end
(typemax(T)-rawone(U))/rawone(U)+1 essentially means typemax(T)/rawone(U).
The decision is based, for example, on the idea that the range of N0f8 should be [0, 1]. In particular, regarding the lower bound, I believe that the Normeds should not accept negative inputs since the current Normeds are unsigned types.
So, I don't know whether the acceptable input range of Q0f7 should be [-1, 127/128] , or [-128.5/128, 127.5/128).
Accepting inputs less than typemin or greater than typemax causes a bit confusing, and it is nonsense especially if the input type is not based on the binary numeral system. On the other hand, it seems to be a desirable property that the difference between the upper and lower bounds is a power of two.
The text was updated successfully, but these errors were encountered:
When fixing the issue #102 (PR #131), I changed the acceptable input range for
Normed
as follows:FixedPointNumbers.jl/src/normed.jl
Lines 69 to 74 in 7ad0f0c
(typemax(T)-rawone(U))/rawone(U)+1
essentially meanstypemax(T)/rawone(U)
.The decision is based, for example, on the idea that the range of
N0f8
should be [0, 1]. In particular, regarding the lower bound, I believe that theNormed
s should not accept negative inputs since the currentNormed
s are unsigned types.However, the following is also true:
So, I don't know whether the acceptable input range of
Q0f7
should be [-1, 127/128] , or [-128.5/128, 127.5/128).Accepting inputs less than
typemin
or greater thantypemax
causes a bit confusing, and it is nonsense especially if the input type is not based on the binary numeral system. On the other hand, it seems to be a desirable property that the difference between the upper and lower bounds is a power of two.The text was updated successfully, but these errors were encountered: