The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
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:
// [[Rcpp::depends(dqrng)]] together with
Rcpp::sourceCpp()Rcpp::cppFunction(depends = "dqrng", ...)LinkingTo: dqrngThe following functions are also available if you include
dqrng.h. Note that the scalar function
dqrng::runif, dqrng::rnorm, and
dqrng::rexp have been deprecated and will be removed in a
future release. Please use the more flexible and faster
dqrng::random_64bit_accessor together with
variate<Dist>() instead.
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")seedstreamkindnormal-kindRNGkind
Rcpp::NumericVector dqrng::dqrunif(size_t n, double min = 0.0, double max = 1.0)
DEPRECATED double dqrng::runif(double min = 0.0, double max = 1.0)nminmaxRcpp::NumericVector dqrng::dqrnorm(size_t n, double mean = 0.0, double sd = 1.0)
DEPRECATED double dqrng::rnorm(double mean = 0.0, double sd = 1.0)nmeansdRcpp::NumericVector dqrng::dqrexp(size_t n, double rate = 1.0)
DEPRECATED double dqrng::rexp(double rate = 1.0)nratenRcpp::IntegerVector dqrng::dqsample_int(int n, int size, bool replace = false,
Rcpp::Nullable<Rcpp::NumericVector> probs = R_NilValue,
int offset = 0)
Rcpp::NumericVector dqrng::dqsample_num(double n, double size, bool replace = false,
Rcpp::Nullable<Rcpp::NumericVector> probs = R_NilValue,
int offset = 0)nsizereplaceproboffset[offset, offset + m)
The two functions are used for “normal” and “long-vector” support in R.
std::vector<std::string> dqrng::dqrng_get_state()
void dqrng::dqrng_set_state(std::vector<std::string> state)statestd::vector<std::string> as produced by
dqrng_get_state()
Direct usage of this method is discouraged. The
preferred way of accessing the global RNG is to instantiate
dqrng::random_64bit_accessor within your function. Note
that you MUST NOT delete the global RNG. Using
dqrng::random_64bit_accessor makes this impossible. In
addition, you SHOULD NOT store a reference to the RNG permanently,
because it can be invalidated by calls to dqRNGkind.
Therefore, instances of dqrng::random_64bit_accessor SHOULD
be stored as (non-static) variables in functions.
Note that dqrng::random_64bit_accessor supports UniformRandomBitGenerator
and can therefore be used together with any C++11 distribution function.
In addition, the following functions are supported, since they are
inherited from the abstract parent class
random_64bit_generator:
// clone RNG and select a different stream
std::unique_ptr<random_64bit_generator> clone(uint64_t stream)
// uniform doubles in [0,1) and double-int-pairs
double uniform01()
std::pair<double, int> generate_double_8bit_pair()
// uniform integers in a range
uint32_t operator() (uint32_t range)
uint64_t operator() (uint64_t range)
ResultType variate<ResultType, DistTmpl>(param1, ... paramN)
generate<DistTmpl>(container, param1, ... paramN)
generate<DistTmpl>(start, end, param1, ... paramN)
Dist::result_type variate<Dist>(param1, ... paramN)
generate<Dist>(container, param1, ... paramN)
generate<Dist>(start, end, param1, ... paramN)streamrange[0, range]
ResultTypeDistTmpl
DistTmplstd::uniform_distribution.
DistTmpl<ResultType> defines the full distribution.
Diststd::uniform_distribution<double> or
dqrng::normal_distriubtion.
param1, ... paramNcontainerstd::begin and
std::end.
start, endThese binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.