hafar

Hafar is an affine arithmetic library for Haskell. It is an efficient way to work with ranges of values or imprecise values.


Keywords
library, numeric, Propose Tags , Numeric.AffineForm, Numeric.AffineForm.ExplicitRounding, Numeric.AffineForm.Subdivision, affine-arithmetic, haskell, interval-arithmetic, numerical-methods
License
BSD-3-Clause
Install
cabal install hafar

Documentation

Hafar

Hafar is an implementation of affine arithmetic in haskell.

Building

To build the library, simply run

# stack build

or if using cabal

# cabal install --only-dependencies
# cabal build

Example

All operations with affine forms must be done inside the AFM monad.

import Numeric.Interval hiding (interval)

x1 = do
  a <- newFromInterval $ 4...6
  b <- newFromInterval $ 4...6
  return . interval $ a - b

evalAFM x1 -- evaluates to approximately -2 ... 2

x2 = do
  a <- newFromInterval $ 4...6
  return . interval $ a - a

evalAFM x2 -- evaluates to approximately 0 ... 0