Utilities for dealing with IEEE floating point numbers

Version on this page:0.8.0
LTS Haskell 13.23:0.8.0
Stackage Nightly 2019-05-26:0.8.0
Latest on Hackage:0.8.0

See all snapshots ieee754 appears in

BSD-3-Clause licensed by Patrick Perry
Maintained by Patrick Perry

Module documentation for 0.8.0

Utilities for dealing with IEEE floating point numbers, ported from the Tango math library; approximate and exact equality comparisons for general types.


Changes in 0.8.0:

* Daniel Mendler added minDenormal.

Changes in 0.7.9:

* Rename nextup/nextdown to ieeesucc/ieeepred to avoid clashes with
libm functions (fixes issue #15, reported by @clinty)

Changes in 0.7.8:

* Alain O'Dea fixed broken illumos build.

* Simplified endianness detection in C code.

Changes in 0.7.7:

* Johan Kiviniemi added tests for minNormal, maxFinite, epsilon,

Changes in 0.7.6:

* Fix broken windows build.

Changes in 0.7.5:

* Added more robust check for endianness (related to issue #5, reported by @juricast).

Changes in 0.7.4:

* Add C implementation of copysign, copysignf

* Remove libm dependency

* Anders Kaseorg fixed documentation for epsilon.

Changes in 0.7.3:

* Bugfix from Björn Buckwalter: any two negative values were approxEqIEEE

Changes in 0.7.2:

* Fix aliasing warnings in C code

Changes in 0.7.1:

* Rename package from "ieee" to "ieee754"

Changes in 0.7:

* Add IEEE type class with instances for Double, Float, CDouble, and CFloat

* Add functions for getting/setting NaN payloads

* Add succIEEE/predIEEE for advancing up and down the IEEE number line
(ported from Tango's nextUp and nextDown)

* Add bisectIEEE for midpoints of two numbers on the IEEE number line
(ported from Tango's ieeeMean)

* Add identicalIEEE for exact (bitwise) equality of IEEE numbers

* Add copySign for setting the sign bit of an IEEE number

* Add sameSignificandBits for seeing how many significand bits of two
IEEE numbers agree, ported from Tango's feqrel

* Add nan, infinity, maxFinite, minNormal constants for IEEE numbers

* Add maxNum and minNum

* Rename maxF and minF to maxNaN and minNaN

* Switch to a simpler "~==" comparison for complex numbers

* Make "~==" comparison use sameSignificandBits for IEEE types

* Make "===" comparison use bitwise equality for IEEE types

* Remove old "eqRel" comparisons.

* Remove old epsilon' and delta constants

* Remove (RealFloat a) => AEq (Complex a) instance in favor of explicit
instances for Complex {Double,Float,CDouble,CFloat}

Changes in 0.6.1:

* Remove AEq instance for CLDouble (thanks to Bjorn Buckwalter)
comments powered byDisqus