![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
mpfr_floatBoost , Chapter 1. Boost.Multiprecision , floating-point Numbers
|
Тип |
Оценка функции Бесселя, относительные времена |
---|---|
< |
1.0 (5.5s) |
< |
1.05 (5.8) |
< |
1.05 (5.8) |
< |
1.16 (6.4) |
![]() |
Note |
---|---|
Этот тип обеспечивает поддержку< |
Как и обычные преобразования из арифметических и струнных типов, экземпляры<number<mpfr_float_backend<N>>
>являются копируемыми и присваиваемыми из:
Также можно получить доступ к базовому<mpfr_t
>через функцию<mpfr_float_backend
>элемента данных.
Что вы должны знать при использовании этого типа:
mpfr_float_backend
>устанавливается на NaN (это поведение по умолчаниюMPFR).number
>об этом бэкэнд-движении осведомленными.std::runtime_error
>выбрасывается, если строка не может быть интерпретирована как действительное число с плавающей точкой.#include <boost/multiprecision/mpfr.hpp> #include <boost/math/special_functions/gamma.hpp> #include <iostream> int main() { using namespace boost::multiprecision; // Operations at variable precision and no numeric_limits support: mpfr_float a = 2; mpfr_float::default_precision(1000); std::cout << mpfr_float::default_precision() << std::endl; std::cout << sqrt(a) << std::endl; // print root-2 // Operations at fixed precision and full numeric_limits support: mpfr_float_100 b = 2; std::cout << std::numeric_limits<mpfr_float_100>::digits << std::endl; // We can use any C++ std lib function: std::cout << log(b) << std::endl; // print log(2) // We can also use any function from Boost.Math: std::cout << boost::math::tgamma(b) << std::endl; // These even work when the argument is an expression template: std::cout << boost::math::tgamma(b * b) << std::endl; // Access the underlying data: mpfr_t r; mpfr_init(r); mpfr_set(r, b.backend().data(), GMP_RNDN); mpfr_clear(r); return 0; }
Статья mpfr_float раздела Chapter 1. Boost.Multiprecision floating-point Numbers может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: floating-point Numbers ::
реклама |