blob: 3ee21075f5c6609a6a8d56e8584d820746ef9f2d [file] [log] [blame]
Jingwei Zhang5d4f0e62014-10-31 18:29:18 +08001/*
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// Polynomials coefficients and other constants.
36//
37// Note that in this algorithm, there is a different polynomial for
38// each breakpoint, so there are 32 sets of polynomial coefficients
39// as well as 32 instances of the other constants.
40//
41// The polynomial coefficients and constants are offset from the start
42// of the main block as follows:
43//
44// 0: c8 | c0
45// 16: c9 | c1
46// 32: c10 | c2
47// 48: c11 | c3
48// 64: c12 | c4
49// 80: c13 | c5
50// 96: c14 | c6
51// 112: c15 | c7
52// 128: T_hi
53// 136: T_lo
54// 144: Sigma
55// 152: T_hl
56// 160: Tau
57// 168: Mask
58// 176: (end of block)
59//
60// The total table size is therefore 5632 bytes.
61//
62// Note that c0 and c1 are always zero. We could try storing
63// other constants here, and just loading the low part of the
64// SIMD register in these cases, after ensuring the high part
65// is zero.
66//
67// The higher terms of the polynomial are computed in the *low*
68// part of the SIMD register. This is so we can overlap the
69// multiplication by r^8 and the unpacking of the other part.
70//
71// The constants are:
72// T_hi + T_lo = accurate constant term in power series
73// Sigma + T_hl = accurate coefficient of r in power series (Sigma=1 bit)
74// Tau = multiplier for the reciprocal, always -1 or 0
75//
76// The basic reconstruction formula using these constants is:
77//
78// High = tau * recip_hi + t_hi
79// Med = (sgn * r + t_hl * r)_hi
80// Low = (sgn * r + t_hl * r)_lo +
81// tau * recip_lo + T_lo + (T_hl + sigma) * c + pol
82//
83// where pol = c0 + c1 * r + c2 * r^2 + ... + c15 * r^15
84//
85// (c0 = c1 = 0, but using them keeps SIMD regularity)
86//
87// We then do a compensated sum High + Med, add the low parts together
88// and then do the final sum.
89//
90// Here recip_hi + recip_lo is an accurate reciprocal of the remainder
91// modulo pi/2
92//
93// Special cases:
94// tan(NaN) = quiet NaN, and raise invalid exception
95// tan(INF) = NaN and raise invalid exception
96// tan(+/-0) = +/-0
97//
98/******************************************************************************/
99
100#include <private/bionic_asm.h>
101# -- Begin static_func
102 .text
103 .align __bionic_asm_align
104 .type static_func, @function
105static_func:
106..B1.1:
107 call ..L2
108..L2:
109 popl %eax
110 lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax
111 lea static_const_table@GOTOFF(%eax), %eax
112 ret
113 .size static_func,.-static_func
114# -- End static_func
115
116# -- Begin tan
117ENTRY(tan)
118# parameter 1: 8 + %ebp
119..B2.1:
120..B2.2:
121 pushl %ebp
122 movl %esp, %ebp
123 subl $120, %esp
124 movl %ebx, 56(%esp)
125 call static_func
126 movl %eax, %ebx
127 movsd 128(%esp), %xmm0
128 pextrw $3, %xmm0, %eax
129 andl $32767, %eax
130 subl $14368, %eax
131 cmpl $2216, %eax
132 ja .L_2TAG_PACKET_0.0.2
133 movapd 5840(%ebx), %xmm5
134 movapd 5856(%ebx), %xmm6
135 unpcklpd %xmm0, %xmm0
136 movapd 5712(%ebx), %xmm4
137 andpd %xmm0, %xmm4
138 movapd 5632(%ebx), %xmm1
139 mulpd %xmm0, %xmm1
140 orpd %xmm4, %xmm5
141 addpd %xmm5, %xmm1
142 movapd %xmm1, %xmm7
143 unpckhpd %xmm7, %xmm7
144 cvttsd2si %xmm7, %edx
145 cvttpd2dq %xmm1, %xmm1
146 cvtdq2pd %xmm1, %xmm1
147 mulpd %xmm6, %xmm1
148 movapd 5664(%ebx), %xmm3
149 movsd 5728(%ebx), %xmm5
150 addl $469248, %edx
151 movapd 5680(%ebx), %xmm4
152 mulpd %xmm1, %xmm3
153 andl $31, %edx
154 mulsd %xmm1, %xmm5
155 movl %edx, %ecx
156 mulpd %xmm1, %xmm4
157 shll $1, %ecx
158 subpd %xmm3, %xmm0
159 mulpd 5696(%ebx), %xmm1
160 addl %ecx, %edx
161 shll $2, %ecx
162 addl %ecx, %edx
163 addsd %xmm0, %xmm5
164 movapd %xmm0, %xmm2
165 subpd %xmm4, %xmm0
166 movsd 5744(%ebx), %xmm6
167 shll $4, %edx
168 lea (%ebx), %eax
169 andpd 5776(%ebx), %xmm5
170 movapd %xmm0, %xmm3
171 addl %edx, %eax
172 subpd %xmm0, %xmm2
173 unpckhpd %xmm0, %xmm0
174 divsd %xmm5, %xmm6
175 subpd %xmm4, %xmm2
176 movapd 16(%eax), %xmm7
177 subsd %xmm5, %xmm3
178 mulpd %xmm0, %xmm7
179 subpd %xmm1, %xmm2
180 movapd 48(%eax), %xmm1
181 mulpd %xmm0, %xmm1
182 movapd 96(%eax), %xmm4
183 mulpd %xmm0, %xmm4
184 addsd %xmm3, %xmm2
185 movapd %xmm0, %xmm3
186 mulpd %xmm0, %xmm0
187 addpd (%eax), %xmm7
188 addpd 32(%eax), %xmm1
189 mulpd %xmm0, %xmm1
190 addpd 80(%eax), %xmm4
191 addpd %xmm1, %xmm7
192 movapd 112(%eax), %xmm1
193 mulpd %xmm0, %xmm1
194 mulpd %xmm0, %xmm0
195 addpd %xmm1, %xmm4
196 movapd 64(%eax), %xmm1
197 mulpd %xmm0, %xmm1
198 addpd %xmm1, %xmm7
199 movapd %xmm3, %xmm1
200 mulpd %xmm0, %xmm3
201 mulsd %xmm0, %xmm0
202 mulpd 144(%eax), %xmm1
203 mulpd %xmm3, %xmm4
204 movapd %xmm1, %xmm3
205 addpd %xmm4, %xmm7
206 movapd %xmm1, %xmm4
207 mulsd %xmm7, %xmm0
208 unpckhpd %xmm7, %xmm7
209 addsd %xmm7, %xmm0
210 unpckhpd %xmm1, %xmm1
211 addsd %xmm1, %xmm3
212 subsd %xmm3, %xmm4
213 addsd %xmm4, %xmm1
214 movapd %xmm2, %xmm4
215 movsd 144(%eax), %xmm7
216 unpckhpd %xmm2, %xmm2
217 addsd 152(%eax), %xmm7
218 mulsd %xmm2, %xmm7
219 addsd 136(%eax), %xmm7
220 addsd %xmm1, %xmm7
221 addsd %xmm7, %xmm0
222 movsd 5744(%ebx), %xmm7
223 mulsd %xmm6, %xmm4
224 movsd 168(%eax), %xmm2
225 andpd %xmm6, %xmm2
226 mulsd %xmm2, %xmm5
227 mulsd 160(%eax), %xmm6
228 subsd %xmm5, %xmm7
229 subsd 128(%eax), %xmm2
230 subsd %xmm4, %xmm7
231 mulsd %xmm6, %xmm7
232 movapd %xmm3, %xmm4
233 subsd %xmm2, %xmm3
234 addsd %xmm3, %xmm2
235 subsd %xmm2, %xmm4
236 addsd %xmm4, %xmm0
237 subsd %xmm7, %xmm0
238 addsd %xmm3, %xmm0
239 movsd %xmm0, (%esp)
240 fldl (%esp)
241 jmp .L_2TAG_PACKET_1.0.2
242.L_2TAG_PACKET_0.0.2:
243 jg .L_2TAG_PACKET_2.0.2
244 shrl $4, %eax
245 cmpl $268434558, %eax
246 jne .L_2TAG_PACKET_3.0.2
247 movapd %xmm0, %xmm3
248 mulsd 5808(%ebx), %xmm3
249.L_2TAG_PACKET_3.0.2:
250 movsd 5792(%ebx), %xmm3
251 mulsd %xmm0, %xmm3
252 addsd %xmm0, %xmm3
253 mulsd 5808(%ebx), %xmm3
254 movsd %xmm3, (%esp)
255 fldl (%esp)
256 jmp .L_2TAG_PACKET_1.0.2
257.L_2TAG_PACKET_2.0.2:
258 movq 5712(%ebx), %xmm7
259 andpd %xmm0, %xmm7
260 xorpd %xmm0, %xmm7
261 ucomisd 5760(%ebx), %xmm7
262 je .L_2TAG_PACKET_4.0.2
263 subl $32, %esp
264 movsd %xmm0, (%esp)
265 lea 40(%esp), %eax
266 movl %eax, 8(%esp)
267 movl $2, %eax
268 movl %eax, 12(%esp)
269 call __libm_tancot_huge
270 addl $32, %esp
271 fldl 8(%esp)
272 jmp .L_2TAG_PACKET_1.0.2
273.L_2TAG_PACKET_4.0.2:
274 movq %xmm0, (%esp)
275 fldl (%esp)
276 fsubl (%esp)
277.L_2TAG_PACKET_1.0.2:
278 movl 56(%esp), %ebx
279 movl %ebp, %esp
280 popl %ebp
281 ret
282..B2.3:
283END(tan)
284# -- End tan
285
286# Start file scope ASM
Christopher Ferris995b8132015-03-13 17:43:52 -0700287ALIAS_SYMBOL(tanl, tan);
Jingwei Zhang5d4f0e62014-10-31 18:29:18 +0800288# End file scope ASM
289 .section .rodata, "a"
290 .align 16
291 .align 16
292static_const_table:
293 .long 0
294 .long 0
295 .long 0
296 .long 0
297 .long 2284589306
298 .long 1066820852
299 .long 0
300 .long 0
301 .long 0
302 .long 0
303 .long 0
304 .long 0
305 .long 1441186365
306 .long 1065494243
307 .long 1431655765
308 .long 1070945621
309 .long 0
310 .long 0
311 .long 0
312 .long 0
313 .long 236289504
314 .long 1064135997
315 .long 286331153
316 .long 1069617425
317 .long 0
318 .long 0
319 .long 0
320 .long 0
321 .long 1160476131
322 .long 1062722102
323 .long 463583772
324 .long 1068212666
325 .long 0
326 .long 0
327 .long 0
328 .long 0
329 .long 0
330 .long 1072693248
331 .long 0
332 .long 0
333 .long 0
334 .long 0
335 .long 0
336 .long 0
337 .long 1313038235
338 .long 1066745731
339 .long 0
340 .long 0
341 .long 1013878342
342 .long 1067152618
343 .long 0
344 .long 0
345 .long 3663426833
346 .long 1065725283
347 .long 3693284251
348 .long 1069118808
349 .long 650852232
350 .long 1065882376
351 .long 1996245381
352 .long 1071000265
353 .long 2008746170
354 .long 1064664197
355 .long 3055842593
356 .long 1068578846
357 .long 1495406348
358 .long 1064652437
359 .long 2269530157
360 .long 1069711235
361 .long 285563696
362 .long 1063576465
363 .long 1046897440
364 .long 1067705865
365 .long 233429731
366 .long 1063453151
367 .long 522045958
368 .long 1068476590
369 .long 2354785698
370 .long 1069102779
371 .long 1317599141
372 .long 1012432133
373 .long 0
374 .long 1072693248
375 .long 2828230105
376 .long 1065606626
377 .long 0
378 .long 0
379 .long 0
380 .long 0
381 .long 1512545955
382 .long 1068119047
383 .long 0
384 .long 0
385 .long 1127048698
386 .long 1067909459
387 .long 0
388 .long 0
389 .long 2300200450
390 .long 1067254767
391 .long 3593250296
392 .long 1070233561
393 .long 3009365544
394 .long 1066902117
395 .long 1127373050
396 .long 1071173457
397 .long 3046103305
398 .long 1066371299
399 .long 24583402
400 .long 1069723988
401 .long 4082511758
402 .long 1065914199
403 .long 3223889699
404 .long 1070020367
405 .long 548927984
406 .long 1065415756
407 .long 558065897
408 .long 1068949418
409 .long 680073315
410 .long 1064940726
411 .long 388873200
412 .long 1068944270
413 .long 3763679576
414 .long 1070167541
415 .long 1497360404
416 .long 1009710547
417 .long 0
418 .long 1072693248
419 .long 64931152
420 .long 1067729411
421 .long 0
422 .long 0
423 .long 0
424 .long 0
425 .long 2467582782
426 .long 1069256389
427 .long 0
428 .long 0
429 .long 162150096
430 .long 1068946420
431 .long 0
432 .long 0
433 .long 3702794237
434 .long 1068579152
435 .long 3631919291
436 .long 1070936926
437 .long 3456821413
438 .long 1068217218
439 .long 2031366438
440 .long 1071495745
441 .long 1596664020
442 .long 1067799281
443 .long 1509038701
444 .long 1070601643
445 .long 583171477
446 .long 1067510148
447 .long 3785344682
448 .long 1070618476
449 .long 2402036048
450 .long 1067075736
451 .long 3233018412
452 .long 1069913186
453 .long 411280568
454 .long 1066710556
455 .long 1065584192
456 .long 1069747896
457 .long 895247324
458 .long 1070819848
459 .long 500078909
460 .long 3161288781
461 .long 0
462 .long 1072693248
463 .long 729983843
464 .long 1068994194
465 .long 0
466 .long 0
467 .long 0
468 .long 0
469 .long 1458794562
470 .long 1070398550
471 .long 0
472 .long 0
473 .long 2857777489
474 .long 1070137637
475 .long 0
476 .long 0
477 .long 1024359517
478 .long 1069876531
479 .long 2616040238
480 .long 1071582937
481 .long 1609024636
482 .long 1069675088
483 .long 2529240549
484 .long 1071836633
485 .long 1510128600
486 .long 1069440113
487 .long 2251697184
488 .long 1071253687
489 .long 1262761453
490 .long 1069142850
491 .long 1263091857
492 .long 1071190461
493 .long 3043383486
494 .long 1068885191
495 .long 2476932470
496 .long 1070842002
497 .long 3659995028
498 .long 1068669200
499 .long 855891755
500 .long 1070696894
501 .long 2583490354
502 .long 1071284857
503 .long 3062633575
504 .long 1014008623
505 .long 0
506 .long 1072693248
507 .long 2550940471
508 .long 1069938201
509 .long 0
510 .long 0
511 .long 0
512 .long 0
513 .long 3422807297
514 .long 1071640847
515 .long 0
516 .long 0
517 .long 1151658053
518 .long 1071494715
519 .long 0
520 .long 0
521 .long 929607071
522 .long 1071346340
523 .long 1037049034
524 .long 1072037305
525 .long 2786928657
526 .long 1071215282
527 .long 1447406859
528 .long 1072265209
529 .long 3490952107
530 .long 1071090851
531 .long 3205232916
532 .long 1071968658
533 .long 1297344304
534 .long 1070977120
535 .long 1066110976
536 .long 1071946035
537 .long 3803721480
538 .long 1070871082
539 .long 1496754229
540 .long 1071807201
541 .long 2982550683
542 .long 1070773243
543 .long 4014441989
544 .long 1071736222
545 .long 419968236
546 .long 1071717047
547 .long 3451266538
548 .long 3163444811
549 .long 0
550 .long 1072693248
551 .long 2960267235
552 .long 1070745841
553 .long 0
554 .long 0
555 .long 0
556 .long 0
557 .long 724322768
558 .long 1072881308
559 .long 0
560 .long 0
561 .long 643153048
562 .long 1072905816
563 .long 0
564 .long 0
565 .long 4285079458
566 .long 1072928558
567 .long 3912524733
568 .long 1072622983
569 .long 118362272
570 .long 1072952754
571 .long 4107767972
572 .long 1072827408
573 .long 2689502883
574 .long 1072976922
575 .long 946523347
576 .long 1072772766
577 .long 573204189
578 .long 1073001761
579 .long 581531518
580 .long 1072826391
581 .long 1386236526
582 .long 1073026959
583 .long 3718905905
584 .long 1072832823
585 .long 1145558140
586 .long 1073052673
587 .long 513572637
588 .long 1072861969
589 .long 716700048
590 .long 1071997368
591 .long 547126769
592 .long 1015523525
593 .long 0
594 .long 1072693248
595 .long 1097907398
596 .long 1071420120
597 .long 0
598 .long 0
599 .long 0
600 .long 0
601 .long 3349892442
602 .long 1074290212
603 .long 0
604 .long 0
605 .long 3913197405
606 .long 1074501181
607 .long 0
608 .long 0
609 .long 2494034522
610 .long 1074739170
611 .long 1264738763
612 .long 1073084804
613 .long 1520293906
614 .long 1074899632
615 .long 1958936600
616 .long 1073411493
617 .long 2133649635
618 .long 1075052171
619 .long 4270740730
620 .long 1073574708
621 .long 1728930189
622 .long 1075224844
623 .long 1303998552
624 .long 1073799186
625 .long 618611933
626 .long 1075420255
627 .long 1769828046
628 .long 1073938542
629 .long 2200537986
630 .long 1075641421
631 .long 433361110
632 .long 1074105369
633 .long 719595600
634 .long 1072317184
635 .long 294527206
636 .long 3162140088
637 .long 0
638 .long 1073741824
639 .long 3811788216
640 .long 3218400550
641 .long 0
642 .long 0
643 .long 0
644 .long 0
645 .long 1704352102
646 .long 1075943001
647 .long 0
648 .long 0
649 .long 2284589306
650 .long 1076258036
651 .long 0
652 .long 0
653 .long 2211264291
654 .long 1076659010
655 .long 0
656 .long 1073741824
657 .long 1441186365
658 .long 1077028579
659 .long 1431655765
660 .long 1074091349
661 .long 876943673
662 .long 1077353622
663 .long 2863311531
664 .long 1074440874
665 .long 236289504
666 .long 1077767485
667 .long 286331153
668 .long 1074860305
669 .long 2805473311
670 .long 1078115278
671 .long 95443718
672 .long 1075163227
673 .long 1160476131
674 .long 1078450742
675 .long 463583772
676 .long 1075552698
677 .long 0
678 .long 1072693248
679 .long 0
680 .long 0
681 .long 0
682 .long 1073741824
683 .long 0
684 .long 0
685 .long 0
686 .long 0
687 .long 0
688 .long 0
689 .long 1330165971
690 .long 3207850745
691 .long 0
692 .long 0
693 .long 217536623
694 .long 1059109098
695 .long 0
696 .long 0
697 .long 3492120849
698 .long 3205151475
699 .long 602185705
700 .long 3215678092
701 .long 760422958
702 .long 1056312597
703 .long 555127889
704 .long 1067545266
705 .long 3139784124
706 .long 3202470837
707 .long 3690544014
708 .long 3213150171
709 .long 95707915
710 .long 1053635428
711 .long 4003114407
712 .long 1064581412
713 .long 2034926231
714 .long 3199711161
715 .long 3759536023
716 .long 3210559989
717 .long 3826928214
718 .long 1050893819
719 .long 3837960785
720 .long 1061790379
721 .long 1526325248
722 .long 3217967566
723 .long 2356426521
724 .long 1025423456
725 .long 0
726 .long 0
727 .long 457728975
728 .long 1071088276
729 .long 0
730 .long 1072693248
731 .long 0
732 .long 4294967288
733 .long 1398462608
734 .long 3207303968
735 .long 0
736 .long 0
737 .long 26205983
738 .long 1058461213
739 .long 0
740 .long 0
741 .long 56226238
742 .long 3204528612
743 .long 2754706541
744 .long 3215359511
745 .long 2187799823
746 .long 1055634437
747 .long 790323742
748 .long 1067402587
749 .long 1372385848
750 .long 3201651479
751 .long 4097292716
752 .long 3212856302
753 .long 3348210357
754 .long 1052830099
755 .long 2442796466
756 .long 1064337602
757 .long 862608142
758 .long 3198830754
759 .long 170296152
760 .long 3210060867
761 .long 3755571428
762 .long 1049933343
763 .long 3614866008
764 .long 1061361670
765 .long 719978496
766 .long 3217669096
767 .long 1998842465
768 .long 3174703977
769 .long 0
770 .long 0
771 .long 3749156607
772 .long 1071048258
773 .long 0
774 .long 1072693248
775 .long 0
776 .long 4294967288
777 .long 3120498638
778 .long 3206749304
779 .long 0
780 .long 0
781 .long 2773578114
782 .long 1058009312
783 .long 0
784 .long 0
785 .long 2030783676
786 .long 3203817873
787 .long 2223654598
788 .long 3215071936
789 .long 2976134650
790 .long 1054987244
791 .long 706390066
792 .long 1067217386
793 .long 4258437615
794 .long 3200900378
795 .long 1066252975
796 .long 3212391267
797 .long 815777514
798 .long 1051989462
799 .long 3202745457
800 .long 1064010682
801 .long 2493556375
802 .long 3198004753
803 .long 1046243251
804 .long 3209678971
805 .long 2593078846
806 .long 1049017717
807 .long 2763962276
808 .long 1060970161
809 .long 701480960
810 .long 3217377742
811 .long 3205862232
812 .long 3174660915
813 .long 0
814 .long 0
815 .long 2267016812
816 .long 1071015664
817 .long 0
818 .long 1072693248
819 .long 0
820 .long 4294967288
821 .long 2107155798
822 .long 3206166872
823 .long 0
824 .long 0
825 .long 2642992129
826 .long 1057424578
827 .long 0
828 .long 0
829 .long 1936992811
830 .long 3203204426
831 .long 1485063559
832 .long 3214682643
833 .long 1432914553
834 .long 1054319398
835 .long 3996381654
836 .long 1067075828
837 .long 2833029256
838 .long 3200223545
839 .long 2866066872
840 .long 3211982662
841 .long 2432888737
842 .long 1051234178
843 .long 3669764559
844 .long 1063748136
845 .long 2458496952
846 .long 3197170774
847 .long 1948234989
848 .long 3209098147
849 .long 2843698787
850 .long 1048163519
851 .long 3398041407
852 .long 1060559728
853 .long 2829230080
854 .long 3217092115
855 .long 1034046433
856 .long 3174271903
857 .long 0
858 .long 0
859 .long 298675305
860 .long 1070989821
861 .long 0
862 .long 1072693248
863 .long 0
864 .long 4294967288
865 .long 437603223
866 .long 3205589761
867 .long 0
868 .long 0
869 .long 759330352
870 .long 1057048511
871 .long 0
872 .long 0
873 .long 3107463368
874 .long 3202507988
875 .long 3144465176
876 .long 3214191500
877 .long 2290961810
878 .long 1053841035
879 .long 1618153340
880 .long 1066971547
881 .long 3836869393
882 .long 3199400272
883 .long 584032116
884 .long 3211469261
885 .long 1245704358
886 .long 1050626462
887 .long 4247487438
888 .long 1063561943
889 .long 1669034927
890 .long 3196274812
891 .long 3844233498
892 .long 3208626322
893 .long 2706958524
894 .long 1047411374
895 .long 3857199098
896 .long 1060281647
897 .long 3593904128
898 .long 3216590719
899 .long 3267547836
900 .long 3172163321
901 .long 0
902 .long 0
903 .long 4076712227
904 .long 1070970214
905 .long 0
906 .long 1072693248
907 .long 0
908 .long 4294967288
909 .long 3290090340
910 .long 3204793485
911 .long 0
912 .long 0
913 .long 3685760367
914 .long 1056668370
915 .long 0
916 .long 0
917 .long 2655163949
918 .long 3201674917
919 .long 628750575
920 .long 3213566872
921 .long 680140505
922 .long 1053299777
923 .long 2954464709
924 .long 1066900026
925 .long 803201619
926 .long 3198516435
927 .long 1466315631
928 .long 3210837162
929 .long 1611220163
930 .long 1049972438
931 .long 2766187256
932 .long 1063437894
933 .long 1804579484
934 .long 3195331491
935 .long 3695969289
936 .long 3207854418
937 .long 2617238373
938 .long 1046675948
939 .long 3095830084
940 .long 1060095334
941 .long 3789570048
942 .long 3216034914
943 .long 23826559
944 .long 3172048060
945 .long 0
946 .long 0
947 .long 3870939386
948 .long 1070956467
949 .long 0
950 .long 1072693248
951 .long 0
952 .long 4294967288
953 .long 1571758758
954 .long 3203672535
955 .long 0
956 .long 0
957 .long 113026373
958 .long 1056416381
959 .long 0
960 .long 0
961 .long 1913766298
962 .long 3200523326
963 .long 2507068734
964 .long 3212502004
965 .long 4000648818
966 .long 1053003803
967 .long 2446607349
968 .long 1066858259
969 .long 912662124
970 .long 3197333001
971 .long 1349489537
972 .long 3209765608
973 .long 3412972607
974 .long 1049641401
975 .long 1721283327
976 .long 1063366855
977 .long 1466691883
978 .long 3194116746
979 .long 3852528092
980 .long 3206760861
981 .long 285443293
982 .long 1046158380
983 .long 1758739894
984 .long 1059895449
985 .long 1858781184
986 .long 3214984212
987 .long 3447575948
988 .long 1024675855
989 .long 0
990 .long 0
991 .long 2242038011
992 .long 1070948320
993 .long 0
994 .long 1072693248
995 .long 0
996 .long 4294967288
997 .long 0
998 .long 0
999 .long 0
1000 .long 0
1001 .long 737611454
1002 .long 1056336527
1003 .long 0
1004 .long 0
1005 .long 0
1006 .long 0
1007 .long 0
1008 .long 0
1009 .long 3594790527
1010 .long 1052911621
1011 .long 381774871
1012 .long 1066844524
1013 .long 0
1014 .long 0
1015 .long 0
1016 .long 0
1017 .long 3303051618
1018 .long 1049456050
1019 .long 3154187623
1020 .long 1063343722
1021 .long 0
1022 .long 0
1023 .long 0
1024 .long 0
1025 .long 528061788
1026 .long 1045944910
1027 .long 2469719819
1028 .long 1059831159
1029 .long 0
1030 .long 0
1031 .long 0
1032 .long 0
1033 .long 0
1034 .long 0
1035 .long 1431655765
1036 .long 1070945621
1037 .long 0
1038 .long 1072693248
1039 .long 0
1040 .long 4294967288
1041 .long 1571758758
1042 .long 1056188887
1043 .long 0
1044 .long 0
1045 .long 113026373
1046 .long 1056416381
1047 .long 0
1048 .long 0
1049 .long 1913766298
1050 .long 1053039678
1051 .long 2507068734
1052 .long 1065018356
1053 .long 4000648818
1054 .long 1053003803
1055 .long 2446607349
1056 .long 1066858259
1057 .long 912662124
1058 .long 1049849353
1059 .long 1349489537
1060 .long 1062281960
1061 .long 3412972607
1062 .long 1049641401
1063 .long 1721283327
1064 .long 1063366855
1065 .long 1466691883
1066 .long 1046633098
1067 .long 3852528092
1068 .long 1059277213
1069 .long 285443293
1070 .long 1046158380
1071 .long 1758739894
1072 .long 1059895449
1073 .long 1858781184
1074 .long 1067500564
1075 .long 3447575948
1076 .long 3172159503
1077 .long 0
1078 .long 0
1079 .long 2242038011
1080 .long 1070948320
1081 .long 0
1082 .long 1072693248
1083 .long 0
1084 .long 4294967288
1085 .long 3290090340
1086 .long 1057309837
1087 .long 0
1088 .long 0
1089 .long 3685760367
1090 .long 1056668370
1091 .long 0
1092 .long 0
1093 .long 2655163949
1094 .long 1054191269
1095 .long 628750575
1096 .long 1066083224
1097 .long 680140505
1098 .long 1053299777
1099 .long 2954464709
1100 .long 1066900026
1101 .long 803201619
1102 .long 1051032787
1103 .long 1466315631
1104 .long 1063353514
1105 .long 1611220163
1106 .long 1049972438
1107 .long 2766187256
1108 .long 1063437894
1109 .long 1804579484
1110 .long 1047847843
1111 .long 3695969289
1112 .long 1060370770
1113 .long 2617238373
1114 .long 1046675948
1115 .long 3095830084
1116 .long 1060095334
1117 .long 3789570048
1118 .long 1068551266
1119 .long 23826559
1120 .long 1024564412
1121 .long 0
1122 .long 0
1123 .long 3870939386
1124 .long 1070956467
1125 .long 0
1126 .long 1072693248
1127 .long 0
1128 .long 4294967288
1129 .long 437603223
1130 .long 1058106113
1131 .long 0
1132 .long 0
1133 .long 759330352
1134 .long 1057048511
1135 .long 0
1136 .long 0
1137 .long 3107463368
1138 .long 1055024340
1139 .long 3144465176
1140 .long 1066707852
1141 .long 2290961810
1142 .long 1053841035
1143 .long 1618153340
1144 .long 1066971547
1145 .long 3836869393
1146 .long 1051916624
1147 .long 584032116
1148 .long 1063985613
1149 .long 1245704358
1150 .long 1050626462
1151 .long 4247487438
1152 .long 1063561943
1153 .long 1669034927
1154 .long 1048791164
1155 .long 3844233498
1156 .long 1061142674
1157 .long 2706958524
1158 .long 1047411374
1159 .long 3857199098
1160 .long 1060281647
1161 .long 3593904128
1162 .long 1069107071
1163 .long 3267547836
1164 .long 1024679673
1165 .long 0
1166 .long 0
1167 .long 4076712227
1168 .long 1070970214
1169 .long 0
1170 .long 1072693248
1171 .long 0
1172 .long 4294967288
1173 .long 2107155798
1174 .long 1058683224
1175 .long 0
1176 .long 0
1177 .long 2642992129
1178 .long 1057424578
1179 .long 0
1180 .long 0
1181 .long 1936992811
1182 .long 1055720778
1183 .long 1485063559
1184 .long 1067198995
1185 .long 1432914553
1186 .long 1054319398
1187 .long 3996381654
1188 .long 1067075828
1189 .long 2833029256
1190 .long 1052739897
1191 .long 2866066872
1192 .long 1064499014
1193 .long 2432888737
1194 .long 1051234178
1195 .long 3669764559
1196 .long 1063748136
1197 .long 2458496952
1198 .long 1049687126
1199 .long 1948234989
1200 .long 1061614499
1201 .long 2843698787
1202 .long 1048163519
1203 .long 3398041407
1204 .long 1060559728
1205 .long 2829230080
1206 .long 1069608467
1207 .long 1034046433
1208 .long 1026788255
1209 .long 0
1210 .long 0
1211 .long 298675305
1212 .long 1070989821
1213 .long 0
1214 .long 1072693248
1215 .long 0
1216 .long 4294967288
1217 .long 3120498638
1218 .long 1059265656
1219 .long 0
1220 .long 0
1221 .long 2773578114
1222 .long 1058009312
1223 .long 0
1224 .long 0
1225 .long 2030783676
1226 .long 1056334225
1227 .long 2223654598
1228 .long 1067588288
1229 .long 2976134650
1230 .long 1054987244
1231 .long 706390066
1232 .long 1067217386
1233 .long 4258437615
1234 .long 1053416730
1235 .long 1066252975
1236 .long 1064907619
1237 .long 815777514
1238 .long 1051989462
1239 .long 3202745457
1240 .long 1064010682
1241 .long 2493556375
1242 .long 1050521105
1243 .long 1046243251
1244 .long 1062195323
1245 .long 2593078846
1246 .long 1049017717
1247 .long 2763962276
1248 .long 1060970161
1249 .long 701480960
1250 .long 1069894094
1251 .long 3205862232
1252 .long 1027177267
1253 .long 0
1254 .long 0
1255 .long 2267016812
1256 .long 1071015664
1257 .long 0
1258 .long 1072693248
1259 .long 0
1260 .long 4294967288
1261 .long 1398462608
1262 .long 1059820320
1263 .long 0
1264 .long 0
1265 .long 26205983
1266 .long 1058461213
1267 .long 0
1268 .long 0
1269 .long 56226238
1270 .long 1057044964
1271 .long 2754706541
1272 .long 1067875863
1273 .long 2187799823
1274 .long 1055634437
1275 .long 790323742
1276 .long 1067402587
1277 .long 1372385848
1278 .long 1054167831
1279 .long 4097292716
1280 .long 1065372654
1281 .long 3348210357
1282 .long 1052830099
1283 .long 2442796466
1284 .long 1064337602
1285 .long 862608142
1286 .long 1051347106
1287 .long 170296152
1288 .long 1062577219
1289 .long 3755571428
1290 .long 1049933343
1291 .long 3614866008
1292 .long 1061361670
1293 .long 719978496
1294 .long 1070185448
1295 .long 1998842465
1296 .long 1027220329
1297 .long 0
1298 .long 0
1299 .long 3749156607
1300 .long 1071048258
1301 .long 0
1302 .long 1072693248
1303 .long 0
1304 .long 4294967288
1305 .long 1330165971
1306 .long 1060367097
1307 .long 0
1308 .long 0
1309 .long 217536623
1310 .long 1059109098
1311 .long 0
1312 .long 0
1313 .long 3492120849
1314 .long 1057667827
1315 .long 602185705
1316 .long 1068194444
1317 .long 760422958
1318 .long 1056312597
1319 .long 555127889
1320 .long 1067545266
1321 .long 3139784124
1322 .long 1054987189
1323 .long 3690544014
1324 .long 1065666523
1325 .long 95707915
1326 .long 1053635428
1327 .long 4003114407
1328 .long 1064581412
1329 .long 2034926231
1330 .long 1052227513
1331 .long 3759536023
1332 .long 1063076341
1333 .long 3826928214
1334 .long 1050893819
1335 .long 3837960785
1336 .long 1061790379
1337 .long 1526325248
1338 .long 1070483918
1339 .long 2356426521
1340 .long 3172907104
1341 .long 0
1342 .long 0
1343 .long 457728975
1344 .long 1071088276
1345 .long 0
1346 .long 1072693248
1347 .long 0
1348 .long 4294967288
1349 .long 1704352102
1350 .long 3223426649
1351 .long 0
1352 .long 0
1353 .long 2284589306
1354 .long 1076258036
1355 .long 0
1356 .long 0
1357 .long 2211264291
1358 .long 3224142658
1359 .long 0
1360 .long 3221225472
1361 .long 1441186365
1362 .long 1077028579
1363 .long 1431655765
1364 .long 1074091349
1365 .long 876943673
1366 .long 3224837270
1367 .long 2863311531
1368 .long 3221924522
1369 .long 236289504
1370 .long 1077767485
1371 .long 286331153
1372 .long 1074860305
1373 .long 2805473311
1374 .long 3225598926
1375 .long 95443718
1376 .long 3222646875
1377 .long 1160476131
1378 .long 1078450742
1379 .long 463583772
1380 .long 1075552698
1381 .long 0
1382 .long 3220176896
1383 .long 0
1384 .long 0
1385 .long 0
1386 .long 1073741824
1387 .long 0
1388 .long 0
1389 .long 0
1390 .long 0
1391 .long 0
1392 .long 0
1393 .long 3349892442
1394 .long 3221773860
1395 .long 0
1396 .long 0
1397 .long 3913197405
1398 .long 1074501181
1399 .long 0
1400 .long 0
1401 .long 2494034522
1402 .long 3222222818
1403 .long 1264738763
1404 .long 3220568452
1405 .long 1520293906
1406 .long 1074899632
1407 .long 1958936600
1408 .long 1073411493
1409 .long 2133649635
1410 .long 3222535819
1411 .long 4270740730
1412 .long 3221058356
1413 .long 1728930189
1414 .long 1075224844
1415 .long 1303998552
1416 .long 1073799186
1417 .long 618611933
1418 .long 3222903903
1419 .long 1769828046
1420 .long 3221422190
1421 .long 2200537986
1422 .long 1075641421
1423 .long 433361110
1424 .long 1074105369
1425 .long 719595600
1426 .long 3219800832
1427 .long 294527206
1428 .long 1014656440
1429 .long 0
1430 .long 1073741824
1431 .long 3811788216
1432 .long 3218400550
1433 .long 0
1434 .long 0
1435 .long 0
1436 .long 0
1437 .long 724322768
1438 .long 3220364956
1439 .long 0
1440 .long 0
1441 .long 643153048
1442 .long 1072905816
1443 .long 0
1444 .long 0
1445 .long 4285079458
1446 .long 3220412206
1447 .long 3912524733
1448 .long 3220106631
1449 .long 118362272
1450 .long 1072952754
1451 .long 4107767972
1452 .long 1072827408
1453 .long 2689502883
1454 .long 3220460570
1455 .long 946523347
1456 .long 3220256414
1457 .long 573204189
1458 .long 1073001761
1459 .long 581531518
1460 .long 1072826391
1461 .long 1386236526
1462 .long 3220510607
1463 .long 3718905905
1464 .long 3220316471
1465 .long 1145558140
1466 .long 1073052673
1467 .long 513572637
1468 .long 1072861969
1469 .long 716700048
1470 .long 3219481016
1471 .long 547126769
1472 .long 3163007173
1473 .long 0
1474 .long 1072693248
1475 .long 1097907398
1476 .long 1071420120
1477 .long 0
1478 .long 0
1479 .long 0
1480 .long 0
1481 .long 3422807297
1482 .long 3219124495
1483 .long 0
1484 .long 0
1485 .long 1151658053
1486 .long 1071494715
1487 .long 0
1488 .long 0
1489 .long 929607071
1490 .long 3218829988
1491 .long 1037049034
1492 .long 3219520953
1493 .long 2786928657
1494 .long 1071215282
1495 .long 1447406859
1496 .long 1072265209
1497 .long 3490952107
1498 .long 3218574499
1499 .long 3205232916
1500 .long 3219452306
1501 .long 1297344304
1502 .long 1070977120
1503 .long 1066110976
1504 .long 1071946035
1505 .long 3803721480
1506 .long 3218354730
1507 .long 1496754229
1508 .long 3219290849
1509 .long 2982550683
1510 .long 1070773243
1511 .long 4014441989
1512 .long 1071736222
1513 .long 419968236
1514 .long 3219200695
1515 .long 3451266538
1516 .long 1015961163
1517 .long 0
1518 .long 1072693248
1519 .long 2960267235
1520 .long 1070745841
1521 .long 0
1522 .long 0
1523 .long 0
1524 .long 0
1525 .long 1458794562
1526 .long 3217882198
1527 .long 0
1528 .long 0
1529 .long 2857777489
1530 .long 1070137637
1531 .long 0
1532 .long 0
1533 .long 1024359517
1534 .long 3217360179
1535 .long 2616040238
1536 .long 3219066585
1537 .long 1609024636
1538 .long 1069675088
1539 .long 2529240549
1540 .long 1071836633
1541 .long 1510128600
1542 .long 3216923761
1543 .long 2251697184
1544 .long 3218737335
1545 .long 1262761453
1546 .long 1069142850
1547 .long 1263091857
1548 .long 1071190461
1549 .long 3043383486
1550 .long 3216368839
1551 .long 2476932470
1552 .long 3218325650
1553 .long 3659995028
1554 .long 1068669200
1555 .long 855891755
1556 .long 1070696894
1557 .long 2583490354
1558 .long 3218768505
1559 .long 3062633575
1560 .long 3161492271
1561 .long 0
1562 .long 1072693248
1563 .long 2550940471
1564 .long 1069938201
1565 .long 0
1566 .long 0
1567 .long 0
1568 .long 0
1569 .long 2467582782
1570 .long 3216740037
1571 .long 0
1572 .long 0
1573 .long 162150096
1574 .long 1068946420
1575 .long 0
1576 .long 0
1577 .long 3702794237
1578 .long 3216062800
1579 .long 3631919291
1580 .long 3218420574
1581 .long 3456821413
1582 .long 1068217218
1583 .long 2031366438
1584 .long 1071495745
1585 .long 1596664020
1586 .long 3215282929
1587 .long 1509038701
1588 .long 3218085291
1589 .long 583171477
1590 .long 1067510148
1591 .long 3785344682
1592 .long 1070618476
1593 .long 2402036048
1594 .long 3214559384
1595 .long 3233018412
1596 .long 3217396834
1597 .long 411280568
1598 .long 1066710556
1599 .long 1065584192
1600 .long 1069747896
1601 .long 895247324
1602 .long 3218303496
1603 .long 500078909
1604 .long 1013805133
1605 .long 0
1606 .long 1072693248
1607 .long 729983843
1608 .long 1068994194
1609 .long 0
1610 .long 0
1611 .long 0
1612 .long 0
1613 .long 1512545955
1614 .long 3215602695
1615 .long 0
1616 .long 0
1617 .long 1127048698
1618 .long 1067909459
1619 .long 0
1620 .long 0
1621 .long 2300200450
1622 .long 3214738415
1623 .long 3593250296
1624 .long 3217717209
1625 .long 3009365544
1626 .long 1066902117
1627 .long 1127373050
1628 .long 1071173457
1629 .long 3046103305
1630 .long 3213854947
1631 .long 24583402
1632 .long 3217207636
1633 .long 4082511758
1634 .long 1065914199
1635 .long 3223889699
1636 .long 1070020367
1637 .long 548927984
1638 .long 3212899404
1639 .long 558065897
1640 .long 3216433066
1641 .long 680073315
1642 .long 1064940726
1643 .long 388873200
1644 .long 1068944270
1645 .long 3763679576
1646 .long 3217651189
1647 .long 1497360404
1648 .long 3157194195
1649 .long 0
1650 .long 1072693248
1651 .long 64931152
1652 .long 1067729411
1653 .long 0
1654 .long 0
1655 .long 0
1656 .long 0
1657 .long 1313038235
1658 .long 3214229379
1659 .long 0
1660 .long 0
1661 .long 1013878342
1662 .long 1067152618
1663 .long 0
1664 .long 0
1665 .long 3663426833
1666 .long 3213208931
1667 .long 3693284251
1668 .long 3216602456
1669 .long 650852232
1670 .long 1065882376
1671 .long 1996245381
1672 .long 1071000265
1673 .long 2008746170
1674 .long 3212147845
1675 .long 3055842593
1676 .long 3216062494
1677 .long 1495406348
1678 .long 1064652437
1679 .long 2269530157
1680 .long 1069711235
1681 .long 285563696
1682 .long 3211060113
1683 .long 1046897440
1684 .long 3215189513
1685 .long 233429731
1686 .long 1063453151
1687 .long 522045958
1688 .long 1068476590
1689 .long 2354785698
1690 .long 3216586427
1691 .long 1317599141
1692 .long 3159915781
1693 .long 0
1694 .long 1072693248
1695 .long 2828230105
1696 .long 1065606626
1697 .long 0
1698 .long 0
1699 .long 0
1700 .long 0
1701 .long 1841940611
1702 .long 1071931184
1703 .long 1841940611
1704 .long 1076125488
1705 .long 0
1706 .long 1131937792
1707 .long 0
1708 .long 1127743488
1709 .long 1413758976
1710 .long 1069097467
1711 .long 1413742592
1712 .long 1069097467
1713 .long 1734819840
1714 .long 3174229945
1715 .long 1280049152
1716 .long 1028033571
1717 .long 923219018
1718 .long 984130272
1719 .long 57701189
1720 .long 988383790
1721 .long 0
1722 .long 2147483648
1723 .long 0
1724 .long 2147483648
1725 .long 1734816687
1726 .long 1026746297
1727 .long 0
1728 .long 0
1729 .long 0
1730 .long 1072693248
1731 .long 0
1732 .long 0
1733 .long 0
1734 .long 2146435072
1735 .long 0
1736 .long 0
1737 .long 4294705152
1738 .long 4294967295
1739 .long 0
1740 .long 0
1741 .long 0
1742 .long 1130364928
1743 .long 0
1744 .long 0
1745 .long 0
1746 .long 1015021568
1747 .long 0
1748 .long 0
1749 .long 0
1750 .long 1017118720
1751 .long 0
1752 .long 0
1753 .long 0
1754 .long 1071644672
1755 .long 0
1756 .long 1071644672
1757 .long 0
1758 .long 1076887552
1759 .long 0
1760 .long 1072693248
1761 .type static_const_table,@object
1762 .size static_const_table,5872
1763 .data
1764 .hidden __libm_tancot_huge
1765 .section .note.GNU-stack, ""
1766# End