rTRNG-package | R Documentation |
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 (https://www.numbercrunch.de/trng/). It provides a variety of random number engines (pseudo-random number generators) and distributions. In particular, parallel random number engines provided by TRNG support techniques such as block-splitting and leapfrogging suitable for parallel algorithms. See ‘References’ for an introduction to the concepts and details around (parallel) random number generation.
Package rTRNG provides the R users with access to the functionality of the underlying TRNG C++ library in different ways and at different levels.
Base-R Random-like usage via TRNG.Random functions, for selecting and manipulating the current engine. This is the simplest and more immediate way for R users to use rTRNG.
Reference Objects wrapping the underlying C++ TRNG random number engines can be created and manipulated in OOP-style. This allows greater flexibility in using TRNG engines in R.
TRNG C++ library and headers are made available to other R projects and packages using C++.
Standalone C++ code sourced via sourceCpp
can rely
on the Rcpp::depends
attribute to
correctly set up building against rTRNG, with
Rcpp::plugins(cpp11)
enforcing the C++11 standard required by
TRNG >= 4.22:
// [[Rcpp::depends(rTRNG)]] // [[Rcpp::plugins(cpp11)]]
Creating an R package with C++ code using the TRNG library is achieved
by LinkingTo: rTRNG
in the DESCRIPTION file, adding
importFrom(rTRNG, TRNG.Version)
in the NAMESPACE file, and
setting relevant linker flags (via LdFlags
) and
C++11 compilation (CXX_STD = CXX11
) in Makevars[.win].
Note that C++ code using the TRNG library (sourced via
Rcpp::sourceCpp
or part of an R package) might fail on certain
systems due to issues with building and linking against rTRNG.
This is typically the case for macOS, and can generally be checked
using
check_rTRNG_linking
.
See the package vignettes (browseVignettes("rTRNG")
) for an overview
and demos and refer to the examples in the documentation for further use
cases.
Maintainer: Riccardo Porreca riccardo.porreca@mirai-solutions.com
Authors:
Roland Schmid roland.schmid@mirai-solutions.com
Other contributors:
Mirai Solutions GmbH info@mirai-solutions.com [copyright holder]
Heiko Bauke (TRNG sources and headers) [contributor, copyright holder]
Heiko Bauke, Tina's Random Number Generator Library, Version 4.23.1, https://github.com/rabauke/trng4/blob/v4.23.1/doc/trng.pdf.
Stephan Mertens, Random Number Generators: A Survival Guide for Large Scale Simulations, 2009, https://ui.adsabs.harvard.edu/abs/2009arXiv0905.4238M
Useful links:
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.