atanh, atanhf, atanhl
Header: <math.h>
1-3) Computes the inverse hyperbolic tangent of arg.
# Declarations
float atanhf( float arg );
(since C99)
double atanh( double arg );
(since C99)
long double atanhl( long double arg );
(since C99)
#define atanh( arg )
(since C99)
# Parameters
arg: floating_point value representing the area of a hyperbolic sector
# Return value
If no errors occur, the inverse hyperbolic tangent of arg (tanh-1(arg), or artanh(arg)), is returned.
# Notes
Although the C standard names this function “arc hyperbolic tangent”, the inverse functions of the hyperbolic functions are the area functions. Their argument is the area of a hyperbolic sector, not an arc. The correct name is “inverse hyperbolic tangent” (used by POSIX) or “area hyperbolic tangent”.
POSIX specifies that in case of underflow, arg is returned unmodified, and if that is not supported, an implementation-defined value no greater than DBL_MIN, FLT_MIN, and LDBL_MIN is returned.
# Example
#include <errno.h>
#include <fenv.h>
#include <float.h>
#include <math.h>
#include <stdio.h>
// #pragma STDC FENV_ACCESS ON
int main(void)
{
printf("atanh(0) = %f\natanh(-0) = %f\n", atanh(0), atanh(-0.0));
printf("atanh(0.9) = %f\n", atanh(0.9));
// error handling
errno = 0; feclearexcept(FE_ALL_EXCEPT);
printf("atanh(-1) = %f\n", atanh(-1));
if (errno == ERANGE)
perror(" errno == ERANGE");
if (fetestexcept(FE_DIVBYZERO))
puts(" FE_DIVBYZERO raised");
}