devel/hs-tf-random 0.5nb15 NetBSD
High-quality splittable pseudorandom number generator
- System
- NetBSD
- Repository
- pkgsrc
- Maintainer
- [email protected]
- License
- modified-bsd
- Categories
- devel
- Package size
- 184.8 KiB, 1869.3 KiB installed
Description
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, Palka 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.
Install
Binary package:
pkgin install hs-tf-random
From pkgsrc:
cd /usr/pkgsrc/devel/hs-tf-random && make install clean
Packages
The version each package repository carries. “-” means the repository builds no package of it, “n/a” that there is no such repository.
| Repository | Version |
|---|---|
| NetBSD 10.1 x86_64 | 0.5nb15 |
| NetBSD 10.1 aarch64 | 0.5nb15 |
| SmartOS / illumos x86_64 | 0.5nb15 |
| macOS 15 arm64 | 0.5nb15 |
Dependency graph
Ports that need it on the left, what it needs to run on the right; at most 8 of each. "Dependencies" below lists them all.
Dependencies
Run dependencies 3
No port depends on this one.