qd
Version 0.2 revision 0 uploaded by ClaudeHeilandAllen.
Package meta
- Synopsis
- double-double and quad-double number type via libqd
- Description
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
andNumeric.QD.QuadDouble.QuadDouble
are strict tuples ofCDouble
s, with the following instances:But note that the following functions (while present) are
undefined
:Non-crashing implementations of these are planned in a future update to this package, as well as instances of
Enum
andRead
.Additional note: libqd depends on 64bit doubles, while some FPU architectures use 80bit. It is highly recommended to compile with -fno-excess-precision and set the FPU control words to avoid erroneous behaviour, perhaps by doing something like this at the start of your program:
import Foreign (nullPtr) import GHC.Conc (forkOnIO, numCapabilities) import Numeric.QD.FPU.Raw (fpu_fix_start) main :: IO () main = do mapM_ (flip forkOnIO $ fpu_fix_start nullPtr) [ 0 .. numCapabilities - 1 ] -- ...
- Author
- Claude Heiland-Allen
- Bug reports
- n/a
- Category
- Math
- Copyright
- n/a
- Homepage
- n/a
- Maintainer
- claudiusmaximus@goto10.org
- Package URL
- n/a
- Stability
- n/a