From 361abc1541b9a0f76a018a92b7e9d1e561cc35e8 Mon Sep 17 00:00:00 2001 From: Richard Date: Wed, 19 Apr 2017 18:37:17 -0500 Subject: [PATCH 2/2] Remove extra double-precision rounding and comparisons Replace rint() with rintf() to avoid unnecessary increase in precision, use float constants to avoid doing compare, conversion, and multiplication using doubles. --- newlib/libm/math/wf_pow.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/newlib/libm/math/wf_pow.c b/newlib/libm/math/wf_pow.c index bd9de0ad0..b92e47d8e 100644 --- a/newlib/libm/math/wf_pow.c +++ b/newlib/libm/math/wf_pow.c @@ -125,12 +125,12 @@ exc.arg2 = (double)y; if (_LIB_VERSION == _SVID_) { exc.retval = HUGE; - y *= 0.5; - if(x<0.0&&rint(y)!=y) exc.retval = -HUGE; + y *= 0.5f; + if(x<0.0f&&rintf(y)!=y) exc.retval = -HUGE; } else { exc.retval = HUGE_VAL; - y *= 0.5; - if(x<0.0&&rint(y)!=y) exc.retval = -HUGE_VAL; + y *= 0.5f; + if(x<0.0f&&rintf(y)!=y) exc.retval = -HUGE_VAL; } if (_LIB_VERSION == _POSIX_) errno = ERANGE; -- 2.11.0