Go to the previous, next section.

These are the usual arc sine, arc cosine and arc tangent functions, which are the inverses of the sine, cosine and tangent functions, respectively.

__Function:__ double **asin** *(double x)*

This function computes the arc sine 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).

`asin`

fails, and sets `errno`

to `EDOM`

, if `x` is
out of range. The arc sine function is defined mathematically only
over the domain `-1`

to `1`

.

__Function:__ double **acos** *(double x)*

This function computes the arc cosine 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).

`acos`

fails, and sets `errno`

to `EDOM`

, if `x` is
out of range. The arc cosine function is defined mathematically only
over the domain `-1`

to `1`

.

__Function:__ double **atan** *(double x)*

This function computes the arc tangent 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)*

This is the two argument arc tangent function. It is similar to computing
the arc tangent of `y`/`x`, except that 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 section Exponentiation and Logarithms.)

The function `atan2`

sets `errno`

to `EDOM`

if both
`x` and `y` are zero; the return value is not defined in this
case.

Go to the previous, next section.