Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(195)

Unified Diff: fusl/src/math/tanh.c

Issue 1714623002: [fusl] clang-format fusl (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: headers too Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: fusl/src/math/tanh.c
diff --git a/fusl/src/math/tanh.c b/fusl/src/math/tanh.c
index 20d6dbcf4175c7aad93fe70a53056f0d3e1c4f13..13fe2f6b6ee8a479acdf83e903a1859cf7051aeb 100644
--- a/fusl/src/math/tanh.c
+++ b/fusl/src/math/tanh.c
@@ -4,42 +4,45 @@
* = (exp(2*x) - 1)/(exp(2*x) - 1 + 2)
* = (1 - exp(-2*x))/(exp(-2*x) - 1 + 2)
*/
-double tanh(double x)
-{
- union {double f; uint64_t i;} u = {.f = x};
- uint32_t w;
- int sign;
- double_t t;
+double tanh(double x) {
+ union {
+ double f;
+ uint64_t i;
+ } u = {.f = x};
+ uint32_t w;
+ int sign;
+ double_t t;
- /* x = |x| */
- sign = u.i >> 63;
- u.i &= (uint64_t)-1/2;
- x = u.f;
- w = u.i >> 32;
+ /* x = |x| */
+ sign = u.i >> 63;
+ u.i &= (uint64_t)-1 / 2;
+ x = u.f;
+ w = u.i >> 32;
- if (w > 0x3fe193ea) {
- /* |x| > log(3)/2 ~= 0.5493 or nan */
- if (w > 0x40340000) {
- /* |x| > 20 or nan */
- /* note: this branch avoids raising overflow */
- t = 1 - 0/x;
- } else {
- t = expm1(2*x);
- t = 1 - 2/(t+2);
- }
- } else if (w > 0x3fd058ae) {
- /* |x| > log(5/3)/2 ~= 0.2554 */
- t = expm1(2*x);
- t = t/(t+2);
- } else if (w >= 0x00100000) {
- /* |x| >= 0x1p-1022, up to 2ulp error in [0.1,0.2554] */
- t = expm1(-2*x);
- t = -t/(t+2);
- } else {
- /* |x| is subnormal */
- /* note: the branch above would not raise underflow in [0x1p-1023,0x1p-1022) */
- FORCE_EVAL((float)x);
- t = x;
- }
- return sign ? -t : t;
+ if (w > 0x3fe193ea) {
+ /* |x| > log(3)/2 ~= 0.5493 or nan */
+ if (w > 0x40340000) {
+ /* |x| > 20 or nan */
+ /* note: this branch avoids raising overflow */
+ t = 1 - 0 / x;
+ } else {
+ t = expm1(2 * x);
+ t = 1 - 2 / (t + 2);
+ }
+ } else if (w > 0x3fd058ae) {
+ /* |x| > log(5/3)/2 ~= 0.2554 */
+ t = expm1(2 * x);
+ t = t / (t + 2);
+ } else if (w >= 0x00100000) {
+ /* |x| >= 0x1p-1022, up to 2ulp error in [0.1,0.2554] */
+ t = expm1(-2 * x);
+ t = -t / (t + 2);
+ } else {
+ /* |x| is subnormal */
+ /* note: the branch above would not raise underflow in [0x1p-1023,0x1p-1022)
+ */
+ FORCE_EVAL((float)x);
+ t = x;
+ }
+ return sign ? -t : t;
}

Powered by Google App Engine
This is Rietveld 408576698