Namespaces
Variants

std:: tanh (std::complex)

From cppreference.net
Определено в заголовке <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) .
  1. согласно C11 DR471 , это верно только для ненулевых x. Если z равно (0,∞) , результат должен быть (0,NaN) .
  2. согласно C11 DR471 , это верно только для ненулевых x. Если z равно (0,NaN) , результат должен быть (0,NaN) .

Примечания

Mathematical definition of hyperbolic tangent is tanh z =
e z
-e -z
e z
+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); // ведет себя как действительный tanh вдоль действительной оси
    std::cout << "tanh" << z << " = " << std::tanh(z)
              << " (tanh(1) = " << std::tanh(1) << ")\n";
    std::complex<double> z2(0.0, 1.0); // ведет себя как тангенс вдоль мнимой оси
    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)

Смотрите также

вычисляет гиперболический синус комплексного числа ( sinh(z) )
(шаблон функции)
вычисляет гиперболический косинус комплексного числа ( cosh(z) )
(шаблон функции)
вычисляет гиперболический арктангенс комплексного числа ( artanh(z) )
(шаблон функции)
(C++11) (C++11)
вычисляет гиперболический тангенс ( tanh(x) )
(функция)
применяет функцию std::tanh к каждому элементу valarray
(шаблон функции)