diff options
Diffstat (limited to 'R/man')
| -rw-r--r-- | R/man/SyncRNG-class.Rd | 39 | ||||
| -rw-r--r-- | R/man/syncrng-package.Rd | 52 |
2 files changed, 91 insertions, 0 deletions
diff --git a/R/man/SyncRNG-class.Rd b/R/man/SyncRNG-class.Rd new file mode 100644 index 0000000..92316da --- /dev/null +++ b/R/man/SyncRNG-class.Rd @@ -0,0 +1,39 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/SyncRNG.R +\docType{class} +\name{SyncRNG-class} +\alias{SyncRNG-class} +\alias{SyncRNG} +\title{A Reference Class for SyncRNG} +\description{ +See \link{syncrng-package} for package documentation. +} +\section{Fields}{ + +\describe{ +\item{\code{seed}}{The seed for the random number generator} + +\item{\code{state}}{The current state of the RNG, should not be modified by the +user} +}} + +\section{Methods}{ + +\describe{ +\item{\code{initialize(..., seed = 0)}}{Initialize the RNG using the C function R_syncrng_seed} + +\item{\code{rand()}}{Generate a single random float in the range [0, 1)} + +\item{\code{randbelow(n)}}{Generate a random integer below a given number} + +\item{\code{randi()}}{Generate a single random 32-bit integer} + +\item{\code{shuffle(x)}}{Randomly shuffle a provided array of values} +}} + +\examples{ +s <- SyncRNG(seed=123456) +for (i in 1:10) + cat(s$randi(), '\n') + +} diff --git a/R/man/syncrng-package.Rd b/R/man/syncrng-package.Rd new file mode 100644 index 0000000..f8cfe02 --- /dev/null +++ b/R/man/syncrng-package.Rd @@ -0,0 +1,52 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/syncrng-package.R +\docType{package} +\name{syncrng-package} +\alias{syncrng-package} +\title{SyncRNG - Synchronized Random Numbers in R and Python} +\description{ +The SyncRNG package provides a random number generator implemented in C and +linked to both R and Python. This way, you can generate the same random +number sequence in both languages by using the same seed. + +The package implements a Tausworthe LSFR RNG (more details at +\url{https://gertjanvandenburg.com/blog/syncrng/}). This is a very fast +pseudo-random number generator. +} +\section{Usage}{ + +There are two ways to use this package in R. It can be used as a reference +class, where a SyncRNG object is used to keep the state of the generator and +numbers are generated using the object methods. It can also be used as a +user-defined random number generator using the strategy outlined in +.Random.user. See the examples section below. +} + +\examples{ +library(SyncRNG) + +# As user defined RNG: + +set.seed(0, 'user', 'user') +runif(2) +# [1] 3.666952e-04 6.257184e-05 +set.seed(0, 'user', 'user') +rnorm(2) +# [1] 0.01006027 0.42889422 + +# As class: + +s <- SyncRNG(seed=0) +s$rand() +# [1] 0.0003666952 +s$rand() +# [1] 6.257184e-05 + +} +\references{ +URL: \url{https://github.com/GjjvdBurg/SyncRNG} +} +\author{ +Gerrit J.J. van den Burg\cr +Maintainer: Gerrit J.J. van den Burg <gertjanvandenburg@gmail.com> +} |
