Namespaces
Variants

std::tan(std::valarray)

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

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

Parameter

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

Rückgabewert

Wertearray, das die Tangenten der Werte in va enthält.

Anmerkungen

Unqualifizierte Funktion (tan) wird zur Durchführung der Berechnung verwendet. Falls eine solche Funktion nicht verfügbar ist, wird std::tan aufgrund von argumentabhängiger Suche verwendet.

Die Funktion kann mit einem von std::valarray abweichenden Rückgabetyp implementiert werden. In diesem Fall hat der Ersetzungstyp die folgenden Eigenschaften:

  • Alle const-Mitgliedsfunktionen von std::valarray werden bereitgestellt.
  • std::valarray, std::slice_array, std::gslice_array, std::mask_array und std::indirect_array können aus dem Ersetzungstyp konstruiert werden.
  • Für jede Funktion, die ein const std::valarray<T>& (außer begin() und end()(seit C++11)) nimmt, müssen identische Funktionen hinzugefügt werden, die die Ersetzungstypen nehmen;
  • Für jede Funktion, die zwei const std::valarray<T>&-Argumente nimmt, müssen identische Funktionen hinzugefügt werden, die jede Kombination von const std::valarray<T>& und Ersetzungstypen nehmen.
  • Der Rückgabetyp fügt nicht mehr als zwei Ebenen der Templateschachtelung über dem am tiefsten verschachtelten Argumenttyp hinzu.

Mögliche Implementierung

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

Beispiel

#include <cmath>
#include <iostream>
#include <valarray>
auto show = [](char const* title, const std::valarray<double>& va)
{
    std::cout << title << " :";
    for (auto x : va)
        std::cout << "  " << std::fixed << x;
    std::cout << '\n';
};
int main()
{
    const std::valarray<double> x = {.0, .1, .2, .3};
    const std::valarray<double> y = std::tan(x);
    const std::valarray<double> z = std::atan(y);
    show("x          ", x);
    show("y = tan(x) ", y);
    show("z = atan(y)", z);
}

Ausgabe:

x           :  0.000000  0.100000  0.200000  0.300000
y = tan(x)  :  0.000000  0.100335  0.202710  0.309336
z = atan(y) :  0.000000  0.100000  0.200000  0.300000

Siehe auch

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