qd

double-double and quad-double number type via libqd

Latest on Hackage:1.0.2.1

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD-3-Clause licensed by Claude Heiland-Allen
Maintained by [email protected]

This package supports both a double-double datatype (approx. 32 decimal digits) and a quad-double datatype (approx. 64 decimal digits), using libqd (which is implemented in C++ with C and Fortran wrappers). To compile this package you need libqd to be installed.

Numeric.QD.DoubleDouble.DoubleDouble and Numeric.QD.QuadDouble.QuadDouble are strict tuples of CDoubles, with instances of: BinDecode, DecimalFormat, Eq, Floating, Fractional, Num, Ord, Read, Real, RealFrac, Show, Storable, Typeable.

Additional note: libqd depends on 64bit doubles, while some FPU architectures use 80bit. When using the Unsafe modules this might cause erroneous results; the Safe modules (used by the instances above) set and restore the FPU flags in foreign code to avoid race conditions from pre-emptive Haskell threading.