【发布时间】:2015-01-05 08:41:38
【问题描述】:
我经常使用 Rcpp 代码将 C++ 代码合并到 R 中。通过 BH 包,我还可以使用 Boost 库。但是,Boost 库缺少我想使用的函数(准确地说,它只有 Bessel 函数,但由于溢出,我想立即获取 Log-Bessel)。我知道Alglib确实有这个功能。
是否可以将 Alglib 与 Rcpp 一起使用,即以某种方式使用 Alglib 中的 log-bessel 函数?
【问题讨论】:
-
问题“是否可能”显然是“是”,因为 Alglib 是 C++。我知道还没有一个包装器,所以除非你有特定的问题,否则如何做到这一点对于 SO 来说太宽泛了。是否需要这样做是另一个问题:R 的 Bessel 函数是否不行inside-r.org/r-doc/base/bessel? alglib Bessel 函数看起来非常相似 alglib.net/translator/man/manual.cpp.html#unit_bessel
-
问题是如何在 Rcpp 中为 C++ 使用一些包对 SO 来说太宽泛了吗?在那种情况下,我很抱歉,但我真的不知道在哪里可以找到可以帮助我让 Alglib 库在 Rcpp 中工作的信息。 R 函数可以,但据我所知,我无法在基于 Rcpp 的 C++ 代码中使用 R 函数,因为这需要 Rcpp 的开发人员将此函数添加到 Rcpp。
-
您当然可以(轻松)在 Rcpp 代码中调用任何 R 函数,但开销明显。
-
我可以吗?我的印象是我只能从您的 C++ 中调用特定的“糖”函数,我认为这是因为 Quick Reference 和 Hadley's guide 似乎暗示了这一点。如何从 C++ 调用任意 R 函数?
-
嗯,Rcpp 是为了用 C++ 代码扩展 R。为什么不直接创建一个与 Alglib 接口的包,或者只是继承一个 Bessel 函数?