Share via

asin, asinf, asinl

Calculates the arcsine.


double asin( double x );
float asinf ( float x );
long double asinl( long double x );
#define asin(X) // Requires C11 or higher

float asin( float x );  // C++ only
long double asin( long double x );  // C++ only


Value whose arcsine is to be calculated.

Return value

The asin function returns the arcsine (the inverse sine function) of x in the range -π/2 to π/2 radians.

By default, if x is less than -1 or greater than 1, asin returns an indefinite.

Input SEH exception _matherr exception
± QNaN, IND none _DOMAIN


Because C++ allows overloading, you can call overloads of asin with float and long double values. In a C program, unless you're using the <tgmath.h> macro to call this function, asin always takes and returns a double.

If you use the asin macro from <tgmath.h>, the type of the argument determines which version of the function is selected. See Type-generic math for details.

By default, this function's global state is scoped to the application. To change this behavior, see Global state in the CRT.


Routine Required header (C) Required header (C++)
asin, asinf, asinl <math.h> <cmath> or <math.h>
asin macro <tgmath.h>


For more information, see acos, acosf, acosl.

See also

Math and floating-point support
acos, acosf, acosl
atan, atanf, atanl, atan2, atan2f, atan2l
cos, cosf, cosl
sin, sinf, sinl
tan, tanf, tanl