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

Ratios of Gamma Functions

Boost , Math Toolkit 2.5.0 , Gamma 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/gamma.hpp>
namespace boost{ namespace math{
template <class T1, class T2>
calculated-result-type tgamma_ratio(T1 a, T2 b);
template <class T1, class T2, class Policy>
calculated-result-type tgamma_ratio(T1 a, T2 b, const Policy&);
template <class T1, class T2>
calculated-result-type tgamma_delta_ratio(T1 a, T2 delta);
template <class T1, class T2, class Policy>
calculated-result-type tgamma_delta_ratio(T1 a, T2 delta, const Policy&);
}} // namespaces
Description
template <class T1, class T2>
calculated-result-type tgamma_ratio(T1 a, T2 b);
template <class T1, class T2, class Policy>
calculated-result-type tgamma_ratio(T1 a, T2 b, const Policy&);

Возвращает соотношение гамма-функций:

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

Внутренне это называется<tgamma_delta_ratio(a, b-a)>.

template <class T1, class T2>
calculated-result-type tgamma_delta_ratio(T1 a, T2 delta);
template <class T1, class T2, class Policy>
calculated-result-type tgamma_delta_ratio(T1 a, T2 delta, const Policy&);

Возвращает соотношение гамма-функций:

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

Обратите внимание, что результат вычисляется точно, даже когдадельтамала по сравнению с: действительно, даже если+ дельта ~. Функция обычно используется, когдаaвелика идельтаочень мала.

Тип возврата этих функций вычисляется с использованием правил расчета типа результата, когда T1 и T2 являются различными типами, в противном случае тип результата является простым T1.

Accuracy

В следующей таблице показаны пиковые ошибки (в единицах эпсилона), обнаруженные на различных платформах с различными типами плавающих точек. Если не указано иное, любой тип плавающей точки, который является более узким, чем показанный, будет иметьфактически нулевую ошибку.

Table 6.7. Error rates for tgamma_delta_ratio

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

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

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

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

tgamma + малые отношения дельты

Макс = 10.1ε (Средний = 1,25ε)

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

Макс = 5.56ε (Средний = 0.969ε)

Макс = 15.4ε (Средний = 2.09ε)

tgamma + малые отношения дельты (отрицательная дельта)

Макс = 8.04ε (Средний = 1.31ε)

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

Макс = 8,67ε (Средний = 1,29ε)

Макс = 18.3ε (Средний = 2.03ε)

tgamma + малые целочисленные отношения

Макс = 2.74ε (Средний = 0.736ε)

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

Макс = 1,96ε (Средний = 0,677ε)

Макс = 1,96ε (Средний = 0,677ε)

tgamma + малые целочисленные отношения (отрицательная дельта)

Макс = 2.15ε (Средний = 0.685ε)

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

Макс = 1,62ε (Средний = 0,451ε)

Макс = 1,62ε (Средний = 0,451ε)

Целые отношения tgamma

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

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

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

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

целые отношения tgamma (отрицательная дельта)

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

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

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

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


Table 6.8. Error rates for tgamma_ratio

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

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

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

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

tgamma ratios

Макс = 3,66ε (Средний = 1,27ε)

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

Макс = 3.09ε (Средний = 1.15ε)

Макс = 174ε (Средний = 61,2ε)


Testing

Тесты точности используют данные, генерируемые с очень высокой точностью (с классом NTL RR, установленным с 1000-битной точностью: около 300 десятичных цифр) и преднамеренно наивным расчетом Γ (x) / Γ (y).

Implementation

Реализация этих функций очень похожа на бета-версиюи основана на объединении аналогичных терминов мощности для повышения точности и предотвращения ложного переполнения / оттока.

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


PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 11:52:46/0.0028450489044189/0