Print this page
11210 libm should be cstyle(1ONBLD) clean

*** 20,35 **** */ /* * Copyright 2011 Nexenta Systems, Inc. All rights reserved. */ /* * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - /* INDENT OFF */ /* * void sincospi(double x, double *s, double *c) * *s = sin(pi*x); *c = cos(pi*x); * * Algorithm, 10/17/2002, K.C. Ng --- 20,35 ---- */ /* * Copyright 2011 Nexenta Systems, Inc. All rights reserved. */ + /* * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* * void sincospi(double x, double *s, double *c) * *s = sin(pi*x); *c = cos(pi*x); * * Algorithm, 10/17/2002, K.C. Ng
*** 75,89 **** #include <math.h> #if defined(__SUNPRO_C) #include <sunmath.h> #endif ! static const double ! pi = 3.14159265358979323846, /* 400921FB,54442D18 */ sqrth_h = 0.70710678118654757273731092936941422522068023681640625, sqrth_l = -4.8336466567264565185935844299127932213411660131004e-17; ! /* INDENT ON */ void sincospi(double x, double *s, double *c) { double y, z, t; --- 75,89 ---- #include <math.h> #if defined(__SUNPRO_C) #include <sunmath.h> #endif ! /* BEGIN CSTYLEd */ ! static const double pi = 3.14159265358979323846, /* 400921FB,54442D18 */ sqrth_h = 0.70710678118654757273731092936941422522068023681640625, sqrth_l = -4.8336466567264565185935844299127932213411660131004e-17; ! /* END CSTYLED */ void sincospi(double x, double *s, double *c) { double y, z, t;
*** 91,100 **** --- 91,101 ---- int hx = ((int *)&x)[HIWORD]; unsigned h, lx = ((unsigned *)&x)[LOWORD]; ix = hx & ~0x80000000; n = (ix >> 20) - 0x3ff; + if (n >= 51) { /* |x| >= 2**51 */ if (n >= 1024) { #if defined(FPADD_TRAPS_INCOMPLETE_ON_NAN) *s = *c = ix >= 0x7ff80000 ? x : x - x; /* assumes sparc-like QNaN */
*** 119,137 **** *c = 1.0; } else { *s = 1.0; *c = 0.0; } if ((lx & 2) != 0) { *s = -*s; *c = -*c; } } } ! } else if (n < -2) /* |x| < 0.25 */ *s = __k_sincos(pi * fabs(x), 0.0, c); ! else { /* y = |4x|, z = floor(y), and n = (int)(z mod 8.0) */ if (ix < 0x41C00000) { /* |x| < 2**29 */ y = 4.0 * fabs(x); n = (int)y; /* exact */ z = (double)n; --- 120,139 ---- *c = 1.0; } else { *s = 1.0; *c = 0.0; } + if ((lx & 2) != 0) { *s = -*s; *c = -*c; } } } ! } else if (n < -2) { /* |x| < 0.25 */ *s = __k_sincos(pi * fabs(x), 0.0, c); ! } else { /* y = |4x|, z = floor(y), and n = (int)(z mod 8.0) */ if (ix < 0x41C00000) { /* |x| < 2**29 */ y = 4.0 * fabs(x); n = (int)y; /* exact */ z = (double)n;
*** 145,154 **** --- 147,157 ---- ((unsigned *)&z)[LOWORD] = h; ((int *)&z)[HIWORD] = ix; k = h == lx; t = y - z; } + if (k) { /* x = N/4 */ if ((n & 1) != 0) { *s = *c = sqrth_h + sqrth_l; } else { if ((n & 2) == 0) {
*** 157,181 **** --- 160,190 ---- } else { *s = 1.0; *c = 0.0; } } + if ((n & 4) != 0) *s = -*s; + if (((n + 1) & 4) != 0) *c = -*c; } else { if ((n & 1) != 0) t = 0.25 - t; + if (((n + (n & 1)) & 2) == 0) *s = __k_sincos(pi * t, 0.0, c); else *c = __k_sincos(pi * t, 0.0, s); + if ((n & 4) != 0) *s = -*s; + if (((n + 2) & 4) != 0) *c = -*c; } } + if (hx < 0) *s = -*s; }