std::asin, std::asinf, std::asinl
| Definiert in der Header-Datei <cmath> |
||
| (1) | ||
float asin ( float num ); double asin ( double num ); |
(bis C++23) | |
| /* Gleitkommazahl-Typ */ asin ( /*Gleitkommazahl-Typ*/ num ); |
(seit C++23) (constexpr seit C++26) |
|
float asinf( float num ); |
(2) | (seit C++11) (constexpr seit C++26) |
long double asinl( long double num ); |
(3) | (seit C++11) (constexpr seit C++26) |
| SIMD-Überladung (seit C++26) |
||
| Definiert im Header <simd> |
||
| template< /*math-floating-point*/ V > constexpr /*deduzierter-simd-t*/<V> |
(S) | (seit C++26) |
| Zusätzliche Überladungen (seit C++11) |
||
| Definiert in der Header-Datei <cmath> |
||
template< class Integer > double asin ( Integer num ); |
(A) | (constexpr seit C++26) |
std::asin für alle cv-unqualifizierten Gleitkommatypen als Parametertyp bereit.(seit C++23)|
S) Die SIMD-Überladung führt eine elementweise
std::asin auf v_num aus.
|
(seit C++26) |
|
A) Zusätzliche Überladungen werden für alle ganzzahligen Typen bereitgestellt, die als double behandelt werden.
|
(seit C++11) |
Inhalt |
[edit] Parameter
| num | - | Gleitkomma- oder Ganzzahlwert |
[edit] Rückgabewert
Wenn keine Fehler auftreten, wird der Arkussinus von num (arcsin(num)) im Bereich [-| π |
| 2 |
| π |
| 2 |
Wenn ein Domänenfehler auftritt, wird ein implementierungsabhängiger Wert zurückgegeben (NaN, wo unterstützt).
Wenn ein Bereichsfehler aufgrund eines Unterlaufs auftritt, wird das korrekte Ergebnis (nach Rundung) zurückgegeben.
[edit] Fehlerbehandlung
Fehler werden wie in math_errhandling beschrieben gemeldet.
Ein Domänenfehler tritt auf, wenn num außerhalb des Bereichs [-1.0, 1.0] liegt.
Wenn die Implementierung IEEE-Gleitkomma-Arithmetik (IEC 60559) unterstützt,
- Wenn das Argument ±0 ist, wird es unverändert zurückgegeben.
- Wenn |num| > 1, tritt ein Domänenfehler auf und NaN wird zurückgegeben.
- Wenn das Argument NaN ist, wird NaN zurückgegeben.
[edit] Anmerkungen
Die zusätzlichen Überladungen müssen nicht exakt wie (A) bereitgestellt werden. Sie müssen lediglich ausreichen, um sicherzustellen, dass für ihr Argument num vom ganzzahligen Typ, std::asin(num) denselben Effekt hat wie std::asin(static_cast<double>(num)).
[edit] Beispiel
#include <cerrno> #include <cfenv> #include <cmath> #include <cstring> #include <iostream> // #pragma STDC FENV_ACCESS ON int main() { std::cout << "asin(1.0) = " << asin(1) << '\n' << "2*asin(1.0) = " << 2 * asin(1) << '\n' << "asin(-0.5) = " << asin(-0.5) << '\n' << "6*asin(-0.5) =" << 6 * asin(-0.5) << '\n'; // special values std::cout << "asin(0.0) = " << asin(0) << " asin(-0.0)=" << asin(-0.0) << '\n'; // error handling errno = 0; std::feclearexcept(FE_ALL_EXCEPT); std::cout << "asin(1.1) = " << asin(1.1) << '\n'; if (errno == EDOM) std::cout << " errno == EDOM: " << std::strerror(errno) << '\n'; if (std::fetestexcept(FE_INVALID)) std::cout << " FE_INVALID raised" << '\n'; }
Mögliche Ausgabe
asin(1.0) = 1.5708
2*asin(1.0) = 3.14159
asin(-0.5) = -0.523599
6*asin(-0.5) = -3.14159
asin(0.0) = 0 asin(-0.0)=-0
asin(1.1) = nan
errno == EDOM: Numerical argument out of domain
FE_INVALID raised[edit] Siehe auch
| (C++11)(C++11) |
berechnet Arkuskosinus (arccos(x)) (Funktion) |
| (C++11)(C++11) |
berechnet Arkustangens (arctan(x)) (Funktion) |
| (C++11)(C++11) |
Arkustangens, verwendet Vorzeichen zur Bestimmung der Quadranten (Funktion) |
| (C++11)(C++11) |
berechnet Sinus (sin(x)) (Funktion) |
| (C++11) |
berechnet den Arkussinus einer komplexen Zahl (arcsin(z)) (function template) |
| wendet die Funktion std::asin auf jedes Element von valarray an (function template) | |
| C-Dokumentation für asin
| |