carg, cargf, cargl — calculate the complex argument

## Synopsis

**#include <complex.h>**

**double carg(double complex** *z***);****float cargf(float complex** *z***);****long double cargl(long double complex** *z***);**

`Link with `

*-lm*.

## Description

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].

## Versions

These functions first appeared in glibc in version 2.1.

## Attributes

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

## Colophon

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 https://www.kernel.org/doc/man-pages/.

## Referenced By

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

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