私はRパッケージ「RcppArmadillo」を使用しています。私はすでに2つのcxxfunctionを定義するためにそれを使用しました(それらはデバッグされており、使用しても問題ありません):
calc1 <- cxxfunction(signature(A="integer", B="integer"),...)
calc2 <- cxxfunction(signature(A="integer", K="integer"),...)
今、私は別のcxxfunction mainの本体部分を書いていて、そこでforループ内でcalc1とcalc2を呼び出したいと思っています。
body_main = '
...
for(int i=0; i<N; i++){
// This is where I want to call calc1.
// (?)
for(int j=0; j<N; j++){
// This is where I want to call calc2.
// (?)
}
}
'
とにかくそれを達成できることはありますか?それはインラインで行うことができますか?
RcppArmadillo(またはRcpp、RcppGSL)のインライン使用例を見たことがありません。この例では、ボディ部分内にサブルーチンを記述します。具体的には、コードは次のようになります。
body_example = '
// Subroutine
SEXP(/*or something else*/) func_0(SEXP A, SEXP B){
...
return ...;
}
// Then call it from the main part
...
AB = func_0(A, B);
...
'
私の質問はおそらく素朴に見えますが、それでも私を悩ませます。誰かがこれを説明するのを手伝ってもらえますか?たくさんありがたいです!