]>
Commit | Line | Data |
---|---|---|
36870482 | 1 | /* Data for function cosf. |
04277e02 | 2 | Copyright (C) 2014-2019 Free Software Foundation, Inc. |
36870482 AS |
3 | This file is part of the GNU C Library. |
4 | ||
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. | |
9 | ||
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. | |
14 | ||
15 | You should have received a copy of the GNU Lesser General Public | |
16 | License along with the GNU C Library; if not, see | |
5a82c748 | 17 | <https://www.gnu.org/licenses/>. */ |
36870482 AS |
18 | |
19 | #include "svml_s_trig_data.h" | |
20 | ||
21 | .section .rodata, "a" | |
22 | .align 64 | |
23 | ||
24 | /* Data table for vector implementations of function cosf. | |
25 | The table may contain polynomial, reduction, lookup coefficients | |
26 | and other macro_names obtained through different methods | |
27 | of research and experimental work. */ | |
28 | ||
29 | .globl __svml_s_trig_data | |
30 | __svml_s_trig_data: | |
31 | ||
32 | /* General purpose constants: | |
33 | absolute value mask */ | |
34 | float_vector __sAbsMask 0x7fffffff | |
35 | ||
36 | /* threshold for out-of-range values */ | |
37 | float_vector __sRangeReductionVal 0x461c4000 | |
38 | ||
39 | /* +INF */ | |
40 | float_vector __sRangeVal 0x7f800000 | |
41 | ||
42 | /* High Accuracy version polynomial coefficients: | |
43 | S1 = -1.66666666664728165763e-01 */ | |
44 | float_vector __sS1 0xbe2aaaab | |
45 | ||
46 | /* S2 = 8.33329173045453069014e-03 */ | |
47 | float_vector __sS2 0x3c08885c | |
48 | ||
49 | /* C1 = -5.00000000000000000000e-01 */ | |
50 | float_vector __sC1 0xbf000000 | |
51 | ||
52 | /* C2 = 4.16638942914469202550e-02 */ | |
53 | float_vector __sC2 0x3d2aaa7c | |
54 | ||
55 | /* Range reduction PI-based constants: | |
56 | PI high part */ | |
57 | float_vector __sPI1 0x40490000 | |
58 | ||
59 | /* PI mid part 1 */ | |
60 | float_vector __sPI2 0x3a7da000 | |
61 | ||
62 | /* PI mid part 2 */ | |
63 | float_vector __sPI3 0x34222000 | |
64 | ||
65 | /* PI low part */ | |
66 | float_vector __sPI4 0x2cb4611a | |
67 | ||
68 | /* PI1, PI2, and PI3 when FMA is available | |
69 | PI high part (when FMA available) */ | |
70 | float_vector __sPI1_FMA 0x40490fdb | |
71 | ||
72 | /* PI mid part (when FMA available) */ | |
73 | float_vector __sPI2_FMA 0xb3bbbd2e | |
74 | ||
75 | /* PI low part (when FMA available) */ | |
76 | float_vector __sPI3_FMA 0xa7772ced | |
77 | ||
78 | /* Polynomial constants for work w/o FMA, relative error ~ 2^(-26.625) */ | |
79 | float_vector __sA3 0xbe2aaaa6 | |
80 | float_vector __sA5 0x3c08876a | |
81 | float_vector __sA7 0xb94fb7ff | |
82 | float_vector __sA9 0x362edef8 | |
83 | ||
84 | /* Polynomial constants, work with FMA, relative error ~ 2^(-26.417) */ | |
85 | float_vector __sA5_FMA 0x3c088768 | |
86 | float_vector __sA7_FMA 0xb94fb6cf | |
87 | float_vector __sA9_FMA 0x362ec335 | |
88 | ||
89 | /* 1/PI */ | |
90 | float_vector __sInvPI 0x3ea2f983 | |
91 | ||
92 | /* right-shifter constant */ | |
93 | float_vector __sRShifter 0x4b400000 | |
94 | ||
95 | /* PI/2 */ | |
96 | float_vector __sHalfPI 0x3fc90fdb | |
97 | ||
98 | /* 1/2 */ | |
99 | float_vector __sOneHalf 0x3f000000 | |
100 | ||
101 | /* high accuracy table index mask */ | |
102 | float_vector __iIndexMask 0x000000ff | |
103 | ||
104 | /* 2^(k-1) */ | |
105 | float_vector __i2pK_1 0x00000040 | |
106 | ||
107 | /* sign field mask */ | |
108 | float_vector __sSignMask 0x80000000 | |
109 | ||
110 | .type __svml_s_trig_data,@object | |
111 | .size __svml_s_trig_data,.-__svml_s_trig_data |