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)

Return Value

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

Conforming to

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

See Also

cabs(3), complex(7)


This page is part of release 5.04 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at

Referenced By

atan(3), atan2(3), complex(7).

The man pages cargf(3) and cargl(3) are aliases of carg(3).

2017-09-15 Linux Programmer's Manual