xref: /aosp_15_r20/external/arm-optimized-routines/math/aarch64/v_exp_data.c (revision 412f47f9e737e10ed5cc46ec6a8d7fa2264f8a14)
1*412f47f9SXin Li /*
2*412f47f9SXin Li  * Lookup table for double-precision e^x vector function.
3*412f47f9SXin Li  *
4*412f47f9SXin Li  * Copyright (c) 2019-2023, Arm Limited.
5*412f47f9SXin Li  * SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
6*412f47f9SXin Li  */
7*412f47f9SXin Li 
8*412f47f9SXin Li #include "v_math.h"
9*412f47f9SXin Li 
10*412f47f9SXin Li # define N (1 << V_EXP_TABLE_BITS)
11*412f47f9SXin Li 
12*412f47f9SXin Li /* 2^(j/N), j=0..N.  */
13*412f47f9SXin Li const uint64_t __v_exp_data[] = {
14*412f47f9SXin Li # if N == 128
15*412f47f9SXin Li   0x3ff0000000000000, 0x3feff63da9fb3335, 0x3fefec9a3e778061,
16*412f47f9SXin Li   0x3fefe315e86e7f85, 0x3fefd9b0d3158574, 0x3fefd06b29ddf6de,
17*412f47f9SXin Li   0x3fefc74518759bc8, 0x3fefbe3ecac6f383, 0x3fefb5586cf9890f,
18*412f47f9SXin Li   0x3fefac922b7247f7, 0x3fefa3ec32d3d1a2, 0x3fef9b66affed31b,
19*412f47f9SXin Li   0x3fef9301d0125b51, 0x3fef8abdc06c31cc, 0x3fef829aaea92de0,
20*412f47f9SXin Li   0x3fef7a98c8a58e51, 0x3fef72b83c7d517b, 0x3fef6af9388c8dea,
21*412f47f9SXin Li   0x3fef635beb6fcb75, 0x3fef5be084045cd4, 0x3fef54873168b9aa,
22*412f47f9SXin Li   0x3fef4d5022fcd91d, 0x3fef463b88628cd6, 0x3fef3f49917ddc96,
23*412f47f9SXin Li   0x3fef387a6e756238, 0x3fef31ce4fb2a63f, 0x3fef2b4565e27cdd,
24*412f47f9SXin Li   0x3fef24dfe1f56381, 0x3fef1e9df51fdee1, 0x3fef187fd0dad990,
25*412f47f9SXin Li   0x3fef1285a6e4030b, 0x3fef0cafa93e2f56, 0x3fef06fe0a31b715,
26*412f47f9SXin Li   0x3fef0170fc4cd831, 0x3feefc08b26416ff, 0x3feef6c55f929ff1,
27*412f47f9SXin Li   0x3feef1a7373aa9cb, 0x3feeecae6d05d866, 0x3feee7db34e59ff7,
28*412f47f9SXin Li   0x3feee32dc313a8e5, 0x3feedea64c123422, 0x3feeda4504ac801c,
29*412f47f9SXin Li   0x3feed60a21f72e2a, 0x3feed1f5d950a897, 0x3feece086061892d,
30*412f47f9SXin Li   0x3feeca41ed1d0057, 0x3feec6a2b5c13cd0, 0x3feec32af0d7d3de,
31*412f47f9SXin Li   0x3feebfdad5362a27, 0x3feebcb299fddd0d, 0x3feeb9b2769d2ca7,
32*412f47f9SXin Li   0x3feeb6daa2cf6642, 0x3feeb42b569d4f82, 0x3feeb1a4ca5d920f,
33*412f47f9SXin Li   0x3feeaf4736b527da, 0x3feead12d497c7fd, 0x3feeab07dd485429,
34*412f47f9SXin Li   0x3feea9268a5946b7, 0x3feea76f15ad2148, 0x3feea5e1b976dc09,
35*412f47f9SXin Li   0x3feea47eb03a5585, 0x3feea34634ccc320, 0x3feea23882552225,
36*412f47f9SXin Li   0x3feea155d44ca973, 0x3feea09e667f3bcd, 0x3feea012750bdabf,
37*412f47f9SXin Li   0x3fee9fb23c651a2f, 0x3fee9f7df9519484, 0x3fee9f75e8ec5f74,
38*412f47f9SXin Li   0x3fee9f9a48a58174, 0x3fee9feb564267c9, 0x3feea0694fde5d3f,
39*412f47f9SXin Li   0x3feea11473eb0187, 0x3feea1ed0130c132, 0x3feea2f336cf4e62,
40*412f47f9SXin Li   0x3feea427543e1a12, 0x3feea589994cce13, 0x3feea71a4623c7ad,
41*412f47f9SXin Li   0x3feea8d99b4492ed, 0x3feeaac7d98a6699, 0x3feeace5422aa0db,
42*412f47f9SXin Li   0x3feeaf3216b5448c, 0x3feeb1ae99157736, 0x3feeb45b0b91ffc6,
43*412f47f9SXin Li   0x3feeb737b0cdc5e5, 0x3feeba44cbc8520f, 0x3feebd829fde4e50,
44*412f47f9SXin Li   0x3feec0f170ca07ba, 0x3feec49182a3f090, 0x3feec86319e32323,
45*412f47f9SXin Li   0x3feecc667b5de565, 0x3feed09bec4a2d33, 0x3feed503b23e255d,
46*412f47f9SXin Li   0x3feed99e1330b358, 0x3feede6b5579fdbf, 0x3feee36bbfd3f37a,
47*412f47f9SXin Li   0x3feee89f995ad3ad, 0x3feeee07298db666, 0x3feef3a2b84f15fb,
48*412f47f9SXin Li   0x3feef9728de5593a, 0x3feeff76f2fb5e47, 0x3fef05b030a1064a,
49*412f47f9SXin Li   0x3fef0c1e904bc1d2, 0x3fef12c25bd71e09, 0x3fef199bdd85529c,
50*412f47f9SXin Li   0x3fef20ab5fffd07a, 0x3fef27f12e57d14b, 0x3fef2f6d9406e7b5,
51*412f47f9SXin Li   0x3fef3720dcef9069, 0x3fef3f0b555dc3fa, 0x3fef472d4a07897c,
52*412f47f9SXin Li   0x3fef4f87080d89f2, 0x3fef5818dcfba487, 0x3fef60e316c98398,
53*412f47f9SXin Li   0x3fef69e603db3285, 0x3fef7321f301b460, 0x3fef7c97337b9b5f,
54*412f47f9SXin Li   0x3fef864614f5a129, 0x3fef902ee78b3ff6, 0x3fef9a51fbc74c83,
55*412f47f9SXin Li   0x3fefa4afa2a490da, 0x3fefaf482d8e67f1, 0x3fefba1bee615a27,
56*412f47f9SXin Li   0x3fefc52b376bba97, 0x3fefd0765b6e4540, 0x3fefdbfdad9cbe14,
57*412f47f9SXin Li   0x3fefe7c1819e90d8, 0x3feff3c22b8f71f1,
58*412f47f9SXin Li # elif N == 256
59*412f47f9SXin Li   0x3ff0000000000000, 0x3feffb1afa5abcbf, 0x3feff63da9fb3335,
60*412f47f9SXin Li   0x3feff168143b0281, 0x3fefec9a3e778061, 0x3fefe7d42e11bbcc,
61*412f47f9SXin Li   0x3fefe315e86e7f85, 0x3fefde5f72f654b1, 0x3fefd9b0d3158574,
62*412f47f9SXin Li   0x3fefd50a0e3c1f89, 0x3fefd06b29ddf6de, 0x3fefcbd42b72a836,
63*412f47f9SXin Li   0x3fefc74518759bc8, 0x3fefc2bdf66607e0, 0x3fefbe3ecac6f383,
64*412f47f9SXin Li   0x3fefb9c79b1f3919, 0x3fefb5586cf9890f, 0x3fefb0f145e46c85,
65*412f47f9SXin Li   0x3fefac922b7247f7, 0x3fefa83b23395dec, 0x3fefa3ec32d3d1a2,
66*412f47f9SXin Li   0x3fef9fa55fdfa9c5, 0x3fef9b66affed31b, 0x3fef973028d7233e,
67*412f47f9SXin Li   0x3fef9301d0125b51, 0x3fef8edbab5e2ab6, 0x3fef8abdc06c31cc,
68*412f47f9SXin Li   0x3fef86a814f204ab, 0x3fef829aaea92de0, 0x3fef7e95934f312e,
69*412f47f9SXin Li   0x3fef7a98c8a58e51, 0x3fef76a45471c3c2, 0x3fef72b83c7d517b,
70*412f47f9SXin Li   0x3fef6ed48695bbc0, 0x3fef6af9388c8dea, 0x3fef672658375d2f,
71*412f47f9SXin Li   0x3fef635beb6fcb75, 0x3fef5f99f8138a1c, 0x3fef5be084045cd4,
72*412f47f9SXin Li   0x3fef582f95281c6b, 0x3fef54873168b9aa, 0x3fef50e75eb44027,
73*412f47f9SXin Li   0x3fef4d5022fcd91d, 0x3fef49c18438ce4d, 0x3fef463b88628cd6,
74*412f47f9SXin Li   0x3fef42be3578a819, 0x3fef3f49917ddc96, 0x3fef3bdda27912d1,
75*412f47f9SXin Li   0x3fef387a6e756238, 0x3fef351ffb82140a, 0x3fef31ce4fb2a63f,
76*412f47f9SXin Li   0x3fef2e85711ece75, 0x3fef2b4565e27cdd, 0x3fef280e341ddf29,
77*412f47f9SXin Li   0x3fef24dfe1f56381, 0x3fef21ba7591bb70, 0x3fef1e9df51fdee1,
78*412f47f9SXin Li   0x3fef1b8a66d10f13, 0x3fef187fd0dad990, 0x3fef157e39771b2f,
79*412f47f9SXin Li   0x3fef1285a6e4030b, 0x3fef0f961f641589, 0x3fef0cafa93e2f56,
80*412f47f9SXin Li   0x3fef09d24abd886b, 0x3fef06fe0a31b715, 0x3fef0432edeeb2fd,
81*412f47f9SXin Li   0x3fef0170fc4cd831, 0x3feefeb83ba8ea32, 0x3feefc08b26416ff,
82*412f47f9SXin Li   0x3feef96266e3fa2d, 0x3feef6c55f929ff1, 0x3feef431a2de883b,
83*412f47f9SXin Li   0x3feef1a7373aa9cb, 0x3feeef26231e754a, 0x3feeecae6d05d866,
84*412f47f9SXin Li   0x3feeea401b7140ef, 0x3feee7db34e59ff7, 0x3feee57fbfec6cf4,
85*412f47f9SXin Li   0x3feee32dc313a8e5, 0x3feee0e544ede173, 0x3feedea64c123422,
86*412f47f9SXin Li   0x3feedc70df1c5175, 0x3feeda4504ac801c, 0x3feed822c367a024,
87*412f47f9SXin Li   0x3feed60a21f72e2a, 0x3feed3fb2709468a, 0x3feed1f5d950a897,
88*412f47f9SXin Li   0x3feecffa3f84b9d4, 0x3feece086061892d, 0x3feecc2042a7d232,
89*412f47f9SXin Li   0x3feeca41ed1d0057, 0x3feec86d668b3237, 0x3feec6a2b5c13cd0,
90*412f47f9SXin Li   0x3feec4e1e192aed2, 0x3feec32af0d7d3de, 0x3feec17dea6db7d7,
91*412f47f9SXin Li   0x3feebfdad5362a27, 0x3feebe41b817c114, 0x3feebcb299fddd0d,
92*412f47f9SXin Li   0x3feebb2d81d8abff, 0x3feeb9b2769d2ca7, 0x3feeb8417f4531ee,
93*412f47f9SXin Li   0x3feeb6daa2cf6642, 0x3feeb57de83f4eef, 0x3feeb42b569d4f82,
94*412f47f9SXin Li   0x3feeb2e2f4f6ad27, 0x3feeb1a4ca5d920f, 0x3feeb070dde910d2,
95*412f47f9SXin Li   0x3feeaf4736b527da, 0x3feeae27dbe2c4cf, 0x3feead12d497c7fd,
96*412f47f9SXin Li   0x3feeac0827ff07cc, 0x3feeab07dd485429, 0x3feeaa11fba87a03,
97*412f47f9SXin Li   0x3feea9268a5946b7, 0x3feea84590998b93, 0x3feea76f15ad2148,
98*412f47f9SXin Li   0x3feea6a320dceb71, 0x3feea5e1b976dc09, 0x3feea52ae6cdf6f4,
99*412f47f9SXin Li   0x3feea47eb03a5585, 0x3feea3dd1d1929fd, 0x3feea34634ccc320,
100*412f47f9SXin Li   0x3feea2b9febc8fb7, 0x3feea23882552225, 0x3feea1c1c70833f6,
101*412f47f9SXin Li   0x3feea155d44ca973, 0x3feea0f4b19e9538, 0x3feea09e667f3bcd,
102*412f47f9SXin Li   0x3feea052fa75173e, 0x3feea012750bdabf, 0x3fee9fdcddd47645,
103*412f47f9SXin Li   0x3fee9fb23c651a2f, 0x3fee9f9298593ae5, 0x3fee9f7df9519484,
104*412f47f9SXin Li   0x3fee9f7466f42e87, 0x3fee9f75e8ec5f74, 0x3fee9f8286ead08a,
105*412f47f9SXin Li   0x3fee9f9a48a58174, 0x3fee9fbd35d7cbfd, 0x3fee9feb564267c9,
106*412f47f9SXin Li   0x3feea024b1ab6e09, 0x3feea0694fde5d3f, 0x3feea0b938ac1cf6,
107*412f47f9SXin Li   0x3feea11473eb0187, 0x3feea17b0976cfdb, 0x3feea1ed0130c132,
108*412f47f9SXin Li   0x3feea26a62ff86f0, 0x3feea2f336cf4e62, 0x3feea3878491c491,
109*412f47f9SXin Li   0x3feea427543e1a12, 0x3feea4d2add106d9, 0x3feea589994cce13,
110*412f47f9SXin Li   0x3feea64c1eb941f7, 0x3feea71a4623c7ad, 0x3feea7f4179f5b21,
111*412f47f9SXin Li   0x3feea8d99b4492ed, 0x3feea9cad931a436, 0x3feeaac7d98a6699,
112*412f47f9SXin Li   0x3feeabd0a478580f, 0x3feeace5422aa0db, 0x3feeae05bad61778,
113*412f47f9SXin Li   0x3feeaf3216b5448c, 0x3feeb06a5e0866d9, 0x3feeb1ae99157736,
114*412f47f9SXin Li   0x3feeb2fed0282c8a, 0x3feeb45b0b91ffc6, 0x3feeb5c353aa2fe2,
115*412f47f9SXin Li   0x3feeb737b0cdc5e5, 0x3feeb8b82b5f98e5, 0x3feeba44cbc8520f,
116*412f47f9SXin Li   0x3feebbdd9a7670b3, 0x3feebd829fde4e50, 0x3feebf33e47a22a2,
117*412f47f9SXin Li   0x3feec0f170ca07ba, 0x3feec2bb4d53fe0d, 0x3feec49182a3f090,
118*412f47f9SXin Li   0x3feec674194bb8d5, 0x3feec86319e32323, 0x3feeca5e8d07f29e,
119*412f47f9SXin Li   0x3feecc667b5de565, 0x3feece7aed8eb8bb, 0x3feed09bec4a2d33,
120*412f47f9SXin Li   0x3feed2c980460ad8, 0x3feed503b23e255d, 0x3feed74a8af46052,
121*412f47f9SXin Li   0x3feed99e1330b358, 0x3feedbfe53c12e59, 0x3feede6b5579fdbf,
122*412f47f9SXin Li   0x3feee0e521356eba, 0x3feee36bbfd3f37a, 0x3feee5ff3a3c2774,
123*412f47f9SXin Li   0x3feee89f995ad3ad, 0x3feeeb4ce622f2ff, 0x3feeee07298db666,
124*412f47f9SXin Li   0x3feef0ce6c9a8952, 0x3feef3a2b84f15fb, 0x3feef68415b749b1,
125*412f47f9SXin Li   0x3feef9728de5593a, 0x3feefc6e29f1c52a, 0x3feeff76f2fb5e47,
126*412f47f9SXin Li   0x3fef028cf22749e4, 0x3fef05b030a1064a, 0x3fef08e0b79a6f1f,
127*412f47f9SXin Li   0x3fef0c1e904bc1d2, 0x3fef0f69c3f3a207, 0x3fef12c25bd71e09,
128*412f47f9SXin Li   0x3fef16286141b33d, 0x3fef199bdd85529c, 0x3fef1d1cd9fa652c,
129*412f47f9SXin Li   0x3fef20ab5fffd07a, 0x3fef244778fafb22, 0x3fef27f12e57d14b,
130*412f47f9SXin Li   0x3fef2ba88988c933, 0x3fef2f6d9406e7b5, 0x3fef33405751c4db,
131*412f47f9SXin Li   0x3fef3720dcef9069, 0x3fef3b0f2e6d1675, 0x3fef3f0b555dc3fa,
132*412f47f9SXin Li   0x3fef43155b5bab74, 0x3fef472d4a07897c, 0x3fef4b532b08c968,
133*412f47f9SXin Li   0x3fef4f87080d89f2, 0x3fef53c8eacaa1d6, 0x3fef5818dcfba487,
134*412f47f9SXin Li   0x3fef5c76e862e6d3, 0x3fef60e316c98398, 0x3fef655d71ff6075,
135*412f47f9SXin Li   0x3fef69e603db3285, 0x3fef6e7cd63a8315, 0x3fef7321f301b460,
136*412f47f9SXin Li   0x3fef77d5641c0658, 0x3fef7c97337b9b5f, 0x3fef81676b197d17,
137*412f47f9SXin Li   0x3fef864614f5a129, 0x3fef8b333b16ee12, 0x3fef902ee78b3ff6,
138*412f47f9SXin Li   0x3fef953924676d76, 0x3fef9a51fbc74c83, 0x3fef9f7977cdb740,
139*412f47f9SXin Li   0x3fefa4afa2a490da, 0x3fefa9f4867cca6e, 0x3fefaf482d8e67f1,
140*412f47f9SXin Li   0x3fefb4aaa2188510, 0x3fefba1bee615a27, 0x3fefbf9c1cb6412a,
141*412f47f9SXin Li   0x3fefc52b376bba97, 0x3fefcac948dd7274, 0x3fefd0765b6e4540,
142*412f47f9SXin Li   0x3fefd632798844f8, 0x3fefdbfdad9cbe14, 0x3fefe1d802243c89,
143*412f47f9SXin Li   0x3fefe7c1819e90d8, 0x3fefedba3692d514, 0x3feff3c22b8f71f1,
144*412f47f9SXin Li   0x3feff9d96b2a23d9,
145*412f47f9SXin Li # endif
146*412f47f9SXin Li };
147