根据RcppArmadillo是针对C++ 98标准(当前是默认值)还是针对C++ 11(可选)进行编译,可以使用两种不同的RNG.[...]对于C++ 98,使用系统库RNG.它可能性能较差,尤其是在旧版本的Windows上.对于C++ 11,使用其库中包含的RNG.- RcppArmadillo文档
"对于C++ 98,使用了系统库RNG." - 系统库RNG std::rand(),虽然似乎RcppArmadillo使用来自R的RNG作为后备(当没有选择C++ 11,因此基于C++ 11的RNG不可用时),这避免使用旧的C++基于98 std::rand().1
"对于C++ 11,使用其库中包含的RNG." - 这是指C++ 11 <random>库.
另一方面,也请在RcppArmadilloForward.h中考虑这个评论:
// using this define makes the R RNG have precedent over both the
// C++11-based RNG provided by Armadillo, as well as the C++98-based
// fallback.
//
// One can use the C++11-based on by commenting out the following
// #define and also selecting C++11 (eg via src/Makevars* or the
// DESCRIPTION file) and/or defining #define-ing ARMA_USE_CXX11_RNG
#define ARMA_RNG_ALT RcppArmadillo/Alt_R_RNG.h
Run Code Online (Sandbox Code Playgroud)
它将R RNG作为RcppArmadillo的引擎.
1 R-bloggers | RcppArmadillo 0.4.450.1.0
| 归档时间: |
|
| 查看次数: |
778 次 |
| 最近记录: |