CARG(3) Linux Programmer's Manual CARG(3)

carg, cargf, cargl - calculate the complex argument

#include <complex.h>
double carg(double complex z);
float cargf(float complex z);
long double cargl(long double complex z);
Link with -lm.

These functions calculate the complex argument (also called phase angle) of z, with a branch cut along the negative real axis.
A complex number can be described by two real coordinates. One may use rectangular coordinates and gets
    z = x + I * y
where x = creal(z) and y = cimag(z).
Or one may use polar coordinates and gets
    z = r * cexp(I * a)
where r = cabs(z) is the "radius", the "modulus", the absolute value of z, and a = carg(z) is the "phase angle", the argument of z.
One has:
    tan(carg(z)) = cimag(z) / creal(z)

The return value is the range of [-pi,pi].

These functions first appeared in glibc in version 2.1.

For an explanation of the terms used in this section, see attributes(7).
Interface Attribute Value
carg (), cargf (), cargl () Thread safety MT-Safe

C99, POSIX.1-2001, POSIX.1-2008.

cabs(3), complex(7)