Libav 0.7.1
|
00001 /* 00002 * Inverse table 00003 * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at> 00004 * 00005 * This file is part of Libav. 00006 * 00007 * Libav is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * Libav is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with Libav; if not, write to the Free Software 00019 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00020 */ 00021 00022 #include <stdint.h> 00023 00024 /* a*inverse[b]>>32 == a/b for all 0<=a<=16909558 && 2<=b<=256 00025 * for a>16909558, is an overestimate by less than 1 part in 1<<24 */ 00026 const uint32_t ff_inverse[257]={ 00027 0, 4294967295U,2147483648U,1431655766, 1073741824, 858993460, 715827883, 613566757, 00028 536870912, 477218589, 429496730, 390451573, 357913942, 330382100, 306783379, 286331154, 00029 268435456, 252645136, 238609295, 226050911, 214748365, 204522253, 195225787, 186737709, 00030 178956971, 171798692, 165191050, 159072863, 153391690, 148102321, 143165577, 138547333, 00031 134217728, 130150525, 126322568, 122713352, 119304648, 116080198, 113025456, 110127367, 00032 107374183, 104755300, 102261127, 99882961, 97612894, 95443718, 93368855, 91382283, 00033 89478486, 87652394, 85899346, 84215046, 82595525, 81037119, 79536432, 78090315, 00034 76695845, 75350304, 74051161, 72796056, 71582789, 70409300, 69273667, 68174085, 00035 67108864, 66076420, 65075263, 64103990, 63161284, 62245903, 61356676, 60492498, 00036 59652324, 58835169, 58040099, 57266231, 56512728, 55778797, 55063684, 54366675, 00037 53687092, 53024288, 52377650, 51746594, 51130564, 50529028, 49941481, 49367441, 00038 48806447, 48258060, 47721859, 47197443, 46684428, 46182445, 45691142, 45210183, 00039 44739243, 44278014, 43826197, 43383509, 42949673, 42524429, 42107523, 41698712, 00040 41297763, 40904451, 40518560, 40139882, 39768216, 39403370, 39045158, 38693400, 00041 38347923, 38008561, 37675152, 37347542, 37025581, 36709123, 36398028, 36092163, 00042 35791395, 35495598, 35204650, 34918434, 34636834, 34359739, 34087043, 33818641, 00043 33554432, 33294321, 33038210, 32786010, 32537632, 32292988, 32051995, 31814573, 00044 31580642, 31350127, 31122952, 30899046, 30678338, 30460761, 30246249, 30034737, 00045 29826162, 29620465, 29417585, 29217465, 29020050, 28825284, 28633116, 28443493, 00046 28256364, 28071682, 27889399, 27709467, 27531842, 27356480, 27183338, 27012373, 00047 26843546, 26676816, 26512144, 26349493, 26188825, 26030105, 25873297, 25718368, 00048 25565282, 25414008, 25264514, 25116768, 24970741, 24826401, 24683721, 24542671, 00049 24403224, 24265352, 24129030, 23994231, 23860930, 23729102, 23598722, 23469767, 00050 23342214, 23216040, 23091223, 22967740, 22845571, 22724695, 22605092, 22486740, 00051 22369622, 22253717, 22139007, 22025474, 21913099, 21801865, 21691755, 21582751, 00052 21474837, 21367997, 21262215, 21157475, 21053762, 20951060, 20849356, 20748635, 00053 20648882, 20550083, 20452226, 20355296, 20259280, 20164166, 20069941, 19976593, 00054 19884108, 19792477, 19701685, 19611723, 19522579, 19434242, 19346700, 19259944, 00055 19173962, 19088744, 19004281, 18920561, 18837576, 18755316, 18673771, 18592933, 00056 18512791, 18433337, 18354562, 18276457, 18199014, 18122225, 18046082, 17970575, 00057 17895698, 17821442, 17747799, 17674763, 17602325, 17530479, 17459217, 17388532, 00058 17318417, 17248865, 17179870, 17111424, 17043522, 16976156, 16909321, 16843010, 00059 16777216 00060 };