]>
Commit | Line | Data |
---|---|---|
e4d82761 UD |
1 | |
2 | /* | |
3 | * IBM Accurate Mathematical Library | |
4 | * Copyright (c) International Business Machines Corp., 2001 | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU Lesser General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
9 | * (at your option) any later version. | |
10 | * | |
11 | * This program is distributed in the hope that it will be useful, | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU Lesser General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
19 | */ | |
20 | /************************************************************************/ | |
21 | /* MODULE_NAME: atnat2.h */ | |
22 | /* */ | |
23 | /* */ | |
24 | /* common data and variables definition for BIG or LITTLE ENDIAN */ | |
25 | /************************************************************************/ | |
26 | ||
27 | ||
28 | ||
29 | #ifndef ATNAT2_H | |
30 | #define ATNAT2_H | |
31 | ||
32 | ||
33 | #define MM 5 | |
34 | #ifdef BIG_ENDI | |
35 | ||
36 | static const number | |
37 | /* polynomial I */ | |
38 | /**/ d3 = {0xbfd55555, 0x55555555, }, /* -0.333... */ | |
39 | /**/ d5 = {0x3fc99999, 0x999997fd, }, /* 0.199... */ | |
40 | /**/ d7 = {0xbfc24924, 0x923f7603, }, /* -0.142... */ | |
41 | /**/ d9 = {0x3fbc71c6, 0xe5129a3b, }, /* 0.111... */ | |
42 | /**/ d11 = {0xbfb74580, 0x22b13c25, }, /* -0.090... */ | |
43 | /**/ d13 = {0x3fb375f0, 0x8b31cbce, }, /* 0.076... */ | |
44 | /* polynomial II */ | |
45 | /**/ f3 = {0xbfd55555, 0x55555555, }, /* -1/3 */ | |
46 | /**/ ff3 = {0xbc755555, 0x55555555, }, /* -1/3-f3 */ | |
47 | /**/ f5 = {0x3fc99999, 0x9999999a, }, /* 1/5 */ | |
48 | /**/ ff5 = {0xbc699999, 0x9999999a, }, /* 1/5-f5 */ | |
49 | /**/ f7 = {0xbfc24924, 0x92492492, }, /* -1/7 */ | |
50 | /**/ ff7 = {0xbc624924, 0x92492492, }, /* -1/7-f7 */ | |
51 | /**/ f9 = {0x3fbc71c7, 0x1c71c71c, }, /* 1/9 */ | |
52 | /**/ ff9 = {0x3c5c71c7, 0x1c71c71c, }, /* 1/9-f9 */ | |
53 | /**/ f11 = {0xbfb745d1, 0x745d1746, }, /* -1/11 */ | |
54 | /**/ f13 = {0x3fb3b13b, 0x13b13b14, }, /* 1/13 */ | |
55 | /**/ f15 = {0xbfb11111, 0x11111111, }, /* -1/15 */ | |
56 | /**/ f17 = {0x3fae1e1e, 0x1e1e1e1e, }, /* 1/17 */ | |
57 | /**/ f19 = {0xbfaaf286, 0xbca1af28, }, /* -1/19 */ | |
58 | /* constants */ | |
59 | /**/ zero = {0x00000000, 0x00000000, }, /* 0 */ | |
60 | /**/ mzero = {0x80000000, 0x00000000, }, /* -0 */ | |
61 | /**/ one = {0x3ff00000, 0x00000000, }, /* 1 */ | |
62 | /**/ inv16 = {0x3fb00000, 0x00000000, }, /* 1/16 */ | |
63 | /**/ opi = {0x400921fb, 0x54442d18, }, /* pi */ | |
64 | /**/ opi1 = {0x3ca1a626, 0x33145c07, }, /* pi-opi */ | |
65 | /**/ mopi = {0xc00921fb, 0x54442d18, }, /* -pi */ | |
66 | /**/ hpi = {0x3ff921fb, 0x54442d18, }, /* pi/2 */ | |
67 | /**/ hpi1 = {0x3c91a626, 0x33145c07, }, /* pi/2-hpi */ | |
68 | /**/ mhpi = {0xbff921fb, 0x54442d18, }, /* -pi/2 */ | |
69 | /**/ qpi = {0x3fe921fb, 0x54442d18, }, /* pi/4 */ | |
70 | /**/ qpi1 = {0x3c81a626, 0x33145c07, }, /* pi/4-qpi */ | |
71 | /**/ mqpi = {0xbfe921fb, 0x54442d18, }, /* -pi/4 */ | |
72 | /**/ tqpi = {0x4002d97c, 0x7f3321d2, }, /* 3pi/4 */ | |
73 | /**/ tqpi1 = {0x3c9a7939, 0x4c9e8a0a, }, /* 3pi/4-tqpi */ | |
74 | /**/ mtqpi = {0xc002d97c, 0x7f3321d2, }, /* -3pi/4 */ | |
75 | /**/ u1 = {0x3c314c2a, 0x00000000, }, /* 9.377e-19 */ | |
76 | /**/ u2 = {0x3bf955e4, 0x00000000, }, /* 8.584e-20 */ | |
77 | /**/ u3 = {0x3bf955e4, 0x00000000, }, /* 8.584e-20 */ | |
78 | /**/ u4 = {0x3bf955e4, 0x00000000, }, /* 8.584e-20 */ | |
79 | /**/ u5 = {0x3aaef2d1, 0x00000000, }, /* 5e-26 */ | |
80 | /**/ u6 = {0x3a6eeb36, 0x00000000, }, /* 3.122e-27 */ | |
81 | /**/ u7 = {0x3a6eeb36, 0x00000000, }, /* 3.122e-27 */ | |
82 | /**/ u8 = {0x3a6eeb36, 0x00000000, }, /* 3.122e-27 */ | |
83 | /**/ u91 = {0x3c6dffc0, 0x00000000, }, /* 1.301e-17 */ | |
84 | /**/ u92 = {0x3c527bd0, 0x00000000, }, /* 4.008e-18 */ | |
85 | /**/ u93 = {0x3c3cd057, 0x00000000, }, /* 1.562e-18 */ | |
86 | /**/ u94 = {0x3c329cdf, 0x00000000, }, /* 1.009e-18 */ | |
87 | /**/ ua1 = {0x3c3a1edf, 0x00000000, }, /* 1.416e-18 */ | |
88 | /**/ ua2 = {0x3c33f0e1, 0x00000000, }, /* 1.081e-18 */ | |
89 | /**/ ub = {0x3a98c56d, 0x00000000, }, /* 2.001e-26 */ | |
90 | /**/ uc = {0x3a9375de, 0x00000000, }, /* 1.572e-26 */ | |
91 | /**/ ud[MM] ={{0x38c6eddf, 0x00000000, }, /* 3.450e-35 */ | |
92 | /**/ {0x35c6ef60, 0x00000000, }, /* 1.226e-49 */ | |
93 | /**/ {0x32c6ed2f, 0x00000000, }, /* 4.354e-64 */ | |
94 | /**/ {0x23c6eee8, 0x00000000, }, /* 2.465e-136 */ | |
95 | /**/ {0x11c6ed16, 0x00000000, }},/* 4.955e-223 */ | |
96 | /**/ ue = {0x38900e9d, 0x00000000, }, /* 3.02e-36 */ | |
97 | /**/ two8 = {0x40700000, 0x00000000, }, /* 2**8=256 */ | |
98 | /**/ two52 = {0x43300000, 0x00000000, }, /* 2**52 */ | |
99 | /**/ two500 = {0x5f300000, 0x00000000, }, /* 2**500 */ | |
100 | /**/ twom500 = {0x20b00000, 0x00000000, }, /* 2**(-500) */ | |
101 | /**/ twom1022 = {0x00100000, 0x00000000, }; /* 2**(-1022) */ | |
102 | ||
103 | #else | |
104 | #ifdef LITTLE_ENDI | |
105 | ||
106 | static const number | |
107 | /* polynomial I */ | |
108 | /**/ d3 = {0x55555555, 0xbfd55555, }, /* -0.333... */ | |
109 | /**/ d5 = {0x999997fd, 0x3fc99999, }, /* 0.199... */ | |
110 | /**/ d7 = {0x923f7603, 0xbfc24924, }, /* -0.142... */ | |
111 | /**/ d9 = {0xe5129a3b, 0x3fbc71c6, }, /* 0.111... */ | |
112 | /**/ d11 = {0x22b13c25, 0xbfb74580, }, /* -0.090... */ | |
113 | /**/ d13 = {0x8b31cbce, 0x3fb375f0, }, /* 0.076... */ | |
114 | /* polynomial II */ | |
115 | /**/ f3 = {0x55555555, 0xbfd55555, }, /* -1/3 */ | |
116 | /**/ ff3 = {0x55555555, 0xbc755555, }, /* -1/3-f3 */ | |
117 | /**/ f5 = {0x9999999a, 0x3fc99999, }, /* 1/5 */ | |
118 | /**/ ff5 = {0x9999999a, 0xbc699999, }, /* 1/5-f5 */ | |
119 | /**/ f7 = {0x92492492, 0xbfc24924, }, /* -1/7 */ | |
120 | /**/ ff7 = {0x92492492, 0xbc624924, }, /* -1/7-f7 */ | |
121 | /**/ f9 = {0x1c71c71c, 0x3fbc71c7, }, /* 1/9 */ | |
122 | /**/ ff9 = {0x1c71c71c, 0x3c5c71c7, }, /* 1/9-f9 */ | |
123 | /**/ f11 = {0x745d1746, 0xbfb745d1, }, /* -1/11 */ | |
124 | /**/ f13 = {0x13b13b14, 0x3fb3b13b, }, /* 1/13 */ | |
125 | /**/ f15 = {0x11111111, 0xbfb11111, }, /* -1/15 */ | |
126 | /**/ f17 = {0x1e1e1e1e, 0x3fae1e1e, }, /* 1/17 */ | |
127 | /**/ f19 = {0xbca1af28, 0xbfaaf286, }, /* -1/19 */ | |
128 | /* constants */ | |
129 | /**/ zero = {0x00000000, 0x00000000, }, /* 0 */ | |
130 | /**/ mzero = {0x00000000, 0x80000000, }, /* -0 */ | |
131 | /**/ one = {0x00000000, 0x3ff00000, }, /* 1 */ | |
132 | /**/ inv16 = {0x00000000, 0x3fb00000, }, /* 1/16 */ | |
133 | /**/ opi = {0x54442d18, 0x400921fb, }, /* pi */ | |
134 | /**/ opi1 = {0x33145c07, 0x3ca1a626, }, /* pi-opi */ | |
135 | /**/ mopi = {0x54442d18, 0xc00921fb, }, /* -pi */ | |
136 | /**/ hpi = {0x54442d18, 0x3ff921fb, }, /* pi/2 */ | |
137 | /**/ hpi1 = {0x33145c07, 0x3c91a626, }, /* pi/2-hpi */ | |
138 | /**/ mhpi = {0x54442d18, 0xbff921fb, }, /* -pi/2 */ | |
139 | /**/ qpi = {0x54442d18, 0x3fe921fb, }, /* pi/4 */ | |
140 | /**/ qpi1 = {0x33145c07, 0x3c81a626, }, /* pi/4-qpi */ | |
141 | /**/ mqpi = {0x54442d18, 0xbfe921fb, }, /* -pi/4 */ | |
142 | /**/ tqpi = {0x7f3321d2, 0x4002d97c, }, /* 3pi/4 */ | |
143 | /**/ tqpi1 = {0x4c9e8a0a, 0x3c9a7939, }, /* 3pi/4-tqpi */ | |
144 | /**/ mtqpi = {0x7f3321d2, 0xc002d97c, }, /* -3pi/4 */ | |
145 | /**/ u1 = {0x00000000, 0x3c314c2a, }, /* 9.377e-19 */ | |
146 | /**/ u2 = {0x00000000, 0x3bf955e4, }, /* 8.584e-20 */ | |
147 | /**/ u3 = {0x00000000, 0x3bf955e4, }, /* 8.584e-20 */ | |
148 | /**/ u4 = {0x00000000, 0x3bf955e4, }, /* 8.584e-20 */ | |
149 | /**/ u5 = {0x00000000, 0x3aaef2d1, }, /* 5e-26 */ | |
150 | /**/ u6 = {0x00000000, 0x3a6eeb36, }, /* 3.122e-27 */ | |
151 | /**/ u7 = {0x00000000, 0x3a6eeb36, }, /* 3.122e-27 */ | |
152 | /**/ u8 = {0x00000000, 0x3a6eeb36, }, /* 3.122e-27 */ | |
153 | /**/ u91 = {0x00000000, 0x3c6dffc0, }, /* 1.301e-17 */ | |
154 | /**/ u92 = {0x00000000, 0x3c527bd0, }, /* 4.008e-18 */ | |
155 | /**/ u93 = {0x00000000, 0x3c3cd057, }, /* 1.562e-18 */ | |
156 | /**/ u94 = {0x00000000, 0x3c329cdf, }, /* 1.009e-18 */ | |
157 | /**/ ua1 = {0x00000000, 0x3c3a1edf, }, /* 1.416e-18 */ | |
158 | /**/ ua2 = {0x00000000, 0x3c33f0e1, }, /* 1.081e-18 */ | |
159 | /**/ ub = {0x00000000, 0x3a98c56d, }, /* 2.001e-26 */ | |
160 | /**/ uc = {0x00000000, 0x3a9375de, }, /* 1.572e-26 */ | |
161 | /**/ ud[MM] ={{0x00000000, 0x38c6eddf, }, /* 3.450e-35 */ | |
162 | /**/ {0x00000000, 0x35c6ef60, }, /* 1.226e-49 */ | |
163 | /**/ {0x00000000, 0x32c6ed2f, }, /* 4.354e-64 */ | |
164 | /**/ {0x00000000, 0x23c6eee8, }, /* 2.465e-136 */ | |
165 | /**/ {0x00000000, 0x11c6ed16, }},/* 4.955e-223 */ | |
166 | /**/ ue = {0x00000000, 0x38900e9d, }, /* 3.02e-36 */ | |
167 | /**/ two8 = {0x00000000, 0x40700000, }, /* 2**8=256 */ | |
168 | /**/ two52 = {0x00000000, 0x43300000, }, /* 2**52 */ | |
169 | /**/ two500 = {0x00000000, 0x5f300000, }, /* 2**500 */ | |
170 | /**/ twom500 = {0x00000000, 0x20b00000, }, /* 2**(-500) */ | |
171 | /**/ twom1022 = {0x00000000, 0x00100000, }; /* 2**(-1022) */ | |
172 | ||
173 | #endif | |
174 | #endif | |
175 | ||
176 | #define ZERO zero.d | |
177 | #define MZERO mzero.d | |
178 | #define ONE one.d | |
179 | #define TWO8 two8.d | |
180 | #define TWO52 two52.d | |
181 | #define TWOM1022 twom1022.d | |
182 | ||
183 | #endif |