File: default.cpp

package info (click to toggle)
r-cran-dqrng 0.2.1%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 452 kB
  • sloc: cpp: 615; ansic: 154; sh: 14; makefile: 2
file content (65 lines) | stat: -rw-r--r-- 1,720 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <Rcpp.h>
// [[Rcpp::depends(dqrng)]]
#include <dqrng.h>

// [[Rcpp::export]]
bool consecutive_calls(Rcpp::IntegerVector seed) {
  dqrng::dqset_seed(seed);
  Rcpp::NumericVector u1 = dqrng::dqrunif(10);
  Rcpp::NumericVector u2 = dqrng::dqrunif(10);
  return Rcpp::is_true(Rcpp::all(u1 == u2));
}

// [[Rcpp::export]]
bool seed_uniform(Rcpp::IntegerVector seed) {
  dqrng::dqset_seed(seed);
  Rcpp::NumericVector u1 = dqrng::dqrunif(10);
  dqrng::dqset_seed(seed);
  Rcpp::NumericVector u2 = dqrng::dqrunif(10);
  return Rcpp::is_true(Rcpp::all(u1 == u2));
}

// [[Rcpp::export]]
bool seed_uniform_scalar(Rcpp::IntegerVector seed) {
  dqrng::dqset_seed(seed);
  double u1 = dqrng::runif();
  dqrng::dqset_seed(seed);
  double u2 = dqrng::runif();
  return u1 == u2;
}

// [[Rcpp::export]]
bool seed_normal(Rcpp::IntegerVector seed) {
  dqrng::dqset_seed(seed);
  Rcpp::NumericVector n1 = dqrng::dqrnorm(10);
  dqrng::dqset_seed(seed);
  Rcpp::NumericVector n2 = dqrng::dqrnorm(10);
  return Rcpp::is_true(Rcpp::all(n1 == n2));
}

// [[Rcpp::export]]
bool seed_normal_scalar(Rcpp::IntegerVector seed) {
  dqrng::dqset_seed(seed);
  double n1 = dqrng::rnorm();
  dqrng::dqset_seed(seed);
  double n2 = dqrng::rnorm();
  return n1 == n2;
}

// [[Rcpp::export]]
bool seed_exponential(Rcpp::IntegerVector seed) {
  dqrng::dqset_seed(seed);
  Rcpp::NumericVector e1 = dqrng::dqrexp(10);
  dqrng::dqset_seed(seed);
  Rcpp::NumericVector e2 = dqrng::dqrexp(10);
  return Rcpp::is_true(Rcpp::all(e1 == e2));
}

// [[Rcpp::export]]
bool seed_exponential_scalar(Rcpp::IntegerVector seed) {
  dqrng::dqset_seed(seed);
  double u1 = dqrng::rexp();
  dqrng::dqset_seed(seed);
  double u2 = dqrng::rexp();
  return u1 == u2;
}