packages feed

qd-1.0: qd.cabal

Name:                 qd
Version:              1.0
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:
    @'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.
    .
    The @'RealFloat'@ instances have been removed in this release as they were
    mostly broken: @'RealFloat'@ semantics are for fixed-precision numbers.

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, floatshow >= 0.2 && < 0.3
  Extra-Libraries:    qd
  if os(linux)
    Extra-libraries:  stdc++
  Exposed-modules:    Numeric.QD
                      Numeric.QD.DoubleDouble
                      Numeric.QD.QuadDouble
                      Numeric.QD.Raw
                      Numeric.QD.Raw.Safe
                      Numeric.QD.Raw.Unsafe
                      Numeric.QD.FPU.Raw.Unsafe
                      Numeric.QD.FPU.Unsafe
                      Numeric.QD.DoubleDouble.Raw
                      Numeric.QD.DoubleDouble.Raw.Safe
                      Numeric.QD.DoubleDouble.Raw.Unsafe
                      Numeric.QD.QuadDouble.Raw
                      Numeric.QD.QuadDouble.Raw.Safe
                      Numeric.QD.QuadDouble.Raw.Unsafe
  C-sources:          cbits/safe_dd.c cbits/safe_qd.c
  GHC-options:        -Wall -fno-excess-precision
  GHC-prof-options:   -prof -auto-all -caf-all