catanf, catan, catanl
Header: <complex.h>
1-3) Computes the complex arc tangent of z with branch cuts outside the interval [−i,+i] along the imaginary axis.
# Declarations
float complex catanf( float complex z );
(since C99)
double complex catan( double complex z );
(since C99)
long double complex catanl( long double complex z );
(since C99)
#define atan( z )
(since C99)
# Parameters
z: complex argument
# Return value
If no errors occur, complex arc tangent of z is returned, in the range of a strip unbounded along the imaginary axis and in the interval [−π/2; +π/2] along the real axis.
# Notes
Inverse tangent (or arc tangent) is a multivalued function and requires a branch cut on the complex plane. The branch cut is conventionally placed at the line segments (-∞i,-i) and (+i,+∞i) of the imaginary axis.
# Example
#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));
}