Namensräume
Varianten
Aktionen

std::sinh, std::sinhf, std::sinhl

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

double      sinh ( double num );

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

            sinh ( const V& v_num );
(S) (seit C++26)
Definiert in der Header-Datei <cmath>
template< class Integer >
double      sinh ( Integer num );
(A) (constexpr seit C++26)
1-3) Berechnet den hyperbolischen Sinus von num. Die Bibliothek stellt Überladungen von std::sinh für alle cv-unqualifizierten Gleitkommatypen als Parametertyp zur Verfügung.(seit C++23)
S) Die SIMD-Überladung führt ein elementweises std::sinh 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 Sinus von num (sinh(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.

Wenn ein Bereichsfehler aufgrund eines Unterlaufs auftritt, wird das korrekte Ergebnis (nach Rundung) 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 oder ±∞ ist, wird es unverändert zurückgegeben.
  • Wenn das Argument NaN ist, wird NaN zurückgegeben.

[edit] Hinweise

POSIX gibt an, dass im Falle eines Unterlaufs num unverändert zurückgegeben wird, und wenn dies nicht unterstützt wird, wird ein implementierungsdefinierter Wert zurückgegeben, der nicht größer als DBL_MIN, FLT_MIN und LDBL_MIN ist.

Die zusätzlichen Überladungen müssen nicht genau wie (A) bereitgestellt werden. Sie müssen nur ausreichen, um sicherzustellen, dass für ihr Argument num vom ganzzahligen Typ std::sinh(num) die gleiche Wirkung hat wie std::sinh(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 << "sinh(1) = " << std::sinh(1) << '\n'
              << "sinh(-1) = " << std::sinh(-1) << '\n'
              << "log(sinh(" << x << ")+cosh(" << x << ")) = "
              << std::log(std::sinh(x) + std::cosh(x)) << '\n';
 
    // special values
    std::cout << "sinh(+0) = " << std::sinh(0.0) << '\n'
              << "sinh(-0) = " << std::sinh(-0.0) << '\n';
 
    // error handling
    errno = 0;
    std::feclearexcept(FE_ALL_EXCEPT);
 
    std::cout << "sinh(710.5) = " << std::sinh(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";
}

Ausgabe

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

[edit] Siehe auch

(C++11)(C++11)
berechnet den hyperbolischen Kosinus (cosh(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 Sinus (arsinh(x))
(Funktion) [bearbeiten]
berechnet den hyperbolischen Sinus einer komplexen Zahl (sinh(z))
(function template) [edit]
wendet die Funktion std::sinh auf jedes Element von valarray an
(function template) [edit]
C-Dokumentation für sinh