packages feed

random-fu-0.2.3.0: random-fu.cabal

name:                   random-fu
version:                0.2.3.0
stability:              provisional

cabal-version:          >= 1.6
build-type:             Simple

author:                 James Cook <james.cook@usma.edu>
maintainer:             James Cook <james.cook@usma.edu>
license:                PublicDomain
homepage:               https://github.com/mokus0/random-fu

category:               Math
synopsis:               Random number generation
description:            Random number generation based on modeling random 
                        variables in two complementary ways: first, by the
                        parameters of standard mathematical distributions and,
                        second, by an abstract type ('RVar') which can be
                        composed and manipulated monadically and sampled in
                        either monadic or \"pure\" styles.
                        .
                        The primary purpose of this library is to support 
                        defining and sampling a wide variety of high quality
                        random variables.  Quality is prioritized over speed,
                        but performance is an important goal too.
                        .
                        In my testing, I have found it capable of speed 
                        comparable to other Haskell libraries, but still
                        a fair bit slower than straight C implementations of 
                        the same algorithms.
                        .
                        Changes in 0.2.3.0: Added stretched exponential distribution,
                        contributed by Ben Gamari.
                        .
                        Changes in 0.2.2.0: Bug fixes in Data.Random.Distribution.Categorical.
                        .
                        Changes in 0.2.1.1: Changed some one-field data types
                        to newtypes, updated types for GHC 7.4's removal of Eq 
                        and Show from the context of Num, and added RVarT versions
                        of random variables in Data.Random.List
                        .
                        Changes in 0.2.1.0: Exposed Categorical type (it
                        had been hidden by accident a few version ago),
                        gave it a Read instance, and dropped a 
                        no-longer-necessary Ord context from 'fromWeightedList'.
                        Thank you Antal Spector-Zabusky for catching these!
                        .
                        Changes in 0.2.0.2: None except setting 
                        \"Buildable: False\" under GHC 7.2.1 (see 
                        flexible-defaults 0.0.0.2 for more detailed
                        explanation).
                        
tested-with:            GHC == 6.10.4, GHC == 6.12.1, GHC == 6.12.3,
                        GHC == 7.0.1, GHC == 7.0.2, GHC == 7.0.4,
                        GHC == 7.2.2, GHC == 7.4.1-rc1

source-repository head
  type:                 git
  location:             https://github.com/mokus0/random-fu.git
  subdir:               random-fu

Flag base4_2
    Description:        base-4.2 has an incompatible change in Data.Fixed (HasResolution)

Flag mtl2
    Description:        mtl-2 has State, etc., as "type" rather than "newtype"

Library
  ghc-options:          -Wall -funbox-strict-fields
  hs-source-dirs:       src
  exposed-modules:      Data.Random
                        Data.Random.Distribution
                        Data.Random.Distribution.Bernoulli
                        Data.Random.Distribution.Beta
                        Data.Random.Distribution.Binomial
                        Data.Random.Distribution.Categorical
                        Data.Random.Distribution.ChiSquare
                        Data.Random.Distribution.Dirichlet
                        Data.Random.Distribution.Exponential
                        Data.Random.Distribution.StretchedExponential
                        Data.Random.Distribution.Gamma
                        Data.Random.Distribution.Multinomial
                        Data.Random.Distribution.Normal
                        Data.Random.Distribution.Pareto
                        Data.Random.Distribution.Poisson
                        Data.Random.Distribution.Rayleigh
                        Data.Random.Distribution.Triangular
                        Data.Random.Distribution.Uniform
                        Data.Random.Distribution.Weibull
                        Data.Random.Distribution.Ziggurat
                        Data.Random.Internal.Find
                        Data.Random.Internal.Fixed
                        Data.Random.Internal.TH
                        Data.Random.Lift
                        Data.Random.List
                        Data.Random.RVar
                        Data.Random.Sample
  if flag(base4_2)
    build-depends:      base >= 4.2 && <5
  else
    cpp-options:        -Dold_Fixed
    build-depends:      base >= 4 && <4.2
  
  if flag(mtl2)
    build-depends:      mtl == 2.*
    cpp-options:        -DMTL2
  else
    build-depends:      mtl == 1.*
  
  build-depends:        gamma,
                        monad-loops >= 0.3.0.1,
                        random-shuffle,
                        random-source == 0.3.*,
                        rvar == 0.2.*,
                        syb,
                        template-haskell,
                        transformers,
                        vector >= 0.7

  if os(Windows)
    cpp-options:        -Dwindows
    build-depends:      erf-native
  else
    build-depends:      erf
  
  if impl(ghc == 7.2.1)
    -- Doesn't work under GHC 7.2.1 due to
    -- http://hackage.haskell.org/trac/ghc/ticket/5410
    -- (7.2.2 is fine though, as long as random-source is new enough)
    Buildable:          False