[Rcpp-devel] pb rgamma?

Serguei Sokol serguei.sokol at gmail.com
Fri Apr 10 11:58:47 CEST 2015


Hi,

I have came across a case when rgamma of rcpp does not produce
the same result as rgamma of R, especially when the parameter rate
is different from 1. Is it a bug of one or another?

Minimal example follows.

file rgamma_case.cpp:
8<-------
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector rgamma_case(double rate) {
    RNGScope scope;
    NumericVector x(1);
    x=rgamma(1, 3, rate);
    return(x);
}
/*** R
# first, same result
set.seed(7)
rate=1
(x <- rgamma_case(rate))
set.seed(7)
(r <- rgamma(1, 3, rate))
stopifnot(x==r)

# now, different result
set.seed(7)
rate=4
(x <- rgamma_case(rate))
set.seed(7)
(r <- rgamma(1, 3, rate))
stopifnot(x==r)
*/

8<-------

On my system, I've got
 > sourceCpp("rgamma_case.cpp")

 > # first, same result
 > set.seed(7)

 > rate=1

 > (x <- rgamma_case(rate))
[1] 7.42433

 > set.seed(7)

 > (r <- rgamma(1, 3, rate))
[1] 7.42433

 > stopifnot(x==r)

 > # now, different result
 > set.seed(7)

 > rate=4

 > (x <- rgamma_case(rate))
[1] 29.69732

 > set.seed(7)

 > (r <- rgamma(1, 3, rate))
[1] 1.856083

 > stopifnot(x==r)
Erreur : x == r n'est pas TRUE



More information about the Rcpp-devel mailing list