1 typedef signed int __int32_t; 2 typedef unsigned int __uint32_t; 3 typedef union 4 { 5 double value; 6 struct 7 { 8 __uint32_t msw; 9 __uint32_t lsw; 10 } parts; 11 } ieee_double_shape_type; 12 two52= 4.50359962737049600000e+15, 13 w6 = -1.63092934096575273989e-03; sin_pi(double x)14double sin_pi(double x) 15 { 16 double y,z; 17 __int32_t n,ix; 18 ieee_double_shape_type gh_u; 19 gh_u.value = (x); 20 (ix) = gh_u.parts.msw; 21 if(ix<0x43300000) 22 z = y+two52; 23 ieee_double_shape_type gl_u; 24 gl_u.value = (z); 25 (n) = gl_u.parts.lsw; 26 n &= 1; 27 switch (n) 28 { 29 case 0: 30 __kernel_sin(); 31 } 32 } 33