|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Defined in header <math.h> | ||
float asinf(float arg); | (1) | (since C99) |
double asin(double arg); | (2) | |
longdouble asinl(longdouble arg); | (3) | (since C99) |
_Decimal32 asind32( _Decimal32 arg); | (4) | (since C23) |
_Decimal64 asind64( _Decimal64 arg); | (5) | (since C23) |
_Decimal128 asind128( _Decimal128 arg); | (6) | (since C23) |
Defined in header <tgmath.h> | ||
#define asin( arg ) | (7) | (since C99) |
asinl) is called. Otherwise, if the argument has integer type or the typedouble,(2) (asin) is called. Otherwise,(1) (asinf) is called. If the argument is complex, then the macro invokes the corresponding complex function (casinf,casin,casinl).The functions(4-6) are declared if and only if the implementation predefines | (since C23) |
Contents |
| arg | - | floating-point value |
| π |
| 2 |
| π |
| 2 |
If a domain error occurs, an implementation-defined value is returned (NaN where supported).
If a range error occurs due to underflow, the correct result (after rounding) is returned.
Errors are reported as specified inmath_errhandling.
Domain error occurs ifarg is outside the range[-1.0; 1.0].
If the implementation supports IEEE floating-point arithmetic (IEC 60559):
#include <errno.h>#include <fenv.h>#include <math.h>#include <stdio.h>#include <string.h> #ifndef __GNUC__#pragma STDC FENV_ACCESS ON#endif int main(void){printf("asin( 1.0) = %+f, 2*asin( 1.0)=%+f\n", asin(1),2* asin(1));printf("asin(-0.5) = %+f, 6*asin(-0.5)=%+f\n", asin(-0.5),6* asin(-0.5)); // special valuesprintf("asin(0.0) = %1f, asin(-0.0)=%f\n", asin(+0.0), asin(-0.0)); // error handlingerrno=0;feclearexcept(FE_ALL_EXCEPT);printf("asin(1.1) = %f\n", asin(1.1));if(errno==EDOM)perror(" errno == EDOM");if(fetestexcept(FE_INVALID))puts(" FE_INVALID raised");}
Possible output:
asin( 1.0) = +1.570796, 2*asin( 1.0)=+3.141593asin(-0.5) = -0.523599, 6*asin(-0.5)=-3.141593asin(0.0) = 0.000000, asin(-0.0)=-0.000000asin(1.1) = nan errno == EDOM: Numerical argument out of domain FE_INVALID raised
(C99)(C99) | computes arc cosine (\({\small\arccos{x} }\)arccos(x)) (function)[edit] |
(C99)(C99) | computes arc tangent (\({\small\arctan{x} }\)arctan(x)) (function)[edit] |
(C99)(C99) | computes arc tangent, using signs to determine quadrants (function)[edit] |
(C99)(C99) | computes sine (\({\small\sin{x} }\)sin(x)) (function)[edit] |
(C99)(C99)(C99) | computes the complex arc sine (function)[edit] |
C++ documentation forasin | |