aboutsummaryrefslogtreecommitdiff
path: root/R/man
diff options
context:
space:
mode:
Diffstat (limited to 'R/man')
-rw-r--r--R/man/SyncRNG-class.Rd39
-rw-r--r--R/man/syncrng-package.Rd52
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>
+}