Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Precision Policies

Boost , Math Toolkit 2.5.0 , Policy Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Существуют две эквивалентные политики, которые влияют нарабочую точность, используемую для расчета результатов, эти политики по умолчанию равны 0, что означает вычисление с максимальной точностью, доступной в используемом типе, но могут быть установлены на другие значения, чтобы вызвать более низкие уровни точности. Возможно, вы захотите обменять точность на скорость оценки.

namespace boost{ namespace math{ namespace policies{
template <int N>
digits10;
template <int N>
digits2;
}}} // namespaces

Как и следовало ожидать,цифры 10указывают число десятичных цифр для использования, ицифры 2.число двоичных цифр. Внутренне, в зависимости от того, что используется, точность всегда преобразуется вдвоичные цифры..

Эти политики указаны во время компиляции, поскольку многие специальные функции используют время компиляции для выбора того, какое приближение использовать на основе запрашиваемой точности и используемого числового типа.

Например, мы могли бы вычислить<tgamma>приблизительно до 5 десятичных цифр, используя:

#include <boost/math/special_functions/gamma.hpp>
using boost::math::tgamma;
using boost::math::policies::policy;
using boost::math::policies::digits10;
typedef policy<digits10<5> > my_pol_5; // Define a new, non-default, policy
// to calculate tgamma to accuracy of approximately 5 decimal digits.

Или снова с помощью функции помощника<make_policy>:

#include <boost/math/special_functions/gamma.hpp>
using boost::math::tgamma;
using namespace boost::math::policies;
double t = tgamma(12, policy<digits10<5> >());  // Concise make_policy.

А для квантиля распределения с точностью приблизительно 25 бит:

#include <boost/math/distributions/normal.hpp>
using boost::math::normal_distribution;
using namespace boost::math::policies;
const int bits = 25; // approximate precision.
double q = quantile(
      normal_distribution<double, policy<digits2<bits> > >(),
      0.05); // 5% quantile.

PrevUpHomeNext

Статья Precision Policies раздела Math Toolkit 2.5.0 Policy Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Policy Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 07:20:39/0.0077388286590576/1