我想在Rcpp中使用boost / multiprecision。因此,我环顾四周,找到了关于提升的这些主题:one和two。关于四精度的第一个正是我想要使用的。问题是我无法编译给定的例子。但是,我可以从第二个线程编译示例,该第二个线程只使用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。