packages feed

elynx-tools-0.3.0: src/ELynx/Tools/Definitions.hs

-- |
-- Module      :  ELynx.Tools.Definitions
-- Description :  Some global definitions
-- Copyright   :  (c) Dominik Schrempf 2020
-- License     :  GPL-3.0-or-later
--
-- Maintainer  :  dominik.schrempf@gmail.com
-- Stability   :  unstable
-- Portability :  portable
--
-- Creation date: Fri Jan 25 17:17:41 2019.
module ELynx.Tools.Definitions
  ( -- * Definitions
    chunksize,
    eps,
    eps',
    precision,
    version,
  )
where

import Data.Version

-- TODO: Move back to automatic version handling.

-- XXX: Manually handled, because automatic handling with @Paths_...@ modules
-- results in errors during source tarball creation and upload.

-- Careful, this version number has to be synchronized with the one specified in
-- the *.cabal files. This is done with the @bump-version@ script.

-- | ELynx version.
version :: Version
version = makeVersion [0, 3, 0]

-- | Required precision when comparing 'Double' values.
eps :: Double
eps = 1e-12

-- | Relaxed required precision when comparing 'Double' values. Often, input
-- files do not provide the required double precision. In this case, it is only
-- possible to check input with relaxed bounds.
eps' :: Double
eps' = 1e-5

-- | Default output precision.
precision :: Int
precision = 3

-- | Default chunk size for parallel evaluations.
chunksize :: Int
chunksize = 500