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.

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.