ctanhf, ctanh, ctanhl
|
Определено в заголовке
<complex.h>
|
||
| (1) | (начиная с C99) | |
| (2) | (начиная с C99) | |
| (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
Примечания
Mathematical definition of hyperbolic tangent is tanh z =|
e
z
-e -z |
|
e
z
+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); // ведет себя как вещественный tanh вдоль вещественной оси printf("tanh(1+0i) = %f%+fi (tanh(1)=%f)\n", creal(z), cimag(z), tanh(1)); double complex z2 = ctanh(I); // ведет себя как тангенс вдоль мнимой оси 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)
|
вычисляет гиперболический тангенс (
tanh(x)
)
(функция) |
|
Документация C++
для
tanh
|
|