Print this page
11210 libm should be cstyle(1ONBLD) clean
@@ -20,21 +20,24 @@
*/
/*
* Copyright 2011 Nexenta Systems, Inc. All rights reserved.
*/
+
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#pragma weak __sinhl = sinhl
#include "libm.h"
#include "longdouble.h"
-/* SINH(X)
+/* BEGIN CSTYLED */
+/*
+ * SINH(X)
* RETURN THE HYPERBOLIC SINE OF X
*
* Method :
* 1. reduce x to non-negative by SINH(-x) = - SINH(x).
* 2.
@@ -54,10 +57,11 @@
* Special cases:
* SINH(x) is x if x is +INF, -INF, or NaN.
* only SINH(0)=0 is exact for finite argument.
*
*/
+/* END CSTYLED */
static const long double C[] = {
0.5L,
1.0L,
1.135652340629414394879149e+04L,
@@ -74,15 +78,18 @@
{
long double r, t;
if (!finitel(x))
return (x + x); /* x is INF or NaN */
+
r = fabsl(x);
+
if (r < lnovft) {
t = expm1l(r);
r = copysignl((t + t / (one + t)) * half, x);
} else {
r = copysignl(expl((r - lnovft) - lnovlo), x);
r = scalbnl(r, 16383);
}
+
return (r);
}