std::tanh(std::complex)
Определён в заголовочном файле <complex> | ||
|---|---|---|
template< class T > complex<T> tanh( const complex<T>& z ); | (начиная с C++11) |
Вычисляет гиперболический тангенс комплексного значения z.
Параметры
| z | - | комплексное значение |
Возвращаемое значение
Если ошибок не возникает, возвращается гиперболический тангенс комплексного значения z.
Обработка ошибок и специальные значения
Об ошибках сообщается в соответствии с math_errhandling.
Если реализация поддерживает арифметику с плавающей точкой IEEE,
-
std::tanh(std::conj(z)) == std::conj(std::tanh(z)). -
std::tanh(-z) == -std::tanh(z). - Если
z—(+0,+0), результат равен(+0,+0). - Если
z—(x,+∞)(для любого конечного x[1]), результат равен(NaN,NaN)и возникает исключениеFE_INVALID. - Если
z—(x,NaN)(для любого конечного x[2]), результат равен(NaN,NaN)и может возникнуть исключениеFE_INVALID. - Если
z—(+∞,y)(для любого конечного положительного y), результат равен(1,+0). - Если
z—(+∞,+∞), результат равен(1,±0)(знак мнимой части не определён). - Если
z—(+∞,NaN), результат равен(1,±0)(знак мнимой части не определён). - Если
z—(NaN,+0), результат равен(NaN,+0). - Если
z—(NaN,y)(для любого ненулевого y), результат равен(NaN,NaN)и может возникнуть исключениеFE_INVALID. - Если
z—(NaN,NaN), результат равен(NaN,NaN).
Примечания
Математическое определение гиперболического тангенса: tanh z =
ez-e-z/ez+e-z.
Гиперболический тангенс является аналитической функцией на комплексной плоскости и не имеет разрезов ветвей. Он периодичен по мнимой составляющей с периодом πi и имеет полюса первого порядка на мнимой оси в точках с координатами (0, π(1/2 + n)). Однако ни одно распространённое представление чисел с плавающей точкой не позволяет точно представить π/2, поэтому не существует значения аргумента, при котором возникала бы ошибка полюса.
Пример
#include <cmath>
#include <complex>
#include <iostream>
int main()
{
std::cout << std::fixed;
std::complex<double> z(1.0, 0.0); // behaves like real tanh along the real line
std::cout << "tanh" << z << " = " << std::tanh(z)
<< " (tanh(1) = " << std::tanh(1) << ")\n";
std::complex<double> z2(0.0, 1.0); // behaves like tangent along the imaginary line
std::cout << "tanh" << z2 << " = " << std::tanh(z2)
<< " ( tan(1) = " << std::tan(1) << ")\n";
}
Вывод:
tanh(1.000000,0.000000) = (0.761594,0.000000) (tanh(1) = 0.761594) tanh(0.000000,1.000000) = (0.000000,1.557408) ( tan(1) = 1.557408)
См. также
| вычисляет гиперболический синус комплексного числа (\({\small\sinh{z}}\)sinh(z)) (шаблон функции) |
|
| вычисляет гиперболический косинус комплексного числа (\({\small\cosh{z}}\)cosh(z)) (шаблон функции) |
|
|
(C++11) | вычисляет обратный гиперболический тангенс комплексного числа (\({\small\operatorname{artanh}{z}}\)artanh(z)) (шаблон функции) |
|
(C++11)(C++11) | вычисляет гиперболический тангенс (\({\small\tanh{x}}\)tanh(x)) (функция) |
применяет функцию std::tanh к каждому элементу valarray (шаблон функции) |
|
Документация по C для ctanh |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/numeric/complex/tanh