Namespaces
Variants

ctanf, ctan, ctanl

From cppreference.net
Определено в заголовочном файле <complex.h>
float complex ctanf ( float complex z ) ;
(1) (начиная с C99)
double complex ctan ( double complex z ) ;
(2) (начиная с C99)
long double complex ctanl ( long double complex z ) ;
(3) (начиная с C99)
Определено в заголовочном файле <tgmath.h>
#define tan( z )
(4) (начиная с C99)
1-3) Вычисляет комплексный тангенс z .
4) Типонезависимый макрос: Если z имеет тип long double complex , ctanl вызывается. Если z имеет тип double complex , ctan вызывается. Если z имеет тип float complex , ctanf вызывается. Если z является вещественным или целочисленным, то макрос вызывает соответствующую вещественную функцию ( tanf , tan , tanl ). Если z является мнимым, то макрос вызывает соответствующую вещественную версию функции tanh , реализуя формулу tan(iy) = i tanh(y) , и возвращаемый тип является мнимым.

Содержание

Параметры

z - комплексный аргумент

Возвращаемое значение

Если ошибок не возникает, возвращается комплексный тангенс z .

Ошибки и особые случаи обрабатываются так, как если бы операция была реализована с помощью - i * ctanh ( i * z ) , где i является мнимой единицей.

Примечания

Тангенс является аналитической функцией на комплексной плоскости и не имеет точек ветвления. Он периодичен относительно действительной компоненты с периодом πi и имеет полюсы первого порядка вдоль действительной оси в координатах (π(1/2 + n), 0) . Однако ни одно распространенное представление с плавающей точкой не может точно представить π/2, поэтому не существует значения аргумента, при котором возникает ошибка полюса.

Mathematical definition of the tangent is tg z =
i(e -iz
-e iz
)
e -iz
+e iz

Пример

#include <stdio.h>
#include <math.h>
#include <complex.h>
int main(void)
{
    double complex z = ctan(1);  // behaves like real tangent along the real line
    printf("tan(1+0i) = %f%+fi ( tan(1)=%f)\n", creal(z), cimag(z), tan(1));
    double complex z2 = ctan(I); // behaves like tanh along the imaginary line 
    printf("tan(0+1i) = %f%+fi (tanh(1)=%f)\n", creal(z2), cimag(z2), tanh(1));
}

Вывод:

tan(1+0i) = 1.557408+0.000000i ( tan(1)=1.557408)
tan(0+1i) = 0.000000+0.761594i (tanh(1)=0.761594)

Ссылки

  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.3.5.6 Функции ctan (стр. 192)
  • 7.25 Обобщённые типы для комплексных чисел <tgmath.h> (стр. 373-375)
  • G.7 Обобщённая математика <tgmath.h> (стр. 545)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.3.5.6 Функции ctan (стр. 174)
  • 7.22 Обобщённые типы для комплексных чисел <tgcomplex.h> (стр. 335-337)
  • G.7 Обобщённая математика <tgmath.h> (стр. 480)

Смотрите также

(C99) (C99) (C99)
вычисляет комплексный гиперболический тангенс
(функция)
(C99) (C99) (C99)
вычисляет комплексный синус
(функция)
(C99) (C99) (C99)
вычисляет комплексный косинус
(функция)
(C99) (C99) (C99)
вычисляет комплексный арктангенс
(функция)
(C99) (C99)
вычисляет тангенс ( tan(x) )
(функция)