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

Riemann Zeta Function

Boost , Math Toolkit 2.5.0 , Zeta 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
Synopsis
#include <boost/math/special_functions/zeta.hpp>
namespace boost{ namespace math{
template <class T>
calculated-result-type zeta(T z);
template <class T, class Policy>
calculated-result-type zeta(T z, const Policy&);
}} // namespaces

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

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

Description
template <class T>
calculated-result-type zeta(T z);
template <class T, class Policy>
calculated-result-type zeta(T z, const Policy&);

Возвращаетдзета-функциюz:

Accuracy

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

Table 6.73. Error rates for zeta

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

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

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

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

Зета: Случайные значения больше 1

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

Макс = 0ε (Mean = 0ε)

GSL 1.16:Макс = 8.69ε (Mean = 1,03ε)]
Цефес:Макс = 4.49e+33ε (Mean = 6.85e+32ε)И другие сбои.

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

:Макс = 5.45ε (Средний = 1ε)

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

Зета: Случайные значения меньше 1

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

Макс = 0ε (Mean = 0ε)

GSL 1.16:Макс = 137ε (Mean = 13.8ε)]
Цефес:Макс = +INFε (Mean = +INFε)И другие неудачи.

Max = 7.03ε (Mean = 2.71ε)

:Max = 538ε (Mean = 59.3ε)]

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

Зета: Значения, близкие и превышающие 1

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

Макс = 0ε (Mean = 0ε)
GSL 1.16:Макс = 7.73ε (Mean = 4.07ε)]
Цефес:Макс = 6.77e+15ε (Mean = 1.52e+15ε)И другие сбои.

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

:Макс = 1.9e+06ε (Средний = 5.11e+05ε])

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

Зета: Значения близкие и меньше 1

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

Макс = 0ε (Mean = 0ε)
GSL 1.16:Макс = 0.991ε (Mean = 0.28ε)]
Цефес:Макс = 8.66e+15ε (Mean = 1.9e+15ε)И другие сбои.

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

:Макс = 8,53e+06ε (Средний = 1,87e+06ε)]

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

Зета: Целые аргументы

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

Макс = 0ε (Mean = 0ε)

GSL 1.16:Макс = 3.75ε (Mean = 1.1ε)]
Цефес:Макс = +INFε (Mean = +INFε)И другие неудачи.

Макс = 9ε (Mean = 3.06ε)

:Макс = 70.3ε (Mean = 17.4ε)]

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


Testing

Тесты для этих функций состоят из двух частей: базовые проверки здравомыслия используют точечные значения, рассчитанные с использованиемонлайн-оценщика Mathworld, в то время как проверки точности используют высокоточные тестовые значения, рассчитанные с точностью 1000 бит сNTL::RRи этой реализацией. Обратите внимание, что общие и типоспецифические версии этих функций используют различные реализации внутри, поэтому это дает нам достаточно независимые данные тестирования. Использование наших тестовых данных для тестирования других «известных хороших» реализаций также обеспечивает дополнительную проверку здравомыслия.

Implementation

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

Общие версии этих функций реализуются с помощью серии:

При распознавании значимого (mantissa) размера (в настоящее время для 53, 64 и 113-битных реалов, плюс одноточная 24-битная обработка с помощью продвижения в два раза) используется ряд рациональных приближений, разработанных JM.

Для 0< z< 1 примерная форма:

Для рационального приближения R(1-z) и постоянной C.

Для 1< z< 4 примерная форма:

Для рационального приближения R(n-z) и константы C и целого числа n.

Для z >4 примерная форма:

ζ(z) = 1 + eR(z - n)

Для рационального приближения R(z-n) и целого числа n, обратите внимание, что точность, требуемая для R(z-n), является не полной точностью машины, а абсолютной ошибкой: ε/R(0). Это экономит нам довольно много цифр при работе с большим z, особенно когда ε.

Наконец, есть некоторые особые случаи для целых аргументов, есть закрытые формы для отрицательных или даже целых чисел:

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


PrevUpHomeNext

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




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



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


реклама


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

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