name: random-fu
version: 0.1.4
stability: provisional
cabal-version: >= 1.6
build-type: Simple
author: James Cook
maintainer: James Cook
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