about summary refs log tree commit diff
path: root/src/math/atanf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/math/atanf.c')
-rw-r--r--src/math/atanf.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/math/atanf.c b/src/math/atanf.c
index ac8bfd06..178341b6 100644
--- a/src/math/atanf.c
+++ b/src/math/atanf.c
@@ -55,8 +55,9 @@ float atanf(float x)
 	}
 	if (ix < 0x3ee00000) {   /* |x| < 0.4375 */
 		if (ix < 0x39800000) {  /* |x| < 2**-12 */
-			/* raise inexact if x!=0 */
-			FORCE_EVAL(x + 0x1p120f);
+			if (ix < 0x00800000)
+				/* raise underflow for subnormal x */
+				FORCE_EVAL(x*x);
 			return x;
 		}
 		id = -1;