Как связать с GMP с помощью C ++ в Code Runner кода Visual Studio (в Linux)? - PullRequest
1 голос
/ 13 марта 2019

Я использую 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)?

...