Spec-Zone.ru › C

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)

См. также

casincasinfcasinl
(C99)(C99)(C99)
вычисляет комплексный арксинус
(функция)
cacoscacosfcacosl
(C99)(C99)(C99)
вычисляет комплексный арккосинус
(функция)
ctanctanfctanl
(C99)(C99)(C99)
вычисляет комплекный тангенс
(функция)
atanatanfatanl
(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

Spec-Zone.ru

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