Spec-Zone.ru › C

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)
1-3) Вычисляет комплексный гиперболический тангенс числа z.
4) Обобщённый по типу макрос: если 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
  1. согласно DR471, это верно только для ненулевого x. Если z равно 0+∞i, результатом должно быть 0+NaNi
  2. согласно 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)

См. также

csinhcsinhfcsinhl
(C99)(C99)(C99)
вычисляет комплексный гиперболический синус
(функция)
ccoshccoshfccoshl
(C99)(C99)(C99)
вычисляет комплексный гиперболический косинус
(функция)
catanhcatanhfcatanhl
(C99)(C99)(C99)
вычисляет комплексный ареа-гиперболический тангенс
(функция)
tanhtanhftanhl
(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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API