Namespaces
Variants

std::cosh(std::valarray)

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

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

Parameter

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

Rückgabewert

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

Notizen

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

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

  • Alle const Elementfunktionen 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 ein const std::valarray<T>& außer begin() und end()(seit C++11) nimmt, müssen identische Funktionen, die die Ersatztypen nehmen, hinzugefügt werden;
  • Für jede Funktion, die zwei const std::valarray<T>& Argumente nimmt, müssen identische Funktionen, die jede Kombination von const std::valarray<T>& und Ersatztypen nehmen, hinzugefügt werden.
  • 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> cosh(const valarray<T>& va)
{
    valarray<T> other = va;
    for (T& i : other)
        i = cosh(i);
    return other; // Proxy-Objekt kann zurückgegeben werden
}

Beispiel

#include <cmath>
#include <iomanip>
#include <iostream>
#include <valarray>
void show(const char* title, const std::valarray<float>& data)
{
    const int w{9};
    std::cout << std::setw(w) << title << " | ";
    for (float x : data)
        std::cout << std::setw(w) << x << " | ";
    std::cout << '\n';
}
int main()
{
    const std::valarray<float> x{.1, .2, .3, .4};
    const auto sinh = std::sinh(x);
    const auto cosh = std::cosh(x);
    const auto z = (cosh * cosh) - (sinh * sinh);
    show("x", x);
    show("sinh(x)", sinh);
    show("cosh(x)", cosh);
    show("z", z);
}

Ausgabe:

        x |       0.1 |       0.2 |       0.3 |       0.4 | 
  sinh(x) |  0.100167 |  0.201336 |   0.30452 |  0.410752 | 
  cosh(x) |     1.005 |   1.02007 |   1.04534 |   1.08107 | 
        z |         1 |         1 |         1 |         1 |

Siehe auch

wendet die Funktion std::sinh auf jedes Element des valarray an
(Funktions-Template)
wendet die Funktion std::tanh auf jedes Element des valarray an
(Funktions-Template)
(C++11) (C++11)
berechnet den hyperbolischen Kosinus ( cosh(x) )
(Funktion)
berechnet den hyperbolischen Kosinus einer komplexen Zahl ( cosh(z) )
(Funktions-Template)