2 * IBM Accurate Mathematical Library
3 * Written by International Business Machines Corp.
4 * Copyright (C) 2001 Free Software Foundation, Inc.
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.1 of the License, or
9 * (at your option) any later version.
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 Lesser General Public License for more details.
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.
21 /******************************************************************/
23 /* MODULE_NAME:utan.h */
25 /* common data and variables prototype and definition */
26 /******************************************************************/
34 /**/ d3
= {{0x3FD55555, 0x55555555} }, /* 0.333... */
35 /**/ d5
= {{0x3FC11111, 0x111107C6} }, /* 0.133... */
36 /**/ d7
= {{0x3FABA1BA, 0x1CDB8745} }, /* . */
37 /**/ d9
= {{0x3F9664ED, 0x49CFC666} }, /* . */
38 /**/ d11
= {{0x3F82385A, 0x3CF2E4EA} }, /* . */
40 /**/ a3
= {{0x3fd55555, 0x55555555} }, /* 1/3 */
41 /**/ aa3
= {{0x3c755555, 0x55555555} }, /* 1/3-a3 */
42 /**/ a5
= {{0x3fc11111, 0x11111111} }, /* 2/15 */
43 /**/ aa5
= {{0x3c411111, 0x11111111} }, /* 2/15-a5 */
44 /**/ a7
= {{0x3faba1ba, 0x1ba1ba1c} }, /* 17/315 */
45 /**/ aa7
= {{0xbc479179, 0x17917918} }, /* ()-a7 */
46 /**/ a9
= {{0x3f9664f4, 0x882c10fa} }, /* 62/2835 */
47 /**/ aa9
= {{0xbc09a528, 0x8b6c44fd} }, /* ()-a9 */
48 /**/ a11
= {{0x3f8226e3, 0x55e6c23d} }, /* . */
49 /**/ aa11
= {{0xbc2c292b, 0x8f1a2c13} }, /* . */
50 /**/ a13
= {{0x3f6d6d3d, 0x0e157de0} }, /* . */
51 /**/ aa13
= {{0xbc0280cf, 0xc968d971} }, /* . */
52 /**/ a15
= {{0x3f57da36, 0x452b75e3} }, /* . */
54 /**/ aa15
= {{0xbbf25789, 0xb285d2ed} }, /* . */
56 /**/ a17
= {{0x3f435582, 0x48036744} }, /* . */
58 /**/ aa17
= {{0x3be488d9, 0x563f1f23} }, /* . */
60 /**/ a19
= {{0x3f2f57d7, 0x734d1664} }, /* . */
62 /**/ aa19
= {{0x3bb0d55a, 0x913ccb50} }, /* . */
64 /**/ a21
= {{0x3f1967e1, 0x8afcafad} }, /* . */
66 /**/ aa21
= {{0xbbbd7614, 0xa42d44e6} }, /* . */
68 /**/ a23
= {{0x3f0497d8, 0xeea25259} }, /* . */
70 /**/ aa23
= {{0x3b99f2d0, 0x2e4d2863} }, /* . */
72 /**/ a25
= {{0x3ef0b132, 0xd39a6050} }, /* . */
74 /**/ aa25
= {{0x3b93b274, 0xc2c19614} }, /* . */
76 /**/ a27
= {{0x3edb0f72, 0xd3ee24e9} }, /* . */
78 /**/ aa27
= {{0x3b61688d, 0xdd595609} }, /* . */
81 /**/ e0
= {{0x3FD55555, 0x55554DBD} }, /* . */
82 /**/ e1
= {{0x3FC11112, 0xE0A6B45F} }, /* . */
85 /**/ zero
= {{0x00000000, 0x00000000} }, /* 0 */
86 /**/ one
= {{0x3ff00000, 0x00000000} }, /* 1 */
87 /**/ mone
= {{0xbff00000, 0x00000000} }, /*-1 */
88 /**/ mfftnhf
= {{0xc02f0000, 0x00000000} }, /*-15.5 */
89 /**/ two8
= {{0x40700000, 0x00000000} }, /* 256 */
91 /**/ g1
= {{0x3e4b096c, 0x00000000} }, /* 1.259e-8 */
92 /**/ g2
= {{0x3faf212d, 0x00000000} }, /* 0.0608 */
93 /**/ g3
= {{0x3fe92f1a, 0x00000000} }, /* 0.787 */
94 /**/ g4
= {{0x40390000, 0x00000000} }, /* 25.0 */
95 /**/ g5
= {{0x4197d784, 0x00000000} }, /* 1e8 */
96 /**/ gy1
= {{0x3e7ad7f2, 0x9abcaf48} }, /* 1e-7 */
97 /**/ gy2
= {{0x3faf212d, 0x00000000} }, /* 0.0608 */
99 /**/ u1
= {{0x3cc8c33a, 0x00000000} }, /* 6.873e-16 */
100 /**/ u2
= {{0x3983dc4d, 0x00000000} }, /* 1.224e-31 */
101 /**/ u3
= {{0x3c78e14b, 0x00000000} }, /* 2.158e-17 */
102 /**/ ua3
= {{0x3bfd8b58, 0x00000000} }, /* 1.001e-19 */
103 /**/ ub3
= {{0x3cc81898, 0x00000000} }, /* 6.688e-16 */
104 /**/ u4
= {{0x399856c2, 0x00000000} }, /* 3e-31 */
105 /**/ u5
= {{0x3c39d80a, 0x00000000} }, /* 1.401e-18 */
106 /**/ u6
= {{0x3c374c5a, 0x00000000} }, /* 1.263e-18 */
107 /**/ u7
= {{0x39903beb, 0x00000000} }, /* 2.001e-31 */
108 /**/ u8
= {{0x399c56ae, 0x00000000} }, /* 3.493e-31 */
109 /**/ u9
= {{0x3c7d0ac7, 0x00000000} }, /* 2.519e-17 */
110 /**/ ua9
= {{0x3bfd8b58, 0x00000000} }, /* 1.001e-19 */
111 /**/ ub9
= {{0x3ccc2375, 0x00000000} }, /* 7.810e-16 */
112 /**/ u10
= {{0x3c7e40af, 0x00000000} }, /* 2.624e-17 */
113 /**/ ua10
= {{0x3bfd8b58, 0x00000000} }, /* 1.001e-19 */
114 /**/ ub10
= {{0x3ccc6405, 0x00000000} }, /* 7.880e-16 */
115 /**/ u11
= {{0x39e509b6, 0x00000000} }, /* 8.298e-30 */
116 /**/ u12
= {{0x39e509b6, 0x00000000} }, /* 8.298e-30 */
117 /**/ u13
= {{0x3c39d80a, 0x00000000} }, /* 1.401e-18 */
118 /**/ u14
= {{0x3c374c5a, 0x00000000} }, /* 1.263e-18 */
119 /**/ u15
= {{0x3ab5767a, 0x00000000} }, /* 6.935e-26 */
120 /**/ u16
= {{0x3ab57744, 0x00000000} }, /* 6.936e-26 */
121 /**/ u17
= {{0x3c7d0ac7, 0x00000000} }, /* 2.519e-17 */
122 /**/ ua17
= {{0x3bfdb11f, 0x00000000} }, /* 1.006e-19 */
123 /**/ ub17
= {{0x3ccc2375, 0x00000000} }, /* 7.810e-16 */
124 /**/ u18
= {{0x3c7e40af, 0x00000000} }, /* 2.624e-17 */
125 /**/ ua18
= {{0x3bfdb11f, 0x00000000} }, /* 1.006e-19 */
126 /**/ ub18
= {{0x3ccc6405, 0x00000000} }, /* 7.880e-16 */
127 /**/ u19
= {{0x39a13b61, 0x00000000} }, /* 4.248e-31 */
128 /**/ u20
= {{0x39a13b61, 0x00000000} }, /* 4.248e-31 */
129 /**/ u21
= {{0x3c3bb9b8, 0x00000000} }, /* 1.503e-18 */
130 /**/ u22
= {{0x3c392e08, 0x00000000} }, /* 1.365e-18 */
131 /**/ u23
= {{0x3a0ce706, 0x00000000} }, /* 4.560e-29 */
132 /**/ u24
= {{0x3a0cff5d, 0x00000000} }, /* 4.575e-29 */
133 /**/ u25
= {{0x3c7d0ac7, 0x00000000} }, /* 2.519e-17 */
134 /**/ ua25
= {{0x3bfd8b58, 0x00000000} }, /* 1.001e-19 */
135 /**/ ub25
= {{0x3ccc2375, 0x00000000} }, /* 7.810e-16 */
136 /**/ u26
= {{0x3c7e40af, 0x00000000} }, /* 2.624e-17 */
137 /**/ ua26
= {{0x3bfd8b58, 0x00000000} }, /* 1.001e-19 */
138 /**/ ub26
= {{0x3ccc6405, 0x00000000} }, /* 7.880e-16 */
139 /**/ u27
= {{0x3ad421cb, 0x00000000} }, /* 2.602e-25 */
140 /**/ u28
= {{0x3ad421cb, 0x00000000} }, /* 2.602e-25 */
142 /**/ mp1
= {{0x3FF921FB, 0x58000000} },
143 /**/ mp2
= {{0xBE4DDE97, 0x3C000000} },
144 /**/ mp3
= {{0xBC8CB3B3, 0x99D747F2} },
145 /**/ pp3
= {{0xBC8CB3B3, 0x98000000} },
146 /**/ pp4
= {{0xbacd747f, 0x23e32ed7} },
147 /**/ hpinv
= {{0x3FE45F30, 0x6DC9C883} },
148 /**/ toint
= {{0x43380000, 0x00000000} };
155 /**/ d3
= {{0x55555555, 0x3FD55555} }, /* 0.333... */
156 /**/ d5
= {{0x111107C6, 0x3FC11111} }, /* 0.133... */
157 /**/ d7
= {{0x1CDB8745, 0x3FABA1BA} }, /* . */
158 /**/ d9
= {{0x49CFC666, 0x3F9664ED} }, /* . */
159 /**/ d11
= {{0x3CF2E4EA, 0x3F82385A} }, /* . */
161 /**/ a3
= {{0x55555555, 0x3fd55555} }, /* 1/3 */
162 /**/ aa3
= {{0x55555555, 0x3c755555} }, /* 1/3-a3 */
163 /**/ a5
= {{0x11111111, 0x3fc11111} }, /* 2/15 */
164 /**/ aa5
= {{0x11111111, 0x3c411111} }, /* 2/15-a5 */
165 /**/ a7
= {{0x1ba1ba1c, 0x3faba1ba} }, /* 17/315 */
166 /**/ aa7
= {{0x17917918, 0xbc479179} }, /* ()-a7 */
167 /**/ a9
= {{0x882c10fa, 0x3f9664f4} }, /* 62/2835 */
168 /**/ aa9
= {{0x8b6c44fd, 0xbc09a528} }, /* ()-a9 */
169 /**/ a11
= {{0x55e6c23d, 0x3f8226e3} }, /* . */
170 /**/ aa11
= {{0x8f1a2c13, 0xbc2c292b} }, /* . */
171 /**/ a13
= {{0x0e157de0, 0x3f6d6d3d} }, /* . */
172 /**/ aa13
= {{0xc968d971, 0xbc0280cf} }, /* . */
173 /**/ a15
= {{0x452b75e3, 0x3f57da36} }, /* . */
175 /**/ aa15
= {{0xb285d2ed, 0xbbf25789} }, /* . */
177 /**/ a17
= {{0x48036744, 0x3f435582} }, /* . */
179 /**/ aa17
= {{0x563f1f23, 0x3be488d9} }, /* . */
181 /**/ a19
= {{0x734d1664, 0x3f2f57d7} }, /* . */
183 /**/ aa19
= {{0x913ccb50, 0x3bb0d55a} }, /* . */
185 /**/ a21
= {{0x8afcafad, 0x3f1967e1} }, /* . */
187 /**/ aa21
= {{0xa42d44e6, 0xbbbd7614} }, /* . */
189 /**/ a23
= {{0xeea25259, 0x3f0497d8} }, /* . */
191 /**/ aa23
= {{0x2e4d2863, 0x3b99f2d0} }, /* . */
193 /**/ a25
= {{0xd39a6050, 0x3ef0b132} }, /* . */
195 /**/ aa25
= {{0xc2c19614, 0x3b93b274} }, /* . */
197 /**/ a27
= {{0xd3ee24e9, 0x3edb0f72} }, /* . */
199 /**/ aa27
= {{0xdd595609, 0x3b61688d} }, /* . */
202 /**/ e0
= {{0x55554DBD, 0x3FD55555} }, /* . */
203 /**/ e1
= {{0xE0A6B45F, 0x3FC11112} }, /* . */
206 /**/ zero
= {{0x00000000, 0x00000000} }, /* 0 */
207 /**/ one
= {{0x00000000, 0x3ff00000} }, /* 1 */
208 /**/ mone
= {{0x00000000, 0xbff00000} }, /*-1 */
209 /**/ mfftnhf
= {{0x00000000, 0xc02f0000} }, /*-15.5 */
210 /**/ two8
= {{0x00000000, 0x40700000} }, /* 256 */
212 /**/ g1
= {{0x00000000, 0x3e4b096c} }, /* 1.259e-8 */
213 /**/ g2
= {{0x00000000, 0x3faf212d} }, /* 0.0608 */
214 /**/ g3
= {{0x00000000, 0x3fe92f1a} }, /* 0.787 */
215 /**/ g4
= {{0x00000000, 0x40390000} }, /* 25.0 */
216 /**/ g5
= {{0x00000000, 0x4197d784} }, /* 1e8 */
217 /**/ gy1
= {{0x9abcaf48, 0x3e7ad7f2} }, /* 1e-7 */
218 /**/ gy2
= {{0x00000000, 0x3faf212d} }, /* 0.0608 */
220 /**/ u1
= {{0x00000000, 0x3cc8c33a} }, /* 6.873e-16 */
221 /**/ u2
= {{0x00000000, 0x3983dc4d} }, /* 1.224e-31 */
222 /**/ u3
= {{0x00000000, 0x3c78e14b} }, /* 2.158e-17 */
223 /**/ ua3
= {{0x00000000, 0x3bfd8b58} }, /* 1.001e-19 */
224 /**/ ub3
= {{0x00000000, 0x3cc81898} }, /* 6.688e-16 */
225 /**/ u4
= {{0x00000000, 0x399856c2} }, /* 3e-31 */
226 /**/ u5
= {{0x00000000, 0x3c39d80a} }, /* 1.401e-18 */
227 /**/ u6
= {{0x00000000, 0x3c374c5a} }, /* 1.263e-18 */
228 /**/ u7
= {{0x00000000, 0x39903beb} }, /* 2.001e-31 */
229 /**/ u8
= {{0x00000000, 0x399c56ae} }, /* 3.493e-31 */
230 /**/ u9
= {{0x00000000, 0x3c7d0ac7} }, /* 2.519e-17 */
231 /**/ ua9
= {{0x00000000, 0x3bfd8b58} }, /* 1.001e-19 */
232 /**/ ub9
= {{0x00000000, 0x3ccc2375} }, /* 7.810e-16 */
233 /**/ u10
= {{0x00000000, 0x3c7e40af} }, /* 2.624e-17 */
234 /**/ ua10
= {{0x00000000, 0x3bfd8b58} }, /* 1.001e-19 */
235 /**/ ub10
= {{0x00000000, 0x3ccc6405} }, /* 7.880e-16 */
236 /**/ u11
= {{0x00000000, 0x39e509b6} }, /* 8.298e-30 */
237 /**/ u12
= {{0x00000000, 0x39e509b6} }, /* 8.298e-30 */
238 /**/ u13
= {{0x00000000, 0x3c39d80a} }, /* 1.401e-18 */
239 /**/ u14
= {{0x00000000, 0x3c374c5a} }, /* 1.263e-18 */
240 /**/ u15
= {{0x00000000, 0x3ab5767a} }, /* 6.935e-26 */
241 /**/ u16
= {{0x00000000, 0x3ab57744} }, /* 6.936e-26 */
242 /**/ u17
= {{0x00000000, 0x3c7d0ac7} }, /* 2.519e-17 */
243 /**/ ua17
= {{0x00000000, 0x3bfdb11f} }, /* 1.006e-19 */
244 /**/ ub17
= {{0x00000000, 0x3ccc2375} }, /* 7.810e-16 */
245 /**/ u18
= {{0x00000000, 0x3c7e40af} }, /* 2.624e-17 */
246 /**/ ua18
= {{0x00000000, 0x3bfdb11f} }, /* 1.006e-19 */
247 /**/ ub18
= {{0x00000000, 0x3ccc6405} }, /* 7.880e-16 */
248 /**/ u19
= {{0x00000000, 0x39a13b61} }, /* 4.248e-31 */
249 /**/ u20
= {{0x00000000, 0x39a13b61} }, /* 4.248e-31 */
250 /**/ u21
= {{0x00000000, 0x3c3bb9b8} }, /* 1.503e-18 */
251 /**/ u22
= {{0x00000000, 0x3c392e08} }, /* 1.365e-18 */
252 /**/ u23
= {{0x00000000, 0x3a0ce706} }, /* 4.560e-29 */
253 /**/ u24
= {{0x00000000, 0x3a0cff5d} }, /* 4.575e-29 */
254 /**/ u25
= {{0x00000000, 0x3c7d0ac7} }, /* 2.519e-17 */
255 /**/ ua25
= {{0x00000000, 0x3bfd8b58} }, /* 1.001e-19 */
256 /**/ ub25
= {{0x00000000, 0x3ccc2375} }, /* 7.810e-16 */
257 /**/ u26
= {{0x00000000, 0x3c7e40af} }, /* 2.624e-17 */
258 /**/ ua26
= {{0x00000000, 0x3bfd8b58} }, /* 1.001e-19 */
259 /**/ ub26
= {{0x00000000, 0x3ccc6405} }, /* 7.880e-16 */
260 /**/ u27
= {{0x00000000, 0x3ad421cb} }, /* 2.602e-25 */
261 /**/ u28
= {{0x00000000, 0x3ad421cb} }, /* 2.602e-25 */
263 /**/ mp1
= {{0x58000000, 0x3FF921FB} },
264 /**/ mp2
= {{0x3C000000, 0xBE4DDE97} },
265 /**/ mp3
= {{0x99D747F2, 0xBC8CB3B3} },
266 /**/ pp3
= {{0x98000000, 0xBC8CB3B3} },
267 /**/ pp4
= {{0x23e32ed7, 0xbacd747f} },
268 /**/ hpinv
= {{0x6DC9C883, 0x3FE45F30} },
269 /**/ toint
= {{0x00000000, 0x43380000} };