inline/RcppArmadillo を使用していくつかのシミュレーションをコーディングしていて、RNGScope の問題に遭遇しました。これはバグですか、それとも私は本当にばかげたことをしていますか?? 関数を読みやすくするために空にしました (以下を参照)。
乾杯、エド
library(inline)
code_cpp <- '
using namespace arma;
// From R
uvec x0 = as<uvec>(x0_r);
vec time_vec = as<vec>(time_vec_r);
// Declare variables
umat simulation_data=zeros<umat>(x0.n_elem, time_vec.n_elem);
RNGScope scope;
return wrap(simulation_data);
'
gillespie_sim <- cxxfunction(body = code_cpp,
sig = signature(x0_r = "integer", time_vec_r= "numeric"),
plugin = "RcppArmadillo")
x0 <- c(1,0,0,0,0,0)
time_vec <- 1:800
set.seed(23)
for(i in 1:100000) out2 <- gillespie_sim(x0_r=x0,time_vec_r=time_vec)
私が得るエラー
R(43305) malloc: * オブジェクト 0x108c30a00 のエラー: 解放されたオブジェクトのチェックサムが正しくありません - オブジェクトは解放後に変更された可能性があります。* malloc_error_break にブレークポイントを設定して、中止トラップをデバッグします: 6