tandem-java
Pure Java implementation of Tandem8x32. It produces the stream of the
specification
bit for bit, as a JDK RandomGenerator, and the optional
tandem-rng-cuda module fills on NVIDIA GPUs.
- API: the generator, draws, fills, bounded integers, normals, exponentials and the JDK and Commons RNG interfaces.
- GPU module:
tandem-rng-cudaand its kernels. - Tests: what the suites check, where the fixtures come from, and what CI runs.
- Performance: Apple M4 Pro and A100 figures.
Install
The artifact is tandem-rng. Java 25 or later, no runtime
dependencies. Array fills of 512 elements or more run in tandem-c's
libtandem when -Dtandem.native names it or it
is on java.library.path; pixi run native
builds it at a pinned commit.
Java 25 (the current LTS) or later, built with
--release 25 and tested on JDK 25 and 27.
pixi run test # mvn -B verifyAI assistance
This port was written with the help of large language models under human direction. The design and the specification are human work, as is much of the Julia implementation. The code is tested bit for bit against every vector of the specification and against long stream dumps from the Julia implementation, and every value must match. The output does not depend on who or what wrote the code.