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,+∞)(для любого[1] конечного x), результат равен(NaN,NaN)иFE_INVALIDгенерируется. - Если
zравно(x,NaN)(для любого[2] конечного x), результат равен(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).
- Согласно C11 DR471, это справедливо только для не нулевого x. Если
zравно(0,∞), результат должен быть(0,NaN). - Согласно C11 DR471, это справедливо только для не нулевого x. Если
zравно(0,NaN), результат должен быть(0,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/w/cpp/numeric/complex/tanh