ctanf, ctan, ctanl
Определено в заголовочном файле <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) |
z.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, поэтому нет значения аргумента, при котором возникает ошибка полюса. Математическое определение тангенса: tan z =
i(e-iz-eiz)/e-iz+eizПример
#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) | вычисляет тангенс (\({\small\tan{x} }\)tan(x)) (функция) |
Документация C++ для tan |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/complex/ctan