Rcpp и Boost Multiprecision,

Я хочу использовать boost / multiprecision с Rcpp. Поэтому я посмотрел вокруг и нашел эти темы о бусте: один и два. Первый из них о точности квадрата - это именно то, что я хочу использовать. Проблема в том, что я не могу скомпилировать данный пример. Тем не менее, я могу скомпилировать пример из второго потока, который просто использует другой каталог в пакете 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")", как описано в первом потоке, но не повезло. Какие-либо предложения? В случае, если это имеет значение, я использую окна.

0 ответов

Другие вопросы по тегам