diff options
author | Siddhesh Poyarekar <siddhesh@sourceware.org> | 2016-08-30 12:51:39 +0530 |
---|---|---|
committer | Siddhesh Poyarekar <siddhesh@sourceware.org> | 2016-08-30 12:51:39 +0530 |
commit | 32efd690bd9ab8cb55d185bf5b0a1a3c0e539120 (patch) | |
tree | 8603756e3dd981d57cdd6ac5fe42c80005f77c10 | |
parent | feb62ddacb7b1d772d7383de0228a3977f07fc1e (diff) | |
download | glibc-32efd690bd9ab8cb55d185bf5b0a1a3c0e539120.tar.gz glibc-32efd690bd9ab8cb55d185bf5b0a1a3c0e539120.tar.xz glibc-32efd690bd9ab8cb55d185bf5b0a1a3c0e539120.zip |
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.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | 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 <siddhesh@sourceware.org> + + * sysdeps/ieee754/dbl-64/s_sin.c (reduce_and_compute): + Consolidate switch cases 0 and 2. + 2016-08-29 Paul E. Murphy <murphyp@linux.vnet.ibm.com> * 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; } |