函数
<cmath> <ctgmath>

atanh

     double atanh  (double x);      float atanhf (float x);long double atanhl (long double x);
     double atanh (double x);      float atanh (float x);long double atanh (long double x);     double asinh (T x);           // additional overloads for integral types
计算反双曲正切
返回 x 的反双曲正切。

反双曲正切双曲正切的反函数。

头文件 <tgmath.h> 提供了此函数的类型通用宏版本。
此头文件 (<cmath>) 中为整型提供了额外的重载:这些重载在计算前有效地将 x 转换为 double(定义为 T 是任何整型)。

该函数在 <complex> 中也有重载(请参阅 complex atanh)。

参数

x
计算其反双曲正切的值,区间为 [-1,+1]
如果参数超出此区间,则会发生定义域错误
对于 -1+1 的值,可能会发生极点错误

返回值

x 的反双曲正切。

如果发生定义域错误
- 并且 math_errhandling 设置了 MATH_ERRNO:全局变量 errno 会被设置为 EDOM
- 并且 math_errhandling 设置了 MATH_ERREXCEPT:将引发 FE_INVALID

如果发生极点错误
- 并且 math_errhandling 设置了 MATH_ERRNO:全局变量 errno 被设置为 ERANGE
- 并且 math_errhandling 设置了 MATH_ERREXCEPT:将引发 FE_DIVBYZERO

示例

1
2
3
4
5
6
7
8
9
10
11
12
/* atanh example */
#include <stdio.h>      /* printf */
#include <math.h>       /* tanh, atanh */

int main ()
{
  double param, result;
  param = tanh(1);
  result = atanh(param) ;
  printf ("The area hyperbolic tangent of %f is %f.\n", param, result);
  return 0;
}

输出

The area hyperbolic tangent of 0.761594 is 1.000000.


另见