### 19.3 Inverse Trigonometric Functions ¶

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 `(_FloatN x)` ¶
Function: `_FloatNx` asinfNx `(_FloatNx 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 `(_FloatN x)` ¶
Function: `_FloatNx` acosfNx `(_FloatNx 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 `(_FloatN x)` ¶
Function: `_FloatNx` atanfNx `(_FloatNx 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 `(_FloatN y, _FloatN x)` ¶
Function: `_FloatNx` atan2fNx `(_FloatNx y, _FloatNx 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.

Function: `double` asinpi `(double x)` ¶
Function: `float` asinpif `(float x)` ¶
Function: `long double` asinpil `(long double x)` ¶
Function: `_FloatN` asinpifN `(_FloatN x)` ¶
Function: `_FloatNx` asinpifNx `(_FloatNx x)` ¶

  Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

  These functions compute the arcsine of x, divided by pi. The result is in the interval between `-0.5` and `0.5` (inclusive).

  The arcsine function is defined mathematically only over the domain `-1` to `1`. If x is outside the domain, `asinpi` signals a domain error.

  The `asinpi` functions are from TS 18661-4:2015.

Function: `double` acospi `(double x)` ¶
Function: `float` acospif `(float x)` ¶
Function: `long double` acospil `(long double x)` ¶
Function: `_FloatN` acospifN `(_FloatN x)` ¶
Function: `_FloatNx` acospifNx `(_FloatNx x)` ¶

  Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

  These functions compute the arccosine of x, divided by pi. The result is in the interval between `0` and `1` (inclusive).

  The arccosine function is defined mathematically only over the domain `-1` to `1`. If x is outside the domain, `acospi` signals a domain error.

  The `acospi` functions are from TS 18661-4:2015.

Function: `double` atanpi `(double x)` ¶
Function: `float` atanpif `(float x)` ¶
Function: `long double` atanpil `(long double x)` ¶
Function: `_FloatN` atanpifN `(_FloatN x)` ¶
Function: `_FloatNx` atanpifNx `(_FloatNx x)` ¶

  Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

  These functions compute the arctangent of x, divided by pi. The result is in the interval between `-0.5` and `0.5` (inclusive).

  The `atanpi` functions are from TS 18661-4:2015.

Function: `double` atan2pi `(double y, double x)` ¶
Function: `float` atan2pif `(float y, float x)` ¶
Function: `long double` atan2pil `(long double y, long double x)` ¶
Function: `_FloatN` atan2pifN `(_FloatN y, _FloatN x)` ¶
Function: `_FloatNx` atan2pifNx `(_FloatNx y, _FloatNx x)` ¶

  Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

  These function computes the arctangent of y/x, divided by pi, with the signs of both arguments used to determine the quadrant of the result, as for `atan2`.

  The `atan2pi` functions are from TS 18661-4:2015.

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 _FloatN z)` ¶
Function: `complex _FloatNx` casinfNx `(complex _FloatNx 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 _FloatN z)` ¶
Function: `complex _FloatNx` cacosfNx `(complex _FloatNx 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 _FloatN z)` ¶
Function: `complex _FloatNx` catanfNx `(complex _FloatNx 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.