ctanhf, ctanh, ctanhl
Определено в заголовочном файле <complex.h> | ||
|---|---|---|
float complex ctanhf( float complex z ); | (1) | (начиная с C99) |
double complex ctanh( double complex z ); | (2) | (начиная с C99) |
long double complex ctanhl( long double complex z ); | (3) | (начиная с C99) |
Определено в заголовочном файле <tgmath.h> | ||
#define tanh( z ) | (4) | (начиная с C99) |
z.z имеет тип long double complex, вызывается ctanhl. Если z имеет тип double complex, вызывается ctanh; если z имеет тип float complex, вызывается ctanhf. Если z — вещественное или целое число, макрос вызывает соответствующую вещественную функцию (tanhf, tanh, tanhl). Если z — мнимое число, макрос вызывает соответствующую вещественную версию функции tan, реализуя формулу tanh(iy) = i tan(y); возвращаемый тип — мнимый.Параметры
| z | - | комплексный аргумент |
Возвращаемое значение
Если ошибок не возникает, возвращается комплексный гиперболический тангенс числа z
Обработка ошибок и особые значения
Об ошибках сообщается в соответствии с math_errhandling
Если реализация поддерживает арифметику с плавающей запятой IEEE,
ctanh(conj(z)) == conj(ctanh(z))ctanh(-z) == -ctanh(z)- Если
zравно+0+0i, результатом является+0+0i - Если
zравноx+∞i(для любого[1] конечного x), результатом являетсяNaN+NaNiи возникает исключениеFE_INVALID - Если
zравноx+NaN(для любого[2] конечного x), результатом являетсяNaN+NaNi; может возникнуть исключениеFE_INVALID - Если
zравно+∞+yi(для любого конечного положительного y), результатом является1+0i - Если
zравно+∞+∞i, результатом является1±0i(знак мнимой части не определён) - Если
zравно+∞+NaNi, результатом является1±0i(знак мнимой части не определён) - Если
zравноNaN+0i, результатом являетсяNaN+0i - Если
zравноNaN+yi(для любого ненулевого y), результатом являетсяNaN+NaNi; может возникнуть исключениеFE_INVALID - Если
zравноNaN+NaNi, результатом являетсяNaN+NaNi
Примечания
Математическое определение гиперболического тангенса: tanh z =
ez-e-z/ez+e-zГиперболический тангенс является аналитической функцией на комплексной плоскости и не имеет разрезов ветвей. Он периодичен по мнимой составляющей с периодом πi и имеет полюса первого порядка на мнимой оси в точках с координатами (0, π(1/2 + n)). Однако ни одно распространённое представление чисел с плавающей запятой не позволяет точно представить π/2, поэтому не существует значения аргумента, при котором возникала бы ошибка полюса.
Пример
#include <stdio.h>
#include <math.h>
#include <complex.h>
int main(void)
{
double complex z = ctanh(1); // behaves like real tanh along the real line
printf("tanh(1+0i) = %f%+fi (tanh(1)=%f)\n", creal(z), cimag(z), tanh(1));
double complex z2 = ctanh(I); // behaves like tangent along the imaginary line
printf("tanh(0+1i) = %f%+fi ( tan(1)=%f)\n", creal(z2), cimag(z2), tan(1));
}
Вывод:
tanh(1+0i) = 0.761594+0.000000i (tanh(1)=0.761594) tanh(0+1i) = 0.000000+1.557408i ( tan(1)=1.557408)
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.3.6.6 Функции ctanh (стр. 194)
- 7.25 Обобщённая по типу математика <tgmath.h> (стр. 373–375)
- G.6.2.6 Функции ctanh (стр. 542)
- G.7 Обобщённая по типу математика <tgmath.h> (стр. 545)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.3.6.6 Функции ctanh (стр. 176)
- 7.22 Обобщённая по типу математика <tgmath.h> (стр. 335–337)
- G.6.2.6 Функции ctanh (стр. 477)
- G.7 Обобщённая по типу математика <tgmath.h> (стр. 480)
См. также
|
(C99)(C99)(C99) | вычисляет комплексный гиперболический синус (функция) |
|
(C99)(C99)(C99) | вычисляет комплексный гиперболический косинус (функция) |
|
(C99)(C99)(C99) | вычисляет комплексный ареа-гиперболический тангенс (функция) |
|
(C99)(C99) | вычисляет гиперболический тангенс (\({\small\tanh{x} }\)tanh(x)) (функция) |
Документация по C++ для tanh |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/numeric/complex/ctanh