summaryrefslogtreecommitdiff
path: root/lib/libm/math.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libm/math.c')
-rw-r--r--lib/libm/math.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/libm/math.c b/lib/libm/math.c
index 984636627..5e00740d1 100644
--- a/lib/libm/math.c
+++ b/lib/libm/math.c
@@ -61,7 +61,12 @@ float log2f(float x) { return logf(x) / (float)_M_LN2; }
static const float _M_LN10 = 2.30258509299404; // 0x40135d8e
float log10f(float x) { return logf(x) / (float)_M_LN10; }
-float tanhf(float x) { return sinhf(x) / coshf(x); }
+float tanhf(float x) {
+ if (isinf(x)) {
+ return copysignf(1, x);
+ }
+ return sinhf(x) / coshf(x);
+}
/*****************************************************************************/
/*****************************************************************************/