x86_64: Fix svml_s_tanf4_core_sse4.S code formatting
[glibc.git] / sysdeps / x86_64 / fpu / multiarch / svml_s_tanf4_core_sse4.S
blob3dc82cae68e0e6082b806e25c59eef81aab12f0a
1 /* Function tanf vectorized with SSE4.
2    Copyright (C) 2021-2022 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, see
17    https://www.gnu.org/licenses/.  */
20  * ALGORITHM DESCRIPTION:
21  *
22  *      1) Range reduction to [-Pi/4; +Pi/4] interval
23  *         a) Grab sign from source argument and save it.
24  *         b) Remove sign using AND 0x7fffffff operation
25  *         c) Getting octant Y by 2/Pi multiplication
26  *         d) Add "Right Shifter" (0x4B000000) value
27  *         e) Treat obtained value as integer for destination sign setting.
28  *            Shift first bit of this value to the last (sign) position (S << 31)
29  *         f) Change destination sign if source sign is negative
30  *            using XOR operation.
31  *         g) Subtract "Right Shifter" (0x4B000000) value
32  *         h) Subtract Y*(PI/2) from X argument, where PI/2 divided to 4 parts:
33  *            X = X - Y*PI1 - Y*PI2 - Y*PI3 - Y*PI4;
34  *      2) Rational polynomial approximation ( at [-Pi/4; +Pi/4] interval)
35  *         a) Calculate X^2 = X * X
36  *         b) Calculate 2 polynomials:
37  *            P = X * (P0 + X^2 * P1);
38  *            Q = Q0 + X^2 * (Q1 + x^2 * Q2);
39  *         c) Swap P and Q if first bit of obtained value after
40  *            Right Shifting is set to 1. Using And, Andnot & Or operations.
41  *         d) Divide R = P / Q;
42  *      3) Destination sign setting
43  *         a) Set shifted destination sign using XOR operation:
44  *            R = XOR( R, S );
45  *
46  */
48 /* Offsets for data table __svml_stan_data_internal
49  */
50 #define _sInvPI_uisa                    0
51 #define _sPI1_uisa                      16
52 #define _sPI2_uisa                      32
53 #define _sPI3_uisa                      48
54 #define _sPI2_ha_uisa                   64
55 #define _sPI3_ha_uisa                   80
56 #define Th_tbl_uisa                     96
57 #define Tl_tbl_uisa                     224
58 #define _sPC3_uisa                      352
59 #define _sPC5_uisa                      368
60 #define _sRangeReductionVal_uisa        384
61 #define _sInvPi                         400
62 #define _sSignMask                      416
63 #define _sAbsMask                       432
64 #define _sRangeVal                      448
65 #define _sRShifter                      464
66 #define _sOne                           480
67 #define _sRangeReductionVal             496
68 #define _sPI1                           512
69 #define _sPI2                           528
70 #define _sPI3                           544
71 #define _sPI4                           560
72 #define _sPI1_FMA                       576
73 #define _sPI2_FMA                       592
74 #define _sPI3_FMA                       608
75 #define _sP0                            624
76 #define _sP1                            640
77 #define _sQ0                            656
78 #define _sQ1                            672
79 #define _sQ2                            688
80 #define _sTwo                           704
81 #define _sCoeffs                        720
83 #include <sysdep.h>
85         .section .text.sse4, "ax", @progbits
86 ENTRY(_ZGVbN4v_tanf_sse4)
87         subq    $232, %rsp
88         cfi_def_cfa_offset(240)
89         movaps  %xmm0, %xmm13
90         movups  _sAbsMask+__svml_stan_data_internal(%rip), %xmm12
92         /*
93          * Legacy Code
94          * Here HW FMA can be unavailable
95          */
96         xorl    %eax, %eax
97         movaps  %xmm12, %xmm4
98         pxor    %xmm10, %xmm10
99         movups  _sInvPi+__svml_stan_data_internal(%rip), %xmm2
100         andps   %xmm13, %xmm4
101         mulps   %xmm4, %xmm2
103         /* Range reduction */
104         movaps  %xmm4, %xmm1
106         /*
107          *
108          * Main path (_LA_ and _EP_)
109          *
110          * Octant calculation
111          */
112         movups  _sRShifter+__svml_stan_data_internal(%rip), %xmm3
114         /* Large values check */
115         movaps  %xmm4, %xmm11
116         movups  _sPI1+__svml_stan_data_internal(%rip), %xmm5
117         andnps  %xmm13, %xmm12
118         movups  _sPI2+__svml_stan_data_internal(%rip), %xmm6
119         addps   %xmm3, %xmm2
120         cmpnleps _sRangeReductionVal+__svml_stan_data_internal(%rip), %xmm11
121         movaps  %xmm2, %xmm8
122         movups  _sPI3+__svml_stan_data_internal(%rip), %xmm7
123         subps   %xmm3, %xmm8
124         movmskps %xmm11, %edx
125         movups  _sPI4+__svml_stan_data_internal(%rip), %xmm9
126         mulps   %xmm8, %xmm5
127         mulps   %xmm8, %xmm6
128         mulps   %xmm8, %xmm7
129         subps   %xmm5, %xmm1
130         mulps   %xmm8, %xmm9
131         subps   %xmm6, %xmm1
132         movups  _sQ2+__svml_stan_data_internal(%rip), %xmm15
134         /* Inversion mask and sign calculation */
135         movaps  %xmm2, %xmm5
137         /* Rational approximation */
138         movups  _sP1+__svml_stan_data_internal(%rip), %xmm14
139         pslld   $30, %xmm2
140         cmpneqps %xmm10, %xmm2
141         subps   %xmm7, %xmm1
143         /* Exchanged numerator and denominator if necessary */
144         movaps  %xmm2, %xmm0
145         movaps  %xmm2, %xmm10
146         pslld   $31, %xmm5
147         subps   %xmm9, %xmm1
148         movaps  %xmm1, %xmm3
149         pxor    %xmm12, %xmm5
150         mulps   %xmm1, %xmm3
151         mulps   %xmm3, %xmm15
152         mulps   %xmm3, %xmm14
153         addps   _sQ1+__svml_stan_data_internal(%rip), %xmm15
154         addps   _sP0+__svml_stan_data_internal(%rip), %xmm14
155         mulps   %xmm15, %xmm3
156         mulps   %xmm14, %xmm1
157         addps   _sQ0+__svml_stan_data_internal(%rip), %xmm3
158         andnps  %xmm1, %xmm0
159         andps   %xmm3, %xmm10
160         andps   %xmm2, %xmm1
161         andnps  %xmm3, %xmm2
162         orps    %xmm10, %xmm0
163         orps    %xmm2, %xmm1
165         /* Division */
166         divps   %xmm1, %xmm0
168         /* Sign setting */
169         pxor    %xmm5, %xmm0
171         /*
172          *
173          * End of main path (_LA_ and _EP_)
174          */
176         testl   %edx, %edx
178         /* Go to auxilary branch */
179         jne     L(AUX_BRANCH)
180         # LOE rbx rbp r12 r13 r14 r15 eax xmm0 xmm4 xmm11 xmm12 xmm13
182         /* Return from auxilary branch
183          * for out of main path inputs
184          */
186 L(AUX_BRANCH_RETURN):
187         testl   %eax, %eax
189         /* Go to special inputs processing branch */
190         jne     L(SPECIAL_VALUES_BRANCH)
191         # LOE rbx rbp r12 r13 r14 r15 eax xmm0 xmm13
193         /* Restore registers
194          * and exit the function
195          */
197 L(EXIT):
198         addq    $232, %rsp
199         cfi_def_cfa_offset(8)
200         ret
201         cfi_def_cfa_offset(240)
203         /* Branch to process
204          * special inputs
205          */
207 L(SPECIAL_VALUES_BRANCH):
208         movups  %xmm13, 32(%rsp)
209         movups  %xmm0, 48(%rsp)
210         # LOE rbx rbp r12 r13 r14 r15 eax xmm0
212         xorl    %edx, %edx
213         movq    %r12, 16(%rsp)
214         cfi_offset(12, -224)
215         movl    %edx, %r12d
216         movq    %r13, 8(%rsp)
217         cfi_offset(13, -232)
218         movl    %eax, %r13d
219         movq    %r14, (%rsp)
220         cfi_offset(14, -240)
221         # LOE rbx rbp r15 r12d r13d
223         /* Range mask
224          * bits check
225          */
227 L(RANGEMASK_CHECK):
228         btl     %r12d, %r13d
230         /* Call scalar math function */
231         jc      L(SCALAR_MATH_CALL)
232         # LOE rbx rbp r15 r12d r13d
234         /* Special inputs
235          * processing loop
236          */
238 L(SPECIAL_VALUES_LOOP):
239         incl    %r12d
240         cmpl    $4, %r12d
242         /* Check bits in range mask */
243         jl      L(RANGEMASK_CHECK)
244         # LOE rbx rbp r15 r12d r13d
246         movq    16(%rsp), %r12
247         cfi_restore(12)
248         movq    8(%rsp), %r13
249         cfi_restore(13)
250         movq    (%rsp), %r14
251         cfi_restore(14)
252         movups  48(%rsp), %xmm0
254         /* Go to exit */
255         jmp     L(EXIT)
256         cfi_offset(12, -224)
257         cfi_offset(13, -232)
258         cfi_offset(14, -240)
259         # LOE rbx rbp r12 r13 r14 r15 xmm0
261         /* Scalar math fucntion call
262          * to process special input
263          */
265 L(SCALAR_MATH_CALL):
266         movl    %r12d, %r14d
267         movss   32(%rsp, %r14, 4), %xmm0
268         call    tanf@PLT
269         # LOE rbx rbp r14 r15 r12d r13d xmm0
271         movss   %xmm0, 48(%rsp, %r14, 4)
273         /* Process special inputs in loop */
274         jmp     L(SPECIAL_VALUES_LOOP)
275         cfi_restore(12)
276         cfi_restore(13)
277         cfi_restore(14)
278         # LOE rbx rbp r15 r12d r13d
280         /* Auxilary branch
281          * for out of main path inputs
282          */
284 L(AUX_BRANCH):
285         movl    $2139095040, %eax
287         /*
288          * Get the (2^a / 2pi) mod 1 values from the table.
289          * Because doesn't have I-type gather, we need a trivial cast
290          */
291         lea     __svml_stan_reduction_data_internal(%rip), %r8
292         movups  %xmm13, 64(%rsp)
294         /*
295          * Also get the significand as an integer
296          * NB: adding in the integer bit is wrong for denorms!
297          * To make this work for denorms we should do something slightly different
298          */
299         movl    $8388607, %r9d
300         movups  %xmm12, 80(%rsp)
301         movl    $8388608, %r10d
302         movups  %xmm11, 96(%rsp)
304         /*
305          * Break the P_xxx and m into 16-bit chunks ready for
306          * the long multiplication via 16x16->32 multiplications
307          */
308         movl    $65535, %r11d
309         movd    %eax, %xmm3
310         pshufd  $0, %xmm3, %xmm2
311         andps   %xmm2, %xmm13
312         cmpeqps %xmm2, %xmm13
313         pand    %xmm4, %xmm2
314         psrld   $23, %xmm2
315         movdqa  %xmm2, %xmm12
316         pslld   $1, %xmm12
317         paddd   %xmm2, %xmm12
318         pslld   $2, %xmm12
319         pshufd  $1, %xmm12, %xmm10
320         pshufd  $2, %xmm12, %xmm11
321         pshufd  $3, %xmm12, %xmm14
322         movd    %xmm12, %edx
323         movd    %xmm10, %ecx
324         movd    %xmm11, %esi
325         movd    %r9d, %xmm11
326         movd    %xmm14, %edi
327         movd    4(%rdx, %r8), %xmm6
328         movd    4(%rcx, %r8), %xmm7
329         movd    4(%rsi, %r8), %xmm3
330         movl    $872415232, %r9d
331         movd    4(%rdi, %r8), %xmm5
332         punpckldq %xmm7, %xmm6
333         punpckldq %xmm5, %xmm3
334         movd    8(%rdi, %r8), %xmm10
335         movmskps %xmm13, %eax
336         punpcklqdq %xmm3, %xmm6
337         movd    8(%rdx, %r8), %xmm3
338         movd    8(%rcx, %r8), %xmm2
339         movd    8(%rsi, %r8), %xmm13
340         punpckldq %xmm2, %xmm3
341         punpckldq %xmm10, %xmm13
342         punpcklqdq %xmm13, %xmm3
343         pshufd  $0, %xmm11, %xmm13
344         movdqa  %xmm3, %xmm2
345         movups  %xmm4, 48(%rsp)
346         pand    %xmm4, %xmm13
347         movd    %r10d, %xmm4
348         psrld   $16, %xmm2
349         movd    (%rdx, %r8), %xmm9
351         /*
352          * We want to incorporate the original sign now too.
353          * Do it here for convenience in getting the right N value,
354          * though we could wait right to the end if we were prepared
355          * to modify the sign of N later too.
356          * So get the appropriate sign mask now (or sooner).
357          */
358         movl    $-2147483648, %edx
359         movd    (%rcx, %r8), %xmm8
361         /*
362          * Create floating-point high part, implicitly adding integer bit 1
363          * Incorporate overall sign at this stage too.
364          */
365         movl    $1065353216, %ecx
366         movd    (%rsi, %r8), %xmm15
368         /*
369          * Now round at the 2^-8 bit position for reduction mod pi/2^7
370          * instead of the original 2pi (but still with the same 2pi scaling).
371          * Use a shifter of 2^15 + 2^14.
372          * The N we get is our final version; it has an offset of
373          * 2^8 because of the implicit integer bit, and anyway for negative
374          * starting value it's a 2s complement thing. But we need to mask
375          * off the exponent part anyway so it's fine.
376          */
377         movl    $1195376640, %esi
378         movd    (%rdi, %r8), %xmm1
379         movl    $511, %r10d
380         movups  %xmm0, 112(%rsp)
381         movd    %r11d, %xmm0
382         pshufd  $0, %xmm4, %xmm12
383         movdqa  %xmm2, %xmm4
384         punpckldq %xmm8, %xmm9
385         paddd   %xmm12, %xmm13
386         punpckldq %xmm1, %xmm15
387         movdqa  %xmm13, %xmm12
388         pshufd  $0, %xmm0, %xmm8
389         movdqa  %xmm6, %xmm0
390         punpcklqdq %xmm15, %xmm9
391         pand    %xmm8, %xmm13
392         movdqa  %xmm9, %xmm14
393         pand    %xmm8, %xmm9
394         movdqa  %xmm13, %xmm10
395         psrld   $16, %xmm14
396         movdqu  %xmm14, 128(%rsp)
398         /* Now do the big multiplication and carry propagation */
399         movdqa  %xmm9, %xmm14
400         psrlq   $32, %xmm10
401         psrlq   $32, %xmm14
402         movdqa  %xmm13, %xmm15
403         movdqa  %xmm10, %xmm7
404         pmuludq %xmm9, %xmm15
405         psrld   $16, %xmm0
406         pmuludq %xmm14, %xmm7
407         movdqu  %xmm9, 144(%rsp)
408         psllq   $32, %xmm7
409         movdqu  .FLT_16(%rip), %xmm9
410         pand    %xmm8, %xmm6
411         pand    %xmm9, %xmm15
412         psrld   $16, %xmm12
413         movdqa  %xmm0, %xmm1
414         por     %xmm7, %xmm15
415         movdqa  %xmm13, %xmm7
416         pand    %xmm8, %xmm3
417         movdqu  %xmm0, 160(%rsp)
418         movdqa  %xmm12, %xmm11
419         movdqu  %xmm15, 208(%rsp)
420         psrlq   $32, %xmm1
421         pmuludq %xmm0, %xmm7
422         movdqa  %xmm6, %xmm5
423         movdqa  %xmm10, %xmm15
424         movdqa  %xmm12, %xmm0
425         movdqu  %xmm14, 176(%rsp)
426         psrlq   $32, %xmm11
427         movdqu  %xmm1, 192(%rsp)
428         psrlq   $32, %xmm5
429         pmuludq %xmm1, %xmm15
430         movdqa  %xmm13, %xmm1
431         pmuludq %xmm3, %xmm0
432         pmuludq %xmm6, %xmm1
433         pmuludq %xmm12, %xmm6
434         movdqa  %xmm10, %xmm14
435         psrlq   $32, %xmm3
436         pmuludq %xmm5, %xmm14
437         pand    %xmm9, %xmm1
438         pmuludq %xmm11, %xmm3
439         pmuludq %xmm11, %xmm5
440         psllq   $32, %xmm14
441         pand    %xmm9, %xmm0
442         psllq   $32, %xmm3
443         psrlq   $32, %xmm4
444         por     %xmm14, %xmm1
445         por     %xmm3, %xmm0
446         movdqa  %xmm12, %xmm14
447         movdqa  %xmm11, %xmm3
448         pmuludq %xmm2, %xmm14
449         pand    %xmm9, %xmm7
450         pmuludq %xmm4, %xmm3
451         pmuludq %xmm13, %xmm2
452         pmuludq %xmm10, %xmm4
453         pand    %xmm9, %xmm2
454         psllq   $32, %xmm4
455         psllq   $32, %xmm15
456         pand    %xmm9, %xmm14
457         psllq   $32, %xmm3
458         por     %xmm4, %xmm2
459         por     %xmm15, %xmm7
460         por     %xmm3, %xmm14
461         psrld   $16, %xmm2
462         pand    %xmm9, %xmm6
463         psllq   $32, %xmm5
464         movdqa  %xmm1, %xmm15
465         paddd   %xmm2, %xmm14
466         movdqa  %xmm7, %xmm2
467         por     %xmm5, %xmm6
468         psrld   $16, %xmm1
469         pand    %xmm8, %xmm2
470         paddd   %xmm1, %xmm6
471         movdqu  160(%rsp), %xmm1
472         paddd   %xmm6, %xmm2
473         movdqu  192(%rsp), %xmm6
474         psrld   $16, %xmm7
475         pmuludq %xmm12, %xmm1
476         pand    %xmm8, %xmm15
477         pmuludq %xmm11, %xmm6
478         pmuludq 144(%rsp), %xmm12
479         pmuludq 176(%rsp), %xmm11
480         pand    %xmm9, %xmm1
481         psllq   $32, %xmm6
482         por     %xmm6, %xmm1
483         psrld   $16, %xmm0
484         paddd   %xmm7, %xmm1
485         paddd   %xmm14, %xmm15
486         movdqu  128(%rsp), %xmm7
487         paddd   %xmm15, %xmm0
488         pmuludq %xmm7, %xmm13
489         psrlq   $32, %xmm7
490         pmuludq %xmm7, %xmm10
491         movdqa  %xmm0, %xmm14
492         pand    %xmm9, %xmm13
493         movdqu  208(%rsp), %xmm5
494         psrld   $16, %xmm14
495         paddd   %xmm2, %xmm14
496         movdqa  %xmm5, %xmm15
497         movdqa  %xmm14, %xmm3
498         pand    %xmm8, %xmm15
499         psrld   $16, %xmm3
500         paddd   %xmm1, %xmm15
501         psllq   $32, %xmm10
502         pand    %xmm9, %xmm12
503         psllq   $32, %xmm11
504         paddd   %xmm15, %xmm3
505         por     %xmm10, %xmm13
506         por     %xmm11, %xmm12
507         psrld   $16, %xmm5
508         movdqa  %xmm3, %xmm4
509         pand    %xmm8, %xmm13
510         paddd   %xmm5, %xmm12
511         psrld   $16, %xmm4
512         paddd   %xmm12, %xmm13
513         paddd   %xmm13, %xmm4
514         pand    %xmm8, %xmm3
515         pslld   $16, %xmm4
516         movd    %edx, %xmm9
517         movups  48(%rsp), %xmm15
518         paddd   %xmm3, %xmm4
519         pshufd  $0, %xmm9, %xmm7
521         /* Assemble reduced argument from the pieces */
522         pand    %xmm8, %xmm0
523         movd    %ecx, %xmm8
524         pand    %xmm15, %xmm7
525         pshufd  $0, %xmm8, %xmm1
526         movdqa  %xmm4, %xmm5
527         psrld   $9, %xmm5
528         pxor    %xmm7, %xmm1
529         por     %xmm1, %xmm5
530         movd    %esi, %xmm6
531         pshufd  $0, %xmm6, %xmm3
532         movdqa  %xmm5, %xmm6
533         movl    $262143, %r8d
535         /*
536          * Create floating-point low and medium parts, respectively
537          * lo_17, ... lo_0, 0, ..., 0
538          * hi_8, ... hi_0, lo_31, ..., lo_18
539          * then subtract off the implicitly added integer bits,
540          * 2^-46 and 2^-23, respectively.
541          * Put the original sign into all of them at this stage.
542          */
543         movl    $679477248, %edi
544         movd    %r10d, %xmm13
545         pslld   $16, %xmm14
546         pshufd  $0, %xmm13, %xmm1
547         paddd   %xmm0, %xmm14
548         movd    %r9d, %xmm11
549         pand    %xmm4, %xmm1
550         movd    %r8d, %xmm9
551         movd    %edi, %xmm10
552         pshufd  $0, %xmm9, %xmm8
553         pslld   $14, %xmm1
554         pshufd  $0, %xmm10, %xmm0
555         pand    %xmm14, %xmm8
556         pshufd  $0, %xmm11, %xmm12
557         psrld   $18, %xmm14
558         pxor    %xmm7, %xmm0
559         pxor    %xmm12, %xmm7
560         por     %xmm14, %xmm1
561         pslld   $5, %xmm8
562         por     %xmm7, %xmm1
564         /*
565          * Now multiply those numbers all by 2 pi, reasonably accurately.
566          * The top part uses 2pi = s2pi_lead + s2pi_trail, where
567          * s2pi_lead has 12 significant bits.
568          */
569         movl    $1086918619, %r11d
571         /* Split RHi into 12-bit leading and trailing parts. */
572         movl    $-4096, %esi
573         por     %xmm0, %xmm8
574         movl    $1086918656, %edx
575         movl    $-1214941318, %ecx
577         /*
578          * If the magnitude of the input is <= 2^-20, then
579          * just pass through the input, since no reduction will be needed and
580          * the main path will only work accurately if the reduced argument is
581          * about >= 2^-40 (which it is for all large pi multiples)
582          */
583         movl    $2147483647, %edi
584         addps   %xmm3, %xmm6
585         subps   %xmm7, %xmm1
586         subps   %xmm0, %xmm8
587         movaps  %xmm6, %xmm2
588         movd    %r11d, %xmm14
589         movd    %esi, %xmm4
590         movd    %edx, %xmm7
591         movl    $897581056, %r8d
592         subps   %xmm3, %xmm2
594         /* Grab our final N value as an integer, appropriately masked mod 2^8 */
595         movl    $255, %r9d
596         subps   %xmm2, %xmm5
598         /* Now add them up into 2 reasonably aligned pieces */
599         movaps  %xmm5, %xmm3
601         /*
602          * The output is _VRES_R (high) + _VRES_E (low), and the integer part is _VRES_IND
603          * Set sRp2 = _VRES_R^2 and then resume the original code.
604          * Argument reduction is now finished: x = n * pi/128 + r
605          * where n = iIndex and r = sR (high) + sE (low).
606          * But we have n modulo 256, needed for sin/cos with period 2pi
607          * but we want it modulo 128 since tan has period pi.
608          */
609         movl    $127, %r10d
610         pshufd  $0, %xmm14, %xmm2
611         addps   %xmm1, %xmm3
612         pshufd  $0, %xmm4, %xmm14
613         movd    %r8d, %xmm4
614         pshufd  $0, %xmm4, %xmm9
615         subps   %xmm3, %xmm5
616         movdqa  %xmm9, %xmm11
617         addps   %xmm5, %xmm1
618         movd    %ecx, %xmm5
619         addps   %xmm1, %xmm8
620         pshufd  $0, %xmm7, %xmm1
621         movdqa  %xmm14, %xmm7
622         andps   %xmm3, %xmm7
624         /*
625          * Do the multiplication as exact top part and "naive" low part.
626          * This still maintains a similar level of offset and doesn't drop
627          * the accuracy much below what we already have.
628          */
629         movdqa  %xmm1, %xmm10
630         pshufd  $0, %xmm5, %xmm5
631         subps   %xmm7, %xmm3
632         mulps   %xmm7, %xmm10
633         mulps   %xmm5, %xmm7
634         mulps   %xmm3, %xmm1
635         mulps   %xmm8, %xmm2
636         mulps   %xmm3, %xmm5
637         addps   %xmm7, %xmm1
638         addps   %xmm5, %xmm2
639         movd    %edi, %xmm8
640         addps   %xmm2, %xmm1
642         /*
643          * Do another stage of compensated summation to get full offset
644          * between the pieces sRedHi + sRedLo.
645          * Depending on the later algorithm, we might avoid this stage.
646          */
647         movaps  %xmm1, %xmm0
649         /*  Load constants (not all needed at once)  */
650         lea     _sCoeffs+36+__svml_stan_data_internal(%rip), %rdi
651         pshufd  $0, %xmm8, %xmm8
652         addps   %xmm10, %xmm0
653         andps   %xmm15, %xmm8
654         subps   %xmm0, %xmm10
655         cmpltps %xmm8, %xmm11
656         cmpleps %xmm9, %xmm8
657         addps   %xmm10, %xmm1
658         andps   %xmm15, %xmm8
659         movd    %r9d, %xmm15
660         andps   %xmm11, %xmm0
661         andps   %xmm1, %xmm11
662         pshufd  $0, %xmm15, %xmm1
663         movd    %r10d, %xmm15
664         pshufd  $0, %xmm15, %xmm7
665         pand    %xmm1, %xmm6
666         pand    %xmm7, %xmm6
667         orps    %xmm0, %xmm8
668         movaps  %xmm6, %xmm4
670         /*
671          * Simply combine the two parts of the reduced argument
672          * since we can afford a few ulps in this case.
673          */
674         addps   %xmm11, %xmm8
675         pslld   $2, %xmm4
676         paddd   %xmm6, %xmm4
677         pslld   $3, %xmm4
678         pshufd  $1, %xmm4, %xmm6
679         pshufd  $2, %xmm4, %xmm5
680         pshufd  $3, %xmm4, %xmm3
681         movd    %xmm4, %r11d
682         movd    %xmm6, %edx
683         movd    %xmm5, %ecx
684         movd    %xmm3, %esi
685         movd    -32(%r11, %rdi), %xmm15
686         movd    -32(%rdx, %rdi), %xmm12
687         movd    -32(%rcx, %rdi), %xmm7
688         movd    -32(%rsi, %rdi), %xmm13
689         punpckldq %xmm12, %xmm15
690         punpckldq %xmm13, %xmm7
691         movd    -28(%rsi, %rdi), %xmm5
692         punpcklqdq %xmm7, %xmm15
693         movd    -28(%r11, %rdi), %xmm7
694         movd    -28(%rdx, %rdi), %xmm6
695         movd    -28(%rcx, %rdi), %xmm4
696         movd    -36(%rcx, %rdi), %xmm9
697         movd    -36(%r11, %rdi), %xmm1
698         movd    -36(%rdx, %rdi), %xmm2
699         movd    -24(%rdx, %rdi), %xmm3
700         movd    -36(%rsi, %rdi), %xmm10
701         punpckldq %xmm6, %xmm7
702         punpckldq %xmm5, %xmm4
703         movd    -24(%r11, %rdi), %xmm6
704         punpckldq %xmm2, %xmm1
705         punpckldq %xmm10, %xmm9
706         punpcklqdq %xmm4, %xmm7
707         movd    -16(%r11, %rdi), %xmm4
708         punpckldq %xmm3, %xmm6
709         movd    -24(%rcx, %rdi), %xmm10
710         movd    -16(%rcx, %rdi), %xmm3
711         movd    -24(%rsi, %rdi), %xmm2
712         movd    -16(%rsi, %rdi), %xmm13
713         movd    -16(%rdx, %rdi), %xmm12
714         punpcklqdq %xmm9, %xmm1
715         movd    -20(%rdx, %rdi), %xmm9
716         punpckldq %xmm2, %xmm10
717         movd    -20(%r11, %rdi), %xmm5
718         movd    -20(%rcx, %rdi), %xmm11
719         movd    -20(%rsi, %rdi), %xmm0
720         punpckldq %xmm12, %xmm4
721         punpckldq %xmm13, %xmm3
722         punpcklqdq %xmm10, %xmm6
723         movd    -12(%rsi, %rdi), %xmm10
724         punpckldq %xmm9, %xmm5
725         punpckldq %xmm0, %xmm11
726         punpcklqdq %xmm3, %xmm4
727         movd    -12(%r11, %rdi), %xmm3
728         movd    -12(%rdx, %rdi), %xmm2
729         movd    -12(%rcx, %rdi), %xmm9
730         punpcklqdq %xmm11, %xmm5
731         punpckldq %xmm2, %xmm3
732         punpckldq %xmm10, %xmm9
733         movd    -8(%rcx, %rdi), %xmm10
734         movd    -8(%r11, %rdi), %xmm2
735         movd    -8(%rdx, %rdi), %xmm0
736         movd    -8(%rsi, %rdi), %xmm11
737         punpckldq %xmm0, %xmm2
738         punpckldq %xmm11, %xmm10
739         movd    -4(%rsi, %rdi), %xmm13
740         punpcklqdq %xmm9, %xmm3
741         punpcklqdq %xmm10, %xmm2
742         movd    -4(%r11, %rdi), %xmm10
743         movd    -4(%rdx, %rdi), %xmm12
744         movd    -4(%rcx, %rdi), %xmm9
745         punpckldq %xmm12, %xmm10
746         punpckldq %xmm13, %xmm9
747         punpcklqdq %xmm9, %xmm10
749         /*
750          *  Compute 2-part reciprocal component
751          * Construct a separate reduced argument modulo pi near pi/2 multiples.
752          * i.e. (pi/2 - x) mod pi, simply by subtracting the reduced argument
753          * from an accurate B_hi + B_lo = (128 - n) pi/128. Force the upper part
754          * of this reduced argument to half-length to simplify accurate
755          * reciprocation later on.
756          */
757         movdqa  %xmm1, %xmm9
758         movd    (%r11, %rdi), %xmm13
759         subps   %xmm8, %xmm9
760         movd    (%rdx, %rdi), %xmm0
761         subps   %xmm9, %xmm1
762         punpckldq %xmm0, %xmm13
763         movdqa  %xmm14, %xmm0
764         andps   %xmm9, %xmm0
765         subps   %xmm8, %xmm1
766         subps   %xmm0, %xmm9
767         movd    (%rcx, %rdi), %xmm12
768         addps   %xmm9, %xmm15
770         /*
771          * Now compute an approximate reciprocal to mix into the computation
772          * To avoid any danger of nonportability, force it to 12 bits,
773          * though I suspect it always is anyway on current platforms.
774          */
775         rcpps   %xmm0, %xmm9
776         addps   %xmm15, %xmm1
777         andps   %xmm14, %xmm9
778         mulps   %xmm9, %xmm0
780         /*
781          * Get a better approximation to  1/sR_hi (not far short of an ulp)
782          * using a third-order polynomial approximation
783          */
784         movaps  %xmm9, %xmm14
785         movd    (%rsi, %rdi), %xmm11
787         /*
788          * Now compute the error sEr where sRecip_hi = (1/R_hi) * (1 - sEr)
789          * so that we can compensate for it.
790          */
791         movups  _sOne+__svml_stan_data_internal(%rip), %xmm15
792         punpckldq %xmm11, %xmm12
793         movaps  %xmm15, %xmm11
794         punpcklqdq %xmm12, %xmm13
795         subps   %xmm0, %xmm11
796         mulps   %xmm11, %xmm14
797         movups  %xmm11, (%rsp)
798         addps   %xmm9, %xmm14
799         mulps   %xmm11, %xmm11
800         movups  %xmm13, 32(%rsp)
801         movups  %xmm11, 16(%rsp)
802         movups  112(%rsp), %xmm0
803         movups  96(%rsp), %xmm11
804         movups  80(%rsp), %xmm12
805         movups  64(%rsp), %xmm13
806         # LOE rbx rbp r12 r13 r14 r15 eax xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15
808         /*
809          *  Compensated sum of dominant component(s)
810          * Compute C0_hi + C1_hi * Z + Recip_hi + Recip_lo = H4 (hi) + H9 (lo)
811          * H1 = C1_hi * Z (exact since C1_hi is 1 bit)
812          */
813         mulps   %xmm8, %xmm4
814         addps   16(%rsp), %xmm15
816         /* Finally, multiplex both parts so they are only used in cotangent path */
817         mulps   %xmm7, %xmm9
819         /*
820          *  Higher polynomial terms
821          * Stage 1 (with unlimited parallelism)
822          * P3 = C1_lo + C2 * Z
823          */
824         mulps   %xmm8, %xmm2
825         mulps   %xmm15, %xmm14
826         addps   %xmm2, %xmm3
828         /*
829          * Multiply by sRecip_ok to make sR_lo relative to sR_hi
830          * Since sR_lo is shifted off by about 12 bits, this is accurate enough.
831          */
832         mulps   %xmm14, %xmm1
834         /*
835          * Now create a low reciprocal using
836          * (Recip_hi + Er * Recip_ok) * (1 + sR_lo^2 - sR_lo)
837          * =~= Recip_hi + Recip_ok * (Er + sR_lo^2 - sR_lo)
838          */
839         movaps  %xmm1, %xmm15
840         mulps   %xmm1, %xmm1
841         subps   (%rsp), %xmm15
843         /* P4 = C3 + C4 * Z */
844         movups  32(%rsp), %xmm2
845         subps   %xmm15, %xmm1
846         mulps   %xmm8, %xmm2
847         mulps   %xmm1, %xmm14
848         addps   %xmm2, %xmm10
849         mulps   %xmm14, %xmm7
851         /* H2 = high(C0_hi + C1_hi * Z) */
852         movdqa  %xmm6, %xmm14
853         addps   %xmm4, %xmm14
855         /* H4 = high(H2 + Recip_hi) */
856         movaps  %xmm14, %xmm1
858         /* intermediate in compensated sum */
859         subps   %xmm14, %xmm6
860         addps   %xmm9, %xmm1
862         /* H5 = low(C0_hi + C1_hi * Z) */
863         addps   %xmm6, %xmm4
865         /* intermediate in compensated sum */
866         subps   %xmm1, %xmm9
868         /* H7 = low(C0_hi + C1_hi * Z) + Recip_lo */
869         addps   %xmm4, %xmm7
871         /* H8 = low(H2 + Recip_hi) */
872         addps   %xmm9, %xmm14
874         /* Z2 = Z^2 */
875         movaps  %xmm8, %xmm4
877         /* Now H4 + H9 should be that part */
878         addps   %xmm14, %xmm7
879         mulps   %xmm8, %xmm4
881         /* P9 = trail(dominant part) + C0_lo */
882         addps   %xmm7, %xmm5
884         /*
885          * Stage 2 (with unlimited parallelism)
886          * P6 = C1_lo + C2 * Z + C3 * Z^2 + C4 * Z^3
887          */
888         mulps   %xmm4, %xmm10
889         addps   %xmm10, %xmm3
891         /* Final accumulation of low part */
892         mulps   %xmm3, %xmm8
894         /* Merge results from main and large paths: */
895         movaps  %xmm11, %xmm3
896         andnps  %xmm0, %xmm3
897         addps   %xmm8, %xmm5
898         movaps  %xmm3, %xmm0
900         /* And now the very final summation */
901         addps   %xmm5, %xmm1
903         /*
904          *  The end of implementation (LA with huge args reduction)
905          * End of large arguments path (_HA_, _LA_ and _EP_)
906          */
908         pxor    %xmm12, %xmm1
909         andps   %xmm11, %xmm1
910         orps    %xmm1, %xmm0
912         /* Return to main vector processing path */
913         jmp     L(AUX_BRANCH_RETURN)
914         # LOE rbx rbp r12 r13 r14 r15 eax xmm0 xmm13
915 END(_ZGVbN4v_tanf_sse4)
917         .section .rodata, "a"
918         .align  16
920 #ifdef __svml_stan_data_internal_typedef
921 typedef unsigned int VUINT32;
922 typedef struct {
923         __declspec(align(16)) VUINT32 _sInvPI_uisa[4][1];
924         __declspec(align(16)) VUINT32 _sPI1_uisa[4][1];
925         __declspec(align(16)) VUINT32 _sPI2_uisa[4][1];
926         __declspec(align(16)) VUINT32 _sPI3_uisa[4][1];
927         __declspec(align(16)) VUINT32 _sPI2_ha_uisa[4][1];
928         __declspec(align(16)) VUINT32 _sPI3_ha_uisa[4][1];
929         __declspec(align(16)) VUINT32 Th_tbl_uisa[32][1];
930         __declspec(align(16)) VUINT32 Tl_tbl_uisa[32][1];
931         __declspec(align(16)) VUINT32 _sPC3_uisa[4][1];
932         __declspec(align(16)) VUINT32 _sPC5_uisa[4][1];
933         __declspec(align(16)) VUINT32 _sRangeReductionVal_uisa[4][1];
934         __declspec(align(16)) VUINT32 _sInvPi[4][1];
935         __declspec(align(16)) VUINT32 _sSignMask[4][1];
936         __declspec(align(16)) VUINT32 _sAbsMask[4][1];
937         __declspec(align(16)) VUINT32 _sRangeVal[4][1];
938         __declspec(align(16)) VUINT32 _sRShifter[4][1];
939         __declspec(align(16)) VUINT32 _sOne[4][1];
940         __declspec(align(16)) VUINT32 _sRangeReductionVal[4][1];
941         __declspec(align(16)) VUINT32 _sPI1[4][1];
942         __declspec(align(16)) VUINT32 _sPI2[4][1];
943         __declspec(align(16)) VUINT32 _sPI3[4][1];
944         __declspec(align(16)) VUINT32 _sPI4[4][1];
945         __declspec(align(16)) VUINT32 _sPI1_FMA[4][1];
946         __declspec(align(16)) VUINT32 _sPI2_FMA[4][1];
947         __declspec(align(16)) VUINT32 _sPI3_FMA[4][1];
948         __declspec(align(16)) VUINT32 _sP0[4][1];
949         __declspec(align(16)) VUINT32 _sP1[4][1];
950         __declspec(align(16)) VUINT32 _sQ0[4][1];
951         __declspec(align(16)) VUINT32 _sQ1[4][1];
952         __declspec(align(16)) VUINT32 _sQ2[4][1];
953         __declspec(align(16)) VUINT32 _sTwo[4][1];
954         __declspec(align(16)) VUINT32 _sCoeffs[128][10][1];
955 } __svml_stan_data_internal;
956 #endif
957 __svml_stan_data_internal:
958         /* UISA */
959         .long   0x4122f983, 0x4122f983, 0x4122f983, 0x4122f983 /* _sInvPI_uisa */
960         .align  16
961         .long   0x3dc90fda, 0x3dc90fda, 0x3dc90fda, 0x3dc90fda /* _sPI1_uisa */
962         .align  16
963         .long   0x31a22168, 0x31a22168, 0x31a22168, 0x31a22168 /* _sPI2_uisa */
964         .align  16
965         .long   0x25c234c5, 0x25c234c5, 0x25c234c5, 0x25c234c5 /* _sPI3_uisa */
966         .align  16
967         .long   0x31a22000, 0x31a22000, 0x31a22000, 0x31a22000 /* _sPI2_ha_uisa */
968         .align  16
969         .long   0x2a34611a, 0x2a34611a, 0x2a34611a, 0x2a34611a /* _sPI3_ha_uisa */
970         /* Th_tbl_uisa for i from 0 to 31 do printsingle(tan(i*Pi/32)); */
971         .align  16
972         .long   0x80000000, 0x3dc9b5dc, 0x3e4bafaf, 0x3e9b5042
973         .long   0x3ed413cd, 0x3f08d5b9, 0x3f2b0dc1, 0x3f521801
974         .long   0x3f800000, 0x3f9bf7ec, 0x3fbf90c7, 0x3fef789e
975         .long   0x401a827a, 0x4052facf, 0x40a0dff7, 0x41227363
976         .long   0xff7fffff, 0xc1227363, 0xc0a0dff7, 0xc052facf
977         .long   0xc01a827a, 0xbfef789e, 0xbfbf90c7, 0xbf9bf7ec
978         .long   0xbf800000, 0xbf521801, 0xbf2b0dc1, 0xbf08d5b9
979         .long   0xbed413cd, 0xbe9b5042, 0xbe4bafaf, 0xbdc9b5dc
980         /* Tl_tbl_uisa for i from 0 to 31 do printsingle(tan(i*Pi/32)-round(tan(i*Pi/32), SG, RN)); */
981         .align  16
982         .long   0x80000000, 0x3145b2da, 0x2f2a62b0, 0xb22a39c2
983         .long   0xb1c0621a, 0xb25ef963, 0x32ab7f99, 0x32ae4285
984         .long   0x00000000, 0x33587608, 0x32169d18, 0xb30c3ec0
985         .long   0xb3cc0622, 0x3390600e, 0x331091dc, 0xb454a046
986         .long   0xf3800000, 0x3454a046, 0xb31091dc, 0xb390600e
987         .long   0x33cc0622, 0x330c3ec0, 0xb2169d18, 0xb3587608
988         .long   0x00000000, 0xb2ae4285, 0xb2ab7f99, 0x325ef963
989         .long   0x31c0621a, 0x322a39c2, 0xaf2a62b0, 0xb145b2da
990         .align  16
991         .long   0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6, 0x3eaaaaa6 /* _sPC3_uisa */
992         .align  16
993         .long   0x3e08b888, 0x3e08b888, 0x3e08b888, 0x3e08b888 /* _sPC5_uisa */
994         .align  16
995         .long   0x46010000, 0x46010000, 0x46010000, 0x46010000 /* _sRangeReductionVal_uisa */
996         .align  16
997         .long   0x3F22F983, 0x3F22F983, 0x3F22F983, 0x3F22F983 /* _sInvPi */
998         .align  16
999         .long   0x80000000, 0x80000000, 0x80000000, 0x80000000 /* _sSignMask */
1000         .align  16
1001         .long   0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF /* _sAbsMask */
1002         .align  16
1003         .long   0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 /* _sRangeVal */
1004         .align  16
1005         .long   0x4B400000, 0x4B400000, 0x4B400000, 0x4B400000 /* _sRShifter */
1006         .align  16
1007         .long   0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000 /* _sOne */
1008         .align  16
1009         .long   0x46010000, 0x46010000, 0x46010000, 0x46010000 /* _sRangeVal */
1010         .align  16
1011         .long   0x3FC90000, 0x3FC90000, 0x3FC90000, 0x3FC90000 /* _sPI1 */
1012         .align  16
1013         .long   0x39FDA000, 0x39FDA000, 0x39FDA000, 0x39FDA000 /* _sPI2 */
1014         .align  16
1015         .long   0x33A22000, 0x33A22000, 0x33A22000, 0x33A22000 /* _sPI3 */
1016         .align  16
1017         .long   0x2C34611A, 0x2C34611A, 0x2C34611A, 0x2C34611A /* _sPI4 */
1018         // PI1, PI2, and PI3 when FMA is available
1019         .align  16
1020         .long   0x3FC90FDB, 0x3FC90FDB, 0x3FC90FDB, 0x3FC90FDB /* _sPI1_FMA */
1021         .align  16
1022         .long   0xB33BBD2E, 0xB33BBD2E, 0xB33BBD2E, 0xB33BBD2E /* _sPI2_FMA */
1023         .align  16
1024         .long   0xA6F72CED, 0xA6F72CED, 0xA6F72CED, 0xA6F72CED /* _sPI3_FMA */
1025         .align  16
1026         .long   0x3F7FFFFC, 0x3F7FFFFC, 0x3F7FFFFC, 0x3F7FFFFC /* _sP0 */
1027         .align  16
1028         .long   0xBDC433B4, 0xBDC433B4, 0xBDC433B4, 0xBDC433B4 /* _sP1 */
1029         .align  16
1030         .long   0x3F7FFFFC, 0x3F7FFFFC, 0x3F7FFFFC, 0x3F7FFFFC /* _sQ0 */
1031         .align  16
1032         .long   0xBEDBB7AB, 0xBEDBB7AB, 0xBEDBB7AB, 0xBEDBB7AB /* _sQ1 */
1033         .align  16
1034         .long   0x3C1F336B, 0x3C1F336B, 0x3C1F336B, 0x3C1F336B /* _sQ2 */
1035         .align  16
1036         .long   0x40000000, 0x40000000, 0x40000000, 0x40000000 /* _sTwo */
1037         // _sCoeffs Breakpoint B = 0 * pi/128, function tan(B + x)
1038         .align  16
1039         .long   0x3FC90FDB // B' = pi/2 - B (high single)
1040         .long   0xB33BBD2E // B' = pi/2 - B (low single)
1041         .long   0x00000000 // tau (1 for cot path)
1042         .long   0x00000000 // c0 (high single)
1043         .long   0x00000000 // c0 (low single)
1044         .long   0x3F800000 // c1 (high 1 bit)
1045         .long   0x00000000 // c1 (low single)
1046         .long   0x00000000 // c2
1047         .long   0x3EAAACDD // c3
1048         .long   0x00000000 // c4
1049         .long   0x3FC5EB9B // B' = pi/2 - B (high single)
1050         .long   0x32DE638C // B' = pi/2 - B (low single)
1051         .long   0x00000000 // tau (1 for cot path)
1052         .long   0x3CC91A31 // c0 (high single)
1053         .long   0x2F8E8D1A // c0 (low single)
1054         .long   0x3F800000 // c1 (high 1 bit)
1055         .long   0x3A1DFA00 // c1 (low single)
1056         .long   0x3CC9392D // c2
1057         .long   0x3EAB1889 // c3
1058         .long   0x3C885D3B // c4
1059         .long   0x3FC2C75C // B' = pi/2 - B (high single)
1060         .long   0xB2CBBE8A // B' = pi/2 - B (low single)
1061         .long   0x00000000 // tau (1 for cot path)
1062         .long   0x3D49393C // c0 (high single)
1063         .long   0x30A39F5B // c0 (low single)
1064         .long   0x3F800000 // c1 (high 1 bit)
1065         .long   0x3B1E2B00 // c1 (low single)
1066         .long   0x3D49B5D4 // c2
1067         .long   0x3EAC4F10 // c3
1068         .long   0x3CFD9425 // c4
1069         .long   0x3FBFA31C // B' = pi/2 - B (high single)
1070         .long   0x33450FB0 // B' = pi/2 - B (low single)
1071         .long   0x00000000 // tau (1 for cot path)
1072         .long   0x3D9711CE // c0 (high single)
1073         .long   0x314FEB28 // c0 (low single)
1074         .long   0x3F800000 // c1 (high 1 bit)
1075         .long   0x3BB24C00 // c1 (low single)
1076         .long   0x3D97E43A // c2
1077         .long   0x3EAE6A89 // c3
1078         .long   0x3D4D07E0 // c4
1079         .long   0x3FBC7EDD // B' = pi/2 - B (high single)
1080         .long   0xB1800ADD // B' = pi/2 - B (low single)
1081         .long   0x00000000 // tau (1 for cot path)
1082         .long   0x3DC9B5DC // c0 (high single)
1083         .long   0x3145AD86 // c0 (low single)
1084         .long   0x3F800000 // c1 (high 1 bit)
1085         .long   0x3C1EEF20 // c1 (low single)
1086         .long   0x3DCBAAEA // c2
1087         .long   0x3EB14E5E // c3
1088         .long   0x3D858BB2 // c4
1089         .long   0x3FB95A9E // B' = pi/2 - B (high single)
1090         .long   0xB3651267 // B' = pi/2 - B (low single)
1091         .long   0x00000000 // tau (1 for cot path)
1092         .long   0x3DFC98C2 // c0 (high single)
1093         .long   0xB0AE525C // c0 (low single)
1094         .long   0x3F800000 // c1 (high 1 bit)
1095         .long   0x3C793D20 // c1 (low single)
1096         .long   0x3E003845 // c2
1097         .long   0x3EB5271F // c3
1098         .long   0x3DAC669E // c4
1099         .long   0x3FB6365E // B' = pi/2 - B (high single)
1100         .long   0x328BB91C // B' = pi/2 - B (low single)
1101         .long   0x00000000 // tau (1 for cot path)
1102         .long   0x3E17E564 // c0 (high single)
1103         .long   0xB1C5A2E4 // c0 (low single)
1104         .long   0x3F800000 // c1 (high 1 bit)
1105         .long   0x3CB440D0 // c1 (low single)
1106         .long   0x3E1B3D00 // c2
1107         .long   0x3EB9F664 // c3
1108         .long   0x3DD647C0 // c4
1109         .long   0x3FB3121F // B' = pi/2 - B (high single)
1110         .long   0xB30F347D // B' = pi/2 - B (low single)
1111         .long   0x00000000 // tau (1 for cot path)
1112         .long   0x3E31AE4D // c0 (high single)
1113         .long   0xB1F32251 // c0 (low single)
1114         .long   0x3F800000 // c1 (high 1 bit)
1115         .long   0x3CF6A500 // c1 (low single)
1116         .long   0x3E3707DA // c2
1117         .long   0x3EBFA489 // c3
1118         .long   0x3DFBD9C7 // c4
1119         .long   0x3FAFEDDF // B' = pi/2 - B (high single)
1120         .long   0x331BBA77 // B' = pi/2 - B (low single)
1121         .long   0x00000000 // tau (1 for cot path)
1122         .long   0x3E4BAFAF // c0 (high single)
1123         .long   0x2F2A29E0 // c0 (low single)
1124         .long   0x3F800000 // c1 (high 1 bit)
1125         .long   0x3D221018 // c1 (low single)
1126         .long   0x3E53BED0 // c2
1127         .long   0x3EC67E26 // c3
1128         .long   0x3E1568E2 // c4
1129         .long   0x3FACC9A0 // B' = pi/2 - B (high single)
1130         .long   0xB2655A50 // B' = pi/2 - B (low single)
1131         .long   0x00000000 // tau (1 for cot path)
1132         .long   0x3E65F267 // c0 (high single)
1133         .long   0x31B4B1DF // c0 (low single)
1134         .long   0x3F800000 // c1 (high 1 bit)
1135         .long   0x3D4E8B90 // c1 (low single)
1136         .long   0x3E718ACA // c2
1137         .long   0x3ECE7164 // c3
1138         .long   0x3E2DC161 // c4
1139         .long   0x3FA9A560 // B' = pi/2 - B (high single)
1140         .long   0x33719861 // B' = pi/2 - B (low single)
1141         .long   0x00000000 // tau (1 for cot path)
1142         .long   0x3E803FD4 // c0 (high single)
1143         .long   0xB2279E66 // c0 (low single)
1144         .long   0x3F800000 // c1 (high 1 bit)
1145         .long   0x3D807FC8 // c1 (low single)
1146         .long   0x3E884BD4 // c2
1147         .long   0x3ED7812D // c3
1148         .long   0x3E4636EB // c4
1149         .long   0x3FA68121 // B' = pi/2 - B (high single)
1150         .long   0x31E43AAC // B' = pi/2 - B (low single)
1151         .long   0x00000000 // tau (1 for cot path)
1152         .long   0x3E8DB082 // c0 (high single)
1153         .long   0xB132A234 // c0 (low single)
1154         .long   0x3F800000 // c1 (high 1 bit)
1155         .long   0x3D9CD7D0 // c1 (low single)
1156         .long   0x3E988A60 // c2
1157         .long   0x3EE203E3 // c3
1158         .long   0x3E63582C // c4
1159         .long   0x3FA35CE2 // B' = pi/2 - B (high single)
1160         .long   0xB33889B6 // B' = pi/2 - B (low single)
1161         .long   0x00000000 // tau (1 for cot path)
1162         .long   0x3E9B5042 // c0 (high single)
1163         .long   0xB22A3AEE // c0 (low single)
1164         .long   0x3F800000 // c1 (high 1 bit)
1165         .long   0x3DBC7490 // c1 (low single)
1166         .long   0x3EA99AF5 // c2
1167         .long   0x3EEDE107 // c3
1168         .long   0x3E80E9AA // c4
1169         .long   0x3FA038A2 // B' = pi/2 - B (high single)
1170         .long   0x32E4CA7E // B' = pi/2 - B (low single)
1171         .long   0x00000000 // tau (1 for cot path)
1172         .long   0x3EA92457 // c0 (high single)
1173         .long   0x30B80830 // c0 (low single)
1174         .long   0x3F800000 // c1 (high 1 bit)
1175         .long   0x3DDF8200 // c1 (low single)
1176         .long   0x3EBB99E9 // c2
1177         .long   0x3EFB4AA8 // c3
1178         .long   0x3E9182BE // c4
1179         .long   0x3F9D1463 // B' = pi/2 - B (high single)
1180         .long   0xB2C55799 // B' = pi/2 - B (low single)
1181         .long   0x00000000 // tau (1 for cot path)
1182         .long   0x3EB73250 // c0 (high single)
1183         .long   0xB2028823 // c0 (low single)
1184         .long   0x3F800000 // c1 (high 1 bit)
1185         .long   0x3E0318F8 // c1 (low single)
1186         .long   0x3ECEA678 // c2
1187         .long   0x3F053C67 // c3
1188         .long   0x3EA41E53 // c4
1189         .long   0x3F99F023 // B' = pi/2 - B (high single)
1190         .long   0x33484328 // B' = pi/2 - B (low single)
1191         .long   0x00000000 // tau (1 for cot path)
1192         .long   0x3EC5800D // c0 (high single)
1193         .long   0xB214C3C1 // c0 (low single)
1194         .long   0x3F800000 // c1 (high 1 bit)
1195         .long   0x3E185E54 // c1 (low single)
1196         .long   0x3EE2E342 // c2
1197         .long   0x3F0DCA73 // c3
1198         .long   0x3EB8CC21 // c4
1199         .long   0x3F96CBE4 // B' = pi/2 - B (high single)
1200         .long   0xB14CDE2E // B' = pi/2 - B (low single)
1201         .long   0x00000000 // tau (1 for cot path)
1202         .long   0x3ED413CD // c0 (high single)
1203         .long   0xB1C06152 // c0 (low single)
1204         .long   0x3F800000 // c1 (high 1 bit)
1205         .long   0x3E2FB0CC // c1 (low single)
1206         .long   0x3EF876CB // c2
1207         .long   0x3F177807 // c3
1208         .long   0x3ED08437 // c4
1209         .long   0x3F93A7A5 // B' = pi/2 - B (high single)
1210         .long   0xB361DEEE // B' = pi/2 - B (low single)
1211         .long   0x00000000 // tau (1 for cot path)
1212         .long   0x3EE2F439 // c0 (high single)
1213         .long   0xB1F4399E // c0 (low single)
1214         .long   0x3F800000 // c1 (high 1 bit)
1215         .long   0x3E49341C // c1 (low single)
1216         .long   0x3F07C61A // c2
1217         .long   0x3F22560F // c3
1218         .long   0x3EEAA81E // c4
1219         .long   0x3F908365 // B' = pi/2 - B (high single)
1220         .long   0x3292200D // B' = pi/2 - B (low single)
1221         .long   0x00000000 // tau (1 for cot path)
1222         .long   0x3EF22870 // c0 (high single)
1223         .long   0x325271F4 // c0 (low single)
1224         .long   0x3F800000 // c1 (high 1 bit)
1225         .long   0x3E65107A // c1 (low single)
1226         .long   0x3F1429F0 // c2
1227         .long   0x3F2E8AFC // c3
1228         .long   0x3F040498 // c4
1229         .long   0x3F8D5F26 // B' = pi/2 - B (high single)
1230         .long   0xB30C0105 // B' = pi/2 - B (low single)
1231         .long   0x00000000 // tau (1 for cot path)
1232         .long   0x3F00DC0D // c0 (high single)
1233         .long   0xB214AF72 // c0 (low single)
1234         .long   0x3F800000 // c1 (high 1 bit)
1235         .long   0x3E81B994 // c1 (low single)
1236         .long   0x3F218233 // c2
1237         .long   0x3F3C4531 // c3
1238         .long   0x3F149688 // c4
1239         .long   0x3F8A3AE6 // B' = pi/2 - B (high single)
1240         .long   0x331EEDF0 // B' = pi/2 - B (low single)
1241         .long   0x00000000 // tau (1 for cot path)
1242         .long   0x3F08D5B9 // c0 (high single)
1243         .long   0xB25EF98E // c0 (low single)
1244         .long   0x3F800000 // c1 (high 1 bit)
1245         .long   0x3E92478D // c1 (low single)
1246         .long   0x3F2FEDC9 // c2
1247         .long   0x3F4BCD58 // c3
1248         .long   0x3F27AE9E // c4
1249         .long   0x3F8716A7 // B' = pi/2 - B (high single)
1250         .long   0xB2588C6D // B' = pi/2 - B (low single)
1251         .long   0x00000000 // tau (1 for cot path)
1252         .long   0x3F1105AF // c0 (high single)
1253         .long   0x32F045B0 // c0 (low single)
1254         .long   0x3F800000 // c1 (high 1 bit)
1255         .long   0x3EA44EE2 // c1 (low single)
1256         .long   0x3F3F8FDB // c2
1257         .long   0x3F5D3FD0 // c3
1258         .long   0x3F3D0A23 // c4
1259         .long   0x3F83F267 // B' = pi/2 - B (high single)
1260         .long   0x3374CBD9 // B' = pi/2 - B (low single)
1261         .long   0x00000000 // tau (1 for cot path)
1262         .long   0x3F1970C4 // c0 (high single)
1263         .long   0x32904848 // c0 (low single)
1264         .long   0x3F800000 // c1 (high 1 bit)
1265         .long   0x3EB7EFF8 // c1 (low single)
1266         .long   0x3F50907C // c2
1267         .long   0x3F710FEA // c3
1268         .long   0x3F561FED // c4
1269         .long   0x3F80CE28 // B' = pi/2 - B (high single)
1270         .long   0x31FDD672 // B' = pi/2 - B (low single)
1271         .long   0x00000000 // tau (1 for cot path)
1272         .long   0x3F221C37 // c0 (high single)
1273         .long   0xB20C61DC // c0 (low single)
1274         .long   0x3F800000 // c1 (high 1 bit)
1275         .long   0x3ECD4F71 // c1 (low single)
1276         .long   0x3F631DAA // c2
1277         .long   0x3F83B471 // c3
1278         .long   0x3F7281EA // c4
1279         .long   0x3F7B53D1 // B' = pi/2 - B (high single)
1280         .long   0x32955386 // B' = pi/2 - B (low single)
1281         .long   0x00000000 // tau (1 for cot path)
1282         .long   0x3F2B0DC1 // c0 (high single)
1283         .long   0x32AB7EBA // c0 (low single)
1284         .long   0x3F800000 // c1 (high 1 bit)
1285         .long   0x3EE496C2 // c1 (low single)
1286         .long   0x3F776C40 // c2
1287         .long   0x3F9065C1 // c3
1288         .long   0x3F89AFB6 // c4
1289         .long   0x3F750B52 // B' = pi/2 - B (high single)
1290         .long   0x32EB316F // B' = pi/2 - B (low single)
1291         .long   0x00000000 // tau (1 for cot path)
1292         .long   0x3F344BA9 // c0 (high single)
1293         .long   0xB2B8B0EA // c0 (low single)
1294         .long   0x3F800000 // c1 (high 1 bit)
1295         .long   0x3EFDF4F7 // c1 (low single)
1296         .long   0x3F86DCA8 // c2
1297         .long   0x3F9ED53B // c3
1298         .long   0x3F9CBEDE // c4
1299         .long   0x3F6EC2D4 // B' = pi/2 - B (high single)
1300         .long   0xB2BEF0A7 // B' = pi/2 - B (low single)
1301         .long   0x00000000 // tau (1 for cot path)
1302         .long   0x3F3DDCCF // c0 (high single)
1303         .long   0x32D29606 // c0 (low single)
1304         .long   0x40000000 // c1 (high 1 bit)
1305         .long   0xBEE6606F // c1 (low single)
1306         .long   0x3F9325D6 // c2
1307         .long   0x3FAF4E69 // c3
1308         .long   0x3FB3080C // c4
1309         .long   0x3F687A55 // B' = pi/2 - B (high single)
1310         .long   0xB252257B // B' = pi/2 - B (low single)
1311         .long   0x00000000 // tau (1 for cot path)
1312         .long   0x3F47C8CC // c0 (high single)
1313         .long   0xB200F51A // c0 (low single)
1314         .long   0x40000000 // c1 (high 1 bit)
1315         .long   0xBEC82C6C // c1 (low single)
1316         .long   0x3FA0BAE9 // c2
1317         .long   0x3FC2252F // c3
1318         .long   0x3FCD24C7 // c4
1319         .long   0x3F6231D6 // B' = pi/2 - B (high single)
1320         .long   0xB119A6A2 // B' = pi/2 - B (low single)
1321         .long   0x00000000 // tau (1 for cot path)
1322         .long   0x3F521801 // c0 (high single)
1323         .long   0x32AE4178 // c0 (low single)
1324         .long   0x40000000 // c1 (high 1 bit)
1325         .long   0xBEA72938 // c1 (low single)
1326         .long   0x3FAFCC22 // c2
1327         .long   0x3FD7BD4A // c3
1328         .long   0x3FEBB01B // c4
1329         .long   0x3F5BE957 // B' = pi/2 - B (high single)
1330         .long   0x3205522A // B' = pi/2 - B (low single)
1331         .long   0x00000000 // tau (1 for cot path)
1332         .long   0x3F5CD3BE // c0 (high single)
1333         .long   0x31460308 // c0 (low single)
1334         .long   0x40000000 // c1 (high 1 bit)
1335         .long   0xBE8306C5 // c1 (low single)
1336         .long   0x3FC09232 // c2
1337         .long   0x3FF09632 // c3
1338         .long   0x4007DB00 // c4
1339         .long   0x3F55A0D8 // B' = pi/2 - B (high single)
1340         .long   0x329886FF // B' = pi/2 - B (low single)
1341         .long   0x00000000 // tau (1 for cot path)
1342         .long   0x3F68065E // c0 (high single)
1343         .long   0x32670D1A // c0 (low single)
1344         .long   0x40000000 // c1 (high 1 bit)
1345         .long   0xBE36D1D6 // c1 (low single)
1346         .long   0x3FD35007 // c2
1347         .long   0x4006A861 // c3
1348         .long   0x401D4BDA // c4
1349         .long   0x3F4F5859 // B' = pi/2 - B (high single)
1350         .long   0x32EE64E8 // B' = pi/2 - B (low single)
1351         .long   0x00000000 // tau (1 for cot path)
1352         .long   0x3F73BB75 // c0 (high single)
1353         .long   0x32FC908D // c0 (low single)
1354         .long   0x40000000 // c1 (high 1 bit)
1355         .long   0xBDBF94B0 // c1 (low single)
1356         .long   0x3FE8550F // c2
1357         .long   0x40174F67 // c3
1358         .long   0x4036C608 // c4
1359         .long   0x3F490FDB // B' = pi/2 - B (high single)
1360         .long   0xB2BBBD2E // B' = pi/2 - B (low single)
1361         .long   0x3F800000 // tau (1 for cot path)
1362         .long   0xBE8BE60E // c0 (high single)
1363         .long   0x320D8D84 // c0 (low single)
1364         .long   0x3F000000 // c1 (high 1 bit)
1365         .long   0xBDF817B1 // c1 (low single)
1366         .long   0xBD8345EB // c2
1367         .long   0x3D1DFDAC // c3
1368         .long   0xBC52CF6F // c4
1369         .long   0x3F42C75C // B' = pi/2 - B (high single)
1370         .long   0xB24BBE8A // B' = pi/2 - B (low single)
1371         .long   0x3F800000 // tau (1 for cot path)
1372         .long   0xBE87283F // c0 (high single)
1373         .long   0xB268B966 // c0 (low single)
1374         .long   0x3F000000 // c1 (high 1 bit)
1375         .long   0xBDFE6529 // c1 (low single)
1376         .long   0xBD7B1953 // c2
1377         .long   0x3D18E109 // c3
1378         .long   0xBC4570B0 // c4
1379         .long   0x3F3C7EDD // B' = pi/2 - B (high single)
1380         .long   0xB1000ADD // B' = pi/2 - B (low single)
1381         .long   0x3F800000 // tau (1 for cot path)
1382         .long   0xBE827420 // c0 (high single)
1383         .long   0x320B8B4D // c0 (low single)
1384         .long   0x3E800000 // c1 (high 1 bit)
1385         .long   0x3DFB9428 // c1 (low single)
1386         .long   0xBD7002B4 // c2
1387         .long   0x3D142A6C // c3
1388         .long   0xBC3A47FF // c4
1389         .long   0x3F36365E // B' = pi/2 - B (high single)
1390         .long   0x320BB91C // B' = pi/2 - B (low single)
1391         .long   0x3F800000 // tau (1 for cot path)
1392         .long   0xBE7B9282 // c0 (high single)
1393         .long   0xB13383D2 // c0 (low single)
1394         .long   0x3E800000 // c1 (high 1 bit)
1395         .long   0x3DF5D211 // c1 (low single)
1396         .long   0xBD6542B3 // c2
1397         .long   0x3D0FE5E5 // c3
1398         .long   0xBC31FB14 // c4
1399         .long   0x3F2FEDDF // B' = pi/2 - B (high single)
1400         .long   0x329BBA77 // B' = pi/2 - B (low single)
1401         .long   0x3F800000 // tau (1 for cot path)
1402         .long   0xBE724E73 // c0 (high single)
1403         .long   0x3120C3E2 // c0 (low single)
1404         .long   0x3E800000 // c1 (high 1 bit)
1405         .long   0x3DF05283 // c1 (low single)
1406         .long   0xBD5AD45E // c2
1407         .long   0x3D0BAFBF // c3
1408         .long   0xBC27B8BB // c4
1409         .long   0x3F29A560 // B' = pi/2 - B (high single)
1410         .long   0x32F19861 // B' = pi/2 - B (low single)
1411         .long   0x3F800000 // tau (1 for cot path)
1412         .long   0xBE691B44 // c0 (high single)
1413         .long   0x31F18936 // c0 (low single)
1414         .long   0x3E800000 // c1 (high 1 bit)
1415         .long   0x3DEB138B // c1 (low single)
1416         .long   0xBD50B2F7 // c2
1417         .long   0x3D07BE3A // c3
1418         .long   0xBC1E46A7 // c4
1419         .long   0x3F235CE2 // B' = pi/2 - B (high single)
1420         .long   0xB2B889B6 // B' = pi/2 - B (low single)
1421         .long   0x3F800000 // tau (1 for cot path)
1422         .long   0xBE5FF82C // c0 (high single)
1423         .long   0xB170723A // c0 (low single)
1424         .long   0x3E800000 // c1 (high 1 bit)
1425         .long   0x3DE61354 // c1 (low single)
1426         .long   0xBD46DA06 // c2
1427         .long   0x3D0401F8 // c3
1428         .long   0xBC14E013 // c4
1429         .long   0x3F1D1463 // B' = pi/2 - B (high single)
1430         .long   0xB2455799 // B' = pi/2 - B (low single)
1431         .long   0x3F800000 // tau (1 for cot path)
1432         .long   0xBE56E46B // c0 (high single)
1433         .long   0x31E3F001 // c0 (low single)
1434         .long   0x3E800000 // c1 (high 1 bit)
1435         .long   0x3DE15025 // c1 (low single)
1436         .long   0xBD3D4550 // c2
1437         .long   0x3D00462D // c3
1438         .long   0xBC092C98 // c4
1439         .long   0x3F16CBE4 // B' = pi/2 - B (high single)
1440         .long   0xB0CCDE2E // B' = pi/2 - B (low single)
1441         .long   0x3F800000 // tau (1 for cot path)
1442         .long   0xBE4DDF41 // c0 (high single)
1443         .long   0xB1AEA094 // c0 (low single)
1444         .long   0x3E800000 // c1 (high 1 bit)
1445         .long   0x3DDCC85C // c1 (low single)
1446         .long   0xBD33F0BE // c2
1447         .long   0x3CFA23B0 // c3
1448         .long   0xBC01FCF7 // c4
1449         .long   0x3F108365 // B' = pi/2 - B (high single)
1450         .long   0x3212200D // B' = pi/2 - B (low single)
1451         .long   0x3F800000 // tau (1 for cot path)
1452         .long   0xBE44E7F8 // c0 (high single)
1453         .long   0xB1CAA3CB // c0 (low single)
1454         .long   0x3E800000 // c1 (high 1 bit)
1455         .long   0x3DD87A74 // c1 (low single)
1456         .long   0xBD2AD885 // c2
1457         .long   0x3CF3C785 // c3
1458         .long   0xBBF1E348 // c4
1459         .long   0x3F0A3AE6 // B' = pi/2 - B (high single)
1460         .long   0x329EEDF0 // B' = pi/2 - B (low single)
1461         .long   0x3F800000 // tau (1 for cot path)
1462         .long   0xBE3BFDDC // c0 (high single)
1463         .long   0xB132521A // c0 (low single)
1464         .long   0x3E800000 // c1 (high 1 bit)
1465         .long   0x3DD464FC // c1 (low single)
1466         .long   0xBD21F8F1 // c2
1467         .long   0x3CEE3076 // c3
1468         .long   0xBBE6D263 // c4
1469         .long   0x3F03F267 // B' = pi/2 - B (high single)
1470         .long   0x32F4CBD9 // B' = pi/2 - B (low single)
1471         .long   0x3F800000 // tau (1 for cot path)
1472         .long   0xBE33203E // c0 (high single)
1473         .long   0x31FEF5BE // c0 (low single)
1474         .long   0x3E800000 // c1 (high 1 bit)
1475         .long   0x3DD0869C // c1 (low single)
1476         .long   0xBD194E8C // c2
1477         .long   0x3CE8DCA9 // c3
1478         .long   0xBBDADA55 // c4
1479         .long   0x3EFB53D1 // B' = pi/2 - B (high single)
1480         .long   0x32155386 // B' = pi/2 - B (low single)
1481         .long   0x3F800000 // tau (1 for cot path)
1482         .long   0xBE2A4E71 // c0 (high single)
1483         .long   0xB19CFCEC // c0 (low single)
1484         .long   0x3E800000 // c1 (high 1 bit)
1485         .long   0x3DCCDE11 // c1 (low single)
1486         .long   0xBD10D605 // c2
1487         .long   0x3CE382A7 // c3
1488         .long   0xBBC8BD97 // c4
1489         .long   0x3EEEC2D4 // B' = pi/2 - B (high single)
1490         .long   0xB23EF0A7 // B' = pi/2 - B (low single)
1491         .long   0x3F800000 // tau (1 for cot path)
1492         .long   0xBE2187D0 // c0 (high single)
1493         .long   0xB1B7C7F7 // c0 (low single)
1494         .long   0x3E800000 // c1 (high 1 bit)
1495         .long   0x3DC96A2B // c1 (low single)
1496         .long   0xBD088C22 // c2
1497         .long   0x3CDE950E // c3
1498         .long   0xBBB89AD1 // c4
1499         .long   0x3EE231D6 // B' = pi/2 - B (high single)
1500         .long   0xB099A6A2 // B' = pi/2 - B (low single)
1501         .long   0x3F800000 // tau (1 for cot path)
1502         .long   0xBE18CBB7 // c0 (high single)
1503         .long   0xAFE28430 // c0 (low single)
1504         .long   0x3E800000 // c1 (high 1 bit)
1505         .long   0x3DC629CE // c1 (low single)
1506         .long   0xBD006DCD // c2
1507         .long   0x3CDA5A2C // c3
1508         .long   0xBBB0B3D2 // c4
1509         .long   0x3ED5A0D8 // B' = pi/2 - B (high single)
1510         .long   0x321886FF // B' = pi/2 - B (low single)
1511         .long   0x3F800000 // tau (1 for cot path)
1512         .long   0xBE101985 // c0 (high single)
1513         .long   0xB02FB2B8 // c0 (low single)
1514         .long   0x3E800000 // c1 (high 1 bit)
1515         .long   0x3DC31BF3 // c1 (low single)
1516         .long   0xBCF0F04D // c2
1517         .long   0x3CD60BC7 // c3
1518         .long   0xBBA138BA // c4
1519         .long   0x3EC90FDB // B' = pi/2 - B (high single)
1520         .long   0xB23BBD2E // B' = pi/2 - B (low single)
1521         .long   0x3F800000 // tau (1 for cot path)
1522         .long   0xBE07709D // c0 (high single)
1523         .long   0xB18A2A83 // c0 (low single)
1524         .long   0x3E800000 // c1 (high 1 bit)
1525         .long   0x3DC03FA2 // c1 (low single)
1526         .long   0xBCE15096 // c2
1527         .long   0x3CD26472 // c3
1528         .long   0xBB9A1270 // c4
1529         .long   0x3EBC7EDD // B' = pi/2 - B (high single)
1530         .long   0xB0800ADD // B' = pi/2 - B (low single)
1531         .long   0x3F800000 // tau (1 for cot path)
1532         .long   0xBDFDA0CB // c0 (high single)
1533         .long   0x2F14FCA0 // c0 (low single)
1534         .long   0x3E800000 // c1 (high 1 bit)
1535         .long   0x3DBD93F7 // c1 (low single)
1536         .long   0xBCD1F71B // c2
1537         .long   0x3CCEDD2B // c3
1538         .long   0xBB905946 // c4
1539         .long   0x3EAFEDDF // B' = pi/2 - B (high single)
1540         .long   0x321BBA77 // B' = pi/2 - B (low single)
1541         .long   0x3F800000 // tau (1 for cot path)
1542         .long   0xBDEC708C // c0 (high single)
1543         .long   0xB14895C4 // c0 (low single)
1544         .long   0x3E800000 // c1 (high 1 bit)
1545         .long   0x3DBB181E // c1 (low single)
1546         .long   0xBCC2DEA6 // c2
1547         .long   0x3CCB5027 // c3
1548         .long   0xBB7F3969 // c4
1549         .long   0x3EA35CE2 // B' = pi/2 - B (high single)
1550         .long   0xB23889B6 // B' = pi/2 - B (low single)
1551         .long   0x3F800000 // tau (1 for cot path)
1552         .long   0xBDDB4F55 // c0 (high single)
1553         .long   0x30F6437E // c0 (low single)
1554         .long   0x3E800000 // c1 (high 1 bit)
1555         .long   0x3DB8CB52 // c1 (low single)
1556         .long   0xBCB40210 // c2
1557         .long   0x3CC82D45 // c3
1558         .long   0xBB643075 // c4
1559         .long   0x3E96CBE4 // B' = pi/2 - B (high single)
1560         .long   0xB04CDE2E // B' = pi/2 - B (low single)
1561         .long   0x3F800000 // tau (1 for cot path)
1562         .long   0xBDCA3BFF // c0 (high single)
1563         .long   0x311C95EA // c0 (low single)
1564         .long   0x3E800000 // c1 (high 1 bit)
1565         .long   0x3DB6ACDE // c1 (low single)
1566         .long   0xBCA55C5B // c2
1567         .long   0x3CC5BC04 // c3
1568         .long   0xBB63A969 // c4
1569         .long   0x3E8A3AE6 // B' = pi/2 - B (high single)
1570         .long   0x321EEDF0 // B' = pi/2 - B (low single)
1571         .long   0x3F800000 // tau (1 for cot path)
1572         .long   0xBDB93569 // c0 (high single)
1573         .long   0xAFB9ED00 // c0 (low single)
1574         .long   0x3E800000 // c1 (high 1 bit)
1575         .long   0x3DB4BC1F // c1 (low single)
1576         .long   0xBC96E905 // c2
1577         .long   0x3CC2E6F5 // c3
1578         .long   0xBB3E10A6 // c4
1579         .long   0x3E7B53D1 // B' = pi/2 - B (high single)
1580         .long   0x31955386 // B' = pi/2 - B (low single)
1581         .long   0x3F800000 // tau (1 for cot path)
1582         .long   0xBDA83A77 // c0 (high single)
1583         .long   0x316D967A // c0 (low single)
1584         .long   0x3E800000 // c1 (high 1 bit)
1585         .long   0x3DB2F87C // c1 (low single)
1586         .long   0xBC88A31F // c2
1587         .long   0x3CC0E763 // c3
1588         .long   0xBB3F1666 // c4
1589         .long   0x3E6231D6 // B' = pi/2 - B (high single)
1590         .long   0xB019A6A2 // B' = pi/2 - B (low single)
1591         .long   0x3F800000 // tau (1 for cot path)
1592         .long   0xBD974A0D // c0 (high single)
1593         .long   0xB14F365B // c0 (low single)
1594         .long   0x3E800000 // c1 (high 1 bit)
1595         .long   0x3DB1616F // c1 (low single)
1596         .long   0xBC750CD8 // c2
1597         .long   0x3CBEB595 // c3
1598         .long   0xBB22B883 // c4
1599         .long   0x3E490FDB // B' = pi/2 - B (high single)
1600         .long   0xB1BBBD2E // B' = pi/2 - B (low single)
1601         .long   0x3F800000 // tau (1 for cot path)
1602         .long   0xBD866317 // c0 (high single)
1603         .long   0xAFF02140 // c0 (low single)
1604         .long   0x3E800000 // c1 (high 1 bit)
1605         .long   0x3DAFF67D // c1 (low single)
1606         .long   0xBC591CD0 // c2
1607         .long   0x3CBCBEAD // c3
1608         .long   0xBB04BBEC // c4
1609         .long   0x3E2FEDDF // B' = pi/2 - B (high single)
1610         .long   0x319BBA77 // B' = pi/2 - B (low single)
1611         .long   0x3F800000 // tau (1 for cot path)
1612         .long   0xBD6B08FF // c0 (high single)
1613         .long   0xB0EED236 // c0 (low single)
1614         .long   0x3E800000 // c1 (high 1 bit)
1615         .long   0x3DAEB739 // c1 (low single)
1616         .long   0xBC3D6D51 // c2
1617         .long   0x3CBB485D // c3
1618         .long   0xBAFFF5BA // c4
1619         .long   0x3E16CBE4 // B' = pi/2 - B (high single)
1620         .long   0xAFCCDE2E // B' = pi/2 - B (low single)
1621         .long   0x3F800000 // tau (1 for cot path)
1622         .long   0xBD495A6C // c0 (high single)
1623         .long   0xB0A427BD // c0 (low single)
1624         .long   0x3E800000 // c1 (high 1 bit)
1625         .long   0x3DADA345 // c1 (low single)
1626         .long   0xBC21F648 // c2
1627         .long   0x3CB9D1B4 // c3
1628         .long   0xBACB5567 // c4
1629         .long   0x3DFB53D1 // B' = pi/2 - B (high single)
1630         .long   0x31155386 // B' = pi/2 - B (low single)
1631         .long   0x3F800000 // tau (1 for cot path)
1632         .long   0xBD27B856 // c0 (high single)
1633         .long   0xB0F7EE91 // c0 (low single)
1634         .long   0x3E800000 // c1 (high 1 bit)
1635         .long   0x3DACBA4E // c1 (low single)
1636         .long   0xBC06AEE3 // c2
1637         .long   0x3CB8E5DC // c3
1638         .long   0xBAEC00EE // c4
1639         .long   0x3DC90FDB // B' = pi/2 - B (high single)
1640         .long   0xB13BBD2E // B' = pi/2 - B (low single)
1641         .long   0x3F800000 // tau (1 for cot path)
1642         .long   0xBD0620A3 // c0 (high single)
1643         .long   0xB0ECAB40 // c0 (low single)
1644         .long   0x3E800000 // c1 (high 1 bit)
1645         .long   0x3DABFC11 // c1 (low single)
1646         .long   0xBBD7200F // c2
1647         .long   0x3CB79475 // c3
1648         .long   0xBA2B0ADC // c4
1649         .long   0x3D96CBE4 // B' = pi/2 - B (high single)
1650         .long   0xAF4CDE2E // B' = pi/2 - B (low single)
1651         .long   0x3F800000 // tau (1 for cot path)
1652         .long   0xBCC92278 // c0 (high single)
1653         .long   0x302F2E68 // c0 (low single)
1654         .long   0x3E800000 // c1 (high 1 bit)
1655         .long   0x3DAB6854 // c1 (low single)
1656         .long   0xBBA1214F // c2
1657         .long   0x3CB6C1E9 // c3
1658         .long   0x3843C2F3 // c4
1659         .long   0x3D490FDB // B' = pi/2 - B (high single)
1660         .long   0xB0BBBD2E // B' = pi/2 - B (low single)
1661         .long   0x3F800000 // tau (1 for cot path)
1662         .long   0xBC861015 // c0 (high single)
1663         .long   0xAFD68E2E // c0 (low single)
1664         .long   0x3E800000 // c1 (high 1 bit)
1665         .long   0x3DAAFEEB // c1 (low single)
1666         .long   0xBB569F3F // c2
1667         .long   0x3CB6A84E // c3
1668         .long   0xBAC64194 // c4
1669         .long   0x3CC90FDB // B' = pi/2 - B (high single)
1670         .long   0xB03BBD2E // B' = pi/2 - B (low single)
1671         .long   0x3F800000 // tau (1 for cot path)
1672         .long   0xBC060BF3 // c0 (high single)
1673         .long   0x2FE251AE // c0 (low single)
1674         .long   0x3E800000 // c1 (high 1 bit)
1675         .long   0x3DAABFB9 // c1 (low single)
1676         .long   0xBAD67C60 // c2
1677         .long   0x3CB64CA5 // c3
1678         .long   0xBACDE881 // c4
1679         .long   0x00000000 // B' = pi/2 - B (high single)
1680         .long   0x00000000 // B' = pi/2 - B (low single)
1681         .long   0x3F800000 // tau (1 for cot path)
1682         .long   0x00000000 // c0 (high single)
1683         .long   0x00000000 // c0 (low single)
1684         .long   0x3E800000 // c1 (high 1 bit)
1685         .long   0x3DAAAAAB // c1 (low single)
1686         .long   0x00000000 // c2
1687         .long   0x3CB5E28B // c3
1688         .long   0x00000000 // c4
1689         .long   0xBCC90FDB // B' = pi/2 - B (high single)
1690         .long   0x303BBD2E // B' = pi/2 - B (low single)
1691         .long   0x3F800000 // tau (1 for cot path)
1692         .long   0x3C060BF3 // c0 (high single)
1693         .long   0xAFE251AE // c0 (low single)
1694         .long   0x3E800000 // c1 (high 1 bit)
1695         .long   0x3DAABFB9 // c1 (low single)
1696         .long   0x3AD67C60 // c2
1697         .long   0x3CB64CA5 // c3
1698         .long   0x3ACDE881 // c4
1699         .long   0xBD490FDB // B' = pi/2 - B (high single)
1700         .long   0x30BBBD2E // B' = pi/2 - B (low single)
1701         .long   0x3F800000 // tau (1 for cot path)
1702         .long   0x3C861015 // c0 (high single)
1703         .long   0x2FD68E2E // c0 (low single)
1704         .long   0x3E800000 // c1 (high 1 bit)
1705         .long   0x3DAAFEEB // c1 (low single)
1706         .long   0x3B569F3F // c2
1707         .long   0x3CB6A84E // c3
1708         .long   0x3AC64194 // c4
1709         .long   0xBD96CBE4 // B' = pi/2 - B (high single)
1710         .long   0x2F4CDE2E // B' = pi/2 - B (low single)
1711         .long   0x3F800000 // tau (1 for cot path)
1712         .long   0x3CC92278 // c0 (high single)
1713         .long   0xB02F2E68 // c0 (low single)
1714         .long   0x3E800000 // c1 (high 1 bit)
1715         .long   0x3DAB6854 // c1 (low single)
1716         .long   0x3BA1214F // c2
1717         .long   0x3CB6C1E9 // c3
1718         .long   0xB843C2F2 // c4
1719         .long   0xBDC90FDB // B' = pi/2 - B (high single)
1720         .long   0x313BBD2E // B' = pi/2 - B (low single)
1721         .long   0x3F800000 // tau (1 for cot path)
1722         .long   0x3D0620A3 // c0 (high single)
1723         .long   0x30ECAB40 // c0 (low single)
1724         .long   0x3E800000 // c1 (high 1 bit)
1725         .long   0x3DABFC11 // c1 (low single)
1726         .long   0x3BD7200F // c2
1727         .long   0x3CB79475 // c3
1728         .long   0x3A2B0ADC // c4
1729         .long   0xBDFB53D1 // B' = pi/2 - B (high single)
1730         .long   0xB1155386 // B' = pi/2 - B (low single)
1731         .long   0x3F800000 // tau (1 for cot path)
1732         .long   0x3D27B856 // c0 (high single)
1733         .long   0x30F7EE91 // c0 (low single)
1734         .long   0x3E800000 // c1 (high 1 bit)
1735         .long   0x3DACBA4E // c1 (low single)
1736         .long   0x3C06AEE3 // c2
1737         .long   0x3CB8E5DC // c3
1738         .long   0x3AEC00EE // c4
1739         .long   0xBE16CBE4 // B' = pi/2 - B (high single)
1740         .long   0x2FCCDE2E // B' = pi/2 - B (low single)
1741         .long   0x3F800000 // tau (1 for cot path)
1742         .long   0x3D495A6C // c0 (high single)
1743         .long   0x30A427BD // c0 (low single)
1744         .long   0x3E800000 // c1 (high 1 bit)
1745         .long   0x3DADA345 // c1 (low single)
1746         .long   0x3C21F648 // c2
1747         .long   0x3CB9D1B4 // c3
1748         .long   0x3ACB5567 // c4
1749         .long   0xBE2FEDDF // B' = pi/2 - B (high single)
1750         .long   0xB19BBA77 // B' = pi/2 - B (low single)
1751         .long   0x3F800000 // tau (1 for cot path)
1752         .long   0x3D6B08FF // c0 (high single)
1753         .long   0x30EED236 // c0 (low single)
1754         .long   0x3E800000 // c1 (high 1 bit)
1755         .long   0x3DAEB739 // c1 (low single)
1756         .long   0x3C3D6D51 // c2
1757         .long   0x3CBB485D // c3
1758         .long   0x3AFFF5BA // c4
1759         .long   0xBE490FDB // B' = pi/2 - B (high single)
1760         .long   0x31BBBD2E // B' = pi/2 - B (low single)
1761         .long   0x3F800000 // tau (1 for cot path)
1762         .long   0x3D866317 // c0 (high single)
1763         .long   0x2FF02140 // c0 (low single)
1764         .long   0x3E800000 // c1 (high 1 bit)
1765         .long   0x3DAFF67D // c1 (low single)
1766         .long   0x3C591CD0 // c2
1767         .long   0x3CBCBEAD // c3
1768         .long   0x3B04BBEC // c4
1769         .long   0xBE6231D6 // B' = pi/2 - B (high single)
1770         .long   0x3019A6A2 // B' = pi/2 - B (low single)
1771         .long   0x3F800000 // tau (1 for cot path)
1772         .long   0x3D974A0D // c0 (high single)
1773         .long   0x314F365B // c0 (low single)
1774         .long   0x3E800000 // c1 (high 1 bit)
1775         .long   0x3DB1616F // c1 (low single)
1776         .long   0x3C750CD8 // c2
1777         .long   0x3CBEB595 // c3
1778         .long   0x3B22B883 // c4
1779         .long   0xBE7B53D1 // B' = pi/2 - B (high single)
1780         .long   0xB1955386 // B' = pi/2 - B (low single)
1781         .long   0x3F800000 // tau (1 for cot path)
1782         .long   0x3DA83A77 // c0 (high single)
1783         .long   0xB16D967A // c0 (low single)
1784         .long   0x3E800000 // c1 (high 1 bit)
1785         .long   0x3DB2F87C // c1 (low single)
1786         .long   0x3C88A31F // c2
1787         .long   0x3CC0E763 // c3
1788         .long   0x3B3F1666 // c4
1789         .long   0xBE8A3AE6 // B' = pi/2 - B (high single)
1790         .long   0xB21EEDF0 // B' = pi/2 - B (low single)
1791         .long   0x3F800000 // tau (1 for cot path)
1792         .long   0x3DB93569 // c0 (high single)
1793         .long   0x2FB9ED00 // c0 (low single)
1794         .long   0x3E800000 // c1 (high 1 bit)
1795         .long   0x3DB4BC1F // c1 (low single)
1796         .long   0x3C96E905 // c2
1797         .long   0x3CC2E6F5 // c3
1798         .long   0x3B3E10A6 // c4
1799         .long   0xBE96CBE4 // B' = pi/2 - B (high single)
1800         .long   0x304CDE2E // B' = pi/2 - B (low single)
1801         .long   0x3F800000 // tau (1 for cot path)
1802         .long   0x3DCA3BFF // c0 (high single)
1803         .long   0xB11C95EA // c0 (low single)
1804         .long   0x3E800000 // c1 (high 1 bit)
1805         .long   0x3DB6ACDE // c1 (low single)
1806         .long   0x3CA55C5B // c2
1807         .long   0x3CC5BC04 // c3
1808         .long   0x3B63A969 // c4
1809         .long   0xBEA35CE2 // B' = pi/2 - B (high single)
1810         .long   0x323889B6 // B' = pi/2 - B (low single)
1811         .long   0x3F800000 // tau (1 for cot path)
1812         .long   0x3DDB4F55 // c0 (high single)
1813         .long   0xB0F6437E // c0 (low single)
1814         .long   0x3E800000 // c1 (high 1 bit)
1815         .long   0x3DB8CB52 // c1 (low single)
1816         .long   0x3CB40210 // c2
1817         .long   0x3CC82D45 // c3
1818         .long   0x3B643075 // c4
1819         .long   0xBEAFEDDF // B' = pi/2 - B (high single)
1820         .long   0xB21BBA77 // B' = pi/2 - B (low single)
1821         .long   0x3F800000 // tau (1 for cot path)
1822         .long   0x3DEC708C // c0 (high single)
1823         .long   0x314895C4 // c0 (low single)
1824         .long   0x3E800000 // c1 (high 1 bit)
1825         .long   0x3DBB181E // c1 (low single)
1826         .long   0x3CC2DEA6 // c2
1827         .long   0x3CCB5027 // c3
1828         .long   0x3B7F3969 // c4
1829         .long   0xBEBC7EDD // B' = pi/2 - B (high single)
1830         .long   0x30800ADD // B' = pi/2 - B (low single)
1831         .long   0x3F800000 // tau (1 for cot path)
1832         .long   0x3DFDA0CB // c0 (high single)
1833         .long   0xAF14FCA0 // c0 (low single)
1834         .long   0x3E800000 // c1 (high 1 bit)
1835         .long   0x3DBD93F7 // c1 (low single)
1836         .long   0x3CD1F71B // c2
1837         .long   0x3CCEDD2B // c3
1838         .long   0x3B905946 // c4
1839         .long   0xBEC90FDB // B' = pi/2 - B (high single)
1840         .long   0x323BBD2E // B' = pi/2 - B (low single)
1841         .long   0x3F800000 // tau (1 for cot path)
1842         .long   0x3E07709D // c0 (high single)
1843         .long   0x318A2A83 // c0 (low single)
1844         .long   0x3E800000 // c1 (high 1 bit)
1845         .long   0x3DC03FA2 // c1 (low single)
1846         .long   0x3CE15096 // c2
1847         .long   0x3CD26472 // c3
1848         .long   0x3B9A1270 // c4
1849         .long   0xBED5A0D8 // B' = pi/2 - B (high single)
1850         .long   0xB21886FF // B' = pi/2 - B (low single)
1851         .long   0x3F800000 // tau (1 for cot path)
1852         .long   0x3E101985 // c0 (high single)
1853         .long   0x302FB2B8 // c0 (low single)
1854         .long   0x3E800000 // c1 (high 1 bit)
1855         .long   0x3DC31BF3 // c1 (low single)
1856         .long   0x3CF0F04D // c2
1857         .long   0x3CD60BC7 // c3
1858         .long   0x3BA138BA // c4
1859         .long   0xBEE231D6 // B' = pi/2 - B (high single)
1860         .long   0x3099A6A2 // B' = pi/2 - B (low single)
1861         .long   0x3F800000 // tau (1 for cot path)
1862         .long   0x3E18CBB7 // c0 (high single)
1863         .long   0x2FE28430 // c0 (low single)
1864         .long   0x3E800000 // c1 (high 1 bit)
1865         .long   0x3DC629CE // c1 (low single)
1866         .long   0x3D006DCD // c2
1867         .long   0x3CDA5A2C // c3
1868         .long   0x3BB0B3D2 // c4
1869         .long   0xBEEEC2D4 // B' = pi/2 - B (high single)
1870         .long   0x323EF0A7 // B' = pi/2 - B (low single)
1871         .long   0x3F800000 // tau (1 for cot path)
1872         .long   0x3E2187D0 // c0 (high single)
1873         .long   0x31B7C7F7 // c0 (low single)
1874         .long   0x3E800000 // c1 (high 1 bit)
1875         .long   0x3DC96A2B // c1 (low single)
1876         .long   0x3D088C22 // c2
1877         .long   0x3CDE950E // c3
1878         .long   0x3BB89AD1 // c4
1879         .long   0xBEFB53D1 // B' = pi/2 - B (high single)
1880         .long   0xB2155386 // B' = pi/2 - B (low single)
1881         .long   0x3F800000 // tau (1 for cot path)
1882         .long   0x3E2A4E71 // c0 (high single)
1883         .long   0x319CFCEC // c0 (low single)
1884         .long   0x3E800000 // c1 (high 1 bit)
1885         .long   0x3DCCDE11 // c1 (low single)
1886         .long   0x3D10D605 // c2
1887         .long   0x3CE382A7 // c3
1888         .long   0x3BC8BD97 // c4
1889         .long   0xBF03F267 // B' = pi/2 - B (high single)
1890         .long   0xB2F4CBD9 // B' = pi/2 - B (low single)
1891         .long   0x3F800000 // tau (1 for cot path)
1892         .long   0x3E33203E // c0 (high single)
1893         .long   0xB1FEF5BE // c0 (low single)
1894         .long   0x3E800000 // c1 (high 1 bit)
1895         .long   0x3DD0869C // c1 (low single)
1896         .long   0x3D194E8C // c2
1897         .long   0x3CE8DCA9 // c3
1898         .long   0x3BDADA55 // c4
1899         .long   0xBF0A3AE6 // B' = pi/2 - B (high single)
1900         .long   0xB29EEDF0 // B' = pi/2 - B (low single)
1901         .long   0x3F800000 // tau (1 for cot path)
1902         .long   0x3E3BFDDC // c0 (high single)
1903         .long   0x3132521A // c0 (low single)
1904         .long   0x3E800000 // c1 (high 1 bit)
1905         .long   0x3DD464FC // c1 (low single)
1906         .long   0x3D21F8F1 // c2
1907         .long   0x3CEE3076 // c3
1908         .long   0x3BE6D263 // c4
1909         .long   0xBF108365 // B' = pi/2 - B (high single)
1910         .long   0xB212200D // B' = pi/2 - B (low single)
1911         .long   0x3F800000 // tau (1 for cot path)
1912         .long   0x3E44E7F8 // c0 (high single)
1913         .long   0x31CAA3CB // c0 (low single)
1914         .long   0x3E800000 // c1 (high 1 bit)
1915         .long   0x3DD87A74 // c1 (low single)
1916         .long   0x3D2AD885 // c2
1917         .long   0x3CF3C785 // c3
1918         .long   0x3BF1E348 // c4
1919         .long   0xBF16CBE4 // B' = pi/2 - B (high single)
1920         .long   0x30CCDE2E // B' = pi/2 - B (low single)
1921         .long   0x3F800000 // tau (1 for cot path)
1922         .long   0x3E4DDF41 // c0 (high single)
1923         .long   0x31AEA094 // c0 (low single)
1924         .long   0x3E800000 // c1 (high 1 bit)
1925         .long   0x3DDCC85C // c1 (low single)
1926         .long   0x3D33F0BE // c2
1927         .long   0x3CFA23B0 // c3
1928         .long   0x3C01FCF7 // c4
1929         .long   0xBF1D1463 // B' = pi/2 - B (high single)
1930         .long   0x32455799 // B' = pi/2 - B (low single)
1931         .long   0x3F800000 // tau (1 for cot path)
1932         .long   0x3E56E46B // c0 (high single)
1933         .long   0xB1E3F001 // c0 (low single)
1934         .long   0x3E800000 // c1 (high 1 bit)
1935         .long   0x3DE15025 // c1 (low single)
1936         .long   0x3D3D4550 // c2
1937         .long   0x3D00462D // c3
1938         .long   0x3C092C98 // c4
1939         .long   0xBF235CE2 // B' = pi/2 - B (high single)
1940         .long   0x32B889B6 // B' = pi/2 - B (low single)
1941         .long   0x3F800000 // tau (1 for cot path)
1942         .long   0x3E5FF82C // c0 (high single)
1943         .long   0x3170723A // c0 (low single)
1944         .long   0x3E800000 // c1 (high 1 bit)
1945         .long   0x3DE61354 // c1 (low single)
1946         .long   0x3D46DA06 // c2
1947         .long   0x3D0401F8 // c3
1948         .long   0x3C14E013 // c4
1949         .long   0xBF29A560 // B' = pi/2 - B (high single)
1950         .long   0xB2F19861 // B' = pi/2 - B (low single)
1951         .long   0x3F800000 // tau (1 for cot path)
1952         .long   0x3E691B44 // c0 (high single)
1953         .long   0xB1F18936 // c0 (low single)
1954         .long   0x3E800000 // c1 (high 1 bit)
1955         .long   0x3DEB138B // c1 (low single)
1956         .long   0x3D50B2F7 // c2
1957         .long   0x3D07BE3A // c3
1958         .long   0x3C1E46A7 // c4
1959         .long   0xBF2FEDDF // B' = pi/2 - B (high single)
1960         .long   0xB29BBA77 // B' = pi/2 - B (low single)
1961         .long   0x3F800000 // tau (1 for cot path)
1962         .long   0x3E724E73 // c0 (high single)
1963         .long   0xB120C3E2 // c0 (low single)
1964         .long   0x3E800000 // c1 (high 1 bit)
1965         .long   0x3DF05283 // c1 (low single)
1966         .long   0x3D5AD45E // c2
1967         .long   0x3D0BAFBF // c3
1968         .long   0x3C27B8BB // c4
1969         .long   0xBF36365E // B' = pi/2 - B (high single)
1970         .long   0xB20BB91C // B' = pi/2 - B (low single)
1971         .long   0x3F800000 // tau (1 for cot path)
1972         .long   0x3E7B9282 // c0 (high single)
1973         .long   0x313383D2 // c0 (low single)
1974         .long   0x3E800000 // c1 (high 1 bit)
1975         .long   0x3DF5D211 // c1 (low single)
1976         .long   0x3D6542B3 // c2
1977         .long   0x3D0FE5E5 // c3
1978         .long   0x3C31FB14 // c4
1979         .long   0xBF3C7EDD // B' = pi/2 - B (high single)
1980         .long   0x31000ADD // B' = pi/2 - B (low single)
1981         .long   0x3F800000 // tau (1 for cot path)
1982         .long   0x3E827420 // c0 (high single)
1983         .long   0xB20B8B4D // c0 (low single)
1984         .long   0x3E800000 // c1 (high 1 bit)
1985         .long   0x3DFB9428 // c1 (low single)
1986         .long   0x3D7002B4 // c2
1987         .long   0x3D142A6C // c3
1988         .long   0x3C3A47FF // c4
1989         .long   0xBF42C75C // B' = pi/2 - B (high single)
1990         .long   0x324BBE8A // B' = pi/2 - B (low single)
1991         .long   0x3F800000 // tau (1 for cot path)
1992         .long   0x3E87283F // c0 (high single)
1993         .long   0x3268B966 // c0 (low single)
1994         .long   0x3F000000 // c1 (high 1 bit)
1995         .long   0xBDFE6529 // c1 (low single)
1996         .long   0x3D7B1953 // c2
1997         .long   0x3D18E109 // c3
1998         .long   0x3C4570B0 // c4
1999         .long   0xBF490FDB // B' = pi/2 - B (high single)
2000         .long   0x32BBBD2E // B' = pi/2 - B (low single)
2001         .long   0x00000000 // tau (1 for cot path)
2002         .long   0xBF800000 // c0 (high single)
2003         .long   0x2B410000 // c0 (low single)
2004         .long   0x40000000 // c1 (high 1 bit)
2005         .long   0xB3000000 // c1 (low single)
2006         .long   0xC0000000 // c2
2007         .long   0x402AB7C8 // c3
2008         .long   0xC05561DB // c4
2009         .long   0xBF4F5859 // B' = pi/2 - B (high single)
2010         .long   0xB2EE64E8 // B' = pi/2 - B (low single)
2011         .long   0x00000000 // tau (1 for cot path)
2012         .long   0xBF73BB75 // c0 (high single)
2013         .long   0xB2FC908D // c0 (low single)
2014         .long   0x40000000 // c1 (high 1 bit)
2015         .long   0xBDBF94B0 // c1 (low single)
2016         .long   0xBFE8550F // c2
2017         .long   0x40174F67 // c3
2018         .long   0xC036C608 // c4
2019         .long   0xBF55A0D8 // B' = pi/2 - B (high single)
2020         .long   0xB29886FF // B' = pi/2 - B (low single)
2021         .long   0x00000000 // tau (1 for cot path)
2022         .long   0xBF68065E // c0 (high single)
2023         .long   0xB2670D1A // c0 (low single)
2024         .long   0x40000000 // c1 (high 1 bit)
2025         .long   0xBE36D1D6 // c1 (low single)
2026         .long   0xBFD35007 // c2
2027         .long   0x4006A861 // c3
2028         .long   0xC01D4BDA // c4
2029         .long   0xBF5BE957 // B' = pi/2 - B (high single)
2030         .long   0xB205522A // B' = pi/2 - B (low single)
2031         .long   0x00000000 // tau (1 for cot path)
2032         .long   0xBF5CD3BE // c0 (high single)
2033         .long   0xB1460308 // c0 (low single)
2034         .long   0x40000000 // c1 (high 1 bit)
2035         .long   0xBE8306C5 // c1 (low single)
2036         .long   0xBFC09232 // c2
2037         .long   0x3FF09632 // c3
2038         .long   0xC007DB00 // c4
2039         .long   0xBF6231D6 // B' = pi/2 - B (high single)
2040         .long   0x3119A6A2 // B' = pi/2 - B (low single)
2041         .long   0x00000000 // tau (1 for cot path)
2042         .long   0xBF521801 // c0 (high single)
2043         .long   0xB2AE4178 // c0 (low single)
2044         .long   0x40000000 // c1 (high 1 bit)
2045         .long   0xBEA72938 // c1 (low single)
2046         .long   0xBFAFCC22 // c2
2047         .long   0x3FD7BD4A // c3
2048         .long   0xBFEBB01B // c4
2049         .long   0xBF687A55 // B' = pi/2 - B (high single)
2050         .long   0x3252257B // B' = pi/2 - B (low single)
2051         .long   0x00000000 // tau (1 for cot path)
2052         .long   0xBF47C8CC // c0 (high single)
2053         .long   0x3200F51A // c0 (low single)
2054         .long   0x40000000 // c1 (high 1 bit)
2055         .long   0xBEC82C6C // c1 (low single)
2056         .long   0xBFA0BAE9 // c2
2057         .long   0x3FC2252F // c3
2058         .long   0xBFCD24C7 // c4
2059         .long   0xBF6EC2D4 // B' = pi/2 - B (high single)
2060         .long   0x32BEF0A7 // B' = pi/2 - B (low single)
2061         .long   0x00000000 // tau (1 for cot path)
2062         .long   0xBF3DDCCF // c0 (high single)
2063         .long   0xB2D29606 // c0 (low single)
2064         .long   0x40000000 // c1 (high 1 bit)
2065         .long   0xBEE6606F // c1 (low single)
2066         .long   0xBF9325D6 // c2
2067         .long   0x3FAF4E69 // c3
2068         .long   0xBFB3080C // c4
2069         .long   0xBF750B52 // B' = pi/2 - B (high single)
2070         .long   0xB2EB316F // B' = pi/2 - B (low single)
2071         .long   0x00000000 // tau (1 for cot path)
2072         .long   0xBF344BA9 // c0 (high single)
2073         .long   0x32B8B0EA // c0 (low single)
2074         .long   0x3F800000 // c1 (high 1 bit)
2075         .long   0x3EFDF4F7 // c1 (low single)
2076         .long   0xBF86DCA8 // c2
2077         .long   0x3F9ED53B // c3
2078         .long   0xBF9CBEDE // c4
2079         .long   0xBF7B53D1 // B' = pi/2 - B (high single)
2080         .long   0xB2955386 // B' = pi/2 - B (low single)
2081         .long   0x00000000 // tau (1 for cot path)
2082         .long   0xBF2B0DC1 // c0 (high single)
2083         .long   0xB2AB7EBA // c0 (low single)
2084         .long   0x3F800000 // c1 (high 1 bit)
2085         .long   0x3EE496C2 // c1 (low single)
2086         .long   0xBF776C40 // c2
2087         .long   0x3F9065C1 // c3
2088         .long   0xBF89AFB6 // c4
2089         .long   0xBF80CE28 // B' = pi/2 - B (high single)
2090         .long   0xB1FDD672 // B' = pi/2 - B (low single)
2091         .long   0x00000000 // tau (1 for cot path)
2092         .long   0xBF221C37 // c0 (high single)
2093         .long   0x320C61DC // c0 (low single)
2094         .long   0x3F800000 // c1 (high 1 bit)
2095         .long   0x3ECD4F71 // c1 (low single)
2096         .long   0xBF631DAA // c2
2097         .long   0x3F83B471 // c3
2098         .long   0xBF7281EA // c4
2099         .long   0xBF83F267 // B' = pi/2 - B (high single)
2100         .long   0xB374CBD9 // B' = pi/2 - B (low single)
2101         .long   0x00000000 // tau (1 for cot path)
2102         .long   0xBF1970C4 // c0 (high single)
2103         .long   0xB2904848 // c0 (low single)
2104         .long   0x3F800000 // c1 (high 1 bit)
2105         .long   0x3EB7EFF8 // c1 (low single)
2106         .long   0xBF50907C // c2
2107         .long   0x3F710FEA // c3
2108         .long   0xBF561FED // c4
2109         .long   0xBF8716A7 // B' = pi/2 - B (high single)
2110         .long   0x32588C6D // B' = pi/2 - B (low single)
2111         .long   0x00000000 // tau (1 for cot path)
2112         .long   0xBF1105AF // c0 (high single)
2113         .long   0xB2F045B0 // c0 (low single)
2114         .long   0x3F800000 // c1 (high 1 bit)
2115         .long   0x3EA44EE2 // c1 (low single)
2116         .long   0xBF3F8FDB // c2
2117         .long   0x3F5D3FD0 // c3
2118         .long   0xBF3D0A23 // c4
2119         .long   0xBF8A3AE6 // B' = pi/2 - B (high single)
2120         .long   0xB31EEDF0 // B' = pi/2 - B (low single)
2121         .long   0x00000000 // tau (1 for cot path)
2122         .long   0xBF08D5B9 // c0 (high single)
2123         .long   0x325EF98E // c0 (low single)
2124         .long   0x3F800000 // c1 (high 1 bit)
2125         .long   0x3E92478D // c1 (low single)
2126         .long   0xBF2FEDC9 // c2
2127         .long   0x3F4BCD58 // c3
2128         .long   0xBF27AE9E // c4
2129         .long   0xBF8D5F26 // B' = pi/2 - B (high single)
2130         .long   0x330C0105 // B' = pi/2 - B (low single)
2131         .long   0x00000000 // tau (1 for cot path)
2132         .long   0xBF00DC0D // c0 (high single)
2133         .long   0x3214AF72 // c0 (low single)
2134         .long   0x3F800000 // c1 (high 1 bit)
2135         .long   0x3E81B994 // c1 (low single)
2136         .long   0xBF218233 // c2
2137         .long   0x3F3C4531 // c3
2138         .long   0xBF149688 // c4
2139         .long   0xBF908365 // B' = pi/2 - B (high single)
2140         .long   0xB292200D // B' = pi/2 - B (low single)
2141         .long   0x00000000 // tau (1 for cot path)
2142         .long   0xBEF22870 // c0 (high single)
2143         .long   0xB25271F4 // c0 (low single)
2144         .long   0x3F800000 // c1 (high 1 bit)
2145         .long   0x3E65107A // c1 (low single)
2146         .long   0xBF1429F0 // c2
2147         .long   0x3F2E8AFC // c3
2148         .long   0xBF040498 // c4
2149         .long   0xBF93A7A5 // B' = pi/2 - B (high single)
2150         .long   0x3361DEEE // B' = pi/2 - B (low single)
2151         .long   0x00000000 // tau (1 for cot path)
2152         .long   0xBEE2F439 // c0 (high single)
2153         .long   0x31F4399E // c0 (low single)
2154         .long   0x3F800000 // c1 (high 1 bit)
2155         .long   0x3E49341C // c1 (low single)
2156         .long   0xBF07C61A // c2
2157         .long   0x3F22560F // c3
2158         .long   0xBEEAA81E // c4
2159         .long   0xBF96CBE4 // B' = pi/2 - B (high single)
2160         .long   0x314CDE2E // B' = pi/2 - B (low single)
2161         .long   0x00000000 // tau (1 for cot path)
2162         .long   0xBED413CD // c0 (high single)
2163         .long   0x31C06152 // c0 (low single)
2164         .long   0x3F800000 // c1 (high 1 bit)
2165         .long   0x3E2FB0CC // c1 (low single)
2166         .long   0xBEF876CB // c2
2167         .long   0x3F177807 // c3
2168         .long   0xBED08437 // c4
2169         .long   0xBF99F023 // B' = pi/2 - B (high single)
2170         .long   0xB3484328 // B' = pi/2 - B (low single)
2171         .long   0x00000000 // tau (1 for cot path)
2172         .long   0xBEC5800D // c0 (high single)
2173         .long   0x3214C3C1 // c0 (low single)
2174         .long   0x3F800000 // c1 (high 1 bit)
2175         .long   0x3E185E54 // c1 (low single)
2176         .long   0xBEE2E342 // c2
2177         .long   0x3F0DCA73 // c3
2178         .long   0xBEB8CC21 // c4
2179         .long   0xBF9D1463 // B' = pi/2 - B (high single)
2180         .long   0x32C55799 // B' = pi/2 - B (low single)
2181         .long   0x00000000 // tau (1 for cot path)
2182         .long   0xBEB73250 // c0 (high single)
2183         .long   0x32028823 // c0 (low single)
2184         .long   0x3F800000 // c1 (high 1 bit)
2185         .long   0x3E0318F8 // c1 (low single)
2186         .long   0xBECEA678 // c2
2187         .long   0x3F053C67 // c3
2188         .long   0xBEA41E53 // c4
2189         .long   0xBFA038A2 // B' = pi/2 - B (high single)
2190         .long   0xB2E4CA7E // B' = pi/2 - B (low single)
2191         .long   0x00000000 // tau (1 for cot path)
2192         .long   0xBEA92457 // c0 (high single)
2193         .long   0xB0B80830 // c0 (low single)
2194         .long   0x3F800000 // c1 (high 1 bit)
2195         .long   0x3DDF8200 // c1 (low single)
2196         .long   0xBEBB99E9 // c2
2197         .long   0x3EFB4AA8 // c3
2198         .long   0xBE9182BE // c4
2199         .long   0xBFA35CE2 // B' = pi/2 - B (high single)
2200         .long   0x333889B6 // B' = pi/2 - B (low single)
2201         .long   0x00000000 // tau (1 for cot path)
2202         .long   0xBE9B5042 // c0 (high single)
2203         .long   0x322A3AEE // c0 (low single)
2204         .long   0x3F800000 // c1 (high 1 bit)
2205         .long   0x3DBC7490 // c1 (low single)
2206         .long   0xBEA99AF5 // c2
2207         .long   0x3EEDE107 // c3
2208         .long   0xBE80E9AA // c4
2209         .long   0xBFA68121 // B' = pi/2 - B (high single)
2210         .long   0xB1E43AAC // B' = pi/2 - B (low single)
2211         .long   0x00000000 // tau (1 for cot path)
2212         .long   0xBE8DB082 // c0 (high single)
2213         .long   0x3132A234 // c0 (low single)
2214         .long   0x3F800000 // c1 (high 1 bit)
2215         .long   0x3D9CD7D0 // c1 (low single)
2216         .long   0xBE988A60 // c2
2217         .long   0x3EE203E3 // c3
2218         .long   0xBE63582C // c4
2219         .long   0xBFA9A560 // B' = pi/2 - B (high single)
2220         .long   0xB3719861 // B' = pi/2 - B (low single)
2221         .long   0x00000000 // tau (1 for cot path)
2222         .long   0xBE803FD4 // c0 (high single)
2223         .long   0x32279E66 // c0 (low single)
2224         .long   0x3F800000 // c1 (high 1 bit)
2225         .long   0x3D807FC8 // c1 (low single)
2226         .long   0xBE884BD4 // c2
2227         .long   0x3ED7812D // c3
2228         .long   0xBE4636EB // c4
2229         .long   0xBFACC9A0 // B' = pi/2 - B (high single)
2230         .long   0x32655A50 // B' = pi/2 - B (low single)
2231         .long   0x00000000 // tau (1 for cot path)
2232         .long   0xBE65F267 // c0 (high single)
2233         .long   0xB1B4B1DF // c0 (low single)
2234         .long   0x3F800000 // c1 (high 1 bit)
2235         .long   0x3D4E8B90 // c1 (low single)
2236         .long   0xBE718ACA // c2
2237         .long   0x3ECE7164 // c3
2238         .long   0xBE2DC161 // c4
2239         .long   0xBFAFEDDF // B' = pi/2 - B (high single)
2240         .long   0xB31BBA77 // B' = pi/2 - B (low single)
2241         .long   0x00000000 // tau (1 for cot path)
2242         .long   0xBE4BAFAF // c0 (high single)
2243         .long   0xAF2A29E0 // c0 (low single)
2244         .long   0x3F800000 // c1 (high 1 bit)
2245         .long   0x3D221018 // c1 (low single)
2246         .long   0xBE53BED0 // c2
2247         .long   0x3EC67E26 // c3
2248         .long   0xBE1568E2 // c4
2249         .long   0xBFB3121F // B' = pi/2 - B (high single)
2250         .long   0x330F347D // B' = pi/2 - B (low single)
2251         .long   0x00000000 // tau (1 for cot path)
2252         .long   0xBE31AE4D // c0 (high single)
2253         .long   0x31F32251 // c0 (low single)
2254         .long   0x3F800000 // c1 (high 1 bit)
2255         .long   0x3CF6A500 // c1 (low single)
2256         .long   0xBE3707DA // c2
2257         .long   0x3EBFA489 // c3
2258         .long   0xBDFBD9C7 // c4
2259         .long   0xBFB6365E // B' = pi/2 - B (high single)
2260         .long   0xB28BB91C // B' = pi/2 - B (low single)
2261         .long   0x00000000 // tau (1 for cot path)
2262         .long   0xBE17E564 // c0 (high single)
2263         .long   0x31C5A2E4 // c0 (low single)
2264         .long   0x3F800000 // c1 (high 1 bit)
2265         .long   0x3CB440D0 // c1 (low single)
2266         .long   0xBE1B3D00 // c2
2267         .long   0x3EB9F664 // c3
2268         .long   0xBDD647C0 // c4
2269         .long   0xBFB95A9E // B' = pi/2 - B (high single)
2270         .long   0x33651267 // B' = pi/2 - B (low single)
2271         .long   0x00000000 // tau (1 for cot path)
2272         .long   0xBDFC98C2 // c0 (high single)
2273         .long   0x30AE525C // c0 (low single)
2274         .long   0x3F800000 // c1 (high 1 bit)
2275         .long   0x3C793D20 // c1 (low single)
2276         .long   0xBE003845 // c2
2277         .long   0x3EB5271F // c3
2278         .long   0xBDAC669E // c4
2279         .long   0xBFBC7EDD // B' = pi/2 - B (high single)
2280         .long   0x31800ADD // B' = pi/2 - B (low single)
2281         .long   0x00000000 // tau (1 for cot path)
2282         .long   0xBDC9B5DC // c0 (high single)
2283         .long   0xB145AD86 // c0 (low single)
2284         .long   0x3F800000 // c1 (high 1 bit)
2285         .long   0x3C1EEF20 // c1 (low single)
2286         .long   0xBDCBAAEA // c2
2287         .long   0x3EB14E5E // c3
2288         .long   0xBD858BB2 // c4
2289         .long   0xBFBFA31C // B' = pi/2 - B (high single)
2290         .long   0xB3450FB0 // B' = pi/2 - B (low single)
2291         .long   0x00000000 // tau (1 for cot path)
2292         .long   0xBD9711CE // c0 (high single)
2293         .long   0xB14FEB28 // c0 (low single)
2294         .long   0x3F800000 // c1 (high 1 bit)
2295         .long   0x3BB24C00 // c1 (low single)
2296         .long   0xBD97E43A // c2
2297         .long   0x3EAE6A89 // c3
2298         .long   0xBD4D07E0 // c4
2299         .long   0xBFC2C75C // B' = pi/2 - B (high single)
2300         .long   0x32CBBE8A // B' = pi/2 - B (low single)
2301         .long   0x00000000 // tau (1 for cot path)
2302         .long   0xBD49393C // c0 (high single)
2303         .long   0xB0A39F5B // c0 (low single)
2304         .long   0x3F800000 // c1 (high 1 bit)
2305         .long   0x3B1E2B00 // c1 (low single)
2306         .long   0xBD49B5D4 // c2
2307         .long   0x3EAC4F10 // c3
2308         .long   0xBCFD9425 // c4
2309         .long   0xBFC5EB9B // B' = pi/2 - B (high single)
2310         .long   0xB2DE638C // B' = pi/2 - B (low single)
2311         .long   0x00000000 // tau (1 for cot path)
2312         .long   0xBCC91A31 // c0 (high single)
2313         .long   0xAF8E8D1A // c0 (low single)
2314         .long   0x3F800000 // c1 (high 1 bit)
2315         .long   0x3A1DFA00 // c1 (low single)
2316         .long   0xBCC9392D // c2
2317         .long   0x3EAB1889 // c3
2318         .long   0xBC885D3B // c4
2319         .align  16
2320         .type   __svml_stan_data_internal, @object
2321         .size   __svml_stan_data_internal, .-__svml_stan_data_internal
2322         .space  16, 0x00
2323         .align  16
2325 #ifdef __svml_stan_reduction_data_internal_typedef
2326 typedef unsigned int VUINT32;
2327 typedef struct {
2328         __declspec(align(16)) VUINT32 _sPtable[256][3][1];
2329 } __svml_stan_reduction_data_internal;
2330 #endif
2331 __svml_stan_reduction_data_internal:
2332         /*     P_hi                  P_med               P_lo                */
2333         .long   0x00000000, 0x00000000, 0x00000000 /* 0 */
2334         .long   0x00000000, 0x00000000, 0x00000000 /* 1 */
2335         .long   0x00000000, 0x00000000, 0x00000000 /* 2 */
2336         .long   0x00000000, 0x00000000, 0x00000000 /* 3 */
2337         .long   0x00000000, 0x00000000, 0x00000000 /* 4 */
2338         .long   0x00000000, 0x00000000, 0x00000000 /* 5 */
2339         .long   0x00000000, 0x00000000, 0x00000000 /* 6 */
2340         .long   0x00000000, 0x00000000, 0x00000000 /* 7 */
2341         .long   0x00000000, 0x00000000, 0x00000000 /* 8 */
2342         .long   0x00000000, 0x00000000, 0x00000000 /* 9 */
2343         .long   0x00000000, 0x00000000, 0x00000000 /* 10 */
2344         .long   0x00000000, 0x00000000, 0x00000000 /* 11 */
2345         .long   0x00000000, 0x00000000, 0x00000000 /* 12 */
2346         .long   0x00000000, 0x00000000, 0x00000000 /* 13 */
2347         .long   0x00000000, 0x00000000, 0x00000000 /* 14 */
2348         .long   0x00000000, 0x00000000, 0x00000000 /* 15 */
2349         .long   0x00000000, 0x00000000, 0x00000000 /* 16 */
2350         .long   0x00000000, 0x00000000, 0x00000000 /* 17 */
2351         .long   0x00000000, 0x00000000, 0x00000000 /* 18 */
2352         .long   0x00000000, 0x00000000, 0x00000000 /* 19 */
2353         .long   0x00000000, 0x00000000, 0x00000000 /* 20 */
2354         .long   0x00000000, 0x00000000, 0x00000000 /* 21 */
2355         .long   0x00000000, 0x00000000, 0x00000000 /* 22 */
2356         .long   0x00000000, 0x00000000, 0x00000000 /* 23 */
2357         .long   0x00000000, 0x00000000, 0x00000000 /* 24 */
2358         .long   0x00000000, 0x00000000, 0x00000000 /* 25 */
2359         .long   0x00000000, 0x00000000, 0x00000000 /* 26 */
2360         .long   0x00000000, 0x00000000, 0x00000000 /* 27 */
2361         .long   0x00000000, 0x00000000, 0x00000000 /* 28 */
2362         .long   0x00000000, 0x00000000, 0x00000000 /* 29 */
2363         .long   0x00000000, 0x00000000, 0x00000000 /* 30 */
2364         .long   0x00000000, 0x00000000, 0x00000000 /* 31 */
2365         .long   0x00000000, 0x00000000, 0x00000000 /* 32 */
2366         .long   0x00000000, 0x00000000, 0x00000000 /* 33 */
2367         .long   0x00000000, 0x00000000, 0x00000000 /* 34 */
2368         .long   0x00000000, 0x00000000, 0x00000000 /* 35 */
2369         .long   0x00000000, 0x00000000, 0x00000000 /* 36 */
2370         .long   0x00000000, 0x00000000, 0x00000000 /* 37 */
2371         .long   0x00000000, 0x00000000, 0x00000000 /* 38 */
2372         .long   0x00000000, 0x00000000, 0x00000000 /* 39 */
2373         .long   0x00000000, 0x00000000, 0x00000000 /* 40 */
2374         .long   0x00000000, 0x00000000, 0x00000000 /* 41 */
2375         .long   0x00000000, 0x00000000, 0x00000000 /* 42 */
2376         .long   0x00000000, 0x00000000, 0x00000000 /* 43 */
2377         .long   0x00000000, 0x00000000, 0x00000000 /* 44 */
2378         .long   0x00000000, 0x00000000, 0x00000000 /* 45 */
2379         .long   0x00000000, 0x00000000, 0x00000000 /* 46 */
2380         .long   0x00000000, 0x00000000, 0x00000000 /* 47 */
2381         .long   0x00000000, 0x00000000, 0x00000000 /* 48 */
2382         .long   0x00000000, 0x00000000, 0x00000000 /* 49 */
2383         .long   0x00000000, 0x00000000, 0x00000000 /* 50 */
2384         .long   0x00000000, 0x00000000, 0x00000000 /* 51 */
2385         .long   0x00000000, 0x00000000, 0x00000000 /* 52 */
2386         .long   0x00000000, 0x00000000, 0x00000000 /* 53 */
2387         .long   0x00000000, 0x00000000, 0x00000000 /* 54 */
2388         .long   0x00000000, 0x00000000, 0x00000000 /* 55 */
2389         .long   0x00000000, 0x00000000, 0x00000000 /* 56 */
2390         .long   0x00000000, 0x00000000, 0x00000001 /* 57 */
2391         .long   0x00000000, 0x00000000, 0x00000002 /* 58 */
2392         .long   0x00000000, 0x00000000, 0x00000005 /* 59 */
2393         .long   0x00000000, 0x00000000, 0x0000000A /* 60 */
2394         .long   0x00000000, 0x00000000, 0x00000014 /* 61 */
2395         .long   0x00000000, 0x00000000, 0x00000028 /* 62 */
2396         .long   0x00000000, 0x00000000, 0x00000051 /* 63 */
2397         .long   0x00000000, 0x00000000, 0x000000A2 /* 64 */
2398         .long   0x00000000, 0x00000000, 0x00000145 /* 65 */
2399         .long   0x00000000, 0x00000000, 0x0000028B /* 66 */
2400         .long   0x00000000, 0x00000000, 0x00000517 /* 67 */
2401         .long   0x00000000, 0x00000000, 0x00000A2F /* 68 */
2402         .long   0x00000000, 0x00000000, 0x0000145F /* 69 */
2403         .long   0x00000000, 0x00000000, 0x000028BE /* 70 */
2404         .long   0x00000000, 0x00000000, 0x0000517C /* 71 */
2405         .long   0x00000000, 0x00000000, 0x0000A2F9 /* 72 */
2406         .long   0x00000000, 0x00000000, 0x000145F3 /* 73 */
2407         .long   0x00000000, 0x00000000, 0x00028BE6 /* 74 */
2408         .long   0x00000000, 0x00000000, 0x000517CC /* 75 */
2409         .long   0x00000000, 0x00000000, 0x000A2F98 /* 76 */
2410         .long   0x00000000, 0x00000000, 0x00145F30 /* 77 */
2411         .long   0x00000000, 0x00000000, 0x0028BE60 /* 78 */
2412         .long   0x00000000, 0x00000000, 0x00517CC1 /* 79 */
2413         .long   0x00000000, 0x00000000, 0x00A2F983 /* 80 */
2414         .long   0x00000000, 0x00000000, 0x0145F306 /* 81 */
2415         .long   0x00000000, 0x00000000, 0x028BE60D /* 82 */
2416         .long   0x00000000, 0x00000000, 0x0517CC1B /* 83 */
2417         .long   0x00000000, 0x00000000, 0x0A2F9836 /* 84 */
2418         .long   0x00000000, 0x00000000, 0x145F306D /* 85 */
2419         .long   0x00000000, 0x00000000, 0x28BE60DB /* 86 */
2420         .long   0x00000000, 0x00000000, 0x517CC1B7 /* 87 */
2421         .long   0x00000000, 0x00000000, 0xA2F9836E /* 88 */
2422         .long   0x00000000, 0x00000001, 0x45F306DC /* 89 */
2423         .long   0x00000000, 0x00000002, 0x8BE60DB9 /* 90 */
2424         .long   0x00000000, 0x00000005, 0x17CC1B72 /* 91 */
2425         .long   0x00000000, 0x0000000A, 0x2F9836E4 /* 92 */
2426         .long   0x00000000, 0x00000014, 0x5F306DC9 /* 93 */
2427         .long   0x00000000, 0x00000028, 0xBE60DB93 /* 94 */
2428         .long   0x00000000, 0x00000051, 0x7CC1B727 /* 95 */
2429         .long   0x00000000, 0x000000A2, 0xF9836E4E /* 96 */
2430         .long   0x00000000, 0x00000145, 0xF306DC9C /* 97 */
2431         .long   0x00000000, 0x0000028B, 0xE60DB939 /* 98 */
2432         .long   0x00000000, 0x00000517, 0xCC1B7272 /* 99 */
2433         .long   0x00000000, 0x00000A2F, 0x9836E4E4 /* 100 */
2434         .long   0x00000000, 0x0000145F, 0x306DC9C8 /* 101 */
2435         .long   0x00000000, 0x000028BE, 0x60DB9391 /* 102 */
2436         .long   0x00000000, 0x0000517C, 0xC1B72722 /* 103 */
2437         .long   0x00000000, 0x0000A2F9, 0x836E4E44 /* 104 */
2438         .long   0x00000000, 0x000145F3, 0x06DC9C88 /* 105 */
2439         .long   0x00000000, 0x00028BE6, 0x0DB93910 /* 106 */
2440         .long   0x00000000, 0x000517CC, 0x1B727220 /* 107 */
2441         .long   0x00000000, 0x000A2F98, 0x36E4E441 /* 108 */
2442         .long   0x00000000, 0x00145F30, 0x6DC9C882 /* 109 */
2443         .long   0x00000000, 0x0028BE60, 0xDB939105 /* 110 */
2444         .long   0x00000000, 0x00517CC1, 0xB727220A /* 111 */
2445         .long   0x00000000, 0x00A2F983, 0x6E4E4415 /* 112 */
2446         .long   0x00000000, 0x0145F306, 0xDC9C882A /* 113 */
2447         .long   0x00000000, 0x028BE60D, 0xB9391054 /* 114 */
2448         .long   0x00000000, 0x0517CC1B, 0x727220A9 /* 115 */
2449         .long   0x00000000, 0x0A2F9836, 0xE4E44152 /* 116 */
2450         .long   0x00000000, 0x145F306D, 0xC9C882A5 /* 117 */
2451         .long   0x00000000, 0x28BE60DB, 0x9391054A /* 118 */
2452         .long   0x00000000, 0x517CC1B7, 0x27220A94 /* 119 */
2453         .long   0x00000000, 0xA2F9836E, 0x4E441529 /* 120 */
2454         .long   0x00000001, 0x45F306DC, 0x9C882A53 /* 121 */
2455         .long   0x00000002, 0x8BE60DB9, 0x391054A7 /* 122 */
2456         .long   0x00000005, 0x17CC1B72, 0x7220A94F /* 123 */
2457         .long   0x0000000A, 0x2F9836E4, 0xE441529F /* 124 */
2458         .long   0x00000014, 0x5F306DC9, 0xC882A53F /* 125 */
2459         .long   0x00000028, 0xBE60DB93, 0x91054A7F /* 126 */
2460         .long   0x00000051, 0x7CC1B727, 0x220A94FE /* 127 */
2461         .long   0x000000A2, 0xF9836E4E, 0x441529FC /* 128 */
2462         .long   0x00000145, 0xF306DC9C, 0x882A53F8 /* 129 */
2463         .long   0x0000028B, 0xE60DB939, 0x1054A7F0 /* 130 */
2464         .long   0x00000517, 0xCC1B7272, 0x20A94FE1 /* 131 */
2465         .long   0x00000A2F, 0x9836E4E4, 0x41529FC2 /* 132 */
2466         .long   0x0000145F, 0x306DC9C8, 0x82A53F84 /* 133 */
2467         .long   0x000028BE, 0x60DB9391, 0x054A7F09 /* 134 */
2468         .long   0x0000517C, 0xC1B72722, 0x0A94FE13 /* 135 */
2469         .long   0x0000A2F9, 0x836E4E44, 0x1529FC27 /* 136 */
2470         .long   0x000145F3, 0x06DC9C88, 0x2A53F84E /* 137 */
2471         .long   0x00028BE6, 0x0DB93910, 0x54A7F09D /* 138 */
2472         .long   0x000517CC, 0x1B727220, 0xA94FE13A /* 139 */
2473         .long   0x000A2F98, 0x36E4E441, 0x529FC275 /* 140 */
2474         .long   0x00145F30, 0x6DC9C882, 0xA53F84EA /* 141 */
2475         .long   0x0028BE60, 0xDB939105, 0x4A7F09D5 /* 142 */
2476         .long   0x00517CC1, 0xB727220A, 0x94FE13AB /* 143 */
2477         .long   0x00A2F983, 0x6E4E4415, 0x29FC2757 /* 144 */
2478         .long   0x0145F306, 0xDC9C882A, 0x53F84EAF /* 145 */
2479         .long   0x028BE60D, 0xB9391054, 0xA7F09D5F /* 146 */
2480         .long   0x0517CC1B, 0x727220A9, 0x4FE13ABE /* 147 */
2481         .long   0x0A2F9836, 0xE4E44152, 0x9FC2757D /* 148 */
2482         .long   0x145F306D, 0xC9C882A5, 0x3F84EAFA /* 149 */
2483         .long   0x28BE60DB, 0x9391054A, 0x7F09D5F4 /* 150 */
2484         .long   0x517CC1B7, 0x27220A94, 0xFE13ABE8 /* 151 */
2485         .long   0xA2F9836E, 0x4E441529, 0xFC2757D1 /* 152 */
2486         .long   0x45F306DC, 0x9C882A53, 0xF84EAFA3 /* 153 */
2487         .long   0x8BE60DB9, 0x391054A7, 0xF09D5F47 /* 154 */
2488         .long   0x17CC1B72, 0x7220A94F, 0xE13ABE8F /* 155 */
2489         .long   0x2F9836E4, 0xE441529F, 0xC2757D1F /* 156 */
2490         .long   0x5F306DC9, 0xC882A53F, 0x84EAFA3E /* 157 */
2491         .long   0xBE60DB93, 0x91054A7F, 0x09D5F47D /* 158 */
2492         .long   0x7CC1B727, 0x220A94FE, 0x13ABE8FA /* 159 */
2493         .long   0xF9836E4E, 0x441529FC, 0x2757D1F5 /* 160 */
2494         .long   0xF306DC9C, 0x882A53F8, 0x4EAFA3EA /* 161 */
2495         .long   0xE60DB939, 0x1054A7F0, 0x9D5F47D4 /* 162 */
2496         .long   0xCC1B7272, 0x20A94FE1, 0x3ABE8FA9 /* 163 */
2497         .long   0x9836E4E4, 0x41529FC2, 0x757D1F53 /* 164 */
2498         .long   0x306DC9C8, 0x82A53F84, 0xEAFA3EA6 /* 165 */
2499         .long   0x60DB9391, 0x054A7F09, 0xD5F47D4D /* 166 */
2500         .long   0xC1B72722, 0x0A94FE13, 0xABE8FA9A /* 167 */
2501         .long   0x836E4E44, 0x1529FC27, 0x57D1F534 /* 168 */
2502         .long   0x06DC9C88, 0x2A53F84E, 0xAFA3EA69 /* 169 */
2503         .long   0x0DB93910, 0x54A7F09D, 0x5F47D4D3 /* 170 */
2504         .long   0x1B727220, 0xA94FE13A, 0xBE8FA9A6 /* 171 */
2505         .long   0x36E4E441, 0x529FC275, 0x7D1F534D /* 172 */
2506         .long   0x6DC9C882, 0xA53F84EA, 0xFA3EA69B /* 173 */
2507         .long   0xDB939105, 0x4A7F09D5, 0xF47D4D37 /* 174 */
2508         .long   0xB727220A, 0x94FE13AB, 0xE8FA9A6E /* 175 */
2509         .long   0x6E4E4415, 0x29FC2757, 0xD1F534DD /* 176 */
2510         .long   0xDC9C882A, 0x53F84EAF, 0xA3EA69BB /* 177 */
2511         .long   0xB9391054, 0xA7F09D5F, 0x47D4D377 /* 178 */
2512         .long   0x727220A9, 0x4FE13ABE, 0x8FA9A6EE /* 179 */
2513         .long   0xE4E44152, 0x9FC2757D, 0x1F534DDC /* 180 */
2514         .long   0xC9C882A5, 0x3F84EAFA, 0x3EA69BB8 /* 181 */
2515         .long   0x9391054A, 0x7F09D5F4, 0x7D4D3770 /* 182 */
2516         .long   0x27220A94, 0xFE13ABE8, 0xFA9A6EE0 /* 183 */
2517         .long   0x4E441529, 0xFC2757D1, 0xF534DDC0 /* 184 */
2518         .long   0x9C882A53, 0xF84EAFA3, 0xEA69BB81 /* 185 */
2519         .long   0x391054A7, 0xF09D5F47, 0xD4D37703 /* 186 */
2520         .long   0x7220A94F, 0xE13ABE8F, 0xA9A6EE06 /* 187 */
2521         .long   0xE441529F, 0xC2757D1F, 0x534DDC0D /* 188 */
2522         .long   0xC882A53F, 0x84EAFA3E, 0xA69BB81B /* 189 */
2523         .long   0x91054A7F, 0x09D5F47D, 0x4D377036 /* 190 */
2524         .long   0x220A94FE, 0x13ABE8FA, 0x9A6EE06D /* 191 */
2525         .long   0x441529FC, 0x2757D1F5, 0x34DDC0DB /* 192 */
2526         .long   0x882A53F8, 0x4EAFA3EA, 0x69BB81B6 /* 193 */
2527         .long   0x1054A7F0, 0x9D5F47D4, 0xD377036D /* 194 */
2528         .long   0x20A94FE1, 0x3ABE8FA9, 0xA6EE06DB /* 195 */
2529         .long   0x41529FC2, 0x757D1F53, 0x4DDC0DB6 /* 196 */
2530         .long   0x82A53F84, 0xEAFA3EA6, 0x9BB81B6C /* 197 */
2531         .long   0x054A7F09, 0xD5F47D4D, 0x377036D8 /* 198 */
2532         .long   0x0A94FE13, 0xABE8FA9A, 0x6EE06DB1 /* 199 */
2533         .long   0x1529FC27, 0x57D1F534, 0xDDC0DB62 /* 200 */
2534         .long   0x2A53F84E, 0xAFA3EA69, 0xBB81B6C5 /* 201 */
2535         .long   0x54A7F09D, 0x5F47D4D3, 0x77036D8A /* 202 */
2536         .long   0xA94FE13A, 0xBE8FA9A6, 0xEE06DB14 /* 203 */
2537         .long   0x529FC275, 0x7D1F534D, 0xDC0DB629 /* 204 */
2538         .long   0xA53F84EA, 0xFA3EA69B, 0xB81B6C52 /* 205 */
2539         .long   0x4A7F09D5, 0xF47D4D37, 0x7036D8A5 /* 206 */
2540         .long   0x94FE13AB, 0xE8FA9A6E, 0xE06DB14A /* 207 */
2541         .long   0x29FC2757, 0xD1F534DD, 0xC0DB6295 /* 208 */
2542         .long   0x53F84EAF, 0xA3EA69BB, 0x81B6C52B /* 209 */
2543         .long   0xA7F09D5F, 0x47D4D377, 0x036D8A56 /* 210 */
2544         .long   0x4FE13ABE, 0x8FA9A6EE, 0x06DB14AC /* 211 */
2545         .long   0x9FC2757D, 0x1F534DDC, 0x0DB62959 /* 212 */
2546         .long   0x3F84EAFA, 0x3EA69BB8, 0x1B6C52B3 /* 213 */
2547         .long   0x7F09D5F4, 0x7D4D3770, 0x36D8A566 /* 214 */
2548         .long   0xFE13ABE8, 0xFA9A6EE0, 0x6DB14ACC /* 215 */
2549         .long   0xFC2757D1, 0xF534DDC0, 0xDB629599 /* 216 */
2550         .long   0xF84EAFA3, 0xEA69BB81, 0xB6C52B32 /* 217 */
2551         .long   0xF09D5F47, 0xD4D37703, 0x6D8A5664 /* 218 */
2552         .long   0xE13ABE8F, 0xA9A6EE06, 0xDB14ACC9 /* 219 */
2553         .long   0xC2757D1F, 0x534DDC0D, 0xB6295993 /* 220 */
2554         .long   0x84EAFA3E, 0xA69BB81B, 0x6C52B327 /* 221 */
2555         .long   0x09D5F47D, 0x4D377036, 0xD8A5664F /* 222 */
2556         .long   0x13ABE8FA, 0x9A6EE06D, 0xB14ACC9E /* 223 */
2557         .long   0x2757D1F5, 0x34DDC0DB, 0x6295993C /* 224 */
2558         .long   0x4EAFA3EA, 0x69BB81B6, 0xC52B3278 /* 225 */
2559         .long   0x9D5F47D4, 0xD377036D, 0x8A5664F1 /* 226 */
2560         .long   0x3ABE8FA9, 0xA6EE06DB, 0x14ACC9E2 /* 227 */
2561         .long   0x757D1F53, 0x4DDC0DB6, 0x295993C4 /* 228 */
2562         .long   0xEAFA3EA6, 0x9BB81B6C, 0x52B32788 /* 229 */
2563         .long   0xD5F47D4D, 0x377036D8, 0xA5664F10 /* 230 */
2564         .long   0xABE8FA9A, 0x6EE06DB1, 0x4ACC9E21 /* 231 */
2565         .long   0x57D1F534, 0xDDC0DB62, 0x95993C43 /* 232 */
2566         .long   0xAFA3EA69, 0xBB81B6C5, 0x2B327887 /* 233 */
2567         .long   0x5F47D4D3, 0x77036D8A, 0x5664F10E /* 234 */
2568         .long   0xBE8FA9A6, 0xEE06DB14, 0xACC9E21C /* 235 */
2569         .long   0x7D1F534D, 0xDC0DB629, 0x5993C439 /* 236 */
2570         .long   0xFA3EA69B, 0xB81B6C52, 0xB3278872 /* 237 */
2571         .long   0xF47D4D37, 0x7036D8A5, 0x664F10E4 /* 238 */
2572         .long   0xE8FA9A6E, 0xE06DB14A, 0xCC9E21C8 /* 239 */
2573         .long   0xD1F534DD, 0xC0DB6295, 0x993C4390 /* 240 */
2574         .long   0xA3EA69BB, 0x81B6C52B, 0x32788720 /* 241 */
2575         .long   0x47D4D377, 0x036D8A56, 0x64F10E41 /* 242 */
2576         .long   0x8FA9A6EE, 0x06DB14AC, 0xC9E21C82 /* 243 */
2577         .long   0x1F534DDC, 0x0DB62959, 0x93C43904 /* 244 */
2578         .long   0x3EA69BB8, 0x1B6C52B3, 0x27887208 /* 245 */
2579         .long   0x7D4D3770, 0x36D8A566, 0x4F10E410 /* 246 */
2580         .long   0xFA9A6EE0, 0x6DB14ACC, 0x9E21C820 /* 247 */
2581         .long   0xF534DDC0, 0xDB629599, 0x3C439041 /* 248 */
2582         .long   0xEA69BB81, 0xB6C52B32, 0x78872083 /* 249 */
2583         .long   0xD4D37703, 0x6D8A5664, 0xF10E4107 /* 250 */
2584         .long   0xA9A6EE06, 0xDB14ACC9, 0xE21C820F /* 251 */
2585         .long   0x534DDC0D, 0xB6295993, 0xC439041F /* 252 */
2586         .long   0xA69BB81B, 0x6C52B327, 0x8872083F /* 253 */
2587         .long   0x4D377036, 0xD8A5664F, 0x10E4107F /* 254 */
2588         .long   0x9A6EE06D, 0xB14ACC9E, 0x21C820FF /* 255 */
2589         .align  16
2590         .type   __svml_stan_reduction_data_internal, @object
2591         .size   __svml_stan_reduction_data_internal, .-__svml_stan_reduction_data_internal
2592         .align  16
2594 .FLT_16:
2595         .long   0xffffffff, 0x00000000, 0xffffffff, 0x00000000
2596         .type   .FLT_16, @object
2597         .size   .FLT_16, 16