#include <boost/math/special_functions/owens_t.hpp>
namespace boost{ namespace math{
template <class T>
calculated-result-type owens_t(T h, T a);
template <class T, class Policy>
calculated-result-type owens_t(T h, T a, const Policy&);
}} 
Возвращает функцию Оуэнсаизчиа.
Конечный аргументПолитикаявляется необязательным и может быть использован для контроля поведения функции: как она обрабатывает ошибки, какой уровень точности использовать и т. д. См. документациюдля более подробной информации.
   

Функция<owens_t(h,a)>дает вероятность события(X >h и 0< Y< a * X), гдеXиYявляются независимыми стандартными нормальными случайными величинами.
Для h и a >0, T(h,a), дает объем некоррелированного бивариативного нормального распределения с нулевыми средними и единичными дисперсиями по площади междуy = axиy = 0и справа отx = h.
Это область, затененная на рисунке ниже (Owens 1956).

Иллюстрируется также 3D-графиком.

Эта функция используется при вычислении нормального распределения. Он также используется при вычислении бивариативных и многовариантных нормальных вероятностей распределения. Тип возврата этой функции вычисляется с помощьюправил расчета типа результата: Результатом является тип<double>, когда T является целым типом, а тип T иначе.
Оригинальная статья Оуэна (стр. 1077) содержит некоторые дополнительные угловые кейсы.
T(h, 1) = ½ G(h) [1 - G(h)]
 
где G(h) - одномерная норма с нулевым средним значением и интегралом единичной дисперсии от -∞ до h.
Поверх встроенных типов и диапазона тестируемых ошибок меньше 10 * std::numeric_limits::epsilon().
Table 6.83. Error rates for owens_t
| 
             | 
               Microsoft Visual C++ версия 12.0 Win32 двойная 
             | 
               GNU C++ версия 5.1.0 Linux Double 
             | 
               GNU C++ версия 5.1.0 Linux длинный двойной 
             | 
               Солнечный компилятор версии 0x5130 Солнечный солярис
  
             | 
Оуэнс Т (средние малые значения)  | 
Макс = 4.37ε (Средний = 0.973ε)  | 
Макс = 0ε (Средний = 0ε)  | 
Макс = 3,34ε (Средний = 0,942ε)  | 
Макс = 3,34ε (Средний = 0,91ε)  | 
Оуэнс Т (большие и разнообразные значения)  | 
Макс = 3.78ε (Средний = 0.621ε)  | 
Макс = 0ε (Средний = 0ε)  | 
Макс = 49ε (Средний = 2.16ε)  | 
Макс = 24,5ε (Средний = 1,38ε)  | 
 
 
Тестовые данные генерировались алгоритмами Patefield и Tandy T1 и T4, а также предлагаемой эталонной рутиной T7.
- T1 был отклонен, если результат был слишком мал по сравнению с<
atan(a)>(т.е. аннулирование), 
- Т4 был отклонен, если не было конвергенции,
 
- Оба были отклонены, если не согласились.
 
 
Поверх встроенных типов и диапазона тестируемых ошибок меньше 10 std::numeric_limits::epsilon().
Однако существовал целый домен (большойh, маленькийa), где невозможно было генерировать какие-либо надежные значения теста (все методы были отклонены по той или иной причине).
Существуют также два набора тестов здравомыслия: значения пятен вычисляются с использованиемWolfram Mathematicaи. Проект R для статистических вычислений.
Эта функция была предложена и оценена. Дональд. B. Owen, Tables for computing bivariate normal probabilities, Ann. Math. Статист., 27, 1075-1090 (1956).
Алгоритмы Patefield, M. and Tandy, D. "Fast and accurate Calculation of Owen's T-Function", Journal of Statistical Software, 5 (5), 1 - 25 (2000) адаптированы для C++ с произвольным RealType.
Алгоритм Patefield-Tandy предоставляет шесть методов эвалуализации (T1-T6); лучший метод выбирается в соответствии со значениямиaиh. См. оригинал статьи и источник вowens_t.hppдля деталей.
Алгоритм Patefield-Tandy точен примерно до 20 десятичных знаков, поэтому для типов с большей точностью мы используем:
- Модифицированная версия T1, которая сворачивает вычислениеатана(h)в серию T1 (чтобы избежать вычитания двух значений, сходных по величине), а затем ускоряет полученную чередующуюся серию с использованием метода 1 от H. Cohen, F. Rodriguez Villegas, D. Zagier, "Convergence acceleration of alternating series", Bonn, (1991). Результат действителен везде, но не всегда сходится или может стать слишком расходящимся в первых нескольких терминах, чтобы точно суммировать. Это используется дляah< 1.
 
- Модифицированная версия T2, которая ускоряется так же, как и T1. Это используется дляh >1.
 
- Версия T4 только тогда, когда T1 и T2 не смогли дать точный ответ.
 
- Возвращение к алгоритму Patefiled Tandy, когда все вышеперечисленные методы терпят неудачу: это происходит совсем не для наших тестовых данных с точностью до 100 десятичных цифр. Однако существует сложная область, когдаочень близко к 1 и точность увеличивается, что может привести к тому, что это произойдет в очень исключительных обстоятельствах.
 
 
Используя вышеупомянутый алгоритм и тип с 100-десятичной цифрой, были получены результаты с точностью до 80 десятичных мест в трудной области, гдеблизок к 1, и более 95 десятичных мест в другом месте.