C++ API

knitr::opts_chunk$set(echo = TRUE)

The RNGs and distributions functions can also be used from C++ at various levels of abstraction. Technically there are three ways to make use of dqrng at the C++ level:

The following functions are also available if you include dqrng.h.

Setting seed and RNG type

void dqrng::dqset_seed(Rcpp::IntegerVector seed, 
                       Rcpp::Nullable<Rcpp::IntegerVector> stream = R_NilValue)
void dqrng::dqRNGkind(std::string kind, const std::string& normal_kind = "ignored")

seed : seed for the RNG; length 1 or 2

stream : RNG stream to use; length 1 or 2

kind : string specifying the RNG, One of "pcg64", "Xoroshiro128+", "Xoshiro256+" or "Threefry"

normal-kind : ignored; included for compatibility with RNGkind

Random variates with uniform distribution

Rcpp::NumericVector dqrng::dqrunif(size_t n, double min = 0.0, double max = 1.0)
double dqrng::runif(double min = 0.0, double max = 1.0)

n : number of observations

min : lower limit of the uniform distribution

max : upper limit of the uniform distribution

Random variates with normal distribution

Rcpp::NumericVector dqrng::dqrnorm(size_t n, double mean = 0.0, double sd = 1.0)
double dqrng::rnorm(double mean = 0.0, double sd = 1.0)

n : number of observations

mean : mean value of the normal distribution

sd : standard deviation of the normal distribution

Random variates with exponential distribution

Rcpp::NumericVector dqrng::dqrexp(size_t n, double rate = 1.0)
double dqrng::rexp(double rate = 1.0)

n : number of observations

rate : rate of the exponential distribution

Random sampling

Rcpp::IntegerVector dqrng::dqsample_int(int m, int n, bool replace = false,
                                        Rcpp::Nullable<Rcpp::NumericVector> probs = R_NilValue,
                                        int offset = 0)
Rcpp::NumericVector dqrng::dqsample_num(double m, double n, bool replace = false,
                                        Rcpp::Nullable<Rcpp::NumericVector> probs = R_NilValue,
                                        int offset = 0)

m : a positive number, the number of items to choose from

n : a non-negative number giving the number of items to choose

replace : should sampling be with replacement?

prob : a vector of probability weights for obtaining the elements of the vector being sampled (currently ignored)

offset : sample from range [offset, offset + m)

The two functions are used for "normal" and "long-vector" support in R.



Try the dqrng package in your browser

Any scripts or data that you put into this service are public.

dqrng documentation built on Aug. 31, 2023, 1:07 a.m.