std::atanh(std::complex)
Definido en el archivo de encabezado <complex> | ||
template<class T > complex<T> atanh(const complex<T>& z ); | (desde C++11) | |
Calcula la arco tangente hiperbólica compleja de z
con puntos de ramificación fuera del intervalo [−1; +1] a lo largo del eje real.
Contenido |
[editar]Parámetros
z | - | El valor complejo. |
[editar]Valor de retorno
Si no se producen errores, se devuelve la arco tangente hiperbólica compleja de z
, en el rango de una media franja matemáticamente ilimitada a lo largo del eje real y en el intervalo [−iπ/2; +iπ/2] a lo largo del eje imaginario.
[editar]Manejo de errores y valores especiales
Los errores se informan de acuerdo con math_errhandling.
Si la implementación es compatible con la aritmética de punto flotante IEEE,
- std::atanh(std::conj(z))==std::conj(std::atanh(z)).
- std::atanh(-z)==-std::atanh(z).
- Si
z
es(+0,+0)
, el resultado es(+0,+0)
. - Si
z
es(+0,NaN)
, el resultado es(+0,NaN)
. - Si
z
es(+1,+0)
, el resultado es(+∞,+0)
y se produce FE_DIVBYZERO. - Si
z
es(x,+∞)
(para cualquierx
finita positiva), el resultado es(+0,π/2)
. - Si
z
es(x,NaN)
(para cualquierx
finita distinta de cero), el resultado es(NaN,NaN)
y se puede generar FE_INVALID. - Si
z
es(+∞,y)
(para cualquiery
finita positiva), el resultado es(+0,π/2)
. - Si
z
es(+∞,+∞)
, el resultado es(+0,π/2)
. - Si
z
es(+∞,NaN)
, el resultado es(+0,NaN)
. - Si
z
es(NaN,y)
(para cualquiery
finita), el resultado es(NaN,NaN)
y se puede generar FE_INVALID. - Si
z
es(NaN,+∞)
, el resultado es(±0,π/2)
(el signo de la parte real no está especificado). - Si
z
es(NaN,NaN)
, el resultado es(NaN,NaN)
.
[editar]Notas
Aunque el estándar de C++ denomina esta a función "arco tangente hiperbólica compleja", 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 "arco tangente compleja inversa", y, menos común, "tangente hiperbólica compleja de área".
La tangente hiperbólica inversa es una función multivaluada y requiere un punto de ramificación en el plano complejo. El punto de ramificación se coloca convencionalmente en los segmentos de línea (-∞,-1] y [+1,+∞) del eje real.
La definición matemática del valor principal de la tangente hiperbólica inversa es atanh z =ln(1+z)-ln(1-z) |
2 |
z
, atanh(z) = atan(iz) |
i |
[editar]Ejemplo
#include <iostream>#include <complex> int main(){std::cout<<std::fixed;std::complex<double> z1(2, 0);std::cout<<"atanh"<< z1 <<" = "<<std::atanh(z1)<<'\n'; std::complex<double> z2(2, -0.0);std::cout<<"atanh"<< z2 <<" (el otro lado de la ramificación) = "<<std::atanh(z2)<<'\n'; // for any z, atanh(z) = atanh(iz)/istd::complex<double> z3(1,2);std::complex<double> i(0,1);std::cout<<"atanh"<< z3 <<" = "<<std::atanh(z3)<<'\n'<<"atan"<< z3*i <<"/i = "<<std::atan(z3*i)/i <<'\n';}
Salida:
atanh(2.000000,0.000000) = (0.549306,1.570796) atanh(2.000000,-0.000000) (el otro lado de la ramificación) = (0.549306,-1.570796) atanh(1.000000,2.000000) = (0.173287,1.178097) atan(-2.000000,1.000000)/i = (0.173287,1.178097)
[editar]Véase también
(C++11) | Calcula el área del seno hiperbólico de un número complejo (arsinh(z)). (plantilla de función) |
(C++11) | Calcula el área del coseno hiperbólico de un número complejo (arcosh(z)). (plantilla de función) |
Calcula tangente hiperbólica de un número complejo (tanh(z)). (plantilla de función) | |
(C++11)(C++11)(C++11) | Calcula la tangente hiperbólica inversa (artanh(x)) (función) |
Documentación de C para catanh |