Я использую Visual Studio Code Runner для компиляции проектов C ++ без проблем, но теперь мне нужно использовать бэкэнд GMP с Boost Multiprecision Library.
Как я показал в другом вопросе , у меня уже есть рабочий код, который опирается только на Boost Multiprecision Library. Я пытаюсь использовать высокоточные поплавки GMP вместо тех, которые поставляются с Boost. Как следующее:
#include <iostream>
#include <boost/math/distributions/negative_binomial.hpp>
#include <boost/multiprecision/gmp.hpp>
using namespace std;
using namespace boost;
typedef boost::multiprecision::number<boost::multiprecision::gmp_float<50>> myPrecision;
// typedef boost::multiprecision::mpf_float_50 myPrecision; // this also raises the errors
template <class T1, class T2>
myPrecision negbinPDF(T1 passed_val, T2 passed_par1, T2 passed_par2)
{
myPrecision val = myPrecision(passed_val);
myPrecision par1 = myPrecision(passed_par1);
myPrecision par2 = myPrecision(passed_par2);
return math::pdf(math::negative_binomial_distribution<myPrecision>(par1, par2), val);
};
int main() {
auto p = negbinPDF(1.23456789012345678901234567890, 8.0, 0.25);
cout << "The PDF is: " << p << endl;
}
При запуске приведенного выше кода возникает много ошибок ( см. Здесь ), начиная с некоторых неопределенных ссылок. Отсюда мой вопрос: как я могу ссылаться на GMP с помощью Code Runner кода Visual Studio (в Linux)?