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

expm1

Boost , Math Toolkit 2.5.0 , Basic Functions

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
#include <boost/math/special_functions/expm1.hpp>
namespace boost{ namespace math{
template <class T>
calculated-result-type expm1(T x);
template <class T, class Policy>
calculated-result-type expm1(T x, const Policy&);
}} // namespaces

Возвращение ex— 1.

Тип возврата этой функции вычисляется с использованием правил расчета типа результата.:<double>, когдаxявляется целым типом, а T иначе.

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

Для малого x<ex>очень близко к 1, в результате вычисление<ex- 1>приводит к катастрофическим ошибкам отмены, когда x мало.<expm1>вычисляет<ex- 1>с использованием рациональных приближений (до 128-битных длинных двойников), в противном случае с помощью расширения серии, когда x невелик (давая точность менее 2ɛ).

Наконец, когда BOOST_HAS_EXPM1 определен, специализации этого шаблона<float/double/longdouble>просто перенаправляются на нативную реализацию этой функции платформы (POSIX).

Следующий график иллюстрирует поведение expm1:

Accuracy

Для построенных в плавающей точке типов<expm1>должно быть приблизительно 1 эпсилон точности.

Table 6.79. Error rates for expm1

Microsoft Visual C++ версия 12.0
Win32
двойная

GNU C++ версия 5.1.0
Linux
Double

GNU C++ версия 5.1.0
Linux
длинный двойной

Солнечный компилятор версии 0x5130
Солнечный солярис

Случайные данные

Max = 0.996ε (Mean = 0.283ε)

:Max = 1.31ε (Mean = 0.496ε)]

Макс = 0,793ε (Средний = 0,126ε)

Rmath 3.0.2:Макс = 0,793ε (Средний = 0,126ε)]
Цефес:Макс = 1,53ε (Средний = 0,535ε)]

Макс = 0.992ε (Средний = 0.402ε)

:Макс = 1.26e+19ε (Средний = 4.89e+18ε)И другие сбои.)
:Макс = 0,92ε (Средний = 0,402ε)

Max = 1.31ε (Mean = 0.406ε)

:Max = 0.996ε (Mean = 0.426ε)]


Testing

Смесь проверок здравомыслия спот-тестов и случайных значений высокоточных испытаний, рассчитанных с использованием NTL::RR с точностью 1000 бит.


PrevUpHomeNext

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




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



:: Главная :: Basic Functions ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 09:09:01/0.0061049461364746/0