c++ - C++ 函数相互调用时的 Rcpp 集成

标签 c++ r rcpp

我开始使用 Rcpp 框架将 C++ 函数与 R 集成。

以下集成工作正常:

   cppFunction('
   double normal_dens( double x ) 
   {
     const double  SQRT2PI = 2.50662827463;
     return( exp(-x*x/2.0)/SQRT2PI );
   }
  ')

接下来我要整合:

   cppFunction('
   double test( double x ,double a) 
   {
    return( a* normal_dens(x);); 
   }
  ')

内部 cpp 编译器提示(正确地)函数 normal_dens 未知。最简单的方法是什么?

非常感谢

最佳答案

这些 cppFunction 调用中的每一个都会创建一个独立的共享库。他们彼此不认识。

一个简单的替代方法是将所有内容放在同一个文件中:

#include <Rcpp.h>

// [[Rcpp::export]]
double normal_dens( double x ) {
  const double  SQRT2PI = 2.50662827463;
  return( exp(-x*x/2.0)/SQRT2PI );
}

// [[Rcpp::export]]
double test( double x ,double a){
  return( a* normal_dens(x);); 
}

然后对该文件调用sourceCpp。稍后,您将想要学习如何制作包。

关于c++ - C++ 函数相互调用时的 Rcpp 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23568479/

相关文章:

c++ - 为 Qt 应用程序提供 Web 用户界面的最佳方式?

C++ 重载和覆盖

r - 在R的clogit中创建一个空模型

RStudio Server 与 opencpu.org 用于自己软件包的基于 Web 的 GUI?

c++ - 使用 RStudio 在 R 包中编译 Rcpp 代码时出错

r - 使用 RcppParallel 分组求和

c++ - 用 C++ 编译 SQlite3

c++ - 在 C++ 中将列表作为属性传递

r - R中的分类日期变量

c++ - 匹配逻辑语句的 Rcpp 矩阵的子集