ref: 5c6a03f4f417d00a6d169cfc9c7e6efae17f4e5e
dir: /sys/src/libc/port/tanh.c/
#include <u.h>
#include <libc.h>
/*
tanh(arg) computes the hyperbolic tangent of its floating
point argument.
sinh and cosh are called except for large arguments, which
would cause overflow improperly.
*/
double
tanh(double arg)
{
if(arg < 0) {
arg = -arg;
if(arg > 21)
return -1;
return -sinh(arg)/cosh(arg);
}
if(arg > 21)
return 1;
return sinh(arg)/cosh(arg);
}