packages feed

aern2-mp-0.1.4: aern2-mp.cabal

name:           aern2-mp
version:        0.1.4
cabal-version:  >= 1.9.2
build-type:     Simple
homepage:       https://github.com/michalkonecny/aern2
author:         Michal Konecny
maintainer:     Michal Konecny <mikkonecny@gmail.com>
copyright:      (c) 2015-2019 Michal Konecny
license:        BSD3
license-file:   LICENSE
extra-source-files:  changelog.md
stability:      experimental
category:       Math
synopsis:       Multi-precision ball (interval) arithmetic
Description:
  This package provides the following types:
  .
  * Dyadic:  variable-precision floats with exact ring operations
  .
  * MPBall: float ± error bound with field & elementary interval-like operations
  .
  The types have instances of both <https://hackage.haskell.org/package/mixed-types-num MixedTypeNumPrelude> 
  type classes as well as with traditional Prelude type classes.
  .
  There is a plan to add an Integer-only backend so that aern2-mp can
  be used without MPFR.

source-repository head
  type:     git
  location: https://github.com/mikkonecny/aern2.git
  subdir: aern2-mp

flag UseCDAR
  Description: Use CDAR (mBound branch) as an Integer-only backend instead of MPFR
  Default:     False

library
  hs-source-dirs:  src
  build-depends:
    base == 4.*
    , integer-logarithms
    , convertible
    , regex-tdfa
    , hspec
    -- , hspec-smallcheck >= 0.3
    , QuickCheck
    , lens
    , template-haskell
    , mixed-types-num >= 0.3.2
  if flag(UseCDAR)
    hs-source-dirs:  src-cdar
    build-depends:
      cdar
  else
    hs-source-dirs:  src-rounded
    build-depends:
      rounded == 0.1.*
  ghc-options:     -Wall -fno-warn-orphans
  extensions:
    RebindableSyntax,
    PostfixOperators,
    ScopedTypeVariables,
    DeriveGeneric,
    GeneralizedNewtypeDeriving,
    TypeFamilies,
    TypeOperators,
    ConstraintKinds,
    DefaultSignatures,
    MultiParamTypeClasses,
    FlexibleContexts,
    FlexibleInstances,
    UndecidableInstances
  if !flag(UseCDAR)
    exposed-modules:
      AERN2.MP.Float.RoundedAdaptor
  exposed-modules:
    -- modules that depend on backend choice:
    AERN2.MP.Float.Type
    AERN2.MP.Float.Arithmetic
    AERN2.MP.Float.Conversions
    -- modules common to all backends:
    AERN2.Utils.Bench
    AERN2.Normalize
    AERN2.Norm
    AERN2.MP.Precision
    AERN2.MP.Accuracy
    AERN2.MP.Enclosure
    AERN2.MP.ErrorBound
    AERN2.MP.Float.Auxi
    AERN2.MP.Float.Operators
    AERN2.MP.Float.Tests
    AERN2.MP.Float
    AERN2.MP.Dyadic
    AERN2.MP.Ball.Type
    AERN2.MP.Ball.Conversions
    AERN2.MP.Ball.Comparisons
    AERN2.MP.Ball.Field
    AERN2.MP.Ball.Elementary
    AERN2.MP.Ball.PreludeOps
    AERN2.MP.Ball
    AERN2.MP.Ball.Tests
    AERN2.MP

test-suite spec
  type:
      exitcode-stdio-1.0
  ghc-options:
      -Wall
  extensions:
    RebindableSyntax,
    PostfixOperators,
    ScopedTypeVariables,
    FlexibleContexts
  hs-source-dirs:
      test
  main-is:
      Spec.hs
  other-modules:
    AERN2.MP.BallSpec
    AERN2.MP.DyadicSpec
    AERN2.MP.FloatSpec
  build-depends:
    base == 4.*
    -- , mixed-types-num >= 0.3.1 && < 0.4
    , aern2-mp
    , hspec >= 2.1
    -- , hspec-smallcheck >= 0.3
    , QuickCheck >= 2.7