Namensräume
Varianten
Aktionen

std::cosh, std::coshf, std::coshl

Von cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
 
Definiert in der Header-Datei <cmath>
(1)
float       cosh ( float num );

double      cosh ( double num );

long double cosh ( long double num );
(bis C++23)
/* Gleitkommazahl-Typ */
            cosh ( /*Gleitkommatyp*/ num );
(seit C++23)
(constexpr seit C++26)
float       coshf( float num );
(2) (seit C++11)
(constexpr seit C++26)
long double coshl( 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>

            cosh ( const V& v_num );
(S) (seit C++26)
Definiert in der Header-Datei <cmath>
template< class Integer >
double      cosh ( Integer num );
(A) (constexpr seit C++26)
1-3) Berechnet den hyperbolischen Kosinus von num. Die Bibliothek stellt Überladungen von std::cosh für alle cv-unqualifizierten Gleitkommatypen als Parametertyp bereit.(seit C++23)
S) Die SIMD-Überladung führt eine elementweise std::cosh auf v_num durch.
(Siehe math-floating-point und deduced-simd-t für ihre Definitionen.)
(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 hyperbolische Kosinus von num (cosh(num) oder
enum
+e-num
2
) zurückgegeben.

Wenn ein Bereichsfehler aufgrund von Überlauf auftritt, wird +HUGE_VAL, +HUGE_VALF oder +HUGE_VALL zurückgegeben.

[edit] Fehlerbehandlung

Fehler werden wie in math_errhandling beschrieben gemeldet.

Wenn die Implementierung IEEE-Gleitkomma-Arithmetik (IEC 60559) unterstützt,

  • Wenn das Argument ±0 ist, wird 1 zurückgegeben.
  • Wenn das Argument ±∞ ist, wird +∞ zurückgegeben.
  • Wenn das Argument NaN ist, wird NaN zurückgegeben.

[edit] Hinweise

Für den IEEE-kompatiblen Typ double führt |num| > 710.5 dazu, dass std::cosh(num) überläuft.

Die zusätzlichen Überladungen müssen nicht unbedingt genau wie (A) bereitgestellt werden. Sie müssen nur ausreichen, um sicherzustellen, dass für ihr Argument num vom ganzzahligen Typ std::cosh(num) dieselbe Wirkung hat wie std::cosh(static_cast<double>(num)).

[edit] Beispiel

#include <cerrno>
#include <cfenv>
#include <cmath>
#include <cstring>
#include <iostream>
// #pragma STDC FENV_ACCESS ON
 
int main()
{
    const double x = 42;
 
    std::cout << "cosh(1) = " << std::cosh(1) << '\n'
              << "cosh(-1) = " << std::cosh(-1) << '\n'
              << "log(sinh(" << x << ")+cosh(" << x << ")) = "
              << std::log(std::sinh(x) + std::cosh(x)) << '\n';
 
    // special values
    std::cout << "cosh(+0) = " << std::cosh(0.0) << '\n'
              << "cosh(-0) = " << std::cosh(-0.0) << '\n';
 
    // error handling
    errno=0;
    std::feclearexcept(FE_ALL_EXCEPT);
 
    std::cout << "cosh(710.5) = " << std::cosh(710.5) << '\n';
 
    if (errno == ERANGE)
        std::cout << "    errno == ERANGE: " << std::strerror(errno) << '\n';
    if (std::fetestexcept(FE_OVERFLOW))
        std::cout << "    FE_OVERFLOW raised\n";
}

Mögliche Ausgabe

cosh(1) = 1.54308
cosh(-1) = 1.54308
log(sinh(42)+cosh(42)) = 42
cosh(+0) = 1
cosh(-0) = 1
cosh(710.5) = inf
    errno == ERANGE: Numerical result out of range
    FE_OVERFLOW raised

[edit] Siehe auch

(C++11)(C++11)
berechnet den hyperbolischen Sinus (sinh(x))
(Funktion) [bearbeiten]
(C++11)(C++11)
berechnet den hyperbolischen Tangens (tanh(x))
(Funktion) [bearbeiten]
(C++11)(C++11)(C++11)
berechnet den inversen hyperbolischen Kosinus (arcosh(x))
(Funktion) [bearbeiten]
berechnet den hyperbolischen Kosinus einer komplexen Zahl (cosh(z))
(function template) [edit]
wendet die Funktion std::cosh auf jedes Element von valarray an
(function template) [edit]
C-Dokumentation für cosh