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
Definido en el encabezado <cmath>
(1)
float atanh ( float num ) ;

double atanh ( double num ) ;

long double atanh ( long double num ) ;
(hasta C++23)
/*floating-point-type*/
atanh ( /*floating-point-type*/ num ) ;
(desde C++23)
(constexpr desde C++26)
float atanhf ( float num ) ;
(2) (desde C++11)
(constexpr desde C++26)
long double atanhl ( long double num ) ;
(3) (desde C++11)
(constexpr desde C++26)
Sobrecarga SIMD (desde C++26)
Definido en el encabezado <simd>
template < /*math-floating-point*/ V >

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

atanh ( const V & v_num ) ;
(S) (desde C++26)
Definido en el encabezado <cmath>
template < class Integer >
double atanh ( Integer num ) ;
(A) (constexpr desde C++26)
1-3) Calcula la tangente hiperbólica inversa de num . La biblioteca proporciona sobrecargas de std::atanh para todos los tipos de punto flotante sin calificación cv como el tipo del parámetro. (desde C++23)
S) La sobrecarga SIMD realiza un std::atanh elemento por elemento en v_num .
(Ver math-floating-point y deduced-simd-t para sus definiciones.)
(desde C++26)
A) Se proporcionan sobrecargas adicionales para todos los tipos enteros, los cuales son tratados como double .
(since C++11)

Contenidos

Parámetros

num - valor de punto flotante o entero

Valor de retorno

Si no ocurren errores, se devuelve la tangente hiperbólica inversa de num ( tanh -1
(num)
, o artanh(num) ).

Si ocurre un error de dominio, se devuelve un valor definido por la implementación (NaN donde esté soportado).

Si ocurre un error de polo, ±HUGE_VAL , ±HUGE_VALF , o ±HUGE_VALL es devuelto (con el signo correcto).

Si ocurre un error de rango debido a desbordamiento inferior, se devuelve el resultado correcto (después del redondeo).

Manejo de errores

Los errores se reportan como se especifica en math_errhandling .

Si el argumento no está en el intervalo [ - 1 , + 1 ] , ocurre un error de rango.

Si el argumento es ±1, se produce un error de polo.

Si la implementación soporta aritmética de punto flotante IEEE (IEC 60559),

  • si el argumento es ±0, se devuelve sin modificación.
  • si el argumento es ±1, se devuelve ±∞ y FE_DIVBYZERO se activa.
  • si |num|>1 , se devuelve NaN y FE_INVALID se activa.
  • si el argumento es NaN, se devuelve NaN.

Notas

Aunque el estándar C (al que C++ hace referencia para esta función) denomina a esta función "tangente hiperbólica arco", las funciones inversas de las funciones hiperbólicas son las funciones de área. Su argumento es el área de un sector hiperbólico, no un arco. El nombre correcto es "tangente hiperbólica inversa" (utilizado por POSIX) o "tangente hiperbólica de área".

POSIX especifica que en caso de subdesbordamiento, num se devuelve sin modificar, y si eso no es compatible, se devuelve un valor definido por la implementación no mayor que DBL_MIN , FLT_MIN , y LDBL_MIN .

Las sobrecargas adicionales no requieren ser proporcionadas exactamente como (A) . Solo necesitan ser suficientes para garantizar que para su argumento num de tipo entero, std :: atanh ( num ) tenga el mismo efecto que std :: atanh ( static_cast < double > ( num ) ) .

Ejemplo

#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';
    // error handling
    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 raised\n";
}

Salida posible:

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

Véase también

(C++11) (C++11) (C++11)
calcula el seno hiperbólico inverso ( arsinh(x) )
(función)
(C++11) (C++11) (C++11)
calcula el coseno hiperbólico inverso ( arcosh(x) )
(función)
(C++11) (C++11)
calcula la tangente hiperbólica ( tanh(x) )
(función)
calcula la tangente hiperbólica de área de un número complejo ( artanh(z) )
(plantilla de función)

Enlaces externos

Weisstein, Eric W. "Tangente Hiperbólica Inversa." De MathWorld — Un recurso web de Wolfram.