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).
Примечания
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)
)
(шаблон функции) |
|
|
(C++11)
|
вычисляет гиперболический арктангенс комплексного числа (
artanh(z)
)
(шаблон функции) |
|
(C++11)
(C++11)
|
вычисляет гиперболический тангенс (
tanh(x)
)
(функция) |
|
применяет функцию
std::tanh
к каждому элементу valarray
(шаблон функции) |
|
|
Документация C
для
ctanh
|
|