Print this page
11210 libm should be cstyle(1ONBLD) clean
*** 20,29 ****
--- 20,30 ----
*/
/*
* Copyright 2011 Nexenta Systems, Inc. All rights reserved.
*/
+
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
*** 33,58 ****
#include "complex_wrapper.h"
extern int isinfl(long double);
extern int iszerol(long double);
- /* INDENT OFF */
static const long double zero = 0.0L;
! /* INDENT ON */
ldcomplex
! cexpl(ldcomplex z) {
ldcomplex ans;
long double x, y, t, c, s;
int n, ix, iy, hx, hy;
x = LD_RE(z);
y = LD_IM(z);
hx = HI_XWORD(x);
hy = HI_XWORD(y);
ix = hx & 0x7fffffff;
iy = hy & 0x7fffffff;
if (iszerol(y)) { /* y = 0 */
LD_RE(ans) = expl(x);
LD_IM(ans) = y;
} else if (isinfl(x)) { /* x is +-inf */
if (hx < 0) {
--- 34,60 ----
#include "complex_wrapper.h"
extern int isinfl(long double);
extern int iszerol(long double);
static const long double zero = 0.0L;
!
ldcomplex
! cexpl(ldcomplex z)
! {
ldcomplex ans;
long double x, y, t, c, s;
int n, ix, iy, hx, hy;
x = LD_RE(z);
y = LD_IM(z);
hx = HI_XWORD(x);
hy = HI_XWORD(y);
ix = hx & 0x7fffffff;
iy = hy & 0x7fffffff;
+
if (iszerol(y)) { /* y = 0 */
LD_RE(ans) = expl(x);
LD_IM(ans) = y;
} else if (isinfl(x)) { /* x is +-inf */
if (hx < 0) {
*** 74,90 ****
--- 76,94 ----
LD_IM(ans) = x * s;
}
}
} else {
(void) sincosl(y, &s, &c);
+
if (ix >= 0x400C62E4) { /* |x| > 11356.52... ~ log(2**16384) */
t = __k_cexpl(x, &n);
LD_RE(ans) = scalbnl(t * c, n);
LD_IM(ans) = scalbnl(t * s, n);
} else {
t = expl(x);
LD_RE(ans) = t * c;
LD_IM(ans) = t * s;
}
}
+
return (ans);
}