These are the usual arcsine, arccosine and arctangent functions, which are the inverses of the sine, cosine and tangent functions respectively.

- Function:
`double`

**asin**`(double`

¶`x`) - Function:
`float`

**asinf**`(float`

¶`x`) - Function:
`long double`

**asinl**`(long double`

¶`x`) - Function:
`_FloatN`

**asinfN**`(_Float`

¶`N``x`) - Function:
`_FloatNx`

**asinfNx**`(_Float`

¶`N`x`x`) -
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

These functions compute the arcsine of

`x`—that is, the value whose sine is`x`. The value is in units of radians. Mathematically, there are infinitely many such values; the one actually returned is the one between`-pi/2`

and`pi/2`

(inclusive).The arcsine function is defined mathematically only over the domain

`-1`

to`1`

. If`x`is outside the domain,`asin`

signals a domain error.

- Function:
`double`

**acos**`(double`

¶`x`) - Function:
`float`

**acosf**`(float`

¶`x`) - Function:
`long double`

**acosl**`(long double`

¶`x`) - Function:
`_FloatN`

**acosfN**`(_Float`

¶`N``x`) - Function:
`_FloatNx`

**acosfNx**`(_Float`

¶`N`x`x`) -
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

These functions compute the arccosine of

`x`—that is, the value whose cosine is`x`. The value is in units of radians. Mathematically, there are infinitely many such values; the one actually returned is the one between`0`

and`pi`

(inclusive).The arccosine function is defined mathematically only over the domain

`-1`

to`1`

. If`x`is outside the domain,`acos`

signals a domain error.

- Function:
`double`

**atan**`(double`

¶`x`) - Function:
`float`

**atanf**`(float`

¶`x`) - Function:
`long double`

**atanl**`(long double`

¶`x`) - Function:
`_FloatN`

**atanfN**`(_Float`

¶`N``x`) - Function:
`_FloatNx`

**atanfNx**`(_Float`

¶`N`x`x`) -
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

These functions compute the arctangent of

`x`—that is, the value whose tangent is`x`. The value is in units of radians. Mathematically, there are infinitely many such values; the one actually returned is the one between`-pi/2`

and`pi/2`

(inclusive).

- Function:
`double`

**atan2**`(double`

¶`y`, double`x`) - Function:
`float`

**atan2f**`(float`

¶`y`, float`x`) - Function:
`long double`

**atan2l**`(long double`

¶`y`, long double`x`) - Function:
`_FloatN`

**atan2fN**`(_Float`

¶`N``y`, _Float`N``x`) - Function:
`_FloatNx`

**atan2fNx**`(_Float`

¶`N`x`y`, _Float`N`x`x`) -
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

This function computes the arctangent of

`y`/`x`, but the signs of both arguments are used to determine the quadrant of the result, and`x`is permitted to be zero. The return value is given in radians and is in the range`-pi`

to`pi`

, inclusive.If

`x`and`y`are coordinates of a point in the plane,`atan2`

returns the signed angle between the line from the origin to that point and the x-axis. Thus,`atan2`

is useful for converting Cartesian coordinates to polar coordinates. (To compute the radial coordinate, use`hypot`

; see Exponentiation and Logarithms.)If both

`x`and`y`are zero,`atan2`

returns zero.

ISO C99 defines complex versions of the inverse trig functions.

- Function:
`complex double`

**casin**`(complex double`

¶`z`) - Function:
`complex float`

**casinf**`(complex float`

¶`z`) - Function:
`complex long double`

**casinl**`(complex long double`

¶`z`) - Function:
`complex _FloatN`

**casinfN**`(complex _Float`

¶`N``z`) - Function:
`complex _FloatNx`

**casinfNx**`(complex _Float`

¶`N`x`z`) -
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

These functions compute the complex arcsine of

`z`—that is, the value whose sine is`z`. The value returned is in radians.Unlike the real-valued functions,

`casin`

is defined for all values of`z`.

- Function:
`complex double`

**cacos**`(complex double`

¶`z`) - Function:
`complex float`

**cacosf**`(complex float`

¶`z`) - Function:
`complex long double`

**cacosl**`(complex long double`

¶`z`) - Function:
`complex _FloatN`

**cacosfN**`(complex _Float`

¶`N``z`) - Function:
`complex _FloatNx`

**cacosfNx**`(complex _Float`

¶`N`x`z`) -
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

These functions compute the complex arccosine of

`z`—that is, the value whose cosine is`z`. The value returned is in radians.Unlike the real-valued functions,

`cacos`

is defined for all values of`z`.

- Function:
`complex double`

**catan**`(complex double`

¶`z`) - Function:
`complex float`

**catanf**`(complex float`

¶`z`) - Function:
`complex long double`

**catanl**`(complex long double`

¶`z`) - Function:
`complex _FloatN`

**catanfN**`(complex _Float`

¶`N``z`) - Function:
`complex _FloatNx`

**catanfNx**`(complex _Float`

¶`N`x`z`) -
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

These functions compute the complex arctangent of

`z`—that is, the value whose tangent is`z`. The value is in units of radians.