]> git.ipfire.org Git - thirdparty/glibc.git/blob - sysdeps/x86_64/fpu/svml_s_trig_data.S
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / x86_64 / fpu / svml_s_trig_data.S
1 /* Data for function cosf.
2 Copyright (C) 2014-2019 Free Software Foundation, Inc.
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
17 <http://www.gnu.org/licenses/>. */
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