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