Print this page
11210 libm should be cstyle(1ONBLD) clean
@@ -20,39 +20,42 @@
*/
/*
* Copyright 2011 Nexenta Systems, Inc. All rights reserved.
*/
+
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#pragma weak __cprojf = cprojf
#include "libm.h"
#include "complex_wrapper.h"
-/* INDENT OFF */
static const float zero = 0.0F;
-/* INDENT ON */
+
fcomplex
-cprojf(fcomplex z) {
+cprojf(fcomplex z)
+{
float x, y;
int ix, iy, hx, hy;
x = F_RE(z);
y = F_IM(z);
hx = THE_WORD(x);
hy = THE_WORD(y);
ix = hx & 0x7fffffff;
iy = hy & 0x7fffffff;
+
if (iy == 0x7f800000) {
F_RE(z) = fabsf(y);
F_IM(z) = hy >= 0 ? zero : -zero;
} else if (ix == 0x7f800000) {
F_RE(z) = fabsf(x);
F_IM(z) = hy >= 0 ? zero : -zero;
}
+
return (z);
}