cxxfunction中有多个插件

时间:2012-01-23 21:12:05

标签: r rcpp

我想同时使用RcppGSL和RcppArmadillo,是否可以在cxxfunction(内联CRAN包)中使用多个插件? 我找到了办法:

plug.ArmaGSL <- Rcpp:::Rcpp.plugin.maker(include.before='#include <RcppArmadillo.h>
                                                     #include <RcppGSL.h>
                                                     #include <gsl/gsl_rng.h>',
                                     Depends=c("RcppGSL", "RcppArmadillo", "Rcpp"),
                                     LinkingTo=c("RcppGSL", "RcppArmadillo", "Rcpp"),
                                     libs="-lgsl -larmadillo")

registerPlugin("RcppArmaGSL", plug.ArmaGSL)

foo <- cxxfunction(signature(sM="numeric"), body=bodytxt, inc=inctxt, plugin="RcppArmaGSL")

但似乎并不那么直观。

2 个答案:

答案 0 :(得分:3)

一种简单的方法是从现有的插件开始,例如:

require(inline)
require(RcppArmadillo)
foo <- getPlugin("RcppArmadillo" )

然后搞乱foo,并将其用作cxxfunction调用中的设置参数。更多关于?cxxfunction的内容。

答案 1 :(得分:2)

好问题。 (在rcpp-devel上会更好。)

我认为您需要编写自己的组合插件,有关详细信息,请参阅问题3.6“如何编写Rcpp-FAQ插图的内联包插件”。