packages feed

qd-0.4.1: qd.cabal

Name:                 qd
Version:              0.4.1
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'@ and @'Numeric.QD.QuadDouble.QuadDouble'@
                      are strict tuples of @CDouble@s, with instances of:
                      @'Eq'@, @'Floating'@, @'Fractional'@, @'Num'@, @'Ord'@, @'Read'@, @'Real'@,
                      @'RealFloat'@, @'RealFrac'@, @'Show'@, @'Storable'@, @'Typeable'@.
                      .
                      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 ]
                      >   -- ...

License:              BSD3
License-file:         LICENSE
Author:               Claude Heiland-Allen
Maintainer:           claudiusmaximus@goto10.org
Category:             Math
Build-type:           Simple
Cabal-version:        >=1.2

Library
  Build-depends:      base >= 4 && < 5
  Extra-Libraries:    qd
  if os(linux)
    Extra-libraries:  stdc++
  Exposed-modules:    Numeric.QD
                      Numeric.QD.DoubleDouble
                      Numeric.QD.DoubleDouble.Raw
                      Numeric.QD.FPU
                      Numeric.QD.FPU.Raw
                      Numeric.QD.QuadDouble
                      Numeric.QD.QuadDouble.Raw
                      Numeric.QD.Raw
  GHC-options:        -O2 -Wall -fno-excess-precision
  GHC-prof-options:   -O2 -Wall -fno-excess-precision -prof -auto-all -caf-all