51{
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 static const double
68 max_sinh_arg = 7.10475860073943977113e+02,
69 thirtytwo_by_log2 = 4.61662413084468283841e+01,
70 log2_by_32_lead = 2.16608493356034159660e-02,
71 log2_by_32_tail = 5.68948749532545630390e-11,
73
74
75
76
77
78 static const double sinh_lead[37] = {
79 0.00000000000000000000e+00,
80 1.17520117759704589844e+00,
81 3.62686038017272949219e+00,
82 1.00178747177124023438e+01,
83 2.72899169921875000000e+01,
84 7.42032089233398437500e+01,
85 2.01713153839111328125e+02,
86 5.48316116333007812500e+02,
87 1.49047882080078125000e+03,
88 4.05154187011718750000e+03,
89 1.10132326660156250000e+04,
90 2.99370708007812500000e+04,
91 8.13773945312500000000e+04,
92 2.21206695312500000000e+05,
93 6.01302140625000000000e+05,
94 1.63450865625000000000e+06,
95 4.44305525000000000000e+06,
96 1.20774762500000000000e+07,
97 3.28299845000000000000e+07,
98 8.92411500000000000000e+07,
99 2.42582596000000000000e+08,
100 6.59407856000000000000e+08,
101 1.79245641600000000000e+09,
102 4.87240166400000000000e+09,
103 1.32445608960000000000e+10,
104 3.60024494080000000000e+10,
105 9.78648043520000000000e+10,
106 2.66024116224000000000e+11,
107 7.23128516608000000000e+11,
108 1.96566712320000000000e+12,
109 5.34323724288000000000e+12,
110 1.45244246507520000000e+13,
111 3.94814795284480000000e+13,
112 1.07321789251584000000e+14,
113 2.91730863685632000000e+14,
114 7.93006722514944000000e+14,
115 2.15561576592179200000e+15};
116
117 static const double sinh_tail[37] = {
118 0.00000000000000000000e+00,
119 1.60467555584448807892e-08,
120 2.76742892754807136947e-08,
121 2.09697499555224576530e-07,
122 2.04940252448908240062e-07,
123 1.65444891522700935932e-06,
124 3.53116789999998198721e-06,
125 6.94023870987375490695e-06,
126 4.98876893611587449271e-06,
127 3.19656024605152215752e-05,
128 2.08687768377236501204e-04,
129 4.84668088325403796299e-05,
130 1.17517985422733832468e-03,
131 6.90830086959560562415e-04,
132 1.45697262451506548420e-03,
133 2.99859023684906737806e-02,
134 1.02538800507941396667e-02,
135 1.26787628407699110022e-01,
136 6.86652479544033744752e-02,
137 4.81593627621056619148e-01,
138 1.70489513795397629181e+00,
139 1.12416073482258713767e+01,
140 7.06579578070110514432e+00,
141 5.91244512999659974639e+01,
142 1.68921736147050694399e+02,
143 2.60692936262073658327e+02,
144 3.62419382134885609048e+02,
145 4.07689930834187271103e+03,
146 1.55377375868385224749e+04,
147 2.53720210371943067003e+04,
148 4.78822310734952334315e+04,
149 1.81871712615542812273e+05,
150 5.62892347580489004031e+05,
151 6.41374032312148716301e+05,
152 7.57809544070145115256e+06,
153 3.64177136406482197344e+06,
154 7.63580561355670914054e+06};
155
156 static const double cosh_lead[37] = {
157 1.00000000000000000000e+00,
158 1.54308062791824340820e+00,
159 3.76219564676284790039e+00,
160 1.00676617622375488281e+01,
161 2.73082327842712402344e+01,
162 7.42099475860595703125e+01,
163 2.01715633392333984375e+02,
164 5.48317031860351562500e+02,
165 1.49047915649414062500e+03,
166 4.05154199218750000000e+03,
167 1.10132329101562500000e+04,
168 2.99370708007812500000e+04,
169 8.13773945312500000000e+04,
170 2.21206695312500000000e+05,
171 6.01302140625000000000e+05,
172 1.63450865625000000000e+06,
173 4.44305525000000000000e+06,
174 1.20774762500000000000e+07,
175 3.28299845000000000000e+07,
176 8.92411500000000000000e+07,
177 2.42582596000000000000e+08,
178 6.59407856000000000000e+08,
179 1.79245641600000000000e+09,
180 4.87240166400000000000e+09,
181 1.32445608960000000000e+10,
182 3.60024494080000000000e+10,
183 9.78648043520000000000e+10,
184 2.66024116224000000000e+11,
185 7.23128516608000000000e+11,
186 1.96566712320000000000e+12,
187 5.34323724288000000000e+12,
188 1.45244246507520000000e+13,
189 3.94814795284480000000e+13,
190 1.07321789251584000000e+14,
191 2.91730863685632000000e+14,
192 7.93006722514944000000e+14,
193 2.15561576592179200000e+15};
194
195 static const double cosh_tail[37] = {
196 0.00000000000000000000e+00,
197 6.89700037027478056904e-09,
198 4.43207835591715833630e-08,
199 2.33540217013828929694e-07,
200 5.17452463948269748331e-08,
201 9.38728274131605919153e-07,
202 2.73012191010840495544e-06,
203 3.29486051438996307950e-06,
204 4.75803746362771416375e-06,
205 3.33050940471947692369e-05,
206 9.94707313972136215365e-06,
207 6.51685096227860253398e-05,
208 1.18132406658066663359e-03,
209 6.93090416366541877541e-04,
210 1.45780415323416845386e-03,
211 2.99862082708111758744e-02,
212 1.02539925859688602072e-02,
213 1.26787669807076286421e-01,
214 6.86652631843830962843e-02,
215 4.81593633223853068159e-01,
216 1.70489514001513020602e+00,
217 1.12416073489841270572e+01,
218 7.06579578098005001152e+00,
219 5.91244513000686140458e+01,
220 1.68921736147088438429e+02,
221 2.60692936262087528121e+02,
222 3.62419382134890611269e+02,
223 4.07689930834187453002e+03,
224 1.55377375868385224749e+04,
225 2.53720210371943103382e+04,
226 4.78822310734952334315e+04,
227 1.81871712615542812273e+05,
228 5.62892347580489004031e+05,
229 6.41374032312148716301e+05,
230 7.57809544070145115256e+06,
231 3.64177136406482197344e+06,
232 7.63580561355670914054e+06};
233
234 unsigned long long ux,
aux, xneg;
237
238
239
241 aux = ux & ~SIGNBIT_DP64;
242 if (
aux < 0x3e30000000000000)
243 {
245
247 else
249 }
250 else if (
aux >= 0x7ff0000000000000)
251 {
252 if (
aux > 0x7ff0000000000000)
253
256 else
258 }
259
260
262
265
266 if (
y >= max_sinh_arg)
267 {
268 if (xneg)
271 else
274 }
275 else if (
y >= small_threshold)
276 {
277
278
279
280
281
282
283
284
285 splitexp(
y, 1.0, thirtytwo_by_log2, log2_by_32_lead,
286 log2_by_32_tail, &
m, &z1, &z2);
288
290 z = scaleDouble_1((z1+z2),
m);
291 else
292 z = scaleDouble_2((z1+z2),
m);
293 }
294 else
295 {
296
297
298
299
300
301
302
303 int ind;
304 double dy, dy2, sdy, cdy, sdy1, sdy2;
305
308
310 sdy =
dy*dy2*(0.166666666666666667013899e0 +
311 (0.833333333333329931873097e-2 +
312 (0.198412698413242405162014e-3 +
313 (0.275573191913636406057211e-5 +
314 (0.250521176994133472333666e-7 +
315 (0.160576793121939886190847e-9 +
316 0.7746188980094184251527126e-12*dy2)*dy2)*dy2)*dy2)*dy2)*dy2);
317
318 cdy = dy2*(0.500000000000000005911074e0 +
319 (0.416666666666660876512776e-1 +
320 (0.138888888889814854814536e-2 +
321 (0.248015872460622433115785e-4 +
322 (0.275573350756016588011357e-6 +
323 (0.208744349831471353536305e-8 +
324 0.1163921388172173692062032e-10*dy2)*dy2)*dy2)*dy2)*dy2)*dy2);
325
326
327
328
330 ux &= 0xfffffffff8000000;
332 sdy2 = sdy + (
dy - sdy1);
333
334 z = ((((((cosh_tail[ind]*sdy2 + sinh_tail[ind]*cdy)
335 + cosh_tail[ind]*sdy1) + sinh_tail[ind])
336 + cosh_lead[ind]*sdy2) + sinh_lead[ind]*cdy)
337 + cosh_lead[ind]*sdy1) + sinh_lead[ind];
338 }
339
342}
double __cdecl _handle_error(char *fname, int opcode, unsigned long long value, int type, int flags, int error, double arg1, double arg2, int nargs)
Handles an error condition.
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
#define GET_BITS_DP64(x, ux)
#define PUT_BITS_DP64(ux, x)