Stability | experimental |
---|---|
Maintainer | Patrick Perry <patperry@gmail.com> |
Operations on IEEE floating point numbers.
- class RealFloat a => IEEE a where
- infinity :: a
- minNormal :: a
- maxFinite :: a
- epsilon :: a
- copySign :: a -> a -> a
- identicalIEEE :: a -> a -> Bool
- succIEEE :: a -> a
- predIEEE :: a -> a
- bisectIEEE :: a -> a -> a
- sameSignificandBits :: a -> a -> Int
- nan :: a
- nanWithPayload :: Word64 -> a
- maxNaNPayload :: a -> Word64
- nanPayload :: a -> Word64
- minNum :: RealFloat a => a -> a -> a
- maxNum :: RealFloat a => a -> a -> a
- minNaN :: RealFloat a => a -> a -> a
- maxNaN :: RealFloat a => a -> a -> a
IEEE type class
class RealFloat a => IEEE a whereSource
IEEE floating point types.
Infinity value.
The smallest representable positive normalized value.
The largest representable finite value.
The smallest representalbe positive value x
such that 1 + x /= 1
.
copySign x y
returns x
with its sign changed to y
's.
identicalIEEE :: a -> a -> BoolSource
Return True
if two values are exactly (bitwise) equal.
Return the next largest IEEE value (Infinity
and NaN
are
unchanged).
Return the next smallest IEEE value (-Infinity
and NaN
are
unchanged).
bisectIEEE :: a -> a -> aSource
Given two values with the same sign, return the value halfway
between them on the IEEE number line. If the signs of the values
differ or either is NaN
, the value is undefined.
sameSignificandBits :: a -> a -> IntSource
The number of significand bits which are equal in the two arguments
(equivalent to feqrel
from the Tango Math library). The result is
between 0
and
.
floatDigits
Default NaN
value.
nanWithPayload :: Word64 -> aSource
NaN
value with a positive integer payload. Payload must be
ess than maxNaNPayload
. Beware that while some platforms allow
using 0
as a payload, this behavior is not portable.
maxNaNPayload :: a -> Word64Source
Maximum NaN
payload for type a
.
nanPayload :: a -> Word64Source
The payload stored in a NaN
value. Undefined if the argument
is not NaN
.
NaN-aware minimum and maximum
minNum :: RealFloat a => a -> a -> aSource
Return the minimum of two values; if one value is NaN
, return the
other. Prefer the first if both values are NaN
.
maxNum :: RealFloat a => a -> a -> aSource
Return the maximum of two values; if one value is NaN
, return the
other. Prefer the first if both values are NaN
.