packages feed

random-fu-0.1.4: random-fu.cabal

name:                   random-fu
version:                0.1.4
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.
                        
                        Warning to anyone upgrading from \"< 0.1\": 'Discrete'
                        has been renamed 'Categorical', the entropy source 
                        classes have been redesigned, and many things are no
                        longer exported from the root module "Data.Random"
                        (In particular, DevRandom - this is not available on 
                        windows, so it will likely move to its own package 
                        eventually so that client code dependencies on it will 
                        be made explicit).
                        
                        Support for "base" packages earlier than version 4
                        (and thus GHC releases earlier than 6.10) has been 
                        dropped, as too many of this package's dependencies do
                        not support older versions.
                        
                        The "Data.Random" module itself should now have a
                        relatively stable interface, but the other modules
                        are still subject to change.  Specifically, I am 
                        considering hiding data constructors for most or all 
                        of the distributions.

Tested-with:            GHC == 6.10.4, GHC == 6.12.1, GHC == 6.12.3,
                        GHC == 7.0.1, GHC == 7.0.2

source-repository head
  type:                 git
  location:             https://github.com/mokus0/random-fu.git
  branch:               v0.1-series

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 -fno-method-sharing
  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.Dirichlet
                        Data.Random.Distribution.Exponential
                        Data.Random.Distribution.Gamma
                        Data.Random.Distribution.Multinomial
                        Data.Random.Distribution.Normal
                        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.Primitives
                        Data.Random.Internal.TH
                        Data.Random.Internal.Words
                        Data.Random.Lift
                        Data.Random.List
                        Data.Random.RVar
                        Data.Random.Sample
                        Data.Random.Source
                        Data.Random.Source.MWC
                        Data.Random.Source.PureMT
                        Data.Random.Source.Std
                        Data.Random.Source.StdGen
  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:        array,
                        containers,
                        mersenne-random-pure64,
                        monad-loops >= 0.3.0.1,
                        MonadPrompt,
                        mwc-random,
                        random,
                        random-shuffle,
                        stateref >= 0.3 && < 0.4,
                        syb,
                        tagged,
                        template-haskell,
                        vector
  
  if os(Windows)
    cpp-options:        -Dwindows
    build-depends:      erf-native
  else
    build-depends:      erf
    exposed-modules:    Data.Random.Source.DevRandom