我要评分
获取效率
正确性
完整性
易理解

ctanh

Compute the hyperbolic tangent of a complex number.

Interface Definition

C interface:

float complex ctanhf(float complex x);

double complex ctanh(double complex x);

Parameters

Parameter

Type

Description

Input/Output

x

  • For ctanhf, x is of complex single-precision floating-point type.

Floating-point value of the input data

Input

x

  • For ctanh, x is of complex double-precision floating-point type.

Floating-point value of the input data.

Input

Return Value

  • The hyperbolic tangent y of x is returned.
  • The special values are listed in the following table.

    Real Part of the Input (x.real)

    Imaginary Part of the Input (x.imag)

    Real Part of the Output (y.real)

    Imaginary Part of the Output (y.imag)

    0.0

    0.0

    0.0

    0.0

    0.0

    -0.0

    0.0

    -0.0

    0.0

    inf

    0.0

    NaN

    0.0

    -inf

    0.0

    NaN

    0.0

    NaN

    0.0

    NaN

    0.0

    –NaN

    0.0

    NaN

    -0.0

    0.0

    -0.0

    0.0

    -0.0

    -0.0

    -0.0

    -0.0

    -0.0

    inf

    -0.0

    NaN

    -0.0

    -inf

    -0.0

    NaN

    -0.0

    NaN

    -0.0

    NaN

    -0.0

    –NaN

    -0.0

    NaN

    inf

    0.0

    1.0

    0.0

    inf

    -0.0

    1.0

    -0.0

    inf

    inf

    1.0

    0.0

    inf

    -inf

    1.0

    -0.0

    inf

    NaN

    1.0

    0.0

    inf

    –NaN

    1.0

    -0.0

    -inf

    0.0

    -1.0

    0.0

    -inf

    -0.0

    -1.0

    -0.0

    -inf

    inf

    -1.0

    0.0

    -inf

    -inf

    -1.0

    -0.0

    -inf

    NaN

    -1.0

    0.0

    -inf

    –NaN

    -1.0

    -0.0

    NaN

    0.0

    NaN

    0.0

    NaN

    -0.0

    NaN

    -0.0

    NaN

    inf

    NaN

    NaN

    NaN

    -inf

    NaN

    NaN

    NaN

    NaN

    NaN

    NaN

    NaN

    –NaN

    NaN

    NaN

    –NaN

    0.0

    –NaN

    0.0

    –NaN

    -0.0

    –NaN

    -0.0

    –NaN

    inf

    NaN

    NaN

    –NaN

    -inf

    NaN

    NaN

    –NaN

    NaN

    NaN

    NaN

    –NaN

    –NaN

    NaN

    NaN

Dependency

C: "kc.h"

Example

C interface:
    // typical usage
    double x1 = INFINITY, y1 = INFINITY;
    double x2 = 2.0, y2 = 3.0;
    double x3 = -2.5, y3 = -3.4;
    double x4 = NAN, y4 = NAN;
    double x5 = 0, y5 = 0;
    double complex z1 = ctanh(__builtin_complex(x1, y1));
    double complex z2 = ctanh(__builtin_complex(x2, y2));
    double complex z3 = ctanh(__builtin_complex(x3, y3));
    double complex z4 = ctanh(__builtin_complex(x4, y4));
    double complex z5 = ctanh(__builtin_complex(x5, y5));
    // print result
    printf("/*\n");
    printf(" * ctanh(%.2f + %.2f*I) = %.6f + %.6f*I\n", x1, y1, __real__(z1), __imag__(z1));
    printf(" * ctanh(%.2f + %.2f*I) = %.6f + %.6f*I\n", x2, y2, __real__(z2), __imag__(z2));
    printf(" * ctanh(%.2f + %.2f*I) = %.6f + %.6f*I\n", x3, y3, __real__(z3), __imag__(z3));
    printf(" * ctanh(%.2f + %.2f*I) = %.6f + %.6f*I\n", x4, y4, __real__(z4), __imag__(z4));
    printf(" * ctanh(%.2f + %.2f*I) = %.6f + %.6f*I\n", x5, y5, __real__(z5), __imag__(z5));
    printf(" **/\n");
 
   /*
    * ctanh(inf + inf*I) = 1.000000 + 0.000000*I
    * ctanh(2.00 + 3.00*I) = 0.965386 + -0.009884*I
    * ctanh(-2.50 + -3.40*I) = -0.988331 + -0.006581*I
    * ctanh(nan + nan*I) = nan + nan*I
    * ctanh(0.00 + 0.00*I) = 0.000000 + 0.000000*I
    **/