summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-10-30 03:34:57 +0000
committerCoprDistGit <infra@openeuler.org>2023-10-30 03:34:57 +0000
commitb2f9ed30435f32300f8933607557733ed202a465 (patch)
treeb6ec0835c9fbbe476eaa779aa728df8663cd6eeb
parent332c035ab28e05427bd575a406d29aaa89b25fb3 (diff)
automatic import of ghc-splitmixopeneuler23.09
-rw-r--r--.gitignore1
-rw-r--r--ghc-splitmix.spec129
-rw-r--r--sources1
-rwxr-xr-xsplitmix.cabal246
4 files changed, 377 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..a27dce4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/splitmix-0.1.0.4.tar.gz
diff --git a/ghc-splitmix.spec b/ghc-splitmix.spec
new file mode 100644
index 0000000..23d3be9
--- /dev/null
+++ b/ghc-splitmix.spec
@@ -0,0 +1,129 @@
+%global pkg_name splitmix
+%global pkgver %{pkg_name}-%{version}
+%bcond_with tests
+
+Name: ghc-%{pkg_name}
+Version: 0.1.0.4
+Release: 1
+Summary: Fast Splittable PRNG
+License: BSD-3-Clause
+URL: https://hackage.haskell.org/package/%{pkg_name}
+Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
+Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/2.cabal#/%{pkg_name}.cabal
+BuildRequires: ghc-Cabal-devel
+BuildRequires: ghc-base-devel
+BuildRequires: ghc-base-prof
+BuildRequires: ghc-deepseq-devel
+BuildRequires: ghc-deepseq-prof
+BuildRequires: ghc-rpm-macros
+ExcludeArch: %{ix86}
+%if %{with tests}
+BuildRequires: ghc-HUnit-devel
+BuildRequires: ghc-HUnit-prof
+BuildRequires: ghc-async-devel
+BuildRequires: ghc-async-prof
+BuildRequires: ghc-base-compat-batteries-devel
+BuildRequires: ghc-base-compat-batteries-prof
+BuildRequires: ghc-base-compat-devel
+BuildRequires: ghc-base-compat-prof
+BuildRequires: ghc-bytestring-devel
+BuildRequires: ghc-bytestring-prof
+BuildRequires: ghc-containers-devel
+BuildRequires: ghc-containers-prof
+BuildRequires: ghc-math-functions-devel
+BuildRequires: ghc-math-functions-prof
+BuildRequires: ghc-process-devel
+BuildRequires: ghc-process-prof
+BuildRequires: ghc-random-devel
+BuildRequires: ghc-random-prof
+BuildRequires: ghc-test-framework-devel
+BuildRequires: ghc-test-framework-hunit-devel
+BuildRequires: ghc-test-framework-hunit-prof
+BuildRequires: ghc-test-framework-prof
+BuildRequires: ghc-tf-random-devel
+BuildRequires: ghc-tf-random-prof
+BuildRequires: ghc-vector-devel
+BuildRequires: ghc-vector-prof
+%endif
+
+%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).
+
+%package devel
+Summary: Haskell %{pkg_name} library development files
+Requires: %{name} = %{version}-%{release}
+Requires: ghc-compiler = %{ghc_version}
+Requires(post): ghc-compiler = %{ghc_version}
+Requires(postun): ghc-compiler = %{ghc_version}
+
+%description devel
+This package provides the Haskell %{pkg_name} library development files.
+
+%package -n ghc-%{pkg_name}-help
+Summary: Haskell %{pkg_name} library documentation
+BuildArch: noarch
+
+%description -n ghc-%{pkg_name}-help
+This package provides the Haskell %{pkg_name} library documentation.
+
+%package -n ghc-%{pkg_name}-prof
+Summary: Haskell %{pkg_name} profiling library
+Requires: ghc-%{pkg_name}-devel = %{version}-%{release}
+Supplements: (ghc-%{pkg_name}-devel and ghc-prof)
+
+%description -n ghc-%{pkg_name}-prof
+This package provides the Haskell %{pkg_name} profiling library.
+
+%prep
+%autosetup -n %{pkg_name}-%{version}
+cp -p %{SOURCE1} %{pkg_name}.cabal
+
+%build
+%ghc_lib_build
+
+%install
+%ghc_lib_install
+
+%check
+%cabal_test
+
+%post devel
+%ghc_pkg_recache
+
+%postun devel
+%ghc_pkg_recache
+
+%files -f %{name}.files
+%license LICENSE
+
+%files devel -f %{name}-devel.files
+%doc Changelog.md README.md
+
+%files -n ghc-%{pkg_name}-help -f ghc-%{pkg_name}-help.files
+%license LICENSE
+
+%files -n ghc-%{pkg_name}-prof -f ghc-%{pkg_name}-prof.files
+
+%changelog
+* Tue Aug 22 2023 Lin Runze <lrzlin@163.com> 0.1.0.4-1
+- Initial packaging (Version 0.1.0.4)
diff --git a/sources b/sources
new file mode 100644
index 0000000..6dccd83
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+70f217bdea5b2fac923b0b0f638f7b62 splitmix-0.1.0.4.tar.gz
diff --git a/splitmix.cabal b/splitmix.cabal
new file mode 100755
index 0000000..69409e8
--- /dev/null
+++ b/splitmix.cabal
@@ -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