Fork me on GitHub

Tina's Random Number Generator Library

Tina's Random Number Generator Library (TRNG) is a state of the art C++ pseudo-random number generator library for sequential and parallel Monte Carlo simulations. Its design principles are based on a proposal for an extensible random number generator facility, that has become part of the C++11 standard.

[lottery ticket] The TRNG library features an object oriented design, is easy to use and has been speed optimized. Its implementation does not depend on any communication library or hardware architecture. TRNG is suited for shared memory as well as for distributed memory computers and may be used in any parallel programming environment, e.g. Message Passing Standard, OpenMP or CUDA. All generators, that are implemented by TRNG, have been subjected to thorough statistical tests in sequential and parallel setups.


Starting from version 4.9, the TRNG library is distributed under the terms of a BSD style license (3-clause license). Earlier TRNG versions are distributed under the GNU Public License (GPL) Version 2. You may browse the source on github or download specific releases.

TRNG versions prior TRNG 4.0 are not source compatible with older versions and are provided solely for historical reasons.

Documentation and resources

TRNG documentation

Conferences and presentations

Pseudo-random numbers

Research papers

© by Heiko Bauke