Apocrypha

tf-random

High-quality splittable pseudorandom number generator

This package contains an implementation of a high-quality splittable pseudorandom number generator. The generator is based on a cryptographic hash function built on top of the ThreeFish block cipher. See the paper /Splittable Pseudorandom Number Generators Using Cryptographic Hashing/ by Claessen, PaBka for details and the rationale of the design. The package provides the following: * A splittable PRNG that implements the standard 'System.Random.RandomGen' class. * The generator also implements an alternative version of the 'System.Random.TF.Gen.RandomGen' class (exported from "System.Random.TF.Gen"), which requires the generator to return pseudorandom integers from the full 32-bit range, and contains an n-way split function. * An alternative version of the @Random@ class is provided, which is linked to the new @RandomGen@ class, together with @Random@ instances for some integral types. * Two functions for initialising the generator with a non-deterministic seed: one using the system time, and one using the @\/dev\/urandom@ UNIX special file. The package uses an adapted version of the reference C implementation of ThreeFish from the reference package of the Skein hash function (<https://www.schneier.com/skein.html>), originally written by Doug Whiting. Please note that even though the generator provides very high-quality pseudorandom numbers, it has not been designed with cryptographic applications in mind.

Available in

OverlayNewestEbuildsLast activity
gentoo gitweb ↗ 0.5 1 13 h details ›
haskell GitHub ↗ 0.5 1 2 d details ›

Versions & arches

VersionOverlay amd64arm64x86ppc64riscv Committed
0.5 gentoo amd64 testing arm64 testing x86 testing ppc64 testing riscv testing view · download · history ↗
0.5 haskell amd64 testing arm64 testing x86 testing ppc64 testing riscv testing 6 mo view · download · history ↗

Use flags of 0.5

  • profile Add support for software performance analysis (will likely vary from ebuild to ebuild)

Runtime dependencies of 0.5

show 4 lines