#ifndef __REF_VOLT_TABLE_H__ #define __REF_VOLT_TABLE_H__ #ifdef CONFIG_AID_DIMMING u32 volt_table_v1[142] = { 4785895 , 4777851 , 4769808 , 4761764 , 4753721 , 4745677 , 4737634 , 4729590 , 4721547 , 4713503 , 4705460 , 4697416 , 4689373 , 4681329 , 4673286 , 4665242 , 4657199 , 4649155 , 4641112 , 4633068 , 4625024 , 4616981 , 4608937 , 4600894 , 4592850 , 4584807 , 4576763 , 4568720 , 4560676 , 4552633 , 4544589 , 4536546 , 4528502 , 4520459 , 4512415 , 4504372 , 4496328 , 4488285 , 4480241 , 4472198 , 4464154 , 4456111 , 4448067 , 4440024 , 4431980 , 4423936 , 4415893 , 4407849 , 4399806 , 4391762 , 4383719 , 4375675 , 4367632 , 4359588 , 4351545 , 4343501 , 4335458 , 4327414 , 4319371 , 4311327 , 4303284 , 4295240 , 4287197 , 4279153 , 4271110 , 4263066 , 4255023 , 4246979 , 4238936 , 4230892 , 4222848 , 4214805 , 4206761 , 4198718 , 4190674 , 4182631 , 4174587 , 4166544 , 4158500 , 4150457 , 4142413 , 4134370 , 4126326 , 4118283 , 4110239 , 4102196 , 4094152 , 4086109 , 4078065 , 4070022 , 4061978 , 4053935 , 4045891 , 4037848 , 4029804 , 4021760 , 4013717 , 4005673 , 3997630 , 3989586 , 3981543 , 3973499 , 3965456 , 3957412 , 3949369 , 3941325 , 3933282 , 3925238 , 3917195 , 3909151 , 3901108 , 3893064 , 3885021 , 3876977 , 3868934 , 3860890 , 3852847 , 3844803 , 3836760 , 3828716 , 3820672 , 3812629 , 3804585 , 3796542 , 3788498 , 3780455 , 3772411 , 3764368 , 3756324 , 3748281 , 3740237 , 3732194 , 3724150 , 3716107 , 3708063 , 3700020 , 3691976 , 3683933 , 3675889 , 3667846 , 3659802 , }; u32 volt_table_v255[432] = { 4021760 , 4013717 , 4005673 , 3997630 , 3989586 , 3981543 , 3973499 , 3965456 , 3957412 , 3949369 , 3941325 , 3933282 , 3925238 , 3917195 , 3909151 , 3901108 , 3893064 , 3885021 , 3876977 , 3868934 , 3860890 , 3852847 , 3844803 , 3836760 , 3828716 , 3820672 , 3812629 , 3804585 , 3796542 , 3788498 , 3780455 , 3772411 , 3764368 , 3756324 , 3748281 , 3740237 , 3732194 , 3724150 , 3716107 , 3708063 , 3700020 , 3691976 , 3683933 , 3675889 , 3667846 , 3659802 , 3651759 , 3643715 , 3635672 , 3627628 , 3619584 , 3611541 , 3603497 , 3595454 , 3587410 , 3579367 , 3571323 , 3563280 , 3555236 , 3547193 , 3539149 , 3531106 , 3523062 , 3515019 , 3506975 , 3498932 , 3490888 , 3482845 , 3474801 , 3466758 , 3458714 , 3450671 , 3442627 , 3434584 , 3426540 , 3418496 , 3410453 , 3402409 , 3394366 , 3386322 , 3378279 , 3370235 , 3362192 , 3354148 , 3346105 , 3338061 , 3330018 , 3321974 , 3313931 , 3305887 , 3297844 , 3289800 , 3281757 , 3273713 , 3265670 , 3257626 , 3249583 , 3241539 , 3233496 , 3225452 , 3217408 , 3209365 , 3201321 , 3193278 , 3185234 , 3177191 , 3169147 , 3161104 , 3153060 , 3145017 , 3136973 , 3128930 , 3120886 , 3112843 , 3104799 , 3096756 , 3088712 , 3080669 , 3072625 , 3064582 , 3056538 , 3048495 , 3040451 , 3032408 , 3024364 , 3016320 , 3008277 , 3000233 , 2992190 , 2984146 , 2976103 , 2968059 , 2960016 , 2951972 , 2943929 , 2935885 , 2927842 , 2919798 , 2911755 , 2903711 , 2895668 , 2887624 , 2879581 , 2871537 , 2863494 , 2855450 , 2847407 , 2839363 , 2831320 , 2823276 , 2815232 , 2807189 , 2799145 , 2791102 , 2783058 , 2775015 , 2766971 , 2758928 , 2750884 , 2742841 , 2734797 , 2726754 , 2718710 , 2710667 , 2702623 , 2694580 , 2686536 , 2678493 , 2670449 , 2662406 , 2654362 , 2646319 , 2638275 , 2630232 , 2622188 , 2614144 , 2606101 , 2598057 , 2590014 , 2581970 , 2573927 , 2565883 , 2557840 , 2549796 , 2541753 , 2533709 , 2525666 , 2517622 , 2509579 , 2501535 , 2493492 , 2485448 , 2477405 , 2469361 , 2461318 , 2453274 , 2445231 , 2437187 , 2429144 , 2421100 , 2413056 , 2405013 , 2396969 , 2388926 , 2380882 , 2372839 , 2364795 , 2356752 , 2348708 , 2340665 , 2332621 , 2324578 , 2316534 , 2308491 , 2300447 , 2292404 , 2284360 , 2276317 , 2268273 , 2260230 , 2252186 , 2244143 , 2236099 , 2228056 , 2220012 , 2211968 , 2203925 , 2195881 , 2187838 , 2179794 , 2171751 , 2163707 , 2155664 , 2147620 , 2139577 , 2131533 , 2123490 , 2115446 , 2107403 , 2099359 , 2091316 , 2083272 , 2075229 , 2067185 , 2059142 , 2051098 , 2043055 , 2035011 , 2026968 , 2018924 , 2010880 , 2002837 , 1994793 , 1986750 , 1978706 , 1970663 , 1962619 , 1954576 , 1946532 , 1938489 , 1930445 , 1922402 , 1914358 , 1906315 , 1898271 , 1890228 , 1882184 , 1874141 , 1866097 , 1858054 , 1850010 , 1841967 , 1833923 , 1825880 , 1817836 , 1809792 , 1801749 , 1793705 , 1785662 , 1777618 , 1769575 , 1761531 , 1753488 , 1745444 , 1737401 , 1729357 , 1721314 , 1713270 , 1705227 , 1697183 , 1689140 , 1681096 , 1673053 , 1665009 , 1656966 , 1648922 , 1640879 , 1632835 , 1624792 , 1616748 , 1608704 , 1600661 , 1592617 , 1584574 , 1576530 , 1568487 , 1560443 , 1552400 , 1544356 , 1536313 , 1528269 , 1520226 , 1512182 , 1504139 , 1496095 , 1488052 , 1480008 , 1471965 , 1463921 , 1455878 , 1447834 , 1439791 , 1431747 , 1423704 , 1415660 , 1407616 , 1399573 , 1391529 , 1383486 , 1375442 , 1367399 , 1359355 , 1351312 , 1343268 , 1335225 , 1327181 , 1319138 , 1311094 , 1303051 , 1295007 , 1286964 , 1278920 , 1270877 , 1262833 , 1254790 , 1246746 , 1238703 , 1230659 , 1222616 , 1214572 , 1206528 , 1198485 , 1190441 , 1182398 , 1174354 , 1166311 , 1158267 , 1150224 , 1142180 , 1134137 , 1126093 , 1118050 , 1110006 , 1101963 , 1093919 , 1085876 , 1077832 , 1069789 , 1061745 , 1053702 , 1045658 , 1037615 , 1029571 , 1021528 , 1013484 , 1005440 , 997397 , 989353 , 981310 , 973266 , 965223 , 957179 , 949136 , 941092 , 933049 , 925005 , 916962 , 908918 , 900875 , 892831 , 884788 , 876744 , 868701 , 860657 , 852614 , 844570 , 836527 , 828483 , 820440 , 812396 , 804352 , 796309 , 788265 , 780222 , 772178 , 764135 , 756091 , 748048 , 740004 , 731961 , 723917 , 715874 , 707830 , 699787 , 691743 , 683700 , 675656 , 667613 , 659569 , 651526 , 643482 , 635439 , 627395 , 619352 , 611308 , 603264 , 595221 , 587177 , 579134 , 571090 , 563047 , }; #else u32 volt_table_v1[256] = { 4671488, 4663296, 4655104, 4647936, 4639744, 4631552, 4624384, 4616192, 4608000, 4600832, 4592640, 4584448, 4577280, 4569088, 4560896, 4553728, 4545536, 4537344, 4530176, 4521984, 4513792, 4506624, 4498432, 4490240, 4483072, 4474880, 4466688, 4459520, 4451328, 4443136, 4435968, 4427776, 4419584, 4412416, 4404224, 4396032, 4388864, 4380672, 4372480, 4365312, 4357120, 4348928, 4341760, 4333568, 4325376, 4318208, 4310016, 4301824, 4294656, 4286464, 4278272, 4271104, 4262912, 4254720, 4247552, 4239360, 4231168, 4224000, 4215808, 4207616, 4200448, 4192256, 4184064, 4176896, 4168704, 4160512, 4153344, 4145152, 4136960, 4129792, 4121600, 4113408, 4106240, 4098048, 4089856, 4082688, 4074496, 4066304, 4059136, 4050944, 4042752, 4035584, 4027392, 4019200, 4012032, 4003840, 3995648, 3988480, 3980288, 3972096, 3964928, 3956736, 3948544, 3941376, 3933184, 3924992, 3917824, 3909632, 3901440, 3894272, 3886080, 3877888, 3870720, 3862528, 3854336, 3847168, 3838976, 3830784, 3823616, 3815424, 3807232, 3800064, 3791872, 3783680, 3776512, 3768320, 3760128, 3752960, 3744768, 3736576, 3729408, 3721216, 3713024, 3705856, 3697664, 3689472, 3682304, 3674112, 3665920, 3658752, 3650560, 3642368, 3635200, 3627008, 3618816, 3611648, 3603456, 3595264, 3588096, 3579904, 3571712, 3564544, }; u32 volt_table_v255[432] = { 3924992, 3917824, 3909632, 3901440, 3894272, 3886080, 3877888, 3870720, 3862528, 3854336, 3847168, 3838976, 3830784, 3823616, 3815424, 3807232, 3800064, 3791872, 3783680, 3776512, 3768320, 3760128, 3752960, 3744768, 3736576, 3729408, 3721216, 3713024, 3705856, 3697664, 3689472, 3682304, 3674112, 3665920, 3658752, 3650560, 3642368, 3635200, 3627008, 3618816, 3611648, 3603456, 3595264, 3588096, 3579904, 3571712, 3564544, 3556352, 3548160, 3540992, 3532800, 3524608, 3517440, 3509248, 3501056, 3493888, 3485696, 3477504, 3470336, 3462144, 3453952, 3446784, 3438592, 3430400, 3423232, 3415040, 3406848, 3399680, 3391488, 3383296, 3376128, 3367936, 3359744, 3352576, 3344384, 3336192, 3329024, 3320832, 3312640, 3305472, 3297280, 3289088, 3281920, 3273728, 3265536, 3258368, 3250176, 3241984, 3234816, 3226624, 3218432, 3211264, 3203072, 3194880, 3187712, 3179520, 3171328, 3164160, 3155968, 3147776, 3140608, 3132416, 3124224, 3117056, 3108864, 3100672, 3093504, 3085312, 3077120, 3069952, 3061760, 3053568, 3046400, 3038208, 3030016, 3022848, 3014656, 3006464, 2999296, 2991104, 2982912, 2975744, 2967552, 2959360, 2952192, 2944000, 2935808, 2928640, 2920448, 2912256, 2905088, 2896896, 2888704, 2881536, 2873344, 2865152, 2857984, 2849792, 2841600, 2834432, 2826240, 2818048, 2810880, 2802688, 2794496, 2787328, 2779136, 2770944, 2763776, 2755584, 2747392, 2740224, 2732032, 2723840, 2716672, 2708480, 2700288, 2693120, 2684928, 2676736, 2669568, 2661376, 2653184, 2646016, 2637824, 2629632, 2622464, 2614272, 2606080, 2598912, 2590720, 2582528, 2575360, 2567168, 2558976, 2551808, 2543616, 2535424, 2528256, 2520064, 2511872, 2504704, 2496512, 2488320, 2481152, 2472960, 2464768, 2457600, 2449408, 2441216, 2434048, 2425856, 2417664, 2410496, 2402304, 2394112, 2386944, 2378752, 2370560, 2363392, 2355200, 2347008, 2339840, 2331648, 2323456, 2316288, 2308096, 2299904, 2292736, 2284544, 2276352, 2269184, 2260992, 2252800, 2245632, 2237440, 2229248, 2222080, 2213888, 2205696, 2198528, 2190336, 2182144, 2174976, 2166784, 2158592, 2151424, 2143232, 2135040, 2127872, 2119680, 2111488, 2104320, 2096128, 2087936, 2080768, 2072576, 2064384, 2057216, 2049024, 2040832, 2033664, 2025472, 2017280, 2010112, 2001920, 1993728, 1986560, 1978368, 1970176, 1963008, 1954816, 1946624, 1939456, 1931264, 1923072, 1915904, 1907712, 1899520, 1892352, 1884160, 1875968, 1868800, 1860608, 1852416, 1845248, 1837056, 1828864, 1821696, 1813504, 1805312, 1798144, 1789952, 1781760, 1774592, 1766400, 1758208, 1751040, 1742848, 1734656, 1727488, 1719296, 1711104, 1703936, 1695744, 1687552, 1680384, 1672192, 1664000, 1656832, 1648640, 1640448, 1633280, 1625088, 1616896, 1609728, 1601536, 1593344, 1586176, 1577984, 1569792, 1562624, 1554432, 1546240, 1539072, 1530880, 1522688, 1515520, 1507328, 1499136, 1491968, 1483776, 1475584, 1468416, 1460224, 1452032, 1444864, 1436672, 1428480, 1421312, 1413120, 1404928, 1397760, 1389568, 1381376, 1374208, 1366016, 1357824, 1350656, 1342464, 1334272, 1327104, 1318912, 1310720, 1303552, 1295360, 1287168, 1280000, 1271808, 1263616, 1256448, 1248256, 1240064, 1232896, 1224704, 1216512, 1209344, 1201152, 1192960, 1185792, 1177600, 1169408, 1162240, 1154048, 1145856, 1138688, 1130496, 1122304, 1115136, 1106944, 1098752, 1091584, 1083392, 1075200, 1068032, 1059840, 1051648, 1044480, 1036288, 1028096, 1020928, 1012736, 1004544, 997376, 989184, 980992, 973824, 965632, 957440, 950272, 942080, 933888, 926720, 918528, 910336, 903168, 894976, 886784, 879616, 871424, 863232, 856064, 847872, 839680, 832512, 824320, 816128, 808960, 800768, 792576, 785408, 777216, 769024, 761856, 753664, 745472, 738304, 730112, 721920, 714752, 706560, 698368, 691200, 683008, 674816, 667648, 659456, 651264, 644096, 635904, 627712, 620544, 612352, 604160, 596992, 588800, 580608, 573440, 565248, 557056, 549888, 541696, }; #endif u32 volt_table_cv_20_dv_320[256] = { 64, 67, 70, 74, 77, 80, 83, 86, 90, 93, 96, 99, 102, 106, 109, 112, 115, 118, 122, 125, 128, 131, 134, 138, 141, 144, 147, 150, 154, 157, 160, 163, 166, 170, 173, 176, 179, 182, 186, 189, 192, 195, 198, 202, 205, 208, 211, 214, 218, 221, 224, 227, 230, 234, 237, 240, 243, 246, 250, 253, 256, 259, 262, 266, 269, 272, 275, 278, 282, 285, 288, 291, 294, 298, 301, 304, 307, 310, 314, 317, 320, 323, 326, 330, 333, 336, 339, 342, 346, 349, 352, 355, 358, 362, 365, 368, 371, 374, 378, 381, 384, 387, 390, 394, 397, 400, 403, 406, 410, 413, 416, 419, 422, 426, 429, 432, 435, 438, 442, 445, 448, 451, 454, 458, 461, 464, 467, 470, 474, 477, 480, 483, 486, 490, 493, 496, 499, 502, 506, 509, 512, 515, 518, 522, 525, 528, 531, 534, 538, 541, 544, 547, 550, 554, 557, 560, 563, 566, 570, 573, 576, 579, 582, 586, 589, 592, 595, 598, 602, 605, 608, 611, 614, 618, 621, 624, 627, 630, 634, 637, 640, 643, 646, 650, 653, 656, 659, 662, 666, 669, 672, 675, 678, 682, 685, 688, 691, 694, 698, 701, 704, 707, 710, 714, 717, 720, 723, 726, 730, 733, 736, 739, 742, 746, 749, 752, 755, 758, 762, 765, 768, 771, 774, 778, 781, 784, 787, 790, 794, 797, 800, 803, 806, 810, 813, 816, 819, 822, 826, 829, 832, 835, 838, 842, 845, 848, 851, 854, 858, 861, 864, 867, 870, 874, 877, 880 }; u32 volt_table_cv_65_dv_320[256] = { 208, 211, 214, 218, 221, 224, 227, 230, 234, 237, 240, 243, 246, 250, 253, 256, 259, 262, 266, 269, 272, 275, 278, 282, 285, 288, 291, 294, 298, 301, 304, 307, 310, 314, 317, 320, 323, 326, 330, 333, 336, 339, 342, 346, 349, 352, 355, 358, 362, 365, 368, 371, 374, 378, 381, 384, 387, 390, 394, 397, 400, 403, 406, 410, 413, 416, 419, 422, 426, 429, 432, 435, 438, 442, 445, 448, 451, 454, 458, 461, 464, 467, 470, 474, 477, 480, 483, 486, 490, 493, 496, 499, 502, 506, 509, 512, 515, 518, 522, 525, 528, 531, 534, 538, 541, 544, 547, 550, 554, 557, 560, 563, 566, 570, 573, 576, 579, 582, 586, 589, 592, 595, 598, 602, 605, 608, 611, 614, 618, 621, 624, 627, 630, 634, 637, 640, 643, 646, 650, 653, 656, 659, 662, 666, 669, 672, 675, 678, 682, 685, 688, 691, 694, 698, 701, 704, 707, 710, 714, 717, 720, 723, 726, 730, 733, 736, 739, 742, 746, 749, 752, 755, 758, 762, 765, 768, 771, 774, 778, 781, 784, 787, 790, 794, 797, 800, 803, 806, 810, 813, 816, 819, 822, 826, 829, 832, 835, 838, 842, 845, 848, 851, 854, 858, 861, 864, 867, 870, 874, 877, 880, 883, 886, 890, 893, 896, 899, 902, 906, 909, 912, 915, 918, 922, 925, 928, 931, 934, 938, 941, 944, 947, 950, 954, 957, 960, 963, 966, 970, 973, 976, 979, 982, 986, 989, 992, 995, 998, 1002, 1005, 1008, 1011, 1014, 1018, 1021, 1024, }; const u32 gamma_300_gra_table[256] = { 0, 2, 7, 17, 32, 53, 78, 110, 148, 191, 241, 298, 361, 430, 506, 589, 679, 776, 880, 991, 1109, 1235, 1368, 1508, 1657, 1812, 1975, 2147, 2325, 2512, 2706, 2909, 3119, 3338, 3564, 3799, 4042, 4293, 4553, 4820, 5096, 5381, 5674, 5975, 6285, 6604, 6931, 7267, 7611, 7965, 8327, 8697, 9077, 9465, 9863, 10269, 10684, 11109, 11542, 11984, 12436, 12896, 13366, 13845, 14333, 14830, 15337, 15852, 16378, 16912, 17456, 18009, 18572, 19144, 19726, 20317, 20918, 21528, 22148, 22778, 23417, 24066, 24724, 25392, 26070, 26758, 27456, 28163, 28880, 29607, 30344, 31090, 31847, 32613, 33390, 34176, 34973, 35779, 36596, 37422, 38259, 39106, 39963, 40830, 41707, 42594, 43492, 44399, 45317, 46246, 47184, 48133, 49092, 50062, 51042, 52032, 53032, 54043, 55065, 56097, 57139, 58192, 59255, 60329, 61413, 62508, 63613, 64729, 65856, 66993, 68141, 69299, 70469, 71648, 72839, 74040, 75252, 76475, 77708, 78952, 80207, 81473, 82750, 84037, 85336, 86645, 87965, 89296, 90638, 91990, 93354, 94729, 96114, 97511, 98919, 100337, 101767, 103208, 104659, 106122, 107596, 109081, 110577, 112085, 113603, 115132, 116673, 118225, 119788, 121362, 122948, 124544, 126152, 127772, 129402, 131044, 132697, 134361, 136037, 137724, 139422, 141132, 142853, 144586, 146330, 148085, 149852, 151630, 153419, 155220, 157033, 158857, 160692, 162540, 164398, 166268, 168150, 170043, 171948, 173864, 175792, 177731, 179683, 181645, 183620, 185606, 187603, 189613, 191634, 193667, 195711, 197767, 199835, 201915, 204006, 206109, 208224, 210351, 212489, 214640, 216802, 218976, 221161, 223359, 225569, 227790, 230023, 232268, 234525, 236794, 239075, 241368, 243672, 245989, 248318, 250658, 253011, 255375, 257752, 260141, 262541, 264954, 267379, 269815, 272264, 274725, 277198, 279683, 282180, 284689, 287211, 289744, 292290, 294848, 297418, 300000, }; #ifdef CONFIG_AID_DIMMING const u32 gamma_22_table[256] = { 0, 5 , 23 , 56 , 107 , 175 , 261 , 367 , 492 , 638 , 804 , 992 , 1201 , 1433 , 1686 , 1963 , 2262 , 2585 , 2932 , 3302 , 3697 , 4116 , 4559 , 5028 , 5521 , 6040 , 6584 , 7155 , 7751 , 8373 , 9021 , 9696 , 10397 , 11126 , 11881 , 12663 , 13473 , 14310 , 15175 , 16067 , 16988 , 17936 , 18912 , 19917 , 20951 , 22012 , 23103 , 24222 , 25371 , 26548 , 27755 , 28991 , 30256 , 31551 , 32875 , 34230 , 35614 , 37028 , 38472 , 39947 , 41451 , 42987 , 44552 , 46148 , 47775 , 49433 , 51122 , 52841 , 54592 , 56374 , 58187 , 60031 , 61907 , 63814 , 65753 , 67724 , 69727 , 71761 , 73827 , 75926 , 78056 , 80219 , 82414 , 84641 , 86901 , 89193 , 91518 , 93875 , 96266 , 98689 , 101145 , 103634 , 106156 , 108711 , 111299 , 113920 , 116575 , 119264 , 121985 , 124740 , 127529 , 130352 , 133208 , 136098 , 139022 , 141980 , 144972 , 147998 , 151058 , 154152 , 157280 , 160443 , 163640 , 166872 , 170138 , 173439 , 176774 , 180144 , 183548 , 186988 , 190462 , 193972 , 197516 , 201095 , 204710 , 208359 , 212044 , 215764 , 219519 , 223310 , 227136 , 230998 , 234895 , 238827 , 242796 , 246800 , 250840 , 254915 , 259027 , 263174 , 267358 , 271577 , 275832 , 280124 , 284452 , 288815 , 293216 , 297652 , 302125 , 306634 , 311180 , 315762 , 320381 , 325036 , 329729 , 334457 , 339223 , 344025 , 348864 , 353740 , 358653 , 363603 , 368590 , 373615 , 378676 , 383774 , 388910 , 394083 , 399293 , 404540 , 409825 , 415148 , 420507 , 425905 , 431340 , 436812 , 442322 , 447870 , 453456 , 459079 , 464741 , 470440 , 476177 , 481952 , 487765 , 493616 , 499505 , 505432 , 511397 , 517401 , 523443 , 529523 , 535641 , 541798 , 547993 , 554227 , 560499 , 566809 , 573158 , 579546 , 585972 , 592438 , 598941 , 605484 , 612065 , 618685 , 625344 , 632042 , 638779 , 645555 , 652370 , 659223 , 666116 , 673049 , 680020 , 687030 , 694080 , 701169 , 708297 , 715465 , 722672 , 729918 , 737204 , 744530 , 751895 , 759299 , 766743 , 774227 , 781750 , 789313 , 796916 , 804559 , 812241 , 819963 , 827725 , 835527 , 843369 , 851251 , 859173 , 867135 , 875137 , 883179 , 891262 , 899384 , 907547 , 915750 , 923993 , 932276 , 940600 , 948964 , 957369 , 965814 , 974300 , 982826 , 991392 , 1000000 , }; const u32 gamma_215_table[256] = { 0, 6 , 29 , 71 , 131 , 213 , 315 , 439 , 585 , 754 , 946 , 1161 , 1400 , 1663 , 1950 , 2262 , 2598 , 2960 , 3347 , 3760 , 4199 , 4663 , 5154 , 5670 , 6214 , 6784 , 7381 , 8005 , 8656 , 9334 , 10040 , 10773 , 11534 , 12323 , 13140 , 13985 , 14858 , 15760 , 16690 , 17649 , 18636 , 19652 , 20697 , 21771 , 22875 , 24007 , 25169 , 26360 , 27580 , 28831 , 30110 , 31420 , 32760 , 34129 , 35529 , 36958 , 38418 , 39908 , 41429 , 42980 , 44561 , 46174 , 47816 , 49490 , 51194 , 52930 , 54696 , 56493 , 58322 , 60181 , 62072 , 63994 , 65948 , 67933 , 69949 , 71997 , 74077 , 76189 , 78332 , 80507 , 82714 , 84953 , 87224 , 89527 , 91862 , 94230 , 96629 , 99061 , 101525 , 104022 , 106551 , 109113 , 111707 , 114334 , 116993 , 119686 , 122411 , 125169 , 127960 , 130783 , 133640 , 136530 , 139453 , 142409 , 145398 , 148421 , 151476 , 154565 , 157688 , 160844 , 164033 , 167256 , 170512 , 173802 , 177126 , 180484 , 183875 , 187300 , 190758 , 194251 , 197778 , 201338 , 204933 , 208561 , 212224 , 215921 , 219652 , 223417 , 227216 , 231050 , 234918 , 238820 , 242757 , 246728 , 250734 , 254774 , 258849 , 262958 , 267102 , 271281 , 275495 , 279743 , 284026 , 288344 , 292696 , 297084 , 301506 , 305964 , 310456 , 314984 , 319547 , 324144 , 328777 , 333445 , 338149 , 342887 , 347661 , 352470 , 357315 , 362194 , 367110 , 372061 , 377047 , 382069 , 387126 , 392219 , 397347 , 402512 , 407712 , 412947 , 418219 , 423526 , 428869 , 434247 , 439662 , 445113 , 450599 , 456122 , 461680 , 467275 , 472905 , 478572 , 484275 , 490013 , 495789 , 501600 , 507447 , 513331 , 519251 , 525208 , 531200 , 537230 , 543295 , 549397 , 555536 , 561711 , 567922 , 574170 , 580455 , 586776 , 593134 , 599528 , 605960 , 612428 , 618932 , 625474 , 632052 , 638667 , 645319 , 652008 , 658734 , 665496 , 672296 , 679132 , 686006 , 692917 , 699864 , 706849 , 713871 , 720930 , 728026 , 735160 , 742330 , 749538 , 756783 , 764066 , 771386 , 778743 , 786137 , 793569 , 801038 , 808545 , 816089 , 823671 , 831290 , 838946 , 846641 , 854373 , 862142 , 869949 , 877794 , 885676 , 893596 , 901554 , 909550 , 917583 , 925654 , 933763 , 941910 , 950095 , 958317 , 966578 , 974876 , 983213 , 991587 , 1000000 , }; /* todo : will modify this value */ const u32 gamma_21_table[256] = { 0, 8 , 37 , 88 , 162 , 259 , 380 , 525 , 696 , 891 , 1112 , 1358 , 1631 , 1929 , 2254 , 2606 , 2984 , 3390 , 3822 , 4282 , 4769 , 5283 , 5825 , 6395 , 6993 , 7619 , 8273 , 8956 , 9667 , 10406 , 11174 , 11970 , 12796 , 13650 , 14533 , 15445 , 16387 , 17357 , 18357 , 19386 , 20445 , 21533 , 22651 , 23798 , 24975 , 26182 , 27419 , 28686 , 29982 , 31309 , 32666 , 34053 , 35470 , 36918 , 38396 , 39904 , 41443 , 43013 , 44613 , 46243 , 47905 , 49597 , 51320 , 53073 , 54858 , 56673 , 58520 , 60398 , 62306 , 64246 , 66217 , 68219 , 70252 , 72317 , 74413 , 76541 , 78699 , 80890 , 83112 , 85365 , 87650 , 89967 , 92315 , 94695 , 97107 , 99550 , 102026 , 104533 , 107072 , 109643 , 112247 , 114882 , 117549 , 120248 , 122979 , 125743 , 128539 , 131366 , 134227 , 137119 , 140044 , 143001 , 145990 , 149012 , 152067 , 155154 , 158273 , 161425 , 164609 , 167826 , 171076 , 174358 , 177673 , 181021 , 184402 , 187815 , 191261 , 194740 , 198252 , 201796 , 205374 , 208984 , 212628 , 216304 , 220014 , 223757 , 227532 , 231341 , 235183 , 239058 , 242966 , 246908 , 250882 , 254890 , 258931 , 263006 , 267114 , 271255 , 275430 , 279638 , 283879 , 288154 , 292463 , 296805 , 301180 , 305589 , 310032 , 314508 , 319018 , 323561 , 328138 , 332749 , 337393 , 342072 , 346784 , 351529 , 356309 , 361122 , 365970 , 370851 , 375766 , 380714 , 385697 , 390714 , 395765 , 400850 , 405968 , 411121 , 416308 , 421529 , 426784 , 432073 , 437396 , 442753 , 448145 , 453571 , 459031 , 464525 , 470053 , 475616 , 481213 , 486844 , 492510 , 498210 , 503944 , 509713 , 515516 , 521354 , 527226 , 533132 , 539073 , 545049 , 551059 , 557103 , 563182 , 569296 , 575444 , 581627 , 587844 , 594096 , 600383 , 606704 , 613060 , 619451 , 625876 , 632337 , 638832 , 645361 , 651926 , 658525 , 665160 , 671829 , 678532 , 685271 , 692045 , 698853 , 705697 , 712575 , 719489 , 726437 , 733420 , 740439 , 747492 , 754580 , 761704 , 768862 , 776056 , 783285 , 790549 , 797847 , 805182 , 812551 , 819955 , 827395 , 834870 , 842380 , 849925 , 857505 , 865121 , 872772 , 880459 , 888180 , 895937 , 903730 , 911557 , 919420 , 927319 , 935253 , 943222 , 951227 , 959267 , 967342 , 975453 , 983600 , 991782 , 1000000 , }; #else const u32 gamma_22_table[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 10, 10, 11, 12, 13, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 32, 33, 34, 36, 37, 38, 40, 41, 43, 45, 46, 48, 49, 51, 53, 55, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 85, 87, 89, 92, 94, 96, 99, 101, 104, 106, 109, 111, 114, 117, 119, 122, 125, 128, 130, 133, 136, 139, 142, 145, 148, 151, 154, 157, 160, 164, 167, 170, 173, 177, 180, 184, 187, 190, 194, 198, 201, 205, 208, 212, 216, 220, 223, 227, 231, 235, 239, 243, 247, 251, 255, 259, 263, 267, 272, 276, 280, 284, 289, 293, 298, 302, 307, 311, 316, 320, 325, 330, 334, 339, 344, 349, 354, 359, 364, 369, 374, 379, 384, 389, 394, 399, 405, 410, 415, 421, 426, 431, 437, 442, 448, 453, 459, 465, 470, 476, 482, 488, 494, 500, 505, 511, 517, 523, 530, 536, 542, 548, 554, 560, 567, 573, 580, 586, 592, 599, 605, 612, 619, 625, 632, 639, 646, 652, 659, 666, 673, 680, 687, 694, 701, 708, 715, 723, 730, 737, 745, 752, 759, 767, 774, 782, 789, 797, 805, 812, 820, 828, 836, 843, 851, 859, 867, 875, 883, 891, 899, 908, 916, 924, 932, 941, 949, 957, 966, 974, 983, 991, 1000, }; #endif const struct str_flookup_table flookup_table[302] = { { 0, 0}, { 1, 20}, { 20, 7}, { 27, 5}, { 32, 4}, { 36, 4}, { 40, 4}, { 44, 3}, { 47, 3}, { 50, 2}, { 52, 3}, { 55, 2}, { 57, 3}, { 60, 2}, { 62, 2}, { 64, 2}, { 66, 2}, { 68, 2}, { 70, 1}, { 71, 2}, { 73, 2}, { 75, 2}, { 77, 1}, { 78, 2}, { 80, 1}, { 81, 2}, { 83, 1}, { 84, 2}, { 86, 1}, { 87, 2}, { 89, 1}, { 90, 1}, { 91, 2}, { 93, 1}, { 94, 1}, { 95, 2}, { 97, 1}, { 98, 1}, { 99, 1}, {100, 1}, {101, 2}, {103, 1}, {104, 1}, {105, 1}, {106, 1}, {107, 1}, {108, 1}, {109, 1}, {110, 1}, {111, 1}, {112, 1}, {113, 1}, {114, 1}, {115, 1}, {116, 1}, {117, 1}, {118, 1}, {119, 1}, {120, 1}, {121, 1}, {122, 1}, {123, 1}, {124, 1}, {125, 1}, {126, 1}, {127, 1}, {128, 1}, {129, 1}, { 0, 0}, {130, 1}, {131, 1}, {132, 1}, {133, 1}, {134, 1}, { 0, 0}, {135, 1}, {136, 1}, {137, 1}, {138, 1}, {139, 1}, { 0, 0}, {140, 1}, {141, 1}, {142, 1}, { 0, 0}, {143, 1}, {144, 1}, {145, 1}, {146, 1}, { 0, 0}, {147, 1}, {148, 1}, {149, 1}, { 0, 0}, {150, 1}, {151, 1}, { 0, 0}, {152, 1}, {153, 1}, {154, 1}, { 0, 0}, {155, 1}, {156, 1}, { 0, 0}, {157, 1}, {158, 1}, { 0, 0}, {159, 1}, {160, 1}, { 0, 0}, {161, 1}, {162, 1}, { 0, 0}, {163, 1}, {164, 1}, { 0, 0}, {165, 1}, {166, 1}, { 0, 0}, {167, 1}, {168, 1}, { 0, 0}, {169, 1}, {170, 1}, { 0, 0}, {171, 1}, { 0, 0}, {172, 1}, {173, 1}, { 0, 0}, {174, 1}, { 0, 0}, {175, 1}, {176, 1}, { 0, 0}, {177, 1}, { 0, 0}, {178, 1}, {179, 1}, { 0, 0}, {180, 1}, { 0, 0}, {181, 1}, {182, 1}, { 0, 0}, {183, 1}, { 0, 0}, {184, 1}, { 0, 0}, {185, 1}, {186, 1}, { 0, 0}, {187, 1}, { 0, 0}, {188, 1}, { 0, 0}, {189, 1}, { 0, 0}, {190, 1}, {191, 1}, { 0, 0}, {192, 1}, { 0, 0}, {193, 1}, { 0, 0}, {194, 1}, { 0, 0}, {195, 1}, { 0, 0}, {196, 1}, { 0, 0}, {197, 1}, {198, 1}, { 0, 0}, {199, 1}, { 0, 0}, {200, 1}, { 0, 0}, {201, 1}, { 0, 0}, {202, 1}, { 0, 0}, {203, 1}, { 0, 0}, {204, 1}, { 0, 0}, {205, 1}, { 0, 0}, {206, 1}, { 0, 0}, {207, 1}, { 0, 0}, {208, 1}, { 0, 0}, {209, 1}, { 0, 0}, {210, 1}, { 0, 0}, {211, 1}, { 0, 0}, {212, 1}, { 0, 0}, {213, 1}, { 0, 0}, { 0, 0}, {214, 1}, { 0, 0}, {215, 1}, { 0, 0}, {216, 1}, { 0, 0}, {217, 1}, { 0, 0}, {218, 1}, { 0, 0}, {219, 1}, { 0, 0}, {220, 1}, { 0, 0}, {221, 1}, { 0, 0}, { 0, 0}, {222, 1}, { 0, 0}, {223, 1}, { 0, 0}, {224, 1}, { 0, 0}, {225, 1}, { 0, 0}, { 0, 0}, {226, 1}, { 0, 0}, {227, 1}, { 0, 0}, {228, 1}, { 0, 0}, {229, 1}, { 0, 0}, { 0, 0}, {230, 1}, { 0, 0}, {231, 1}, { 0, 0}, {232, 1}, { 0, 0}, {233, 1}, { 0, 0}, { 0, 0}, {234, 1}, { 0, 0}, {235, 1}, { 0, 0}, { 0, 0}, {236, 1}, { 0, 0}, {237, 1}, { 0, 0}, {238, 1}, { 0, 0}, { 0, 0}, {239, 1}, { 0, 0}, {240, 1}, { 0, 0}, {241, 1}, { 0, 0}, { 0, 0}, {242, 1}, { 0, 0}, {243, 1}, { 0, 0}, { 0, 0}, {244, 1}, { 0, 0}, {245, 1}, { 0, 0}, { 0, 0}, {246, 1}, { 0, 0}, {247, 1}, { 0, 0}, { 0, 0}, {248, 1}, { 0, 0}, {249, 1}, { 0, 0}, { 0, 0}, {250, 1}, { 0, 0}, {251, 1}, { 0, 0}, { 0, 0}, {252, 1}, { 0, 0}, {253, 1}, { 0, 0}, { 0, 0}, {254, 1}, { 0, 0}, { 0, 0}, {255, 1}, }; #endif