Next: Exponentiation and Logarithms, Previous: Trigonometric Functions, Up: Mathematics [Contents][Index]

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.