Namespaces
Variants

catanf, catan, catanl

From cppreference.net
Definido en el encabezado <complex.h>
float complex catanf ( float complex z ) ;
(1) (desde C99)
double complex catan ( double complex z ) ;
(2) (desde C99)
long double complex catanl ( long double complex z ) ;
(3) (desde C99)
Definido en el encabezado <tgmath.h>
#define atan( z )
(4) (desde C99)
1-3) Calcula el arco tangente complejo de z con cortes de rama fuera del intervalo [−i,+i] a lo largo del eje imaginario.
4) Macro genérico de tipos: Si z tiene tipo long double complex , catanl es llamado. Si z tiene tipo double complex , catan es llamado. Si z tiene tipo float complex , catanf es llamado. Si z es real o entero, entonces el macro invoca la función real correspondiente ( atanf , atan , atanl ). Si z es imaginario, entonces el macro invoca la versión real correspondiente de la función atanh , implementando la fórmula atan(iy) = i atanh(y) , y el tipo de retorno del macro es imaginario.

Contenidos

Parámetros

z - argumento complejo

Valor de retorno

Si no ocurren errores, se devuelve el arcotangente complejo de z , en el rango de una banda no acotada a lo largo del eje imaginario y en el intervalo [−π/2; +π/2] a lo largo del eje real.

Los errores y casos especiales se manejan como si la operación estuviera implementada por - I * catanh ( I * z ) .

Notas

La tangente inversa (o arcotangente) es una función multivaluada y requiere un corte de rama en el plano complejo. El corte de rama se coloca convencionalmente en los segmentos de línea (-∞i,-i) y (+i,+∞i) del eje imaginario.

The mathematical definition of the principal value of inverse tangent is atan z = -
1
2
i [ln(1 - iz) - ln (1 + iz)]

Ejemplo

#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));
}

Salida:

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

Referencias

  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.3.5.3 Las funciones catan (p: 191)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: 373-375)
  • G.7 Matemáticas genéricas de tipos <tgmath.h> (p: 545)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.3.5.3 Las funciones catan (p: 173)
  • 7.22 Matemáticas genéricas de tipos <tgmath.h> (p: 335-337)
  • G.7 Matemáticas genéricas de tipos <tgmath.h> (p: 480)

Véase también

(C99) (C99) (C99)
calcula el arco seno complejo
(función)
(C99) (C99) (C99)
calcula el arco coseno complejo
(función)
(C99) (C99) (C99)
calcula la tangente compleja
(función)
(C99) (C99)
calcula el arco tangente ( arctan(x) )
(función)