catanf, catan, catanl
Определено в заголовке <complex.h> |
||
|---|---|---|
float complex catanf( float complex z ); |
(1) | (с C99) |
double complex catan( double complex z ); |
(2) | (с C99) |
long double complex catanl( long double complex z ); |
(3) | (с C99) |
Определено в заголовке <tgmath.h> |
||
#define atan( z ) |
(4) | (с C99) |
1-3) Вычисляет комплекный арктангенс
z с разрезами ветвей вне интервала [−i,+i] вдоль мнимой оси.
4) Универсальный макрос типа: Если
z имеет тип long double complex, вызывается catanl. Если z имеет тип double complex, вызывается catan, если z имеет тип float complex, вызывается catanf. Если z является вещественным или целочисленным, то макрос вызывает соответствующую вещественную функцию (atanf, atan, atanl). Если z является мнимым, то макрос вызывает соответствующую вещественную версию функции atanh, реализуя формулу atan(iy) = i atanh(y), а возвращаемый тип макроса является мнимым.Параметры
| z | - | комплекное аргумент |
Возвращаемое значение
В случае отсутствия ошибок возвращается комплекный арктангенс z в диапазоне полосы, неограниченной вдоль мнимой оси и в интервале [−π/2; +π/2] вдоль вещественной оси.
Ошибки и особые случаи обрабатываются так, как если бы операция реализовывалась с помощью -I * catanh(I*z).
Примечания
Обратная функция тангенса (или арктангенс) — многозначная функция и требует разреза ветвей на комплексной плоскости. Разрез ветвей обычно размещается на отрезках прямой (-∞i,-i) и (+i,+∞i) мнимой оси. Математическое определение главного значения обратной функции тангенса имеет вид atan z = -
1/2 i [ln(1 - iz) - ln (1 + iz]Пример
#include <stdio.h>
#include <float.h>
#include <complex.h>
int main(void)
{
double complex z = catan(2*I);
printf("catan(+0+2i) = %f%+fi\n", creal(z), cimag(z));
double complex z2 = catan(-conj(2*I)); // or CMPLX(-0.0, 2)
printf("catan(-0+2i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
double complex z3 = 2*catan(2*I*DBL_MAX); // or CMPLX(0, INFINITY)
printf("2*catan(+0+i*Inf) = %f%+fi\n", creal(z3), cimag(z3));
}Вывод:
catan(+0+2i) = 1.570796+0.549306i catan(-0+2i) (the other side of the cut) = -1.570796+0.549306i 2*catan(+0+i*Inf) = 3.141593+0.000000i
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.3.5.3 Функции catan (стр: 191)
- 7.25 Универсальный математический макрос <tgmath.h> (стр: 373-375)
- Г.7 Универсальный математический макрос <tgmath.h> (стр: 545)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.3.5.3 Функции catan (стр: 173)
- 7.22 Универсальный математический макрос <tgmath.h> (стр: 335-337)
- Г.7 Универсальный математический макрос <tgmath.h> (стр: 480)
См. также
|
(C99)(C99)(C99) |
вычисляет комплексный арксинус (функция) |
|
(C99)(C99)(C99) |
вычисляет комплексный арккосинус (функция) |
|
(C99)(C99)(C99) |
вычисляет комплекный тангенс (функция) |
|
(C99)(C99) |
вычисляет арктангенс (\({\small\arctan{x} }\)arctan(x)) (функция) |
Документация C++ для atan |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/complex/catan