revise splitmix.cabal
This commit is contained in:
parent
62fb575da7
commit
6eedeb9313
@ -1,4 +1,4 @@
|
|||||||
# generated by cabal-rpm-2.1.0 --subpackage
|
# generated by cabal-rpm-2.1.2 --subpackage
|
||||||
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/
|
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/
|
||||||
|
|
||||||
%global pkg_name random
|
%global pkg_name random
|
||||||
@ -21,7 +21,9 @@ Url: https://hackage.haskell.org/package/%{pkg_name}
|
|||||||
Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz
|
Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz
|
||||||
Source1: https://hackage.haskell.org/package/%{splitmix}/%{splitmix}.tar.gz
|
Source1: https://hackage.haskell.org/package/%{splitmix}/%{splitmix}.tar.gz
|
||||||
# End cabal-rpm sources
|
# End cabal-rpm sources
|
||||||
|
Source2: https://hackage.haskell.org/package/%{newtypegenerics}/splitmix.cabal#/%{splitmix}.cabal
|
||||||
|
|
||||||
|
BuildRequires: dos2unix
|
||||||
# Begin cabal-rpm deps:
|
# Begin cabal-rpm deps:
|
||||||
BuildRequires: ghc-Cabal-devel
|
BuildRequires: ghc-Cabal-devel
|
||||||
BuildRequires: ghc-rpm-macros-extra
|
BuildRequires: ghc-rpm-macros-extra
|
||||||
@ -135,6 +137,7 @@ This package provides the Haskell %{pkg_name} profiling library.
|
|||||||
# Begin cabal-rpm setup:
|
# Begin cabal-rpm setup:
|
||||||
%setup -q -n %{pkgver} -a1
|
%setup -q -n %{pkgver} -a1
|
||||||
# End cabal-rpm setup
|
# End cabal-rpm setup
|
||||||
|
dos2unix -k -n %{SOURCE2} %{splitmix}/splitmix.cabal
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
246
splitmix-0.1.0.4.cabal
Normal file
246
splitmix-0.1.0.4.cabal
Normal file
@ -0,0 +1,246 @@
|
|||||||
|
cabal-version: >=1.10
|
||||||
|
name: splitmix
|
||||||
|
version: 0.1.0.4
|
||||||
|
x-revision: 2
|
||||||
|
synopsis: Fast Splittable PRNG
|
||||||
|
description:
|
||||||
|
Pure Haskell implementation of SplitMix described in
|
||||||
|
.
|
||||||
|
Guy L. Steele, Jr., Doug Lea, and Christine H. Flood. 2014.
|
||||||
|
Fast splittable pseudorandom number generators. In Proceedings
|
||||||
|
of the 2014 ACM International Conference on Object Oriented
|
||||||
|
Programming Systems Languages & Applications (OOPSLA '14). ACM,
|
||||||
|
New York, NY, USA, 453-472. DOI:
|
||||||
|
<https://doi.org/10.1145/2660193.2660195>
|
||||||
|
.
|
||||||
|
The paper describes a new algorithm /SplitMix/ for /splittable/
|
||||||
|
pseudorandom number generator that is quite fast: 9 64 bit arithmetic/logical
|
||||||
|
operations per 64 bits generated.
|
||||||
|
.
|
||||||
|
/SplitMix/ is tested with two standard statistical test suites (DieHarder and
|
||||||
|
TestU01, this implementation only using the former) and it appears to be
|
||||||
|
adequate for "everyday" use, such as Monte Carlo algorithms and randomized
|
||||||
|
data structures where speed is important.
|
||||||
|
.
|
||||||
|
In particular, it __should not be used for cryptographic or security applications__,
|
||||||
|
because generated sequences of pseudorandom values are too predictable
|
||||||
|
(the mixing functions are easily inverted, and two successive outputs
|
||||||
|
suffice to reconstruct the internal state).
|
||||||
|
|
||||||
|
license: BSD3
|
||||||
|
license-file: LICENSE
|
||||||
|
maintainer: Oleg Grenrus <oleg.grenrus@iki.fi>
|
||||||
|
bug-reports: https://github.com/haskellari/splitmix/issues
|
||||||
|
category: System, Random
|
||||||
|
build-type: Simple
|
||||||
|
tested-with:
|
||||||
|
GHC ==7.0.4
|
||||||
|
|| ==7.2.2
|
||||||
|
|| ==7.4.2
|
||||||
|
|| ==7.6.3
|
||||||
|
|| ==7.8.4
|
||||||
|
|| ==7.10.3
|
||||||
|
|| ==8.0.2
|
||||||
|
|| ==8.2.2
|
||||||
|
|| ==8.4.4
|
||||||
|
|| ==8.6.5
|
||||||
|
|| ==8.8.4
|
||||||
|
|| ==8.10.4
|
||||||
|
|| ==9.0.2
|
||||||
|
|| ==9.2.5
|
||||||
|
|| ==9.4.4
|
||||||
|
|| ==9.6.1
|
||||||
|
, GHCJS ==8.4
|
||||||
|
|
||||||
|
extra-source-files:
|
||||||
|
Changelog.md
|
||||||
|
make-hugs.sh
|
||||||
|
README.md
|
||||||
|
test-hugs.sh
|
||||||
|
|
||||||
|
flag optimised-mixer
|
||||||
|
description: Use JavaScript for mix32
|
||||||
|
manual: True
|
||||||
|
default: False
|
||||||
|
|
||||||
|
library
|
||||||
|
default-language: Haskell2010
|
||||||
|
ghc-options: -Wall
|
||||||
|
hs-source-dirs: src src-compat
|
||||||
|
exposed-modules:
|
||||||
|
System.Random.SplitMix
|
||||||
|
System.Random.SplitMix32
|
||||||
|
|
||||||
|
other-modules:
|
||||||
|
Data.Bits.Compat
|
||||||
|
System.Random.SplitMix.Init
|
||||||
|
|
||||||
|
-- dump-core
|
||||||
|
-- build-depends: dump-core
|
||||||
|
-- ghc-options: -fplugin=DumpCore -fplugin-opt DumpCore:core-html
|
||||||
|
|
||||||
|
build-depends:
|
||||||
|
base >=4.3 && <4.19
|
||||||
|
, deepseq >=1.3.0.0 && <1.5
|
||||||
|
|
||||||
|
if flag(optimised-mixer)
|
||||||
|
cpp-options: -DOPTIMISED_MIX32=1
|
||||||
|
|
||||||
|
-- We don't want to depend on time, nor unix or Win32 packages
|
||||||
|
-- because it's valuable that splitmix and QuickCheck doesn't
|
||||||
|
-- depend on about anything
|
||||||
|
|
||||||
|
if impl(ghcjs)
|
||||||
|
cpp-options: -DSPLITMIX_INIT_GHCJS=1
|
||||||
|
|
||||||
|
else
|
||||||
|
if impl(ghc)
|
||||||
|
cpp-options: -DSPLITMIX_INIT_C=1
|
||||||
|
|
||||||
|
if os(windows)
|
||||||
|
c-sources: cbits-win/init.c
|
||||||
|
|
||||||
|
else
|
||||||
|
c-sources: cbits-unix/init.c
|
||||||
|
|
||||||
|
else
|
||||||
|
cpp-options: -DSPLITMIX_INIT_COMPAT=1
|
||||||
|
build-depends: time >=1.2.0.3 && <1.13
|
||||||
|
|
||||||
|
source-repository head
|
||||||
|
type: git
|
||||||
|
location: https://github.com/haskellari/splitmix.git
|
||||||
|
|
||||||
|
benchmark comparison
|
||||||
|
type: exitcode-stdio-1.0
|
||||||
|
default-language: Haskell2010
|
||||||
|
ghc-options: -Wall
|
||||||
|
hs-source-dirs: bench
|
||||||
|
main-is: Bench.hs
|
||||||
|
build-depends:
|
||||||
|
base
|
||||||
|
, containers >=0.4.2.1 && <0.7
|
||||||
|
, criterion >=1.1.0.0 && <1.6
|
||||||
|
, random
|
||||||
|
, splitmix
|
||||||
|
, tf-random >=0.5 && <0.6
|
||||||
|
|
||||||
|
benchmark simple-sum
|
||||||
|
type: exitcode-stdio-1.0
|
||||||
|
default-language: Haskell2010
|
||||||
|
ghc-options: -Wall
|
||||||
|
hs-source-dirs: bench
|
||||||
|
main-is: SimpleSum.hs
|
||||||
|
build-depends:
|
||||||
|
base
|
||||||
|
, random
|
||||||
|
, splitmix
|
||||||
|
|
||||||
|
benchmark range
|
||||||
|
type: exitcode-stdio-1.0
|
||||||
|
default-language: Haskell2010
|
||||||
|
ghc-options: -Wall
|
||||||
|
hs-source-dirs: bench src-compat
|
||||||
|
main-is: Range.hs
|
||||||
|
other-modules: Data.Bits.Compat
|
||||||
|
build-depends:
|
||||||
|
base
|
||||||
|
, clock >=0.8 && <0.9
|
||||||
|
, random
|
||||||
|
, splitmix
|
||||||
|
|
||||||
|
test-suite examples
|
||||||
|
type: exitcode-stdio-1.0
|
||||||
|
default-language: Haskell2010
|
||||||
|
ghc-options: -Wall
|
||||||
|
hs-source-dirs: tests
|
||||||
|
main-is: Examples.hs
|
||||||
|
build-depends:
|
||||||
|
base
|
||||||
|
, HUnit ==1.3.1.2 || >=1.6.0.0 && <1.7
|
||||||
|
, splitmix
|
||||||
|
|
||||||
|
test-suite splitmix-tests
|
||||||
|
type: exitcode-stdio-1.0
|
||||||
|
default-language: Haskell2010
|
||||||
|
ghc-options: -Wall
|
||||||
|
hs-source-dirs: tests
|
||||||
|
main-is: Tests.hs
|
||||||
|
other-modules:
|
||||||
|
MiniQC
|
||||||
|
Uniformity
|
||||||
|
|
||||||
|
build-depends:
|
||||||
|
base
|
||||||
|
, base-compat >=0.11.1 && <0.13
|
||||||
|
, containers >=0.4.0.0 && <0.7
|
||||||
|
, HUnit ==1.3.1.2 || >=1.6.0.0 && <1.7
|
||||||
|
, math-functions ==0.1.7.0 || >=0.3.3.0 && <0.4
|
||||||
|
, splitmix
|
||||||
|
, test-framework >=0.8.2.0 && <0.9
|
||||||
|
, test-framework-hunit >=0.3.0.2 && <0.4
|
||||||
|
|
||||||
|
test-suite montecarlo-pi
|
||||||
|
type: exitcode-stdio-1.0
|
||||||
|
default-language: Haskell2010
|
||||||
|
ghc-options: -Wall
|
||||||
|
hs-source-dirs: tests
|
||||||
|
main-is: SplitMixPi.hs
|
||||||
|
build-depends:
|
||||||
|
base
|
||||||
|
, splitmix
|
||||||
|
|
||||||
|
test-suite montecarlo-pi-32
|
||||||
|
type: exitcode-stdio-1.0
|
||||||
|
default-language: Haskell2010
|
||||||
|
ghc-options: -Wall
|
||||||
|
hs-source-dirs: tests
|
||||||
|
main-is: SplitMixPi32.hs
|
||||||
|
build-depends:
|
||||||
|
base
|
||||||
|
, splitmix
|
||||||
|
|
||||||
|
test-suite splitmix-dieharder
|
||||||
|
default-language: Haskell2010
|
||||||
|
type: exitcode-stdio-1.0
|
||||||
|
ghc-options: -Wall -threaded -rtsopts
|
||||||
|
hs-source-dirs: tests
|
||||||
|
main-is: Dieharder.hs
|
||||||
|
build-depends:
|
||||||
|
async >=2.2.1 && <2.3
|
||||||
|
, base
|
||||||
|
, base-compat-batteries >=0.10.5 && <0.13
|
||||||
|
, bytestring >=0.9.1.8 && <0.12
|
||||||
|
, deepseq
|
||||||
|
, process >=1.0.1.5 && <1.7
|
||||||
|
, random
|
||||||
|
, splitmix
|
||||||
|
, tf-random >=0.5 && <0.6
|
||||||
|
, vector >=0.11.0.0 && <0.13
|
||||||
|
|
||||||
|
test-suite splitmix-testu01
|
||||||
|
if !os(linux)
|
||||||
|
buildable: False
|
||||||
|
|
||||||
|
default-language: Haskell2010
|
||||||
|
type: exitcode-stdio-1.0
|
||||||
|
ghc-options: -Wall -threaded -rtsopts
|
||||||
|
hs-source-dirs: tests
|
||||||
|
main-is: TestU01.hs
|
||||||
|
c-sources: tests/cbits/testu01.c
|
||||||
|
extra-libraries: testu01
|
||||||
|
build-depends:
|
||||||
|
base
|
||||||
|
, base-compat-batteries >=0.10.5 && <0.13
|
||||||
|
, splitmix
|
||||||
|
|
||||||
|
test-suite initialization
|
||||||
|
default-language: Haskell2010
|
||||||
|
type: exitcode-stdio-1.0
|
||||||
|
ghc-options: -Wall -threaded -rtsopts
|
||||||
|
hs-source-dirs: tests
|
||||||
|
main-is: Initialization.hs
|
||||||
|
build-depends:
|
||||||
|
base
|
||||||
|
, HUnit ==1.3.1.2 || >=1.6.0.0 && <1.7
|
||||||
|
, splitmix
|
Loading…
Reference in New Issue
Block a user