111
|
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;
|
|
14 double 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 }
|