Namespaces
Variants

ctanhf, ctanh, ctanhl

From cppreference.net
Definido en el encabezado <complex.h>
float complex ctanhf ( float complex z ) ;
(1) (desde C99)
double complex ctanh ( double complex z ) ;
(2) (desde C99)
long double complex ctanhl ( long double complex z ) ;
(3) (desde C99)
Definido en el encabezado <tgmath.h>
#define tanh( z )
(4) (desde C99)
1-3) Calcula la tangente hiperbólica compleja de z .
4) Macro genérico de tipos: Si z tiene tipo long double complex , ctanhl es llamado. Si z tiene tipo double complex , ctanh es llamado. Si z tiene tipo float complex , ctanhf es llamado. Si z es real o entero, entonces el macro invoca la función real correspondiente ( tanhf , tanh , tanhl ). Si z es imaginario, entonces el macro invoca la versión real correspondiente de la función tan , implementando la fórmula tanh(iy) = i tan(y) , y el tipo de retorno es imaginario.

Contenidos

Parámetros

z - argumento 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 soporta aritmética de punto flotante IEEE,

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

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 común de punto flotante puede representar π/2 exactamente, por lo tanto no existe ningún valor del argumento para el cual ocurra un error de polo.

Ejemplo

#include <stdio.h>
#include <math.h>
#include <complex.h>
int main(void)
{
    double complex z = ctanh(1);  // se comporta como tanh real a lo largo de la línea real
    printf("tanh(1+0i) = %f%+fi (tanh(1)=%f)\n", creal(z), cimag(z), tanh(1));
    double complex z2 = ctanh(I); // se comporta como tangente a lo largo de la línea imaginaria
    printf("tanh(0+1i) = %f%+fi ( tan(1)=%f)\n", creal(z2), cimag(z2), tan(1));
}

Salida:

tanh(1+0i) = 0.761594+0.000000i (tanh(1)=0.761594)
tanh(0+1i) = 0.000000+1.557408i ( tan(1)=1.557408)

Referencias

  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.3.6.6 Las funciones ctanh (p: 194)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: 373-375)
  • G.6.2.6 Las funciones ctanh (p: 542)
  • G.7 Matemáticas genéricas de tipos <tgmath.h> (p: 545)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.3.6.6 Las funciones ctanh (p: 176)
  • 7.22 Matemáticas genéricas de tipos <tgmath.h> (p: 335-337)
  • G.6.2.6 Las funciones ctanh (p: 477)
  • G.7 Matemáticas genéricas de tipos <tgmath.h> (p: 480)

Véase también

(C99) (C99) (C99)
calcula el seno hiperbólico complejo
(función)
(C99) (C99) (C99)
calcula el coseno hiperbólico complejo
(función)
(C99) (C99) (C99)
calcula la tangente hiperbólica arco compleja
(función)
(C99) (C99)
calcula la tangente hiperbólica ( tanh(x) )
(función)