У меня есть код C, использующий генерацию случайных чисел через Rmath.h
, который я хочу сравнить с кодом C, вызываемым через R.
Приведенный ниже код c загружается с использованием R CMD SHLIB
, затем в R с dyn.load()
и вызывается с .C("ranNorm",as.double(0),as.double(1),as.double(1))
#include <R.h>
#include <Rmath.h>
void ranNorm(double *mean, double *sd, double *x){
double mean = mean[0];
double sd = sd[0];
GetRNGstate();
x[0] = rnorm(mean, sd);
PutRNGstate();
}
И я могу установить семя в R с помощью set.seed (). Однако я хочу сравнить это со следующим кодом c:
#define MATHLIB_STANDALONE
#include <Rmath.h>
int main(void){
double z;
z = rnorm(0.0,1.0);
printf("%f \n", z);
return 0;
}
Которая компилируется и запускается с использованием -lRmath
Однако я не уверен, как установить начальное число с помощью этого кода, чтобы обеспечить тот же результат, что и в предыдущем коде. Большое спасибо!