Namespaces
Variants

std:: atanh, std:: atanhf, std:: atanhl

From cppreference.net
Common mathematical functions
Nearest integer floating point operations
(C++11)
(C++11)
(C++11) (C++11) (C++11)
Floating point manipulation functions
(C++11) (C++11)
(C++11)
(C++11)
Classification and comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Types
(C++11)
(C++11)
(C++11)
Macro constants
Definiert in Header <cmath>
(1)
float atanh ( float num ) ;

double atanh ( double num ) ;

long double atanh ( long double num ) ;
(bis C++23)
/*floating-point-type*/
atanh ( /*floating-point-type*/ num ) ;
(seit C++23)
(constexpr seit C++26)
float atanhf ( float num ) ;
(2) (seit C++11)
(constexpr seit C++26)
long double atanhl ( long double num ) ;
(3) (seit C++11)
(constexpr seit C++26)
SIMD-Überladung (seit C++26)
Definiert in Header <simd>
template < /*math-floating-point*/ V >

constexpr /*deduced-simd-t*/ < V >

atanh ( const V & v_num ) ;
(S) (seit C++26)
Definiert in Header <cmath>
template < class Integer >
double atanh ( Integer num ) ;
(A) (constexpr seit C++26)
1-3) Berechnet den inversen hyperbolischen Tangens von num . Die Bibliothek bietet Überladungen von std::atanh für alle cv-unqualifizierten Gleitkommatypen als Typ des Parameters an. (since C++23)
S) Die SIMD-Überladung führt eine elementweise std::atanh auf v_num aus.
(Siehe math-floating-point und deduced-simd-t für deren Definitionen.)
(seit C++26)
A) Zusätzliche Überladungen werden für alle Ganzzahltypen bereitgestellt, die als double behandelt werden.
(seit C++11)

Inhaltsverzeichnis

Parameter

num - Gleitkomma- oder Ganzzahlwert

Rückgabewert

Wenn keine Fehler auftreten, wird der inverse hyperbolische Tangens von num ( tanh -1
(num)
, oder artanh(num) ), zurückgegeben.

Wenn ein Domänenfehler auftritt, wird ein implementierungsdefinierter Wert zurückgegeben (NaN, sofern unterstützt).

Wenn ein Polfehler auftritt, ±HUGE_VAL , ±HUGE_VALF , oder ±HUGE_VALL wird zurückgegeben (mit korrektem Vorzeichen).

Wenn ein Bereichsfehler aufgrund von Unterlauf auftritt, wird das korrekte Ergebnis (nach Rundung) zurückgegeben.

Fehlerbehandlung

Fehler werden gemeldet, wie in math_errhandling spezifiziert.

Wenn das Argument nicht im Intervall [ - 1 , + 1 ] liegt, tritt ein Bereichsfehler auf.

Wenn das Argument ±1 ist, tritt ein Polfehler auf.

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

  • wenn das Argument ±0 ist, wird es unverändert zurückgegeben.
  • wenn das Argument ±1 ist, wird ±∞ zurückgegeben und FE_DIVBYZERO wird ausgelöst.
  • wenn |num|>1 , wird NaN zurückgegeben und FE_INVALID wird ausgelöst.
  • wenn das Argument NaN ist, wird NaN zurückgegeben.

Hinweise

Obwohl der C-Standard (auf den C++ für diese Funktion verweist) diese Funktion "Areakosinus Hyperbolicus" nennt, sind die Umkehrfunktionen der hyperbolischen Funktionen die Areafunktionen. Ihr Argument ist die Fläche eines hyperbolischen Sektors, kein Bogen. Der korrekte Name ist "inverse hyperbolische Tangens" (von POSIX verwendet) oder "Areatangens Hyperbolicus".

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

Die zusätzlichen Überladungen müssen nicht exakt wie (A) bereitgestellt werden. Sie müssen lediglich sicherstellen, dass für ihr Argument num vom Ganzzahltyp std :: atanh ( num ) die gleiche Wirkung hat wie std :: atanh ( static_cast < double > ( num ) ) .

Beispiel

#include <cerrno>
#include <cfenv>
#include <cfloat>
#include <cmath>
#include <cstring>
#include <iostream>
// #pragma STDC FENV_ACCESS ON
int main()
{
    std::cout << "atanh(0) = " << std::atanh(0) << '\n'
              << "atanh(-0) = " << std::atanh(-0.0) << '\n'
              << "atanh(0.9) = " << std::atanh(0.9) << '\n';
    // Fehlerbehandlung
    errno = 0;
    std::feclearexcept(FE_ALL_EXCEPT);
    std::cout << "atanh(-1) = " << std::atanh(-1) << '\n';
    if (errno == ERANGE)
        std::cout << "    errno == ERANGE: " << std::strerror(errno) << '\n';
    if (std::fetestexcept(FE_DIVBYZERO))
        std::cout << "    FE_DIVBYZERO ausgelöst\n";
}

Mögliche Ausgabe:

atanh(0) = 0
atanh(-0) = -0
atanh(0.9) = 1.47222
atanh(-1) = -inf
    errno == ERANGE: Numerical result out of range
    FE_DIVBYZERO ausgelöst

Siehe auch

(C++11) (C++11) (C++11)
berechnet den Areasinus Hyperbolicus ( arsinh(x) )
(Funktion)
(C++11) (C++11) (C++11)
berechnet den Areakosinus Hyperbolicus ( arcosh(x) )
(Funktion)
(C++11) (C++11)
berechnet den Tangens Hyperbolicus ( tanh(x) )
(Funktion)
berechnet den Areatangens Hyperbolicus einer komplexen Zahl ( artanh(z) )
(Funktionsschablone)

Externe Links

Weisstein, Eric W. "Inverse Hyperbolic Tangent." Von MathWorld — Eine Wolfram Web Resource.