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
- Согласно DR471, это справедливо только для ненулевого x. Если
zявляется0+∞i, результат должен быть0+NaNi - Согласно DR471, это справедливо только для ненулевого x. Если
zявляется0+NaNi, результат должен быть0+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/w/c/numeric/complex/ctanh