mwc-random-0.15.2.0: mwc-random.cabal
cabal-version: 3.0
build-type: Simple
name: mwc-random
version: 0.15.2.0
license: BSD-2-Clause
license-file: LICENSE
copyright: 2009, 2010, 2011 Bryan O'Sullivan
author: Bryan O'Sullivan <bos@serpentine.com>
maintainer: Alexey Khudyakov <alexey.skladnoy@gmail.com>
homepage: https://github.com/haskell/mwc-random
bug-reports: https://github.com/haskell/mwc-random/issues
category: Math, Statistics
synopsis: Fast, high quality pseudo random number generation
description:
This package contains code for generating high quality random
numbers that follow either a uniform or normal distribution. The
generated numbers are suitable for use in statistical applications.
.
The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222)
multiply-with-carry generator, which has a period of 2^8222 and
fares well in tests of randomness. It is also extremely fast,
between 2 and 3 times faster than the Mersenne Twister.
.
Compared to the mersenne-random package, this package has a more
convenient API, is faster, and supports more statistical
distributions.
extra-source-files:
README.md
extra-doc-files:
docs/*.svg
changelog.md
tested-with:
GHC ==8.0.2
|| ==8.2.2
|| ==8.4.4
|| ==8.6.5
|| ==8.8.4
|| ==8.10.7
|| ==9.0.2
|| ==9.2.8
|| ==9.4.8
|| ==9.6.6
|| ==9.8.4
|| ==9.10.1
|| ==9.12.1
source-repository head
type: git
location: git://github.com/haskell/mwc-random
flag BenchPAPI
Description: Enable building of benchmarks which use instruction counters.
It requires libpapi and only works on Linux so it's protected by flag
Default: False
Manual: True
library
default-language: Haskell2010
exposed-modules: System.Random.MWC
System.Random.MWC.Distributions
System.Random.MWC.CondensedTable
System.Random.MWC.SeedSource
build-depends: base >= 4.9 && < 5
, primitive >= 0.6.2
, random >= 1.2
, time
, vector >= 0.7
, math-functions >= 0.2.1.0
ghc-options: -O2 -Wall -funbox-strict-fields -fwarn-tabs
-- We want to be able to build benchmarks using both tasty-bench and tasty-papi.
-- They have similar API so we just create two shim modules which reexport
-- definitions from corresponding library and pick one in cabal file.
common bench-stanza
ghc-options: -Wall
default-language: Haskell2010
build-depends: base < 5
, vector >= 0.11
, mersenne-random
, mwc-random
, random
, tasty >=1.3.1
benchmark mwc-bench
import: bench-stanza
type: exitcode-stdio-1.0
hs-source-dirs: bench bench-time
main-is: Benchmark.hs
Other-modules: Bench
build-depends: tasty-bench >= 0.3
benchmark mwc-bench-papi
import: bench-stanza
type: exitcode-stdio-1.0
if impl(ghcjs) || !flag(BenchPAPI) || impl(ghc < 8.2)
buildable: False
hs-source-dirs: bench bench-papi
main-is: Benchmark.hs
Other-modules: Bench
build-depends: tasty-papi >= 0.1.2
test-suite mwc-prop-tests
type: exitcode-stdio-1.0
hs-source-dirs: tests
main-is: props.hs
default-language: Haskell2010
ghc-options:
-Wall -threaded -rtsopts
build-depends: base
, mwc-random
, QuickCheck >=2.2
, vector >=0.12.1
, tasty >=1.3.1
, tasty-quickcheck >=0.10.2
, tasty-hunit
, random >=1.2
, mtl
, math-functions >=0.3.4
test-suite mwc-doctests
type: exitcode-stdio-1.0
main-is: doctests.hs
hs-source-dirs: tests
default-language: Haskell2010
if impl(ghcjs) || impl(ghc < 8.0)
Buildable: False
-- Linker on macos prints warnings to console which confuses doctests.
-- We simply disable doctests on ma for older GHC
-- > warning: -single_module is obsolete
if os(darwin) && impl(ghc < 9.6)
buildable: False
build-depends:
base -any
, mwc-random -any
, doctest >=0.15 && <0.24
--
, bytestring
, primitive
, vector >=0.11
, random >=1.2