00001 static const uint16_t fixed_reciprocal_table[129] =
00002 {
00003 32768,
00004 32514,
00005 32264,
00006 32018,
00007 31775,
00008 31536,
00009 31301,
00010 31069,
00011 30840,
00012 30615,
00013 30394,
00014 30175,
00015 29959,
00016 29747,
00017 29537,
00018 29331,
00019 29127,
00020 28926,
00021 28728,
00022 28533,
00023 28340,
00024 28150,
00025 27962,
00026 27777,
00027 27594,
00028 27414,
00029 27236,
00030 27060,
00031 26887,
00032 26715,
00033 26546,
00034 26379,
00035 26214,
00036 26052,
00037 25891,
00038 25732,
00039 25575,
00040 25420,
00041 25267,
00042 25116,
00043 24966,
00044 24818,
00045 24672,
00046 24528,
00047 24385,
00048 24245,
00049 24105,
00050 23967,
00051 23831,
00052 23697,
00053 23564,
00054 23432,
00055 23302,
00056 23173,
00057 23046,
00058 22920,
00059 22795,
00060 22672,
00061 22550,
00062 22429,
00063 22310,
00064 22192,
00065 22075,
00066 21960,
00067 21845,
00068 21732,
00069 21620,
00070 21509,
00071 21400,
00072 21291,
00073 21183,
00074 21077,
00075 20972,
00076 20867,
00077 20764,
00078 20662,
00079 20560,
00080 20460,
00081 20361,
00082 20262,
00083 20165,
00084 20068,
00085 19973,
00086 19878,
00087 19784,
00088 19692,
00089 19600,
00090 19508,
00091 19418,
00092 19329,
00093 19240,
00094 19152,
00095 19065,
00096 18979,
00097 18893,
00098 18809,
00099 18725,
00100 18641,
00101 18559,
00102 18477,
00103 18396,
00104 18316,
00105 18236,
00106 18157,
00107 18079,
00108 18001,
00109 17924,
00110 17848,
00111 17772,
00112 17697,
00113 17623,
00114 17549,
00115 17476,
00116 17404,
00117 17332,
00118 17261,
00119 17190,
00120 17120,
00121 17050,
00122 16981,
00123 16913,
00124 16845,
00125 16777,
00126 16710,
00127 16644,
00128 16578,
00129 16513,
00130 16448,
00131 16384
00132 };
00133
00134 static const uint16_t fixed_sqrt_table[193] =
00135 {
00136 32768,
00137 33023,
00138 33276,
00139 33527,
00140 33776,
00141 34024,
00142 34270,
00143 34514,
00144 34756,
00145 34996,
00146 35235,
00147 35472,
00148 35708,
00149 35942,
00150 36175,
00151 36406,
00152 36636,
00153 36864,
00154 37091,
00155 37316,
00156 37540,
00157 37763,
00158 37985,
00159 38205,
00160 38424,
00161 38642,
00162 38858,
00163 39073,
00164 39287,
00165 39500,
00166 39712,
00167 39923,
00168 40132,
00169 40341,
00170 40548,
00171 40755,
00172 40960,
00173 41164,
00174 41368,
00175 41570,
00176 41771,
00177 41972,
00178 42171,
00179 42369,
00180 42567,
00181 42763,
00182 42959,
00183 43154,
00184 43348,
00185 43541,
00186 43733,
00187 43925,
00188 44115,
00189 44305,
00190 44494,
00191 44682,
00192 44869,
00193 45056,
00194 45242,
00195 45427,
00196 45611,
00197 45795,
00198 45977,
00199 46160,
00200 46341,
00201 46522,
00202 46702,
00203 46881,
00204 47059,
00205 47237,
00206 47415,
00207 47591,
00208 47767,
00209 47942,
00210 48117,
00211 48291,
00212 48465,
00213 48637,
00214 48809,
00215 48981,
00216 49152,
00217 49322,
00218 49492,
00219 49661,
00220 49830,
00221 49998,
00222 50166,
00223 50332,
00224 50499,
00225 50665,
00226 50830,
00227 50995,
00228 51159,
00229 51323,
00230 51486,
00231 51649,
00232 51811,
00233 51972,
00234 52134,
00235 52294,
00236 52454,
00237 52614,
00238 52773,
00239 52932,
00240 53090,
00241 53248,
00242 53405,
00243 53562,
00244 53719,
00245 53874,
00246 54030,
00247 54185,
00248 54340,
00249 54494,
00250 54647,
00251 54801,
00252 54954,
00253 55106,
00254 55258,
00255 55410,
00256 55561,
00257 55712,
00258 55862,
00259 56012,
00260 56162,
00261 56311,
00262 56459,
00263 56608,
00264 56756,
00265 56903,
00266 57051,
00267 57198,
00268 57344,
00269 57490,
00270 57636,
00271 57781,
00272 57926,
00273 58071,
00274 58215,
00275 58359,
00276 58503,
00277 58646,
00278 58789,
00279 58931,
00280 59073,
00281 59215,
00282 59357,
00283 59498,
00284 59639,
00285 59779,
00286 59919,
00287 60059,
00288 60199,
00289 60338,
00290 60477,
00291 60615,
00292 60753,
00293 60891,
00294 61029,
00295 61166,
00296 61303,
00297 61440,
00298 61576,
00299 61712,
00300 61848,
00301 61984,
00302 62119,
00303 62254,
00304 62388,
00305 62523,
00306 62657,
00307 62790,
00308 62924,
00309 63057,
00310 63190,
00311 63323,
00312 63455,
00313 63587,
00314 63719,
00315 63850,
00316 63982,
00317 64113,
00318 64243,
00319 64374,
00320 64504,
00321 64634,
00322 64763,
00323 64893,
00324 65022,
00325 65151,
00326 65279,
00327 65408,
00328 65535
00329 };
00330
00331 static const int16_t fixed_log10_table[129] =
00332 {
00333 -9864,
00334 -9753,
00335 -9644,
00336 -9534,
00337 -9426,
00338 -9319,
00339 -9212,
00340 -9106,
00341 -9001,
00342 -8897,
00343 -8794,
00344 -8691,
00345 -8589,
00346 -8488,
00347 -8387,
00348 -8287,
00349 -8188,
00350 -8090,
00351 -7992,
00352 -7895,
00353 -7798,
00354 -7702,
00355 -7607,
00356 -7512,
00357 -7419,
00358 -7325,
00359 -7233,
00360 -7140,
00361 -7049,
00362 -6958,
00363 -6868,
00364 -6778,
00365 -6689,
00366 -6600,
00367 -6512,
00368 -6424,
00369 -6337,
00370 -6251,
00371 -6165,
00372 -6079,
00373 -5994,
00374 -5910,
00375 -5826,
00376 -5742,
00377 -5659,
00378 -5577,
00379 -5495,
00380 -5413,
00381 -5332,
00382 -5252,
00383 -5171,
00384 -5092,
00385 -5012,
00386 -4934,
00387 -4855,
00388 -4777,
00389 -4700,
00390 -4623,
00391 -4546,
00392 -4470,
00393 -4394,
00394 -4318,
00395 -4243,
00396 -4168,
00397 -4094,
00398 -4020,
00399 -3947,
00400 -3873,
00401 -3801,
00402 -3728,
00403 -3656,
00404 -3584,
00405 -3513,
00406 -3442,
00407 -3371,
00408 -3301,
00409 -3231,
00410 -3162,
00411 -3092,
00412 -3023,
00413 -2955,
00414 -2887,
00415 -2819,
00416 -2751,
00417 -2684,
00418 -2617,
00419 -2550,
00420 -2484,
00421 -2418,
00422 -2352,
00423 -2287,
00424 -2222,
00425 -2157,
00426 -2092,
00427 -2028,
00428 -1964,
00429 -1900,
00430 -1837,
00431 -1774,
00432 -1711,
00433 -1648,
00434 -1586,
00435 -1524,
00436 -1462,
00437 -1401,
00438 -1340,
00439 -1279,
00440 -1218,
00441 -1158,
00442 -1097,
00443 -1038,
00444 -978,
00445 -918,
00446 -859,
00447 -800,
00448 -742,
00449 -683,
00450 -625,
00451 -567,
00452 -509,
00453 -452,
00454 -395,
00455 -338,
00456 -281,
00457 -224,
00458 -168,
00459 -112,
00460 -56,
00461 0
00462 };
00463
00464 static const int16_t fixed_sine_table[257] =
00465 {
00466 0,
00467 201,
00468 402,
00469 603,
00470 804,
00471 1005,
00472 1206,
00473 1407,
00474 1608,
00475 1809,
00476 2009,
00477 2210,
00478 2411,
00479 2611,
00480 2811,
00481 3012,
00482 3212,
00483 3412,
00484 3612,
00485 3812,
00486 4011,
00487 4211,
00488 4410,
00489 4609,
00490 4808,
00491 5007,
00492 5205,
00493 5404,
00494 5602,
00495 5800,
00496 5998,
00497 6195,
00498 6393,
00499 6590,
00500 6787,
00501 6983,
00502 7180,
00503 7376,
00504 7571,
00505 7767,
00506 7962,
00507 8157,
00508 8351,
00509 8546,
00510 8740,
00511 8933,
00512 9127,
00513 9319,
00514 9512,
00515 9704,
00516 9896,
00517 10088,
00518 10279,
00519 10469,
00520 10660,
00521 10850,
00522 11039,
00523 11228,
00524 11417,
00525 11605,
00526 11793,
00527 11980,
00528 12167,
00529 12354,
00530 12540,
00531 12725,
00532 12910,
00533 13095,
00534 13279,
00535 13463,
00536 13646,
00537 13828,
00538 14010,
00539 14192,
00540 14373,
00541 14553,
00542 14733,
00543 14912,
00544 15091,
00545 15269,
00546 15447,
00547 15624,
00548 15800,
00549 15976,
00550 16151,
00551 16326,
00552 16500,
00553 16673,
00554 16846,
00555 17018,
00556 17190,
00557 17361,
00558 17531,
00559 17700,
00560 17869,
00561 18037,
00562 18205,
00563 18372,
00564 18538,
00565 18703,
00566 18868,
00567 19032,
00568 19195,
00569 19358,
00570 19520,
00571 19681,
00572 19841,
00573 20001,
00574 20160,
00575 20318,
00576 20475,
00577 20632,
00578 20788,
00579 20943,
00580 21097,
00581 21251,
00582 21403,
00583 21555,
00584 21706,
00585 21856,
00586 22006,
00587 22154,
00588 22302,
00589 22449,
00590 22595,
00591 22740,
00592 22884,
00593 23028,
00594 23170,
00595 23312,
00596 23453,
00597 23593,
00598 23732,
00599 23870,
00600 24008,
00601 24144,
00602 24279,
00603 24414,
00604 24548,
00605 24680,
00606 24812,
00607 24943,
00608 25073,
00609 25202,
00610 25330,
00611 25457,
00612 25583,
00613 25708,
00614 25833,
00615 25956,
00616 26078,
00617 26199,
00618 26320,
00619 26439,
00620 26557,
00621 26674,
00622 26791,
00623 26906,
00624 27020,
00625 27133,
00626 27246,
00627 27357,
00628 27467,
00629 27576,
00630 27684,
00631 27791,
00632 27897,
00633 28002,
00634 28106,
00635 28209,
00636 28311,
00637 28411,
00638 28511,
00639 28610,
00640 28707,
00641 28803,
00642 28899,
00643 28993,
00644 29086,
00645 29178,
00646 29269,
00647 29359,
00648 29448,
00649 29535,
00650 29622,
00651 29707,
00652 29792,
00653 29875,
00654 29957,
00655 30038,
00656 30118,
00657 30196,
00658 30274,
00659 30350,
00660 30425,
00661 30499,
00662 30572,
00663 30644,
00664 30715,
00665 30784,
00666 30853,
00667 30920,
00668 30986,
00669 31050,
00670 31114,
00671 31177,
00672 31238,
00673 31298,
00674 31357,
00675 31415,
00676 31471,
00677 31527,
00678 31581,
00679 31634,
00680 31686,
00681 31737,
00682 31786,
00683 31834,
00684 31881,
00685 31927,
00686 31972,
00687 32015,
00688 32058,
00689 32099,
00690 32138,
00691 32177,
00692 32214,
00693 32251,
00694 32286,
00695 32319,
00696 32352,
00697 32383,
00698 32413,
00699 32442,
00700 32470,
00701 32496,
00702 32522,
00703 32546,
00704 32568,
00705 32590,
00706 32610,
00707 32629,
00708 32647,
00709 32664,
00710 32679,
00711 32693,
00712 32706,
00713 32718,
00714 32729,
00715 32738,
00716 32746,
00717 32753,
00718 32758,
00719 32762,
00720 32766,
00721 32767,
00722 32767
00723 };
00724
00725 static const uint16_t fixed_arctan_table[257] =
00726 {
00727 1,
00728 41,
00729 81,
00730 122,
00731 163,
00732 204,
00733 244,
00734 285,
00735 326,
00736 367,
00737 407,
00738 448,
00739 489,
00740 529,
00741 570,
00742 610,
00743 651,
00744 692,
00745 732,
00746 773,
00747 813,
00748 854,
00749 894,
00750 935,
00751 975,
00752 1015,
00753 1056,
00754 1096,
00755 1136,
00756 1177,
00757 1217,
00758 1257,
00759 1297,
00760 1337,
00761 1377,
00762 1417,
00763 1457,
00764 1497,
00765 1537,
00766 1577,
00767 1617,
00768 1656,
00769 1696,
00770 1736,
00771 1775,
00772 1815,
00773 1854,
00774 1894,
00775 1933,
00776 1973,
00777 2012,
00778 2051,
00779 2090,
00780 2129,
00781 2168,
00782 2207,
00783 2246,
00784 2285,
00785 2324,
00786 2363,
00787 2401,
00788 2440,
00789 2478,
00790 2517,
00791 2555,
00792 2594,
00793 2632,
00794 2670,
00795 2708,
00796 2746,
00797 2784,
00798 2822,
00799 2860,
00800 2897,
00801 2935,
00802 2973,
00803 3010,
00804 3047,
00805 3085,
00806 3122,
00807 3159,
00808 3196,
00809 3233,
00810 3270,
00811 3307,
00812 3344,
00813 3380,
00814 3417,
00815 3453,
00816 3490,
00817 3526,
00818 3562,
00819 3599,
00820 3635,
00821 3670,
00822 3706,
00823 3742,
00824 3778,
00825 3813,
00826 3849,
00827 3884,
00828 3920,
00829 3955,
00830 3990,
00831 4025,
00832 4060,
00833 4095,
00834 4129,
00835 4164,
00836 4199,
00837 4233,
00838 4267,
00839 4302,
00840 4336,
00841 4370,
00842 4404,
00843 4438,
00844 4471,
00845 4505,
00846 4539,
00847 4572,
00848 4605,
00849 4639,
00850 4672,
00851 4705,
00852 4738,
00853 4771,
00854 4803,
00855 4836,
00856 4869,
00857 4901,
00858 4933,
00859 4966,
00860 4998,
00861 5030,
00862 5062,
00863 5094,
00864 5125,
00865 5157,
00866 5188,
00867 5220,
00868 5251,
00869 5282,
00870 5313,
00871 5344,
00872 5375,
00873 5406,
00874 5437,
00875 5467,
00876 5498,
00877 5528,
00878 5559,
00879 5589,
00880 5619,
00881 5649,
00882 5679,
00883 5708,
00884 5738,
00885 5768,
00886 5797,
00887 5826,
00888 5856,
00889 5885,
00890 5914,
00891 5943,
00892 5972,
00893 6000,
00894 6029,
00895 6058,
00896 6086,
00897 6114,
00898 6142,
00899 6171,
00900 6199,
00901 6227,
00902 6254,
00903 6282,
00904 6310,
00905 6337,
00906 6365,
00907 6392,
00908 6419,
00909 6446,
00910 6473,
00911 6500,
00912 6527,
00913 6554,
00914 6580,
00915 6607,
00916 6633,
00917 6660,
00918 6686,
00919 6712,
00920 6738,
00921 6764,
00922 6790,
00923 6815,
00924 6841,
00925 6867,
00926 6892,
00927 6917,
00928 6943,
00929 6968,
00930 6993,
00931 7018,
00932 7043,
00933 7068,
00934 7092,
00935 7117,
00936 7141,
00937 7166,
00938 7190,
00939 7214,
00940 7238,
00941 7262,
00942 7286,
00943 7310,
00944 7334,
00945 7358,
00946 7381,
00947 7405,
00948 7428,
00949 7451,
00950 7475,
00951 7498,
00952 7521,
00953 7544,
00954 7566,
00955 7589,
00956 7612,
00957 7635,
00958 7657,
00959 7679,
00960 7702,
00961 7724,
00962 7746,
00963 7768,
00964 7790,
00965 7812,
00966 7834,
00967 7856,
00968 7877,
00969 7899,
00970 7920,
00971 7942,
00972 7963,
00973 7984,
00974 8005,
00975 8026,
00976 8047,
00977 8068,
00978 8089,
00979 8110,
00980 8131,
00981 8151,
00982 8172,
00983 8192
00984 };
00985