ref: 57f8b3d1acf273a88568c49d0b83b6863485b9e0
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); }