/ src / optmized / data / _log_data.c
_log_data.c
  1  /*
  2   * Copyright (C) 2008-2020 Advanced Micro Devices, Inc. All rights reserved.
  3   *
  4   * Redistribution and use in source and binary forms, with or without modification,
  5   * are permitted provided that the following conditions are met:
  6   * 1. Redistributions of source code must retain the above copyright notice,
  7   *    this list of conditions and the following disclaimer.
  8   * 2. Redistributions in binary form must reproduce the above copyright notice,
  9   *    this list of conditions and the following disclaimer in the documentation
 10   *    and/or other materials provided with the distribution.
 11   * 3. Neither the name of the copyright holder nor the names of its contributors
 12   *    may be used to endorse or promote products derived from this software without
 13   *    specific prior written permission.
 14   *
 15   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 16   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 17   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 18   * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 19   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 20   * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
 21   * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 22   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 23   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 24   * POSSIBILITY OF SUCH DAMAGE.
 25   *
 26   */
 27  
 28  #include <stdint.h>
 29  
 30  struct logf_table {
 31      uint32_t f_inv, f_128_head, f_128_tail;
 32  } logf_lookup[257]= {
 33  {0x40000000, 0x0, 0x0},
 34  {0x3fff00ff, 0x3b7f8000, 0x32aa2b11},
 35  {0x3ffe03f8, 0x3bff0000, 0x3429ac42},
 36  {0x3ffd08e5, 0x3c3ee000, 0x350ebf02},
 37  {0x3ffc0fc1, 0x3c7e0000, 0x35a8b0fc},
 38  {0x3ffb1885, 0x3c9e7000, 0x36244347},
 39  {0x3ffa232d, 0x3cbdc000, 0x368d83eb},
 40  {0x3ff92fb2, 0x3cdcf000, 0x36e013d8},
 41  {0x3ff83e10, 0x3cfc1000, 0x361b0e78},
 42  {0x3ff74e40, 0x3d0d8000, 0x36d98924},
 43  {0x3ff6603e, 0x3d1cf000, 0x3687b9ff},
 44  {0x3ff57404, 0x3d2c5000, 0x36375f92},
 45  {0x3ff4898d, 0x3d3ba000, 0x3631ec66},
 46  {0x3ff3a0d5, 0x3d4ae000, 0x36830ec9},
 47  {0x3ff2b9d6, 0x3d5a1000, 0x36dd7119},
 48  {0x3ff1d48c, 0x3d693000, 0x3735c56e},
 49  {0x3ff0f0f1, 0x3d785000, 0x35c30046},
 50  {0x3ff00f01, 0x3d83a000, 0x37cc1acc},
 51  {0x3fef2eb7, 0x3d8b2000, 0x379b7752},
 52  {0x3fee500f, 0x3d929000, 0x37fb1785},
 53  {0x3fed7304, 0x3d9a0000, 0x37ebcb0e},
 54  {0x3fec9791, 0x3da17000, 0x375cbea6},
 55  {0x3febbdb3, 0x3da8d000, 0x37839f83},
 56  {0x3feae564, 0x3db03000, 0x36b1526f},
 57  {0x3fea0ea1, 0x3db78000, 0x37528ae5},
 58  {0x3fe93965, 0x3dbed000, 0x36ecdaf6},
 59  {0x3fe865ac, 0x3dc61000, 0x37a2eb19},
 60  {0x3fe79373, 0x3dcd5000, 0x37a12310},
 61  {0x3fe6c2b4, 0x3dd49000, 0x36da7496},
 62  {0x3fe5f36d, 0x3ddbc000, 0x37482bb1},
 63  {0x3fe52598, 0x3de2f000, 0x36a91eb8},
 64  {0x3fe45933, 0x3dea1000, 0x3789eb36},
 65  {0x3fe38e39, 0x3df13000, 0x3783b715},
 66  {0x3fe2c4a7, 0x3df85000, 0x36430046},
 67  {0x3fe1fc78, 0x3dff6000, 0x371131dc},
 68  {0x3fe135aa, 0x3e033000, 0x380a8965},
 69  {0x3fe07038, 0x3e06b000, 0x383f3e68},
 70  {0x3fdfac1f, 0x3e0a3000, 0x3842c234},
 71  {0x3fdee95c, 0x3e0db000, 0x38156a98},
 72  {0x3fde27eb, 0x3e113000, 0x375e3215},
 73  {0x3fdd67c9, 0x3e14a000, 0x38297c10},
 74  {0x3fdca8f1, 0x3e181000, 0x386b8c72},
 75  {0x3fdbeb62, 0x3e1b8000, 0x387e100f},
 76  {0x3fdb2f17, 0x3e1ef000, 0x38615876},
 77  {0x3fda740e, 0x3e226000, 0x3815b666},
 78  {0x3fd9ba42, 0x3e25d000, 0x36dbce69},
 79  {0x3fd901b2, 0x3e293000, 0x37e5e3a2},
 80  {0x3fd84a5a, 0x3e2c9000, 0x381c6ccc},
 81  {0x3fd79436, 0x3e2ff000, 0x38183854},
 82  {0x3fd6df44, 0x3e335000, 0x37cd4273},
 83  {0x3fd62b81, 0x3e36b000, 0x35fe719d},
 84  {0x3fd578e9, 0x3e3a0000, 0x37f8f540},
 85  {0x3fd4c77b, 0x3e3d5000, 0x38448108},
 86  {0x3fd41733, 0x3e40a000, 0x386050a2},
 87  {0x3fd3680d, 0x3e43f000, 0x38503290},
 88  {0x3fd2ba08, 0x3e474000, 0x38146f44},
 89  {0x3fd20d21, 0x3e4a9000, 0x373539e9},
 90  {0x3fd16154, 0x3e4dd000, 0x381b173f},
 91  {0x3fd0b6a0, 0x3e511000, 0x385e0ff1},
 92  {0x3fd00d01, 0x3e545000, 0x38767e44},
 93  {0x3fcf6475, 0x3e579000, 0x3864a740},
 94  {0x3fcebcf9, 0x3e5ad000, 0x3828cf48},
 95  {0x3fce168a, 0x3e5e1000, 0x3786742e},
 96  {0x3fcd7127, 0x3e614000, 0x38342ac6},
 97  {0x3fcccccd, 0x3e647000, 0x387be3cd},
 98  {0x3fcc2978, 0x3e67b000, 0x36d53827},
 99  {0x3fcb8728, 0x3e6ae000, 0x3685ad3f},
100  {0x3fcae5d8, 0x3e6e0000, 0x385e5056},
101  {0x3fca4588, 0x3e713000, 0x3803b715},
102  {0x3fc9a634, 0x3e746000, 0x3494aa97},
103  {0x3fc907da, 0x3e778000, 0x37adcbdc},
104  {0x3fc86a79, 0x3e7aa000, 0x38052b26},
105  {0x3fc7ce0c, 0x3e7dc000, 0x380c36af},
106  {0x3fc73294, 0x3e807000, 0x37d88b5b},
107  {0x3fc6980c, 0x3e820000, 0x371652d3},
108  {0x3fc5fe74, 0x3e838000, 0x38dc2fe7},
109  {0x3fc565c8, 0x3e851000, 0x3892713a},
110  {0x3fc4ce08, 0x3e86a000, 0x37d6af35},
111  {0x3fc43730, 0x3e882000, 0x38c5fcd7},
112  {0x3fc3a13e, 0x3e89b000, 0x38070294},
113  {0x3fc30c31, 0x3e8b3000, 0x38ae55d6},
114  {0x3fc27806, 0x3e8cc000, 0x3652dd42},
115  {0x3fc1e4bc, 0x3e8e4000, 0x3818c16a},
116  {0x3fc15250, 0x3e8fc000, 0x387f9e49},
117  {0x3fc0c0c1, 0x3e914000, 0x38a0fde8},
118  {0x3fc0300c, 0x3e92c000, 0x38b00870},
119  {0x3fbfa030, 0x3e944000, 0x38ad09ef},
120  {0x3fbf112b, 0x3e95c000, 0x38981d5c},
121  {0x3fbe82fa, 0x3e974000, 0x3862bae1},
122  {0x3fbdf59d, 0x3e98c000, 0x37e392a9},
123  {0x3fbd6910, 0x3e9a3000, 0x38eecd4c},
124  {0x3fbcdd53, 0x3e9bb000, 0x38933160},
125  {0x3fbc5264, 0x3e9d3000, 0x3798aad3},
126  {0x3fbbc841, 0x3e9ea000, 0x38a7d2e1},
127  {0x3fbb3ee7, 0x3ea02000, 0x37421a1b},
128  {0x3fbab656, 0x3ea19000, 0x386f2a05},
129  {0x3fba2e8c, 0x3ea30000, 0x38c5e10e},
130  {0x3fb9a786, 0x3ea48000, 0x35d00801},
131  {0x3fb92144, 0x3ea5f000, 0x37bf2aef},
132  {0x3fb89bc3, 0x3ea76000, 0x38173260},
133  {0x3fb81703, 0x3ea8d000, 0x382d872e},
134  {0x3fb79301, 0x3eaa4000, 0x3822c3ae},
135  {0x3fb70fbb, 0x3eabb000, 0x37ee2e8b},
136  {0x3fb68d31, 0x3ead2000, 0x372ac3d3},
137  {0x3fb60b61, 0x3eae8000, 0x38dedfac},
138  {0x3fb58a48, 0x3eaff000, 0x38983854},
139  {0x3fb509e7, 0x3eb16000, 0x3802f2ba},
140  {0x3fb48a3a, 0x3eb2c000, 0x38dab982},
141  {0x3fb40b41, 0x3eb43000, 0x38481e9b},
142  {0x3fb38cfa, 0x3eb59000, 0x38dd911b},
143  {0x3fb30f63, 0x3eb70000, 0x380eaa2c},
144  {0x3fb2927c, 0x3eb86000, 0x38a1713c},
145  {0x3fb21643, 0x3eb9c000, 0x38ebfb5e},
146  {0x3fb19ab6, 0x3ebb3000, 0x379c2474},
147  {0x3fb11fd4, 0x3ebc9000, 0x38255fdd},
148  {0x3fb0a59b, 0x3ebdf000, 0x385e0a38},
149  {0x3fb02c0b, 0x3ebf5000, 0x38783b83},
150  {0x3fafb322, 0x3ec0b000, 0x38741da1},
151  {0x3faf3ade, 0x3ec21000, 0x3851da1f},
152  {0x3faec33e, 0x3ec37000, 0x38119a33},
153  {0x3fae4c41, 0x3ec4d000, 0x374e1b05},
154  {0x3fadd5e6, 0x3ec62000, 0x38dbe42c},
155  {0x3fad602b, 0x3ec78000, 0x388f439b},
156  {0x3faceb10, 0x3ec8e000, 0x37cfd68b},
157  {0x3fac7692, 0x3eca3000, 0x38ca0e11},
158  {0x3fac02b0, 0x3ecb9000, 0x38234113},
159  {0x3fab8f6a, 0x3ecce000, 0x38cac08c},
160  {0x3fab1cbe, 0x3ece4000, 0x37d605b8},
161  {0x3faaaaab, 0x3ecf9000, 0x3891f660},
162  {0x3faa392f, 0x3ed0e000, 0x38e0326b},
163  {0x3fa9c84a, 0x3ed24000, 0x378121cb},
164  {0x3fa957fb, 0x3ed39000, 0x3824966c},
165  {0x3fa8e83f, 0x3ed4e000, 0x386c9a9a},
166  {0x3fa87917, 0x3ed63000, 0x388c612c},
167  {0x3fa80a81, 0x3ed78000, 0x38949924},
168  {0x3fa79c7b, 0x3ed8d000, 0x388f075f},
169  {0x3fa72f05, 0x3eda2000, 0x38777bcd},
170  {0x3fa6c21e, 0x3edb7000, 0x38359d3d},
171  {0x3fa655c4, 0x3edcc000, 0x37b12d26},
172  {0x3fa5e9f7, 0x3ede0000, 0x38f04587},
173  {0x3fa57eb5, 0x3edf5000, 0x38a6ced4},
174  {0x3fa513fd, 0x3ee0a000, 0x381ff116},
175  {0x3fa4a9cf, 0x3ee1e000, 0x38ebd3e7},
176  {0x3fa44029, 0x3ee33000, 0x3874e3ff},
177  {0x3fa3d70a, 0x3ee47000, 0x38fbe3cd},
178  {0x3fa36e72, 0x3ee5c000, 0x3860744d},
179  {0x3fa3065e, 0x3ee70000, 0x38d785c3},
180  {0x3fa29ecf, 0x3ee85000, 0x37c75ce4},
181  {0x3fa237c3, 0x3ee99000, 0x387e7e01},
182  {0x3fa1d13a, 0x3eead000, 0x38bfcd71},
183  {0x3fa16b31, 0x3eec1000, 0x38f392c5},
184  {0x3fa105a9, 0x3eed6000, 0x3754f8b1},
185  {0x3fa0a0a1, 0x3eeea000, 0x37d40984},
186  {0x3fa03c17, 0x3eefe000, 0x38059907},
187  {0x3f9fd80a, 0x3ef12000, 0x38081a7c},
188  {0x3f9f747a, 0x3ef26000, 0x37e350d1},
189  {0x3f9f1166, 0x3ef3a000, 0x3784c3ad},
190  {0x3f9eaecd, 0x3ef4d000, 0x38fd32cc},
191  {0x3f9e4cad, 0x3ef61000, 0x38cce923},
192  {0x3f9deb07, 0x3ef75000, 0x38906320},
193  {0x3f9d89d9, 0x3ef89000, 0x380f5faf},
194  {0x3f9d2922, 0x3ef9c000, 0x38f2de41},
195  {0x3f9cc8e1, 0x3efb0000, 0x3891fd38},
196  {0x3f9c6917, 0x3efc4000, 0x37946dfd},
197  {0x3f9c09c1, 0x3efd7000, 0x38ac47bc},
198  {0x3f9baadf, 0x3efeb000, 0x379e41ec},
199  {0x3f9b4c70, 0x3effe000, 0x3897042c},
200  {0x3f9aee73, 0x3f008000, 0x397d5893},
201  {0x3f9a90e8, 0x3f012000, 0x392952d3},
202  {0x3f9a33cd, 0x3f01c000, 0x389eefce},
203  {0x3f99d723, 0x3f025000, 0x396fced5},
204  {0x3f997ae7, 0x3f02f000, 0x390a5e93},
205  {0x3f991f1a, 0x3f039000, 0x37f97073},
206  {0x3f98c3bb, 0x3f042000, 0x392e4426},
207  {0x3f9868c8, 0x3f04c000, 0x385e9eae},
208  {0x3f980e41, 0x3f055000, 0x393b5f67},
209  {0x3f97b426, 0x3f05f000, 0x3865c84a},
210  {0x3f975a75, 0x3f068000, 0x3931e65d},
211  {0x3f97012e, 0x3f072000, 0x38130ba4},
212  {0x3f96a850, 0x3f07b000, 0x39120e4e},
213  {0x3f964fda, 0x3f084000, 0x3979cf17},
214  {0x3f95f7cc, 0x3f08e000, 0x38b81788},
215  {0x3f95a025, 0x3f097000, 0x3938caca},
216  {0x3f9548e5, 0x3f0a1000, 0x37809491},
217  {0x3f94f209, 0x3f0aa000, 0x38c3d2f5},
218  {0x3f949b93, 0x3f0b3000, 0x392e55d6},
219  {0x3f944581, 0x3f0bc000, 0x39755dec},
220  {0x3f93efd2, 0x3f0c6000, 0x385c1fec},
221  {0x3f939a86, 0x3f0cf000, 0x38e6b468},
222  {0x3f93459c, 0x3f0d8000, 0x392a5abf},
223  {0x3f92f114, 0x3f0e1000, 0x395c0fb9},
224  {0x3f929cec, 0x3f0eb000, 0x3707f33c},
225  {0x3f924925, 0x3f0f4000, 0x383ebce1},
226  {0x3f91f5bd, 0x3f0fd000, 0x38a34b87},
227  {0x3f91a2b4, 0x3f106000, 0x38dcd193},
228  {0x3f915009, 0x3f10f000, 0x3905fe33},
229  {0x3f90fdbc, 0x3f118000, 0x39186bdf},
230  {0x3f90abcc, 0x3f121000, 0x3925b7a4},
231  {0x3f905a38, 0x3f12a000, 0x392de74c},
232  {0x3f900901, 0x3f133000, 0x3931009a},
233  {0x3f8fb824, 0x3f13c000, 0x392f0945},
234  {0x3f8f67a2, 0x3f145000, 0x392806fb},
235  {0x3f8f177a, 0x3f14e000, 0x391bff61},
236  {0x3f8ec7ab, 0x3f157000, 0x390af813},
237  {0x3f8e7835, 0x3f160000, 0x38e9ed45},
238  {0x3f8e2918, 0x3f169000, 0x38b4012f},
239  {0x3f8dda52, 0x3f172000, 0x38686dc8},
240  {0x3f8d8be3, 0x3f17b000, 0x37aa6542},
241  {0x3f8d3dcb, 0x3f183000, 0x396b99a8},
242  {0x3f8cf009, 0x3f18c000, 0x393d07d4},
243  {0x3f8ca29c, 0x3f195000, 0x39099c89},
244  {0x3f8c5584, 0x3f19e000, 0x38a2ba33},
245  {0x3f8c08c1, 0x3f1a7000, 0x37a27674},
246  {0x3f8bbc51, 0x3f1af000, 0x395276ea},
247  {0x3f8b7034, 0x3f1b8000, 0x390bdaa4},
248  {0x3f8b246b, 0x3f1c1000, 0x3880fe58},
249  {0x3f8ad8f3, 0x3f1c9000, 0x397069ab},
250  {0x3f8a8dcd, 0x3f1d2000, 0x391b9f3f},
251  {0x3f8a42f8, 0x3f1db000, 0x38844a00},
252  {0x3f89f874, 0x3f1e3000, 0x3963fffc},
253  {0x3f89ae41, 0x3f1ec000, 0x39013539},
254  {0x3f89645c, 0x3f1f5000, 0x37ce4dad},
255  {0x3f891ac7, 0x3f1fd000, 0x392dc269},
256  {0x3f88d181, 0x3f206000, 0x38749102},
257  {0x3f888889, 0x3f20e000, 0x3947f423},
258  {0x3f883fde, 0x3f217000, 0x389c6de0},
259  {0x3f87f781, 0x3f21f000, 0x394ff17d},
260  {0x3f87af70, 0x3f228000, 0x389a5134},
261  {0x3f8767ab, 0x3f230000, 0x3945e10e},
262  {0x3f872033, 0x3f239000, 0x38687e67},
263  {0x3f86d905, 0x3f241000, 0x3929e8f5},
264  {0x3f869223, 0x3f24a000, 0x37aa0e8c},
265  {0x3f864b8a, 0x3f252000, 0x38f85db0},
266  {0x3f86053c, 0x3f25a000, 0x395eb4ab},
267  {0x3f85bf37, 0x3f263000, 0x38735f9a},
268  {0x3f85797c, 0x3f26b000, 0x39169d1d},
269  {0x3f853408, 0x3f273000, 0x396c08dc},
270  {0x3f84eedd, 0x3f27c000, 0x38747ea0},
271  {0x3f84a9fa, 0x3f284000, 0x3909e601},
272  {0x3f84655e, 0x3f28c000, 0x3952605d},
273  {0x3f842108, 0x3f295000, 0x37b4996f},
274  {0x3f83dcf9, 0x3f29d000, 0x38ad05ba},
275  {0x3f839930, 0x3f2a5000, 0x391233cd},
276  {0x3f8355ad, 0x3f2ad000, 0x3949aa5a},
277  {0x3f83126f, 0x3f2b5000, 0x397ceada},
278  {0x3f82cf75, 0x3f2be000, 0x382fe66e},
279  {0x3f828cc0, 0x3f2c6000, 0x38adb5cd},
280  {0x3f824a4e, 0x3f2ce000, 0x38fb25fb},
281  {0x3f820821, 0x3f2d6000, 0x3920261b},
282  {0x3f81c636, 0x3f2de000, 0x393e9874},
283  {0x3f81848e, 0x3f2e6000, 0x3958ee36},
284  {0x3f814328, 0x3f2ee000, 0x396f2b8a},
285  {0x3f810204, 0x3f2f7000, 0x35aa4906},
286  {0x3f80c122, 0x3f2ff000, 0x3776d68c},
287  {0x3f808081, 0x3f307000, 0x37cbd11e},
288  {0x3f804020, 0x3f30f000, 0x37fbf692},
289  {0x3f800000, 0x3f317000, 0x3805fdf4},
290  };
291  
292