e_cosh.S revision 5d4f0e6a26b66f1dab8d20a65af4469c6dd7370d
1/*
2Copyright (c) 2014, Intel Corporation
3All rights reserved.
4
5Redistribution and use in source and binary forms, with or without
6modification, are permitted provided that the following conditions are met:
7
8    * Redistributions of source code must retain the above copyright notice,
9    * this list of conditions and the following disclaimer.
10
11    * Redistributions in binary form must reproduce the above copyright notice,
12    * this list of conditions and the following disclaimer in the documentation
13    * and/or other materials provided with the distribution.
14
15    * Neither the name of Intel Corporation nor the names of its contributors
16    * may be used to endorse or promote products derived from this software
17    * without specific prior written permission.
18
19THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
23ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
26ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29*/
30
31/******************************************************************************/
32//                     ALGORITHM DESCRIPTION
33//                     ---------------------
34//
35//  cosh(x)=(exp(x)+exp(-x))/2
36//
37//  Let |x|=xH+xL (upper 26 bits, lower 27 bits)
38//  log2(e) rounded to 26 bits (high part) plus a double precision low part is
39//          L2EH+L2EL (upper 26, lower 53 bits)
40//
41//  Let xH*L2EH=k+f+r`, where (k+f)*2^7=int(xH*L2EH*2^7),
42//                              f=0.b1 b2 ... b7, k integer
43//  2^f is approximated as Tp[f]+Dp[f], and 2^{-f} as Tn[f]+Dn[f]
44//  Tp stores higher 53 bits, Dp stores (2^f-Tp[f]) rounded to double precision
45//
46//  e^|x|=2^{k+f}*2^r, r=r`+xL*L2EH+|x|*L2EL, |r|<2^{-8}+2^{-14},
47//                       for |x| in [1/8,3*2^8)
48//  e^{-|x|}=2^{-k-f}*2^{-r}
49//
50//  e^|x| is approximated as 2^k*Tp+2^k*Tp*c1*r(1+c2*r+..+c5*r^4)+2^k*Dp=
51//                           =2^k*Tp+2^k*Tp*P15+2^k*Dp
52//  e^{-|x|} approximated as 2^{-k}*Tn-2^{-k}*Tn*c1*r(1-c2*r+..+c5*r^4)
53//
54//  For |x| in [1/8, 3*2^7), cosh(x) is formed as
55//   RN(2^k*Tp+2^{-k}*Tn)+2^k*Tp*P15+2^{-k}*Tn*P`15+2^{-k}*TnL+2^{-k}*Dn+2^k*Dp
56//
57//  For |x| in [3*2^7, 3*2^8), (e^|x|)/2 is returned, and
58//  the result is checked for overflow.
59//
60//  For |x|<1/8, a Taylor polynomial expansion is used (degree 10)
61//  (error bound for polynomial expansion is below 0.501 ulp)
62//
63// Special cases:
64//  cosh(NaN) = quiet NaN, and raise invalid exception
65//  cosh(INF) = that INF
66//  cosh(0)=1
67//  for finite argument, only cosh(0)=1 is exact
68//  For IEEE double
69//  cosh(x) overflows
70//  for x > 710.47586007394386342639336362481117248535156250 = MAXLOG+log(2)
71//
72/******************************************************************************/
73
74#include <private/bionic_asm.h>
75# -- Begin  static_func
76        .text
77        .align __bionic_asm_align
78        .type static_func, @function
79static_func:
80..B1.1:
81        call      ..L2
82..L2:
83        popl      %eax
84        lea       _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax
85        lea       static_const_table@GOTOFF(%eax), %eax
86        ret
87        .size   static_func,.-static_func
88# -- End  static_func
89
90# -- Begin  cosh
91ENTRY(cosh)
92# parameter 1: 8 + %ebp
93..B2.1:
94..B2.2:
95        pushl     %ebp
96        movl      %esp, %ebp
97        subl      $104, %esp
98        movl      %ebx, 40(%esp)
99        call      static_func
100        movl      %eax, %ebx
101        movsd     112(%esp), %xmm0
102        movsd     4240(%ebx), %xmm3
103        xorpd     %xmm4, %xmm4
104        movsd     4192(%ebx), %xmm1
105        movsd     4200(%ebx), %xmm2
106        movl      $32768, %eax
107        pinsrw    $3, %eax, %xmm4
108        movsd     4096(%ebx), %xmm6
109        pextrw    $3, %xmm0, %ecx
110        andpd     %xmm0, %xmm3
111        andnpd    %xmm0, %xmm4
112        pshufd    $68, %xmm4, %xmm5
113        andl      $32767, %ecx
114        subl      $16320, %ecx
115        cmpl      $200, %ecx
116        jae       .L_2TAG_PACKET_0.0.2
117        subsd     %xmm3, %xmm4
118        mulsd     %xmm1, %xmm3
119        mulsd     %xmm5, %xmm2
120        cvtsd2si  %xmm3, %eax
121        movapd    %xmm3, %xmm7
122        addsd     %xmm6, %xmm3
123        mulsd     %xmm4, %xmm1
124        xorpd     %xmm5, %xmm5
125        subsd     %xmm6, %xmm3
126        movapd    4112(%ebx), %xmm4
127        addsd     %xmm1, %xmm2
128        movapd    4128(%ebx), %xmm6
129        subsd     %xmm3, %xmm7
130        movl      $32704, %edx
131        pinsrw    $3, %edx, %xmm5
132        movapd    4144(%ebx), %xmm1
133        addsd     %xmm7, %xmm2
134        movl      $127, %edx
135        andl      %eax, %edx
136        addl      %edx, %edx
137        shrl      $3, %eax
138        andl      $65520, %eax
139        addl      $16352, %eax
140        xorpd     %xmm0, %xmm0
141        cmpl      $184, %ecx
142        jae       .L_2TAG_PACKET_1.0.2
143        pshufd    $68, %xmm5, %xmm5
144        pinsrw    $3, %eax, %xmm0
145        pshufd    $68, %xmm0, %xmm0
146        psubw     %xmm0, %xmm5
147        mulpd     (%ebx,%edx,8), %xmm0
148        mulpd     2048(%ebx,%edx,8), %xmm5
149        pshufd    $68, %xmm2, %xmm3
150        movapd    4160(%ebx), %xmm7
151        pshufd    $68, %xmm2, %xmm2
152        mulpd     %xmm3, %xmm3
153        mulpd     %xmm2, %xmm4
154        mulpd     %xmm2, %xmm6
155        mulpd     4176(%ebx), %xmm2
156        mulpd     %xmm3, %xmm1
157        mulpd     %xmm3, %xmm7
158        mulpd     %xmm3, %xmm4
159        mulpd     %xmm3, %xmm1
160        addpd     %xmm7, %xmm6
161        movapd    %xmm0, %xmm7
162        addpd     %xmm1, %xmm4
163        shufpd    $0, %xmm5, %xmm7
164        addpd     %xmm5, %xmm0
165        mulpd     %xmm7, %xmm2
166        addpd     %xmm6, %xmm4
167        subsd     %xmm0, %xmm7
168        mulpd     %xmm2, %xmm4
169        pshufd    $238, %xmm0, %xmm6
170        addsd     %xmm5, %xmm7
171        addpd     %xmm2, %xmm4
172        addsd     %xmm6, %xmm7
173        pshufd    $238, %xmm4, %xmm2
174        addsd     %xmm7, %xmm2
175        addsd     %xmm4, %xmm2
176        addsd     %xmm2, %xmm0
177        jmp       .L_2TAG_PACKET_2.0.2
178.L_2TAG_PACKET_0.0.2:
179        addl      $16320, %ecx
180        cmpl      $16320, %ecx
181        ja        .L_2TAG_PACKET_3.0.2
182        cmpl      $15952, %ecx
183        jae       .L_2TAG_PACKET_4.0.2
184        addsd     %xmm2, %xmm6
185        movsd     4248(%ebx), %xmm0
186        jmp       .L_2TAG_PACKET_2.0.2
187.L_2TAG_PACKET_1.0.2:
188        subl      $16352, %eax
189        movl      %eax, %ecx
190        andl      $32752, %eax
191        shrl      $1, %eax
192        andl      $65520, %eax
193        subl      %eax, %ecx
194        addl      $16352, %eax
195        pinsrw    $3, %eax, %xmm0
196        pshufd    $68, %xmm0, %xmm0
197        mulpd     (%ebx,%edx,8), %xmm0
198        pshufd    $68, %xmm2, %xmm3
199        movsd     4160(%ebx), %xmm7
200        mulsd     %xmm3, %xmm3
201        mulsd     %xmm2, %xmm4
202        mulsd     %xmm2, %xmm6
203        mulsd     4176(%ebx), %xmm2
204        mulsd     %xmm3, %xmm1
205        mulsd     %xmm3, %xmm7
206        mulsd     %xmm3, %xmm4
207        addl      $16368, %ecx
208        pinsrw    $3, %ecx, %xmm5
209        mulsd     %xmm3, %xmm1
210        addsd     %xmm7, %xmm6
211        addsd     %xmm1, %xmm4
212        mulsd     %xmm0, %xmm2
213        addsd     %xmm6, %xmm4
214        mulsd     %xmm2, %xmm4
215        pshufd    $238, %xmm0, %xmm6
216        addsd     %xmm6, %xmm4
217        addsd     %xmm4, %xmm2
218        addsd     %xmm2, %xmm0
219        mulsd     %xmm5, %xmm0
220        pextrw    $3, %xmm0, %eax
221        andl      $32752, %eax
222        movl      $64, %edx
223        cmpl      $32752, %eax
224        je        .L_2TAG_PACKET_5.0.2
225        jmp       .L_2TAG_PACKET_2.0.2
226.L_2TAG_PACKET_4.0.2:
227        movapd    4208(%ebx), %xmm1
228        mulpd     %xmm5, %xmm5
229        movapd    4224(%ebx), %xmm2
230        xorpd     %xmm3, %xmm3
231        movapd    %xmm5, %xmm0
232        mulpd     %xmm5, %xmm1
233        movsd     4248(%ebx), %xmm6
234        mulpd     %xmm5, %xmm5
235        movl      $16352, %eax
236        pinsrw    $3, %eax, %xmm3
237        addpd     %xmm2, %xmm1
238        mulpd     %xmm5, %xmm1
239        pshufd    $238, %xmm1, %xmm2
240        mulsd     %xmm1, %xmm5
241        mulsd     %xmm3, %xmm0
242        addsd     %xmm5, %xmm2
243        addsd     %xmm2, %xmm0
244        addsd     %xmm6, %xmm0
245        jmp       .L_2TAG_PACKET_2.0.2
246.L_2TAG_PACKET_3.0.2:
247        cmpl      $32752, %ecx
248        jae       .L_2TAG_PACKET_6.0.2
249        xorpd     %xmm0, %xmm0
250        movl      $32736, %eax
251        pinsrw    $3, %eax, %xmm0
252        mulsd     %xmm0, %xmm0
253        movl      $64, %edx
254.L_2TAG_PACKET_5.0.2:
255        movsd     %xmm0, (%esp)
256        movsd     112(%esp), %xmm0
257        fldl      (%esp)
258        jmp       .L_2TAG_PACKET_7.0.2
259.L_2TAG_PACKET_6.0.2:
260        mulsd     %xmm0, %xmm0
261        jmp       .L_2TAG_PACKET_2.0.2
262.L_2TAG_PACKET_2.0.2:
263        movsd     %xmm0, 24(%esp)
264        fldl      24(%esp)
265.L_2TAG_PACKET_7.0.2:
266        movl      40(%esp), %ebx
267        movl      %ebp, %esp
268        popl      %ebp
269        ret
270..B2.3:
271END(cosh)
272# -- End  cosh
273
274# Start file scope ASM
275.weak coshl
276.equ coshl, cosh
277# End file scope ASM
278	.section .rodata, "a"
279	.align 16
280	.align 16
281static_const_table:
282	.long	0
283	.long	1072693248
284	.long	0
285	.long	0
286	.long	2851812149
287	.long	1072698941
288	.long	2595802551
289	.long	1016815913
290	.long	1048019041
291	.long	1072704666
292	.long	1398474845
293	.long	3161559171
294	.long	3899555717
295	.long	1072710421
296	.long	427280750
297	.long	3163595548
298	.long	3541402996
299	.long	1072716208
300	.long	2759177317
301	.long	1015903202
302	.long	702412510
303	.long	1072722027
304	.long	3803266087
305	.long	3163328991
306	.long	410360776
307	.long	1072727877
308	.long	1269990655
309	.long	1013024446
310	.long	3402036099
311	.long	1072733758
312	.long	405889334
313	.long	1016154232
314	.long	1828292879
315	.long	1072739672
316	.long	1255956747
317	.long	1016636974
318	.long	728909815
319	.long	1072745618
320	.long	383930225
321	.long	1016078044
322	.long	852742562
323	.long	1072751596
324	.long	667253586
325	.long	1010842135
326	.long	2952712987
327	.long	1072757606
328	.long	3293494651
329	.long	3161168877
330	.long	3490863953
331	.long	1072763649
332	.long	960797498
333	.long	3163997456
334	.long	3228316108
335	.long	1072769725
336	.long	3010241991
337	.long	3159471380
338	.long	2930322912
339	.long	1072775834
340	.long	2599499422
341	.long	3163762623
342	.long	3366293073
343	.long	1072781976
344	.long	3119426314
345	.long	1015169130
346	.long	1014845819
347	.long	1072788152
348	.long	3117910646
349	.long	3162607681
350	.long	948735466
351	.long	1072794361
352	.long	3516338028
353	.long	3163623459
354	.long	3949972341
355	.long	1072800603
356	.long	2068408548
357	.long	1015962444
358	.long	2214878420
359	.long	1072806880
360	.long	892270087
361	.long	3164164998
362	.long	828946858
363	.long	1072813191
364	.long	10642492
365	.long	1016988014
366	.long	586995997
367	.long	1072819536
368	.long	41662348
369	.long	3163676568
370	.long	2288159958
371	.long	1072825915
372	.long	2169144469
373	.long	1015924597
374	.long	2440944790
375	.long	1072832329
376	.long	2492769774
377	.long	1015196030
378	.long	1853186616
379	.long	1072838778
380	.long	3066496371
381	.long	1016705150
382	.long	1337108031
383	.long	1072845262
384	.long	3203724452
385	.long	1015726421
386	.long	1709341917
387	.long	1072851781
388	.long	2571168217
389	.long	1015201075
390	.long	3790955393
391	.long	1072858335
392	.long	2352942462
393	.long	3164228666
394	.long	4112506593
395	.long	1072864925
396	.long	2947355221
397	.long	1015419624
398	.long	3504003472
399	.long	1072871551
400	.long	3594001060
401	.long	3158379228
402	.long	2799960843
403	.long	1072878213
404	.long	1423655381
405	.long	1016070727
406	.long	2839424854
407	.long	1072884911
408	.long	1171596163
409	.long	1014090255
410	.long	171030293
411	.long	1072891646
412	.long	3526460132
413	.long	1015477354
414	.long	4232894513
415	.long	1072898416
416	.long	2383938684
417	.long	1015717095
418	.long	2992903935
419	.long	1072905224
420	.long	2218154406
421	.long	1016276769
422	.long	1603444721
423	.long	1072912069
424	.long	1548633640
425	.long	3163249902
426	.long	926591435
427	.long	1072918951
428	.long	3208833762
429	.long	3163962090
430	.long	1829099622
431	.long	1072925870
432	.long	1016661181
433	.long	3164509581
434	.long	887463927
435	.long	1072932827
436	.long	3596744163
437	.long	3161842742
438	.long	3272845541
439	.long	1072939821
440	.long	928852419
441	.long	3164536824
442	.long	1276261410
443	.long	1072946854
444	.long	300981948
445	.long	1015732745
446	.long	78413852
447	.long	1072953925
448	.long	4183226867
449	.long	3164065827
450	.long	569847338
451	.long	1072961034
452	.long	472945272
453	.long	3160339305
454	.long	3645941911
455	.long	1072968181
456	.long	3814685081
457	.long	3162621917
458	.long	1617004845
459	.long	1072975368
460	.long	82804944
461	.long	1011391354
462	.long	3978100823
463	.long	1072982593
464	.long	3513027190
465	.long	1016894539
466	.long	3049340112
467	.long	1072989858
468	.long	3062915824
469	.long	1014219171
470	.long	4040676318
471	.long	1072997162
472	.long	4090609238
473	.long	1016712034
474	.long	3577096743
475	.long	1073004506
476	.long	2951496418
477	.long	1014842263
478	.long	2583551245
479	.long	1073011890
480	.long	3161094195
481	.long	1016655067
482	.long	1990012071
483	.long	1073019314
484	.long	3529070563
485	.long	3163861769
486	.long	2731501122
487	.long	1073026778
488	.long	1774031855
489	.long	3163518597
490	.long	1453150082
491	.long	1073034283
492	.long	498154669
493	.long	3162536638
494	.long	3395129871
495	.long	1073041828
496	.long	4025345435
497	.long	3163383964
498	.long	917841882
499	.long	1073049415
500	.long	18715565
501	.long	1016707884
502	.long	3566716925
503	.long	1073057042
504	.long	1536826856
505	.long	1015191009
506	.long	3712504873
507	.long	1073064711
508	.long	88491949
509	.long	1016476236
510	.long	2321106615
511	.long	1073072422
512	.long	2171176610
513	.long	1010584347
514	.long	363667784
515	.long	1073080175
516	.long	813753950
517	.long	1016833785
518	.long	3111574537
519	.long	1073087969
520	.long	2606161479
521	.long	3163808322
522	.long	2956612997
523	.long	1073095806
524	.long	2118169751
525	.long	3163784129
526	.long	885834528
527	.long	1073103686
528	.long	1973258547
529	.long	3163310140
530	.long	2186617381
531	.long	1073111608
532	.long	2270764084
533	.long	3164321289
534	.long	3561793907
535	.long	1073119573
536	.long	1157054053
537	.long	1012938926
538	.long	1719614413
539	.long	1073127582
540	.long	330458198
541	.long	3164331316
542	.long	1963711167
543	.long	1073135634
544	.long	1744767757
545	.long	3161622870
546	.long	1013258799
547	.long	1073143730
548	.long	1748797611
549	.long	3161177658
550	.long	4182873220
551	.long	1073151869
552	.long	629542646
553	.long	3163044879
554	.long	3907805044
555	.long	1073160053
556	.long	2257091225
557	.long	3162598983
558	.long	1218806132
559	.long	1073168282
560	.long	1818613052
561	.long	3163597017
562	.long	1447192521
563	.long	1073176555
564	.long	1462857171
565	.long	3163563097
566	.long	1339972927
567	.long	1073184873
568	.long	167908909
569	.long	1016620728
570	.long	1944781191
571	.long	1073193236
572	.long	3993278767
573	.long	3162772855
574	.long	19972402
575	.long	1073201645
576	.long	3507899862
577	.long	1017057868
578	.long	919555682
579	.long	1073210099
580	.long	3121969534
581	.long	1013996802
582	.long	1413356050
583	.long	1073218599
584	.long	1651349291
585	.long	3163716742
586	.long	2571947539
587	.long	1073227145
588	.long	3558159064
589	.long	3164425245
590	.long	1176749997
591	.long	1073235738
592	.long	2738998779
593	.long	3163084420
594	.long	2604962541
595	.long	1073244377
596	.long	2614425274
597	.long	3164587768
598	.long	3649726105
599	.long	1073253063
600	.long	4085036346
601	.long	1016698050
602	.long	1110089947
603	.long	1073261797
604	.long	1451641639
605	.long	1016523249
606	.long	380978316
607	.long	1073270578
608	.long	854188970
609	.long	3161511262
610	.long	2568320822
611	.long	1073279406
612	.long	2732824428
613	.long	1015401491
614	.long	194117574
615	.long	1073288283
616	.long	777528612
617	.long	3164460665
618	.long	2966275557
619	.long	1073297207
620	.long	2176155324
621	.long	3160891335
622	.long	3418903055
623	.long	1073306180
624	.long	2527457337
625	.long	3161869180
626	.long	2682146384
627	.long	1073315202
628	.long	2082178513
629	.long	3164411995
630	.long	1892288442
631	.long	1073324273
632	.long	2446255666
633	.long	3163648957
634	.long	2191782032
635	.long	1073333393
636	.long	2960257726
637	.long	1014791238
638	.long	434316067
639	.long	1073342563
640	.long	2028358766
641	.long	1014506698
642	.long	2069751141
643	.long	1073351782
644	.long	1562170675
645	.long	3163773257
646	.long	3964284211
647	.long	1073361051
648	.long	2111583915
649	.long	1016475740
650	.long	2990417245
651	.long	1073370371
652	.long	3683467745
653	.long	3164417902
654	.long	321958744
655	.long	1073379742
656	.long	3401933767
657	.long	1016843134
658	.long	1434058175
659	.long	1073389163
660	.long	251133233
661	.long	1016134345
662	.long	3218338682
663	.long	1073398635
664	.long	3404164304
665	.long	3163525684
666	.long	2572866477
667	.long	1073408159
668	.long	878562433
669	.long	1016570317
670	.long	697153126
671	.long	1073417735
672	.long	1283515429
673	.long	3164331765
674	.long	3092190715
675	.long	1073427362
676	.long	814012168
677	.long	3160571998
678	.long	2380618042
679	.long	1073437042
680	.long	3149557219
681	.long	3164369375
682	.long	4076559943
683	.long	1073446774
684	.long	2119478331
685	.long	3161806927
686	.long	815859274
687	.long	1073456560
688	.long	240396590
689	.long	3164536019
690	.long	2420883922
691	.long	1073466398
692	.long	2049810052
693	.long	1015168464
694	.long	1540824585
695	.long	1073476290
696	.long	1064017011
697	.long	3164536266
698	.long	3716502172
699	.long	1073486235
700	.long	2303740125
701	.long	1015091301
702	.long	1610600570
703	.long	1073496235
704	.long	3766732298
705	.long	1016808759
706	.long	777507147
707	.long	1073506289
708	.long	4282924205
709	.long	1016236109
710	.long	2483480501
711	.long	1073516397
712	.long	1216371780
713	.long	1014082748
714	.long	3706687593
715	.long	1073526560
716	.long	3521726940
717	.long	1014301643
718	.long	1432208378
719	.long	1073536779
720	.long	1401068914
721	.long	3163412539
722	.long	1242007932
723	.long	1073547053
724	.long	1132034716
725	.long	3164388407
726	.long	135105010
727	.long	1073557383
728	.long	1906148728
729	.long	3164424315
730	.long	3707479175
731	.long	1073567768
732	.long	3613079303
733	.long	1015213314
734	.long	382305176
735	.long	1073578211
736	.long	2347622376
737	.long	3163627201
738	.long	64696965
739	.long	1073588710
740	.long	1768797490
741	.long	1016865536
742	.long	4076975200
743	.long	1073599265
744	.long	2029000899
745	.long	1016257111
746	.long	863738719
747	.long	1073609879
748	.long	1326992220
749	.long	3163661773
750	.long	351641897
751	.long	1073620550
752	.long	2172261526
753	.long	3164059175
754	.long	3884662774
755	.long	1073631278
756	.long	2158611599
757	.long	1015258761
758	.long	4224142467
759	.long	1073642065
760	.long	3389820386
761	.long	1016255778
762	.long	2728693978
763	.long	1073652911
764	.long	396109971
765	.long	3164511267
766	.long	764307441
767	.long	1073663816
768	.long	3021057420
769	.long	3164378099
770	.long	3999357479
771	.long	1073674779
772	.long	2258941616
773	.long	1016973300
774	.long	929806999
775	.long	1073685803
776	.long	3205336643
777	.long	1016308133
778	.long	1533953344
779	.long	1073696886
780	.long	769171851
781	.long	1016714209
782	.long	2912730644
783	.long	1073708029
784	.long	3490067722
785	.long	3164453650
786	.long	2174652632
787	.long	1073719233
788	.long	4087714590
789	.long	1015498835
790	.long	730821105
791	.long	1073730498
792	.long	2523232743
793	.long	1013115764
794	.long	0
795	.long	1072693248
796	.long	0
797	.long	0
798	.long	730821105
799	.long	1072681922
800	.long	2523232743
801	.long	1012067188
802	.long	2174652632
803	.long	1072670657
804	.long	4087714590
805	.long	1014450259
806	.long	2912730644
807	.long	1072659453
808	.long	3490067722
809	.long	3163405074
810	.long	1533953344
811	.long	1072648310
812	.long	769171851
813	.long	1015665633
814	.long	929806999
815	.long	1072637227
816	.long	3205336643
817	.long	1015259557
818	.long	3999357479
819	.long	1072626203
820	.long	2258941616
821	.long	1015924724
822	.long	764307441
823	.long	1072615240
824	.long	3021057420
825	.long	3163329523
826	.long	2728693978
827	.long	1072604335
828	.long	396109971
829	.long	3163462691
830	.long	4224142467
831	.long	1072593489
832	.long	3389820386
833	.long	1015207202
834	.long	3884662774
835	.long	1072582702
836	.long	2158611599
837	.long	1014210185
838	.long	351641897
839	.long	1072571974
840	.long	2172261526
841	.long	3163010599
842	.long	863738719
843	.long	1072561303
844	.long	1326992220
845	.long	3162613197
846	.long	4076975200
847	.long	1072550689
848	.long	2029000899
849	.long	1015208535
850	.long	64696965
851	.long	1072540134
852	.long	1768797490
853	.long	1015816960
854	.long	382305176
855	.long	1072529635
856	.long	2347622376
857	.long	3162578625
858	.long	3707479175
859	.long	1072519192
860	.long	3613079303
861	.long	1014164738
862	.long	135105010
863	.long	1072508807
864	.long	1906148728
865	.long	3163375739
866	.long	1242007932
867	.long	1072498477
868	.long	1132034716
869	.long	3163339831
870	.long	1432208378
871	.long	1072488203
872	.long	1401068914
873	.long	3162363963
874	.long	3706687593
875	.long	1072477984
876	.long	3521726940
877	.long	1013253067
878	.long	2483480501
879	.long	1072467821
880	.long	1216371780
881	.long	1013034172
882	.long	777507147
883	.long	1072457713
884	.long	4282924205
885	.long	1015187533
886	.long	1610600570
887	.long	1072447659
888	.long	3766732298
889	.long	1015760183
890	.long	3716502172
891	.long	1072437659
892	.long	2303740125
893	.long	1014042725
894	.long	1540824585
895	.long	1072427714
896	.long	1064017011
897	.long	3163487690
898	.long	2420883922
899	.long	1072417822
900	.long	2049810052
901	.long	1014119888
902	.long	815859274
903	.long	1072407984
904	.long	240396590
905	.long	3163487443
906	.long	4076559943
907	.long	1072398198
908	.long	2119478331
909	.long	3160758351
910	.long	2380618042
911	.long	1072388466
912	.long	3149557219
913	.long	3163320799
914	.long	3092190715
915	.long	1072378786
916	.long	814012168
917	.long	3159523422
918	.long	697153126
919	.long	1072369159
920	.long	1283515429
921	.long	3163283189
922	.long	2572866477
923	.long	1072359583
924	.long	878562433
925	.long	1015521741
926	.long	3218338682
927	.long	1072350059
928	.long	3404164304
929	.long	3162477108
930	.long	1434058175
931	.long	1072340587
932	.long	251133233
933	.long	1015085769
934	.long	321958744
935	.long	1072331166
936	.long	3401933767
937	.long	1015794558
938	.long	2990417245
939	.long	1072321795
940	.long	3683467745
941	.long	3163369326
942	.long	3964284211
943	.long	1072312475
944	.long	2111583915
945	.long	1015427164
946	.long	2069751141
947	.long	1072303206
948	.long	1562170675
949	.long	3162724681
950	.long	434316067
951	.long	1072293987
952	.long	2028358766
953	.long	1013458122
954	.long	2191782032
955	.long	1072284817
956	.long	2960257726
957	.long	1013742662
958	.long	1892288442
959	.long	1072275697
960	.long	2446255666
961	.long	3162600381
962	.long	2682146384
963	.long	1072266626
964	.long	2082178513
965	.long	3163363419
966	.long	3418903055
967	.long	1072257604
968	.long	2527457337
969	.long	3160820604
970	.long	2966275557
971	.long	1072248631
972	.long	2176155324
973	.long	3159842759
974	.long	194117574
975	.long	1072239707
976	.long	777528612
977	.long	3163412089
978	.long	2568320822
979	.long	1072230830
980	.long	2732824428
981	.long	1014352915
982	.long	380978316
983	.long	1072222002
984	.long	854188970
985	.long	3160462686
986	.long	1110089947
987	.long	1072213221
988	.long	1451641639
989	.long	1015474673
990	.long	3649726105
991	.long	1072204487
992	.long	4085036346
993	.long	1015649474
994	.long	2604962541
995	.long	1072195801
996	.long	2614425274
997	.long	3163539192
998	.long	1176749997
999	.long	1072187162
1000	.long	2738998779
1001	.long	3162035844
1002	.long	2571947539
1003	.long	1072178569
1004	.long	3558159064
1005	.long	3163376669
1006	.long	1413356050
1007	.long	1072170023
1008	.long	1651349291
1009	.long	3162668166
1010	.long	919555682
1011	.long	1072161523
1012	.long	3121969534
1013	.long	1012948226
1014	.long	19972402
1015	.long	1072153069
1016	.long	3507899862
1017	.long	1016009292
1018	.long	1944781191
1019	.long	1072144660
1020	.long	3993278767
1021	.long	3161724279
1022	.long	1339972927
1023	.long	1072136297
1024	.long	167908909
1025	.long	1015572152
1026	.long	1447192521
1027	.long	1072127979
1028	.long	1462857171
1029	.long	3162514521
1030	.long	1218806132
1031	.long	1072119706
1032	.long	1818613052
1033	.long	3162548441
1034	.long	3907805044
1035	.long	1072111477
1036	.long	2257091225
1037	.long	3161550407
1038	.long	4182873220
1039	.long	1072103293
1040	.long	629542646
1041	.long	3161996303
1042	.long	1013258799
1043	.long	1072095154
1044	.long	1748797611
1045	.long	3160129082
1046	.long	1963711167
1047	.long	1072087058
1048	.long	1744767757
1049	.long	3160574294
1050	.long	1719614413
1051	.long	1072079006
1052	.long	330458198
1053	.long	3163282740
1054	.long	3561793907
1055	.long	1072070997
1056	.long	1157054053
1057	.long	1011890350
1058	.long	2186617381
1059	.long	1072063032
1060	.long	2270764084
1061	.long	3163272713
1062	.long	885834528
1063	.long	1072055110
1064	.long	1973258547
1065	.long	3162261564
1066	.long	2956612997
1067	.long	1072047230
1068	.long	2118169751
1069	.long	3162735553
1070	.long	3111574537
1071	.long	1072039393
1072	.long	2606161479
1073	.long	3162759746
1074	.long	363667784
1075	.long	1072031599
1076	.long	813753950
1077	.long	1015785209
1078	.long	2321106615
1079	.long	1072023846
1080	.long	2171176610
1081	.long	1009535771
1082	.long	3712504873
1083	.long	1072016135
1084	.long	88491949
1085	.long	1015427660
1086	.long	3566716925
1087	.long	1072008466
1088	.long	1536826856
1089	.long	1014142433
1090	.long	917841882
1091	.long	1072000839
1092	.long	18715565
1093	.long	1015659308
1094	.long	3395129871
1095	.long	1071993252
1096	.long	4025345435
1097	.long	3162335388
1098	.long	1453150082
1099	.long	1071985707
1100	.long	498154669
1101	.long	3161488062
1102	.long	2731501122
1103	.long	1071978202
1104	.long	1774031855
1105	.long	3162470021
1106	.long	1990012071
1107	.long	1071970738
1108	.long	3529070563
1109	.long	3162813193
1110	.long	2583551245
1111	.long	1071963314
1112	.long	3161094195
1113	.long	1015606491
1114	.long	3577096743
1115	.long	1071955930
1116	.long	2951496418
1117	.long	1013793687
1118	.long	4040676318
1119	.long	1071948586
1120	.long	4090609238
1121	.long	1015663458
1122	.long	3049340112
1123	.long	1071941282
1124	.long	3062915824
1125	.long	1013170595
1126	.long	3978100823
1127	.long	1071934017
1128	.long	3513027190
1129	.long	1015845963
1130	.long	1617004845
1131	.long	1071926792
1132	.long	82804944
1133	.long	1010342778
1134	.long	3645941911
1135	.long	1071919605
1136	.long	3814685081
1137	.long	3161573341
1138	.long	569847338
1139	.long	1071912458
1140	.long	472945272
1141	.long	3159290729
1142	.long	78413852
1143	.long	1071905349
1144	.long	4183226867
1145	.long	3163017251
1146	.long	1276261410
1147	.long	1071898278
1148	.long	300981948
1149	.long	1014684169
1150	.long	3272845541
1151	.long	1071891245
1152	.long	928852419
1153	.long	3163488248
1154	.long	887463927
1155	.long	1071884251
1156	.long	3596744163
1157	.long	3160794166
1158	.long	1829099622
1159	.long	1071877294
1160	.long	1016661181
1161	.long	3163461005
1162	.long	926591435
1163	.long	1071870375
1164	.long	3208833762
1165	.long	3162913514
1166	.long	1603444721
1167	.long	1071863493
1168	.long	1548633640
1169	.long	3162201326
1170	.long	2992903935
1171	.long	1071856648
1172	.long	2218154406
1173	.long	1015228193
1174	.long	4232894513
1175	.long	1071849840
1176	.long	2383938684
1177	.long	1014668519
1178	.long	171030293
1179	.long	1071843070
1180	.long	3526460132
1181	.long	1014428778
1182	.long	2839424854
1183	.long	1071836335
1184	.long	1171596163
1185	.long	1013041679
1186	.long	2799960843
1187	.long	1071829637
1188	.long	1423655381
1189	.long	1015022151
1190	.long	3504003472
1191	.long	1071822975
1192	.long	3594001060
1193	.long	3157330652
1194	.long	4112506593
1195	.long	1071816349
1196	.long	2947355221
1197	.long	1014371048
1198	.long	3790955393
1199	.long	1071809759
1200	.long	2352942462
1201	.long	3163180090
1202	.long	1709341917
1203	.long	1071803205
1204	.long	2571168217
1205	.long	1014152499
1206	.long	1337108031
1207	.long	1071796686
1208	.long	3203724452
1209	.long	1014677845
1210	.long	1853186616
1211	.long	1071790202
1212	.long	3066496371
1213	.long	1015656574
1214	.long	2440944790
1215	.long	1071783753
1216	.long	2492769774
1217	.long	1014147454
1218	.long	2288159958
1219	.long	1071777339
1220	.long	2169144469
1221	.long	1014876021
1222	.long	586995997
1223	.long	1071770960
1224	.long	41662348
1225	.long	3162627992
1226	.long	828946858
1227	.long	1071764615
1228	.long	10642492
1229	.long	1015939438
1230	.long	2214878420
1231	.long	1071758304
1232	.long	892270087
1233	.long	3163116422
1234	.long	3949972341
1235	.long	1071752027
1236	.long	2068408548
1237	.long	1014913868
1238	.long	948735466
1239	.long	1071745785
1240	.long	3516338028
1241	.long	3162574883
1242	.long	1014845819
1243	.long	1071739576
1244	.long	3117910646
1245	.long	3161559105
1246	.long	3366293073
1247	.long	1071733400
1248	.long	3119426314
1249	.long	1014120554
1250	.long	2930322912
1251	.long	1071727258
1252	.long	2599499422
1253	.long	3162714047
1254	.long	3228316108
1255	.long	1071721149
1256	.long	3010241991
1257	.long	3158422804
1258	.long	3490863953
1259	.long	1071715073
1260	.long	960797498
1261	.long	3162948880
1262	.long	2952712987
1263	.long	1071709030
1264	.long	3293494651
1265	.long	3160120301
1266	.long	852742562
1267	.long	1071703020
1268	.long	667253586
1269	.long	1009793559
1270	.long	728909815
1271	.long	1071697042
1272	.long	383930225
1273	.long	1015029468
1274	.long	1828292879
1275	.long	1071691096
1276	.long	1255956747
1277	.long	1015588398
1278	.long	3402036099
1279	.long	1071685182
1280	.long	405889334
1281	.long	1015105656
1282	.long	410360776
1283	.long	1071679301
1284	.long	1269990655
1285	.long	1011975870
1286	.long	702412510
1287	.long	1071673451
1288	.long	3803266087
1289	.long	3162280415
1290	.long	3541402996
1291	.long	1071667632
1292	.long	2759177317
1293	.long	1014854626
1294	.long	3899555717
1295	.long	1071661845
1296	.long	427280750
1297	.long	3162546972
1298	.long	1048019041
1299	.long	1071656090
1300	.long	1398474845
1301	.long	3160510595
1302	.long	2851812149
1303	.long	1071650365
1304	.long	2595802551
1305	.long	1015767337
1306	.long	0
1307	.long	1127743488
1308	.long	0
1309	.long	3275227136
1310	.long	3607404736
1311	.long	1044146952
1312	.long	3607404736
1313	.long	3191630600
1314	.long	4277811695
1315	.long	1063661122
1316	.long	4277811695
1317	.long	3211144770
1318	.long	2140175755
1319	.long	1033864261
1320	.long	2140175755
1321	.long	1033864261
1322	.long	4289495988
1323	.long	1054113747
1324	.long	4289495988
1325	.long	1054113747
1326	.long	4277811695
1327	.long	1064709698
1328	.long	4277811695
1329	.long	3212193346
1330	.long	1610612736
1331	.long	1080497479
1332	.long	4166901572
1333	.long	1053077003
1334	.long	3078135644
1335	.long	1049787983
1336	.long	381774870
1337	.long	1062650220
1338	.long	436314137
1339	.long	1056571808
1340	.long	1431655765
1341	.long	1067799893
1342	.long	4160749568
1343	.long	2147483647
1344	.long	0
1345	.long	1072693248
1346	.type	static_const_table,@object
1347	.size	static_const_table,4256
1348	.data
1349	.section .note.GNU-stack, ""
1350# End
1351