half- Half-precision floating-point

Copyright(C) 2014 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Safe HaskellNone



Half-precision floating-point values. These arise commonly in GPU work and it is useful to be able to compute them and compute with them on the CPU as well.



isZero :: Half -> Bool Source

Is this Half equal to 0?

fromHalf :: Half -> Float Source

Convert a Half to a Float while preserving NaN

toHalf :: Float -> Half Source

Convert a Float to a Half with proper rounding, while preserving NaN and dealing appropriately with infinity

pattern POS_INF :: Half Source

Positive infinity

pattern NEG_INF :: Half Source

Negative infinity

pattern QNaN :: Half Source

Quiet NaN

pattern SNaN :: Half Source

Signalling NaN

pattern HALF_MIN :: Half Source

Smallest positive half

pattern HALF_NRM_MIN :: Half Source

Smallest positive normalized half

pattern HALF_MAX :: Half Source

Largest positive half

pattern HALF_EPSILON :: Half Source

Smallest positive e for which half (1.0 + e) != half (1.0)

pattern HALF_DIG :: () => (Eq a, Num a) => a Source

Number of base 10 digits that can be represented without change

pattern HALF_MIN_10_EXP :: () => (Eq a, Num a) => a Source

pattern HALF_MAX_10_EXP :: () => (Eq a, Num a) => a Source