From 32efd690bd9ab8cb55d185bf5b0a1a3c0e539120 Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Tue, 30 Aug 2016 12:51:39 +0530 Subject: [PATCH] Consolidate reduce_and_compute code This patch reshuffles the reduce_and_compute code so that the structure matches other code structures of the same type elsewhere in s_sin.c and s_sincos.c. This is the beginning of an attempt to consolidate and reduce code duplication in functions in s_sin.c to make it easier to read and possibly also easier for the compiler to optimize. * sysdeps/ieee754/dbl-64/s_sin.c (reduce_and_compute): Consolidate switch cases 0 and 2. --- ChangeLog | 5 +++++ sysdeps/ieee754/dbl-64/s_sin.c | 31 ++++++++++++++----------------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 73b2ed0e5e..dec058d7a6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-08-30 Siddhesh Poyarekar + + * sysdeps/ieee754/dbl-64/s_sin.c (reduce_and_compute): + Consolidate switch cases 0 and 2. + 2016-08-29 Paul E. Murphy * math/Makefile (libm-gen-calls): Add cpow, clog, clog10, cexp, cproj. diff --git a/sysdeps/ieee754/dbl-64/s_sin.c b/sysdeps/ieee754/dbl-64/s_sin.c index 7c9a07990f..e1ee7a980b 100644 --- a/sysdeps/ieee754/dbl-64/s_sin.c +++ b/sysdeps/ieee754/dbl-64/s_sin.c @@ -249,23 +249,20 @@ reduce_and_compute (double x, unsigned int k) k = (n + k) % 4; switch (k) { - case 0: - if (a * a < 0.01588) - retval = bsloww (a, da, x, n); - else - retval = bsloww1 (a, da, x, n); - break; - case 2: - if (a * a < 0.01588) - retval = bsloww (-a, -da, x, n); - else - retval = bsloww1 (-a, -da, x, n); - break; - - case 1: - case 3: - retval = bsloww2 (a, da, x, n); - break; + case 2: + a = -a; + da = -da; + case 0: + if (a * a < 0.01588) + retval = bsloww (a, da, x, n); + else + retval = bsloww1 (a, da, x, n); + break; + + case 1: + case 3: + retval = bsloww2 (a, da, x, n); + break; } return retval; } -- 2.43.5