Namespaces
Variants

std::sin(std::valarray)

Von de.cppreference.net
 
 
 
 
Definiert im Header <valarray>
template< class T >
valarray<T> sin( const valarray<T>& va );

Für jedes Element in va berechnet den Sinus des Werts des Elements.

Parameter

va - Wert-Array, auf das die Operation angewendet werden soll

Rückgabewert

Wertearray, das den Sinus der Werte in va enthält.

Hinweise

Es wird die unqualifizierte Funktion (sin) zur Berechnung verwendet. Falls eine solche Funktion nicht verfügbar ist, wird std::sin aufgrund der argumentabhängigen Suche verwendet.

Die Funktion kann mit einem anderen Rückgabetyp als std::valarray implementiert werden. In diesem Fall hat der Ersatztyp die folgenden Eigenschaften:

  • Alle constMitgliedsfunktionen von std::valarray werden bereitgestellt.
  • 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 einen const std::valarray<T>& (außer begin() und end()(seit C++11)) annimmt, müssen identische Funktionen mit dem Ersatztyp hinzugefügt werden;
  • Für jede Funktion, die zwei const std::valarray<T>&-Argumente annimmt, müssen identische Funktionen für jede Kombination von const std::valarray<T>& und Ersatztypen hinzugefügt werden.
  • Der Rückgabetyp fügt nicht mehr als zwei Ebenen von Template-Verschachtelung über dem am tiefsten verschachtelten Argumenttyp hinzu.

Mögliche Implementierung

template<class T>
valarray<T> sin(const valarray<T>& va)
{
    valarray<T> other = va;
    for (T& i : other)
        i = sin(i);
    return other; // Proxy-Objekt kann zurückgegeben werden
}

Beispiel

#include <cmath>
#include <iostream>
#include <numbers>
#include <valarray>
int main()
{
    std::valarray<double> v1 = {0, 0.25, 0.5, 0.75, 1};
    std::valarray<double> v2 = std::sin(v1 * std::numbers::pi);
    for (double n : v2)
        std::cout << std::fixed << n << ' ';
    std::cout << '\n';
}

Ausgabe:

0.000000 0.707107 1.000000 0.707107 0.000000

Siehe auch

wendet die Funktion std::cos auf jedes Element des valarray an
(Funktions-Template)
wendet die Funktion std::tan auf jedes Element des valarray an
(Funktions-Template)
wendet die Funktion std::asin auf jedes Element des valarray an
(Funktions-Template)
(C++11) (C++11)
berechnet den Sinus ( sin(x) )
(Funktion)
berechnet den Sinus einer komplexen Zahl ( sin(z) )
(Funktions-Template)