std::sinh, std::sinhf, std::sinhl
| Definiert in der Header-Datei <cmath> |
||
| (1) | ||
float sinh ( float num ); double sinh ( 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> |
(S) | (seit C++26) |
| Zusätzliche Überladungen (seit C++11) |
||
| Definiert in der Header-Datei <cmath> |
||
template< class Integer > double sinh ( Integer num ); |
(A) | (constexpr seit C++26) |
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.
|
(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 |
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) |
| (C++11)(C++11) |
berechnet den hyperbolischen Tangens (tanh(x)) (Funktion) |
| (C++11)(C++11)(C++11) |
berechnet den inversen hyperbolischen Sinus (arsinh(x)) (Funktion) |
| berechnet den hyperbolischen Sinus einer komplexen Zahl (sinh(z)) (function template) | |
| wendet die Funktion std::sinh auf jedes Element von valarray an (function template) | |
| C-Dokumentation für sinh
| |