Rcpp和Boost Multiprecision,

时间:2017-02-27 11:56:36

标签: r boost rcpp boost-multiprecision

我想在Rcpp中使用boost / multiprecision。因此,我环顾四周,找到了关于提升的这些主题:onetwo。关于四精度的第一个正是我想要使用的。问题是我无法编译给定的例子。但是,我可以从第二个线程编译示例,该第二个线程只使用boost包中的不同目录。所以我不知道出了什么问题。来自第一个帖子的相关代码:

// [[Rcpp::depends(BH)]]
#include <Rcpp.h>
#include <boost/multiprecision/float128.hpp>
#include <boost/multiprecision/mpfr.hpp>

namespace mp = boost::multiprecision;

// [[Rcpp::export]]
std::string qexp(double da = -1500.0, double db = -1501.0)
{
    mp::float128 a(da), b(db);
    mp::float128 res = mp::exp(a) / (mp::exp(a) + mp::exp(b));
    return res.convert_to<std::string>();
}

// [[Rcpp::export]]
std::string mpfr_exp(double da = -1500.0, double db = -1501.0)
{
    mp::mpf_float_100 a(da), b(db);
    mp::mpf_float_100 res = mp::exp(a) / (mp::exp(a) + mp::exp(b));
    return res.convert_to<std::string>();
}

我得到的错误是:“... / R / win-library / 3.3 / BH / include / boost / multiprecision / gmp.hpp:21:17:致命错误:gmp.h:没有这样的文件或目录  #include“。但是当我浏览到:”... / R / win-library / 3.3 / BH / include / boost / multiprecision /“文件”gmp.hpp“就在那里。我已经尝试过运行”Sys.setenv (“PKG_LIBS”=“ - lmpfr -lgmp”)“如第一个帖子中所述,但没有运气。有什么建议吗?如果重要,我正在使用Windows。

0 个答案:

没有答案