std:: comp_ellint_3, std:: comp_ellint_3f, std:: comp_ellint_3l
|
double
comp_ellint_3
(
double
k,
double
nu
)
;
float
comp_ellint_3
(
float
k,
float
nu
)
;
|
(1) | |
|
double
comp_ellint_3
(
IntegralType k, IntegralType nu
)
;
|
(2) | |
Как и все специальные функции,
comp_ellint_3
гарантированно доступна в
<cmath>
только если
__STDCPP_MATH_SPEC_FUNCS__
определено реализацией со значением не менее 201003L и если пользователь определяет
__STDCPP_WANT_MATH_SPEC_FUNCS__
до включения любых заголовков стандартной библиотеки.
Содержание |
Параметры
| nu | - | значение типа с плавающей точкой или целочисленного типа |
| k | - | значение типа с плавающей точкой или целочисленного типа |
Возвращаемое значение
Если ошибок не возникает, возвращается значение полного эллиптического интеграла второго рода от arg , то есть ellint_3(k, nu, π/2) .
Обработка ошибок
Ошибки могут сообщаться, как указано в math_errhandling .
- Если аргумент равен NaN, возвращается NaN и ошибка домена не сообщается.
- Если либо |k| > 1 , либо |nu| > 1 , может произойти ошибка домена.
Примечания
Реализации, которые не поддерживают TR 29124, но поддерживают TR 19768, предоставляют эту функцию в заголовочном файле
tr1/cmath
и пространстве имён
std::tr1
.
Реализация этой функции также доступна в boost.math .
Пример
(работает как показано с gcc 6.0)
#define __STDCPP_WANT_MATH_SPEC_FUNCS__ 1 #include <cmath> #include <iostream> int main() { double hpi = std::acos(-1) / 2; std::cout << "Π(0, 0.75) = " << std::comp_ellint_3(0, 0.75) << '\n' << "π/2 = " << hpi << '\n' << "Π(0.5, 0.75) = " << std::comp_ellint_3(0.5, 0.75) << '\n' << "Π(0.5, 0.75, π/2) = " << std::ellint_3(0.5, 0.75, hpi) << '\n'; }
Вывод:
Π(0, 0.75) = 3.14159 π/2 = 1.5708 Π(0.5, 0.75) = 3.45372 Π(0.5, 0.75, π/2) = 3.45372
Внешние ссылки
Вайсштейн, Эрик В. "Полный эллиптический интеграл третьего рода." Из MathWorld — веб-ресурс Wolfram.
Смотрите также
|
(неполный) эллиптический интеграл третьего рода
(функция) |