library(Rcpp)
library(inline)
src<-'
RNGScope z;
int n=as<int>(N);
double m=as<double>(M);
return rexp(n, m);
'
fx.rexp <- cxxfunction(signature(N="integer",M="numeric"),src,plugin="Rcpp")
- 上記のsrc <- '...'で"rexp(n,m)"という処理をしている
- これはC++の中のこと
- ただし、こういう風に(Rユーザにも)わかりやすい記載をしておいて、cxxfunction()関数が、よしなに、C++化してくれている
- さて、このrexp()という関数はどこにあるのか
- こちらにRcppの諸ソースの相互関係レファレンスがある
- それを参考に自分のPCのどこにあるかを探すと…(Windows7でRをダウンロードしてデフォルトで置き、Rcppパッケージもinstall.packages()コマンドでとってきた場合には、以下に示すようなところにあることがわかる
C:\Users\UserName\Documents\R\win-library\2.14\Rcpp\include\Rcpp\stats\random
- このように、Rcppが置いているC(C++)の関数は、使ってもよい、とこういうことらしい