Namespaces
Variants

std:: tanh (std::complex)

From es.cppreference.net
Definido en el encabezado <complex>
template < class T >
complex < T > tanh ( const complex < T > & z ) ;
(desde C++11)

Calcula la tangente hiperbólica compleja de un valor complejo z .

Contenidos

Parámetros

z - valor complejo

Valor de retorno

Si no ocurren errores, se devuelve la tangente hiperbólica compleja de z .

Manejo de errores y valores especiales

Los errores se reportan de manera consistente con math_errhandling .

Si la implementación admite aritmética de punto flotante IEEE,

  • std:: tanh ( std:: conj ( z ) ) == std:: conj ( std:: tanh ( z ) ) .
  • std:: tanh ( - z ) == - std:: tanh ( z ) .
  • Si z es (+0,+0) , el resultado es (+0,+0) .
  • Si z es (x,+∞) (para cualquier x finita [1] ), el resultado es (NaN,NaN) y se genera FE_INVALID .
  • Si z es (x,NaN) (para cualquier x finita [2] ), el resultado es (NaN,NaN) y puede generarse FE_INVALID .
  • Si z es (+∞,y) (para cualquier y positiva finita), el resultado es (1,+0) .
  • Si z es (+∞,+∞) , el resultado es (1,±0) (el signo de la parte imaginaria no está especificado).
  • Si z es (+∞,NaN) , el resultado es (1,±0) (el signo de la parte imaginaria no está especificado).
  • Si z es (NaN,+0) , el resultado es (NaN,+0) .
  • Si z es (NaN,y) (para cualquier y distinta de cero), el resultado es (NaN,NaN) y puede generarse FE_INVALID .
  • Si z es (NaN,NaN) , el resultado es (NaN,NaN) .
  1. ↑ según C11 DR471 , esto solo se cumple para x distinto de cero. Si z es (0,∞) , el resultado debe ser (0,NaN) .
  2. ↑ según C11 DR471 , esto solo se cumple para x distinto de cero. Si z es (0,NaN) , el resultado debe ser (0,NaN) .

Notas

Mathematical definition of hyperbolic tangent is tanh z =
e z
-e -z
e z
+e -z
.

La tangente hiperbólica es una función analítica en el plano complejo y no tiene cortes de rama. Es periódica con respecto al componente imaginario, con período πi, y tiene polos de primer orden a lo largo de la línea imaginaria, en coordenadas (0, π(1/2 + n)) . Sin embargo, ninguna representación de punto flotante común puede representar π/2 exactamente, por lo tanto no existe ningún valor del argumento para el cual ocurra un error de polo.

Ejemplo

#include <cmath>
#include <complex>
#include <iostream>
int main()
{
    std::cout << std::fixed;
    std::complex<double> z(1.0, 0.0); // se comporta como tanh real a lo largo de la línea real
    std::cout << "tanh" << z << " = " << std::tanh(z)
              << " (tanh(1) = " << std::tanh(1) << ")\n";
    std::complex<double> z2(0.0, 1.0); // se comporta como tangente a lo largo de la línea imaginaria
    std::cout << "tanh" << z2 << " = " << std::tanh(z2)
              << " ( tan(1) = " << std::tan(1) << ")\n";
}

Salida:

tanh(1.000000,0.000000) = (0.761594,0.000000) (tanh(1) = 0.761594)
tanh(0.000000,1.000000) = (0.000000,1.557408) ( tan(1) = 1.557408)

Véase también

calcula el seno hiperbólico de un número complejo ( sinh(z) )
(plantilla de función)
calcula el coseno hiperbólico de un número complejo ( cosh(z) )
(plantilla de función)
calcula la tangente hiperbólica de área de un número complejo ( artanh(z) )
(plantilla de función)
(C++11) (C++11)
calcula la tangente hiperbólica ( tanh(x) )
(función)
aplica la función std::tanh a cada elemento del valarray
(plantilla de función)