std::asin(std::valarray)
Von cppreference.com
| Definiert in der Header-Datei <valarray> |
||
| template< class T > valarray<T> asin( const valarray<T>& va ); |
||
Berechnet für jedes Element in va den Arkussinus des Wertes des Elements.
Inhalt |
[editieren] Parameter
| va | - | Wert-Array, auf das die Operation angewendet werden soll. |
[editieren] Rückgabewert
Ein Wert-Array, das die Arkussini der Werte in va enthält.
[editieren] Hinweise
Die nicht qualifizierte Funktion (asin) wird zur Durchführung der Berechnung verwendet. Wenn keine solche Funktion verfügbar ist, wird aufgrund von Argument-dependent lookup (std::asin) verwendet.
Die Funktion kann mit einem anderen Rückgabetyp als std::valarray implementiert werden. In diesem Fall hat der Ersatztyp die folgenden Eigenschaften
- Alle const-Mitgliedsfunktionen von std::valarray sind vorhanden.
- std::valarray, std::slice_array, std::gslice_array, std::mask_array und std::indirect_array können aus dem Ersatztyp konstruiert werden.
- Für jede Funktion, die ein const std::valarray<T>& als Argument nimmt (außer begin() und end())(seit C++11), werden identische Funktionen hinzugefügt, die die Ersatztypen nehmen;
- Für jede Funktion, die zwei Argumente vom Typ const std::valarray<T>& annimmt, werden identische Funktionen hinzugefügt, die jede Kombination aus const std::valarray<T>& und Ersatztypen annehmen.
- Der Rückgabetyp fügt nicht mehr als zwei Ebenen von Template-Verschachtelung über den am tiefsten verschachtelten Argumenttyp hinaus hinzu.
[editieren] Mögliche Implementierung
template<class T> valarray<T> asin(const valarray<T>& va) { valarray<T> other = va; for (T& i : other) i = asin(i); return other; // proxy object may be returned } |
[editieren] Beispiel
Führen Sie diesen Code aus
#include <cmath> #include <iostream> #include <numbers> #include <valarray> int main() { // take common y-values from unit circle const double s22 = std::sqrt(2.0) / 2.0; const double s32 = std::sqrt(3.0) / 2.0; const std::valarray<double> v1 = {-1.0, -s32, -s22, -0.5, 0.0, 0.5, s22, s32, 1.0}; // fill with results of radians to degrees conversion const std::valarray<double> v2 = std::asin(v1) * 180.0 / std::numbers::pi; for (std::cout << std::showpos; double n : v2) std::cout << n << "° "; std::cout << '\n'; }
Ausgabe
-90° -60° -45° -30° +0° +30° +45° +60° +90°
[editieren] Siehe auch
| wendet die Funktion std::acos auf jedes Element des Valarrays an (function template) | |
| wendet die Funktion std::atan auf jedes Element des Valarrays an (function template) | |
| wendet die Funktion std::atan2 auf ein Valarray und einen Wert an (function template) | |
| wendet die Funktion std::sin auf jedes Element des Valarrays an (function template) | |
| (C++11)(C++11) |
berechnet Arkussinus (arcsin(x)) (Funktion) |
| (C++11) |
berechnet den Arkussinus einer komplexen Zahl (arcsin(z)) (function template) |