diff options
Diffstat (limited to 'lib/libm_dbl/tanh.c')
-rw-r--r-- | lib/libm_dbl/tanh.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/libm_dbl/tanh.c b/lib/libm_dbl/tanh.c index 89743ba90..6bdb7c399 100644 --- a/lib/libm_dbl/tanh.c +++ b/lib/libm_dbl/tanh.c @@ -1,5 +1,12 @@ #include <math.h> double tanh(double x) { - return sinh(x) / cosh(x); + int sign = 0; + if (x < 0) { + sign = 1; + x = -x; + } + x = expm1(-2 * x); + x = x / (x + 2); + return sign ? x : -x; } |