std::atanh(std::complex)
Определено в заголовке <complex> | ||
|---|---|---|
template< class T > complex<T> atanh( const complex<T>& z ); | (с C++11) |
Вычисляет комплексную обратную гиперболическую тангенс z с разрезами ветвей вне интервала [−1; +1] вдоль вещественной оси.
Параметры
| z | - | комплексное значение |
Возвращаемое значение
Если ошибки не произошли, возвращается комплексная обратная гиперболическая тангенс z в диапазоне полосы, математически неограниченной вдоль вещественной оси и в интервале [−iπ/2; +iπ/2] вдоль мнимой оси.
Обработка ошибок и специальные значения
Ошибки сообщаются в соответствии с math_errhandling.
Если реализация поддерживает арифметику с плавающей запятой IEEE,
-
std::atanh(std::conj(z)) == std::conj(std::atanh(z)) -
std::atanh(-z) == -std::atanh(z) - Если
zравно(+0,+0), результат равен(+0,+0) - Если
zравно(+0,NaN), результат равен(+0,NaN) - Если
zравно(+1,+0), результат равен(+∞,+0)иFE_DIVBYZEROгенерируется - Если
zравно(x,+∞)(для любого конечного положительного x), результат равен(+0,π/2) - Если
zравно(x,NaN)(для любого конечного ненулевого x), результат равен(NaN,NaN)иFE_INVALIDможет быть сгенерирован - Если
zравно(+∞,y)(для любого конечного положительного y), результат равен(+0,π/2) - Если
zравно(+∞,+∞), результат равен(+0,π/2) - Если
zравно(+∞,NaN), результат равен(+0,NaN) - Если
zравно(NaN,y)(для любого конечного y), результат равен(NaN,NaN)иFE_INVALIDможет быть сгенерирован - Если
zравно(NaN,+∞), результат равен(±0,π/2)(знак вещественной части не определён) - Если
zравно(NaN,NaN), результат равен(NaN,NaN)
Примечания
Хотя стандарт C++ называет эту функцию «комплексной обратной гиперболической тангенсом», обратные функции гиперболических функций являются функциями площади. Их аргумент представляет собой площадь сектора гиперболы, а не дуги. Правильное название — «комплексная обратная гиперболическая тангенс», и менее распространённое — «комплексная площадь гиперболической тангенс».
Обратная гиперболическая тангенс — многозначная функция и требует разреза ветви на комплексной плоскости. Разрез ветви традиционно размещается на отрезках (-∞,-1] и [+1,+∞) вещественной оси. Математическое определение главного значения обратной гиперболической тангенса — atanh z =
ln(1+z) - ln(1-z)/2.Для любого
z, atanh(z) = atan(iz)/i. Пример
#include <complex>
#include <iostream>
int main()
{
std::cout << std::fixed;
std::complex<double> z1(2.0, 0.0);
std::cout << "atanh" << z1 << " = " << std::atanh(z1) << '\n';
std::complex<double> z2(2.0, -0.0);
std::cout << "atanh" << z2 << " (the other side of the cut) = "
<< std::atanh(z2) << '\n';
// for any z, atanh(z) = atanh(iz) / i
std::complex<double> z3(1.0, 2.0);
std::complex<double> i(0.0, 1.0);
std::cout << "atanh" << z3 << " = " << std::atanh(z3) << '\n'
<< "atan" << z3 * i << " / i = " << std::atan(z3 * i) / i << '\n';
}Вывод:
atanh(2.000000,0.000000) = (0.549306,1.570796) atanh(2.000000,-0.000000) (the other side of the cut) = (0.549306,-1.570796) atanh(1.000000,2.000000) = (0.173287,1.178097) atan(-2.000000,1.000000) / i = (0.173287,1.178097)
См. также
|
(C++11) | вычисляет площадь гиперболического синуса комплексного числа (\({\small\operatorname{arsinh}{z}}\)arsinh(z)) (шаблон функции) |
|
(C++11) | вычисляет площадь гиперболического косинуса комплексного числа (\({\small\operatorname{arcosh}{z}}\)arcosh(z)) (шаблон функции) |
| вычисляет гиперболическую тангенс комплексного числа (\({\small\tanh{z}}\)tanh(z)) (шаблон функции) |
|
|
(C++11)(C++11)(C++11) | вычисляет обратную гиперболическую тангенс (\({\small\operatorname{artanh}{x}}\)artanh(x)) (функция) |
Документация на C для catanh |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/numeric/complex/atanh