summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-haskell/splitmix/Manifest1
-rw-r--r--dev-haskell/splitmix/metadata.xml36
-rw-r--r--dev-haskell/splitmix/splitmix-0.0.4.ebuild33
3 files changed, 70 insertions, 0 deletions
diff --git a/dev-haskell/splitmix/Manifest b/dev-haskell/splitmix/Manifest
new file mode 100644
index 000000000000..e5d4f6bcb517
--- /dev/null
+++ b/dev-haskell/splitmix/Manifest
@@ -0,0 +1 @@
+DIST splitmix-0.0.4.tar.gz 13821 BLAKE2B 15c2f3b783b98deccf31e2501ba6c67788047ad3bf5c29fbba965c1163506d0055e94bc02894f17df088e67921447893f42a85f5eece7828625d75c177837f43 SHA512 9b8c137067497b94a460d024e1f7c3269e27536f505649face85748a0aaea273d32893a806d9ecf551bd29532ed820004ed2dde47e1099afc3c31519ea5cdbac
diff --git a/dev-haskell/splitmix/metadata.xml b/dev-haskell/splitmix/metadata.xml
new file mode 100644
index 000000000000..07dd5f4f5b23
--- /dev/null
+++ b/dev-haskell/splitmix/metadata.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>haskell@gentoo.org</email>
+ <name>Gentoo Haskell</name>
+ </maintainer>
+ <use>
+ <flag name='optimised-mixer'>Use JavaScript for mix32</flag>
+ <flag name='random'>Providen RandomGen SMGen instance</flag>
+ </use>
+ <longdescription>
+ 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 &amp; Applications (OOPSLA &#39;14). ACM,
+ New York, NY, USA, 453-472. DOI:
+ &lt;https://doi.org/10.1145/2660193.2660195&gt;
+
+ 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 &quot;everyday&quot; 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).
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-haskell/splitmix/splitmix-0.0.4.ebuild b/dev-haskell/splitmix/splitmix-0.0.4.ebuild
new file mode 100644
index 000000000000..a64e70868908
--- /dev/null
+++ b/dev-haskell/splitmix/splitmix-0.0.4.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# ebuild generated by hackport 0.6.4
+
+CABAL_FEATURES="lib profile haddock hoogle hscolour" # circular deps: test-suite"
+inherit haskell-cabal
+
+DESCRIPTION="Fast Splittable PRNG"
+HOMEPAGE="http://hackage.haskell.org/package/splitmix"
+SRC_URI="https://hackage.haskell.org/package/${P}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+IUSE="optimised-mixer +random"
+
+RESTRICT=test # circular deps: dev-haskell/splitmix[test]->dev-haskell/base-compat-batteries->dev-haskell/quickcheck->dev-haskell/splitmix
+
+RDEPEND=">=dev-lang/ghc-7.4.1:=
+ random? ( >=dev-haskell/random-1.0:=[profile?] <dev-haskell/random-1.2:=[profile?] )
+"
+DEPEND="${RDEPEND}
+ >=dev-haskell/cabal-1.10
+"
+
+src_configure() {
+ haskell-cabal_src_configure \
+ $(cabal_flag optimised-mixer optimised-mixer) \
+ $(cabal_flag random random)
+}