我一直在使用 R 包“RcppArmadillo”。我已经用它定义了两个 cxx 函数(它们已经被调试好使用):
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);
...
'
我的问题可能看起来很幼稚,但它仍然困扰着我。谁能帮忙解释一下?我会很感激的!