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 |
|
Floating-point value of the input data |
Input |
x |
|
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
// 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
**/