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//     1. RANGE REDUCTION
36//
37//     We perform an initial range reduction from X to r with
38//
39//          X =~= N * pi/32 + r
40//
41//     so that |r| <= pi/64 + epsilon. We restrict inputs to those
42//     where |N| <= 932560. Beyond this, the range reduction is
43//     insufficiently accurate. For extremely small inputs,
44//     denormalization can occur internally, impacting performance.
45//     This means that the main path is actually only taken for
46//     2^-252 <= |X| < 90112.
47//
48//     To avoid branches, we perform the range reduction to full
49//     accuracy each time.
50//
51//          X - N * (P_1 + P_2 + P_3)
52//
53//     where P_1 and P_2 are 32-bit numbers (so multiplication by N
54//     is exact) and P_3 is a 53-bit number. Together, these
55//     approximate pi well enough for all cases in the restricted
56//     range.
57//
58//     The main reduction sequence is:
59//
60//             y = 32/pi * x
61//             N = integer(y)
62//     (computed by adding and subtracting off SHIFTER)
63//
64//             m_1 = N * P_1
65//             m_2 = N * P_2
66//             r_1 = x - m_1
67//             r = r_1 - m_2
68//     (this r can be used for most of the calculation)
69//
70//             c_1 = r_1 - r
71//             m_3 = N * P_3
72//             c_2 = c_1 - m_2
73//             c = c_2 - m_3
74//
75//     2. MAIN ALGORITHM
76//
77//     The algorithm uses a table lookup based on B = M * pi / 32
78//     where M = N mod 64. The stored values are:
79//       sigma             closest power of 2 to cos(B)
80//       C_hl              53-bit cos(B) - sigma
81//       S_hi + S_lo       2 * 53-bit sin(B)
82//
83//     The computation is organized as follows:
84//
85//          sin(B + r + c) = [sin(B) + sigma * r] +
86//                           r * (cos(B) - sigma) +
87//                           sin(B) * [cos(r + c) - 1] +
88//                           cos(B) * [sin(r + c) - r]
89//
90//     which is approximately:
91//
92//          [S_hi + sigma * r] +
93//          C_hl * r +
94//          S_lo + S_hi * [(cos(r) - 1) - r * c] +
95//          (C_hl + sigma) * [(sin(r) - r) + c]
96//
97//     and this is what is actually computed. We separate this sum
98//     into four parts:
99//
100//          hi + med + pols + corr
101//
102//     where
103//
104//          hi       = S_hi + sigma r
105//          med      = C_hl * r
106//          pols     = S_hi * (cos(r) - 1) + (C_hl + sigma) * (sin(r) - r)
107//          corr     = S_lo + c * ((C_hl + sigma) - S_hi * r)
108//
109//     3. POLYNOMIAL
110//
111//     The polynomial S_hi * (cos(r) - 1) + (C_hl + sigma) *
112//     (sin(r) - r) can be rearranged freely, since it is quite
113//     small, so we exploit parallelism to the fullest.
114//
115//          psc4       =   SC_4 * r_1
116//          msc4       =   psc4 * r
117//          r2         =   r * r
118//          msc2       =   SC_2 * r2
119//          r4         =   r2 * r2
120//          psc3       =   SC_3 + msc4
121//          psc1       =   SC_1 + msc2
122//          msc3       =   r4 * psc3
123//          sincospols =   psc1 + msc3
124//          pols       =   sincospols *
125//                         <S_hi * r^2 | (C_hl + sigma) * r^3>
126//
127//     4. CORRECTION TERM
128//
129//     This is where the "c" component of the range reduction is
130//     taken into account; recall that just "r" is used for most of
131//     the calculation.
132//
133//          -c   = m_3 - c_2
134//          -d   = S_hi * r - (C_hl + sigma)
135//          corr = -c * -d + S_lo
136//
137//     5. COMPENSATED SUMMATIONS
138//
139//     The two successive compensated summations add up the high
140//     and medium parts, leaving just the low parts to add up at
141//     the end.
142//
143//          rs        =  sigma * r
144//          res_int   =  S_hi + rs
145//          k_0       =  S_hi - res_int
146//          k_2       =  k_0 + rs
147//          med       =  C_hl * r
148//          res_hi    =  res_int + med
149//          k_1       =  res_int - res_hi
150//          k_3       =  k_1 + med
151//
152//     6. FINAL SUMMATION
153//
154//     We now add up all the small parts:
155//
156//          res_lo = pols(hi) + pols(lo) + corr + k_1 + k_3
157//
158//     Now the overall result is just:
159//
160//          res_hi + res_lo
161//
162//     7. SMALL ARGUMENTS
163//
164//     If |x| < SNN (SNN meaning the smallest normal number), we
165//     simply perform 0.1111111 cdots 1111 * x. For SNN <= |x|, we
166//     do 2^-55 * (2^55 * x - x).
167//
168// Special cases:
169//  sin(NaN) = quiet NaN, and raise invalid exception
170//  sin(INF) = NaN and raise invalid exception
171//  sin(+/-0) = +/-0
172//
173/******************************************************************************/
174
175#include <private/bionic_asm.h>
176# -- Begin  static_func
177        .text
178        .align __bionic_asm_align
179        .type static_func, @function
180static_func:
181..B1.1:
182        call      ..L2
183..L2:
184        popl      %eax
185        lea       _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax
186        lea       static_const_table@GOTOFF(%eax), %eax
187        ret
188        .size   static_func,.-static_func
189# -- End  static_func
190
191# -- Begin  sin
192ENTRY(sin)
193# parameter 1: 8 + %ebp
194..B2.1:
195..B2.2:
196        pushl     %ebp
197        movl      %esp, %ebp
198        subl      $120, %esp
199        movl      %ebx, 56(%esp)
200        call      static_func
201        movl      %eax, %ebx
202        movsd     128(%esp), %xmm0
203        pextrw    $3, %xmm0, %eax
204        andl      $32767, %eax
205        subl      $12336, %eax
206        cmpl      $4293, %eax
207        ja        .L_2TAG_PACKET_0.0.2
208        movsd     2160(%ebx), %xmm1
209        mulsd     %xmm0, %xmm1
210        movsd     2272(%ebx), %xmm5
211        movapd    2256(%ebx), %xmm4
212        andpd     %xmm0, %xmm4
213        orps      %xmm4, %xmm5
214        movsd     2128(%ebx), %xmm3
215        movapd    2112(%ebx), %xmm2
216        addpd     %xmm5, %xmm1
217        cvttsd2si %xmm1, %edx
218        cvtsi2sdl %edx, %xmm1
219        mulsd     %xmm1, %xmm3
220        unpcklpd  %xmm1, %xmm1
221        addl      $1865216, %edx
222        movapd    %xmm0, %xmm4
223        andl      $63, %edx
224        movapd    2096(%ebx), %xmm5
225        lea       (%ebx), %eax
226        shll      $5, %edx
227        addl      %edx, %eax
228        mulpd     %xmm1, %xmm2
229        subsd     %xmm3, %xmm0
230        mulsd     2144(%ebx), %xmm1
231        subsd     %xmm3, %xmm4
232        movsd     8(%eax), %xmm7
233        unpcklpd  %xmm0, %xmm0
234        movapd    %xmm4, %xmm3
235        subsd     %xmm2, %xmm4
236        mulpd     %xmm0, %xmm5
237        subpd     %xmm2, %xmm0
238        movapd    2064(%ebx), %xmm6
239        mulsd     %xmm4, %xmm7
240        subsd     %xmm4, %xmm3
241        mulpd     %xmm0, %xmm5
242        mulpd     %xmm0, %xmm0
243        subsd     %xmm2, %xmm3
244        movapd    (%eax), %xmm2
245        subsd     %xmm3, %xmm1
246        movsd     24(%eax), %xmm3
247        addsd     %xmm3, %xmm2
248        subsd     %xmm2, %xmm7
249        mulsd     %xmm4, %xmm2
250        mulpd     %xmm0, %xmm6
251        mulsd     %xmm4, %xmm3
252        mulpd     %xmm0, %xmm2
253        mulpd     %xmm0, %xmm0
254        addpd     2080(%ebx), %xmm5
255        mulsd     (%eax), %xmm4
256        addpd     2048(%ebx), %xmm6
257        mulpd     %xmm0, %xmm5
258        movapd    %xmm3, %xmm0
259        addsd     8(%eax), %xmm3
260        mulpd     %xmm7, %xmm1
261        movapd    %xmm4, %xmm7
262        addsd     %xmm3, %xmm4
263        addpd     %xmm5, %xmm6
264        movsd     8(%eax), %xmm5
265        subsd     %xmm3, %xmm5
266        subsd     %xmm4, %xmm3
267        addsd     16(%eax), %xmm1
268        mulpd     %xmm2, %xmm6
269        addsd     %xmm0, %xmm5
270        addsd     %xmm7, %xmm3
271        addsd     %xmm5, %xmm1
272        addsd     %xmm3, %xmm1
273        addsd     %xmm6, %xmm1
274        unpckhpd  %xmm6, %xmm6
275        addsd     %xmm6, %xmm1
276        addsd     %xmm1, %xmm4
277        movsd     %xmm4, (%esp)
278        fldl      (%esp)
279        jmp       .L_2TAG_PACKET_1.0.2
280.L_2TAG_PACKET_0.0.2:
281        jg        .L_2TAG_PACKET_2.0.2
282        shrl      $4, %eax
283        cmpl      $268434685, %eax
284        jne       .L_2TAG_PACKET_3.0.2
285        movsd     %xmm0, (%esp)
286        fldl      (%esp)
287        jmp       .L_2TAG_PACKET_1.0.2
288.L_2TAG_PACKET_3.0.2:
289        movsd     2192(%ebx), %xmm3
290        mulsd     %xmm0, %xmm3
291        subsd     %xmm0, %xmm3
292        mulsd     2208(%ebx), %xmm3
293        movsd     %xmm0, (%esp)
294        fldl      (%esp)
295        jmp       .L_2TAG_PACKET_1.0.2
296.L_2TAG_PACKET_2.0.2:
297        movl      132(%esp), %eax
298        andl      $2146435072, %eax
299        cmpl      $2146435072, %eax
300        je        .L_2TAG_PACKET_4.0.2
301        subl      $32, %esp
302        movsd     %xmm0, (%esp)
303        lea       40(%esp), %eax
304        movl      %eax, 8(%esp)
305        movl      $2, %eax
306        movl      %eax, 12(%esp)
307        call      __libm_sincos_huge
308        addl      $32, %esp
309        fldl      16(%esp)
310        jmp       .L_2TAG_PACKET_1.0.2
311.L_2TAG_PACKET_4.0.2:
312        fldl      128(%esp)
313        fmull     2240(%ebx)
314.L_2TAG_PACKET_1.0.2:
315        movl      56(%esp), %ebx
316        movl      %ebp, %esp
317        popl      %ebp
318        ret
319..B2.3:
320END(sin)
321# -- End  sin
322
323# Start file scope ASM
324ALIAS_SYMBOL(sinl, sin);
325# End file scope ASM
326	.section .rodata, "a"
327	.align 16
328	.align 16
329static_const_table:
330	.long	0
331	.long	0
332	.long	0
333	.long	0
334	.long	0
335	.long	0
336	.long	0
337	.long	1072693248
338	.long	393047345
339	.long	3212032302
340	.long	3156849708
341	.long	1069094822
342	.long	3758096384
343	.long	3158189848
344	.long	0
345	.long	1072693248
346	.long	18115067
347	.long	3214126342
348	.long	1013556747
349	.long	1070135480
350	.long	3221225472
351	.long	3160567065
352	.long	0
353	.long	1072693248
354	.long	2476548698
355	.long	3215330282
356	.long	785751814
357	.long	1070765062
358	.long	2684354560
359	.long	3161838221
360	.long	0
361	.long	1072693248
362	.long	2255197647
363	.long	3216211105
364	.long	2796464483
365	.long	1071152610
366	.long	3758096384
367	.long	3160878317
368	.long	0
369	.long	1072693248
370	.long	1945768569
371	.long	3216915048
372	.long	939980347
373	.long	1071524701
374	.long	536870912
375	.long	1012796809
376	.long	0
377	.long	1072693248
378	.long	1539668340
379	.long	3217396327
380	.long	967731400
381	.long	1071761211
382	.long	536870912
383	.long	1015752157
384	.long	0
385	.long	1072693248
386	.long	1403757309
387	.long	3217886718
388	.long	621354454
389	.long	1071926515
390	.long	536870912
391	.long	1013450602
392	.long	0
393	.long	1072693248
394	.long	2583490354
395	.long	1070236281
396	.long	1719614413
397	.long	1072079006
398	.long	536870912
399	.long	3163282740
400	.long	0
401	.long	1071644672
402	.long	2485417816
403	.long	1069626316
404	.long	1796544321
405	.long	1072217216
406	.long	536870912
407	.long	3162686945
408	.long	0
409	.long	1071644672
410	.long	2598800519
411	.long	1068266419
412	.long	688824739
413	.long	1072339814
414	.long	3758096384
415	.long	1010431536
416	.long	0
417	.long	1071644672
418	.long	2140183630
419	.long	3214756396
420	.long	4051746225
421	.long	1072445618
422	.long	2147483648
423	.long	3161907377
424	.long	0
425	.long	1071644672
426	.long	1699043957
427	.long	3216902261
428	.long	3476196678
429	.long	1072533611
430	.long	536870912
431	.long	1014257638
432	.long	0
433	.long	1071644672
434	.long	1991047213
435	.long	1067753521
436	.long	1455828442
437	.long	1072602945
438	.long	3758096384
439	.long	1015505073
440	.long	0
441	.long	1070596096
442	.long	240740309
443	.long	3215727903
444	.long	3489094832
445	.long	1072652951
446	.long	536870912
447	.long	1014325783
448	.long	0
449	.long	1070596096
450	.long	257503056
451	.long	3214647653
452	.long	2748392742
453	.long	1072683149
454	.long	1073741824
455	.long	3163061750
456	.long	0
457	.long	1069547520
458	.long	0
459	.long	0
460	.long	0
461	.long	1072693248
462	.long	0
463	.long	0
464	.long	0
465	.long	0
466	.long	257503056
467	.long	1067164005
468	.long	2748392742
469	.long	1072683149
470	.long	1073741824
471	.long	3163061750
472	.long	0
473	.long	3217031168
474	.long	240740309
475	.long	1068244255
476	.long	3489094832
477	.long	1072652951
478	.long	536870912
479	.long	1014325783
480	.long	0
481	.long	3218079744
482	.long	1991047213
483	.long	3215237169
484	.long	1455828442
485	.long	1072602945
486	.long	3758096384
487	.long	1015505073
488	.long	0
489	.long	3218079744
490	.long	1699043957
491	.long	1069418613
492	.long	3476196678
493	.long	1072533611
494	.long	536870912
495	.long	1014257638
496	.long	0
497	.long	3219128320
498	.long	2140183630
499	.long	1067272748
500	.long	4051746225
501	.long	1072445618
502	.long	2147483648
503	.long	3161907377
504	.long	0
505	.long	3219128320
506	.long	2598800519
507	.long	3215750067
508	.long	688824739
509	.long	1072339814
510	.long	3758096384
511	.long	1010431536
512	.long	0
513	.long	3219128320
514	.long	2485417816
515	.long	3217109964
516	.long	1796544321
517	.long	1072217216
518	.long	536870912
519	.long	3162686945
520	.long	0
521	.long	3219128320
522	.long	2583490354
523	.long	3217719929
524	.long	1719614413
525	.long	1072079006
526	.long	536870912
527	.long	3163282740
528	.long	0
529	.long	3219128320
530	.long	1403757309
531	.long	1070403070
532	.long	621354454
533	.long	1071926515
534	.long	536870912
535	.long	1013450602
536	.long	0
537	.long	3220176896
538	.long	1539668340
539	.long	1069912679
540	.long	967731400
541	.long	1071761211
542	.long	536870912
543	.long	1015752157
544	.long	0
545	.long	3220176896
546	.long	1945768569
547	.long	1069431400
548	.long	939980347
549	.long	1071524701
550	.long	536870912
551	.long	1012796809
552	.long	0
553	.long	3220176896
554	.long	2255197647
555	.long	1068727457
556	.long	2796464483
557	.long	1071152610
558	.long	3758096384
559	.long	3160878317
560	.long	0
561	.long	3220176896
562	.long	2476548698
563	.long	1067846634
564	.long	785751814
565	.long	1070765062
566	.long	2684354560
567	.long	3161838221
568	.long	0
569	.long	3220176896
570	.long	18115067
571	.long	1066642694
572	.long	1013556747
573	.long	1070135480
574	.long	3221225472
575	.long	3160567065
576	.long	0
577	.long	3220176896
578	.long	393047345
579	.long	1064548654
580	.long	3156849708
581	.long	1069094822
582	.long	3758096384
583	.long	3158189848
584	.long	0
585	.long	3220176896
586	.long	0
587	.long	0
588	.long	0
589	.long	0
590	.long	0
591	.long	0
592	.long	0
593	.long	3220176896
594	.long	393047345
595	.long	1064548654
596	.long	3156849708
597	.long	3216578470
598	.long	3758096384
599	.long	1010706200
600	.long	0
601	.long	3220176896
602	.long	18115067
603	.long	1066642694
604	.long	1013556747
605	.long	3217619128
606	.long	3221225472
607	.long	1013083417
608	.long	0
609	.long	3220176896
610	.long	2476548698
611	.long	1067846634
612	.long	785751814
613	.long	3218248710
614	.long	2684354560
615	.long	1014354573
616	.long	0
617	.long	3220176896
618	.long	2255197647
619	.long	1068727457
620	.long	2796464483
621	.long	3218636258
622	.long	3758096384
623	.long	1013394669
624	.long	0
625	.long	3220176896
626	.long	1945768569
627	.long	1069431400
628	.long	939980347
629	.long	3219008349
630	.long	536870912
631	.long	3160280457
632	.long	0
633	.long	3220176896
634	.long	1539668340
635	.long	1069912679
636	.long	967731400
637	.long	3219244859
638	.long	536870912
639	.long	3163235805
640	.long	0
641	.long	3220176896
642	.long	1403757309
643	.long	1070403070
644	.long	621354454
645	.long	3219410163
646	.long	536870912
647	.long	3160934250
648	.long	0
649	.long	3220176896
650	.long	2583490354
651	.long	3217719929
652	.long	1719614413
653	.long	3219562654
654	.long	536870912
655	.long	1015799092
656	.long	0
657	.long	3219128320
658	.long	2485417816
659	.long	3217109964
660	.long	1796544321
661	.long	3219700864
662	.long	536870912
663	.long	1015203297
664	.long	0
665	.long	3219128320
666	.long	2598800519
667	.long	3215750067
668	.long	688824739
669	.long	3219823462
670	.long	3758096384
671	.long	3157915184
672	.long	0
673	.long	3219128320
674	.long	2140183630
675	.long	1067272748
676	.long	4051746225
677	.long	3219929266
678	.long	2147483648
679	.long	1014423729
680	.long	0
681	.long	3219128320
682	.long	1699043957
683	.long	1069418613
684	.long	3476196678
685	.long	3220017259
686	.long	536870912
687	.long	3161741286
688	.long	0
689	.long	3219128320
690	.long	1991047213
691	.long	3215237169
692	.long	1455828442
693	.long	3220086593
694	.long	3758096384
695	.long	3162988721
696	.long	0
697	.long	3218079744
698	.long	240740309
699	.long	1068244255
700	.long	3489094832
701	.long	3220136599
702	.long	536870912
703	.long	3161809431
704	.long	0
705	.long	3218079744
706	.long	257503056
707	.long	1067164005
708	.long	2748392742
709	.long	3220166797
710	.long	1073741824
711	.long	1015578102
712	.long	0
713	.long	3217031168
714	.long	0
715	.long	0
716	.long	0
717	.long	3220176896
718	.long	0
719	.long	0
720	.long	0
721	.long	0
722	.long	257503056
723	.long	3214647653
724	.long	2748392742
725	.long	3220166797
726	.long	1073741824
727	.long	1015578102
728	.long	0
729	.long	1069547520
730	.long	240740309
731	.long	3215727903
732	.long	3489094832
733	.long	3220136599
734	.long	536870912
735	.long	3161809431
736	.long	0
737	.long	1070596096
738	.long	1991047213
739	.long	1067753521
740	.long	1455828442
741	.long	3220086593
742	.long	3758096384
743	.long	3162988721
744	.long	0
745	.long	1070596096
746	.long	1699043957
747	.long	3216902261
748	.long	3476196678
749	.long	3220017259
750	.long	536870912
751	.long	3161741286
752	.long	0
753	.long	1071644672
754	.long	2140183630
755	.long	3214756396
756	.long	4051746225
757	.long	3219929266
758	.long	2147483648
759	.long	1014423729
760	.long	0
761	.long	1071644672
762	.long	2598800519
763	.long	1068266419
764	.long	688824739
765	.long	3219823462
766	.long	3758096384
767	.long	3157915184
768	.long	0
769	.long	1071644672
770	.long	2485417816
771	.long	1069626316
772	.long	1796544321
773	.long	3219700864
774	.long	536870912
775	.long	1015203297
776	.long	0
777	.long	1071644672
778	.long	2583490354
779	.long	1070236281
780	.long	1719614413
781	.long	3219562654
782	.long	536870912
783	.long	1015799092
784	.long	0
785	.long	1071644672
786	.long	1403757309
787	.long	3217886718
788	.long	621354454
789	.long	3219410163
790	.long	536870912
791	.long	3160934250
792	.long	0
793	.long	1072693248
794	.long	1539668340
795	.long	3217396327
796	.long	967731400
797	.long	3219244859
798	.long	536870912
799	.long	3163235805
800	.long	0
801	.long	1072693248
802	.long	1945768569
803	.long	3216915048
804	.long	939980347
805	.long	3219008349
806	.long	536870912
807	.long	3160280457
808	.long	0
809	.long	1072693248
810	.long	2255197647
811	.long	3216211105
812	.long	2796464483
813	.long	3218636258
814	.long	3758096384
815	.long	1013394669
816	.long	0
817	.long	1072693248
818	.long	2476548698
819	.long	3215330282
820	.long	785751814
821	.long	3218248710
822	.long	2684354560
823	.long	1014354573
824	.long	0
825	.long	1072693248
826	.long	18115067
827	.long	3214126342
828	.long	1013556747
829	.long	3217619128
830	.long	3221225472
831	.long	1013083417
832	.long	0
833	.long	1072693248
834	.long	393047345
835	.long	3212032302
836	.long	3156849708
837	.long	3216578470
838	.long	3758096384
839	.long	1010706200
840	.long	0
841	.long	1072693248
842	.long	1431655765
843	.long	3217380693
844	.long	0
845	.long	3219128320
846	.long	286331153
847	.long	1065423121
848	.long	1431655765
849	.long	1067799893
850	.long	436314138
851	.long	3207201184
852	.long	381774871
853	.long	3210133868
854	.long	2773927732
855	.long	1053236707
856	.long	436314138
857	.long	1056571808
858	.long	442499072
859	.long	1032893537
860	.long	442499072
861	.long	1032893537
862	.long	1413480448
863	.long	1069097467
864	.long	0
865	.long	0
866	.long	771977331
867	.long	996350346
868	.long	0
869	.long	0
870	.long	1841940611
871	.long	1076125488
872	.long	0
873	.long	0
874	.long	0
875	.long	1127743488
876	.long	0
877	.long	0
878	.long	0
879	.long	1130364928
880	.long	0
881	.long	0
882	.long	0
883	.long	1015021568
884	.long	0
885	.long	0
886	.long	4294967295
887	.long	1072693247
888	.long	0
889	.long	0
890	.long	0
891	.long	2147483648
892	.long	0
893	.long	0
894	.long	0
895	.long	2147483648
896	.long	0
897	.long	2147483648
898	.long	0
899	.long	1071644672
900	.long	0
901	.long	1071644672
902	.type	static_const_table,@object
903	.size	static_const_table,2288
904	.data
905	.hidden __libm_sincos_huge
906	.section .note.GNU-stack, ""
907# End
908