#include "config.h" #include "sintable.h" // ÕýÏÒ±í¸ñ // sin_x[i] = sin(x/SIN_TAB_SIZE) * SIN_ITEM_MUTI x = [0--2PI) #if (USE_1DIV4_TAB == 1) #define ACT_TAB_SIZE (SIN_TAB_SIZE/4) #else #define ACT_TAB_SIZE (SIN_TAB_SIZE) #endif const static s16 sin_x[ACT_TAB_SIZE + 1] = { #if (SIN_TAB_SIZE == TAB_SIZE1K) 0, 103, 206, 309, 412, 515, 618, 720, 823, 926, 1029, 1131, 1234, 1337, 1439, 1542, 1644, 1747, 1849, 1951, 2053, 2156, 2258, 2359, 2461, 2563, 2665, 2766, 2868, 2969, 3070, 3171, 3272, 3373, 3474, 3574, 3674, 3775, 3875, 3975, 4075, 4174, 4274, 4373, 4472, 4571, 4670, 4768, 4867, 4965, 5063, 5161, 5258, 5356, 5453, 5550, 5647, 5743, 5839, 5936, 6031, 6127, 6222, 6317, 6412, 6507, 6601, 6695, 6789, 6883, 6976, 7069, 7162, 7254, 7346, 7438, 7530, 7621, 7712, 7803, 7893, 7983, 8073, 8162, 8251, 8340, 8429, 8517, 8604, 8692, 8779, 8866, 8952, 9038, 9124, 9209, 9294, 9379, 9463, 9547, 9630, 9713, 9796, 9878, 9960, 10042, 10123, 10204, 10284, 10364, 10444, 10523, 10601, 10680, 10758, 10835, 10912, 10989, 11065, 11140, 11216, 11290, 11365, 11439, 11512, 11585, 11658, 11730, 11802, 11873, 11943, 12014, 12083, 12153, 12221, 12290, 12358, 12425, 12492, 12558, 12624, 12689, 12754, 12819, 12883, 12946, 13009, 13071, 13133, 13194, 13255, 13315, 13375, 13434, 13493, 13551, 13608, 13666, 13722, 13778, 13833, 13888, 13943, 13996, 14050, 14102, 14155, 14206, 14257, 14308, 14357, 14407, 14455, 14504, 14551, 14598, 14645, 14691, 14736, 14781, 14825, 14868, 14911, 14954, 14995, 15036, 15077, 15117, 15156, 15195, 15233, 15271, 15308, 15344, 15380, 15415, 15450, 15484, 15517, 15550, 15582, 15614, 15645, 15675, 15704, 15733, 15762, 15790, 15817, 15843, 15869, 15895, 15919, 15943, 15967, 15989, 16012, 16033, 16054, 16074, 16094, 16113, 16131, 16149, 16166, 16182, 16198, 16213, 16228, 16242, 16255, 16267, 16279, 16291, 16301, 16311, 16321, 16329, 16337, 16345, 16352, 16358, 16363, 16368, 16372, 16376, 16379, 16381, 16383, 16384, #elif (SIN_TAB_SIZE == TAB_SIZE2K) 0 , 51 , 103 , 154 , 206 , 257 , 309 , 360 , 412 , 463 , 515 , 566 , 618 , 669 , 720 , 772 , 823 , 875 , 926 , 977 , 1029 , 1080 , 1131 , 1183 , 1234 , 1285 , 1337 , 1388 , 1439 , 1491 , 1542 , 1593 , 1644 , 1696 , 1747 , 1798 , 1849 , 1900 , 1951 , 2002 , 2053 , 2105 , 2156 , 2207 , 2258 , 2309 , 2359 , 2410 , 2461 , 2512 , 2563 , 2614 , 2665 , 2715 , 2766 , 2817 , 2868 , 2918 , 2969 , 3019 , 3070 , 3121 , 3171 , 3222 , 3272 , 3322 , 3373 , 3423 , 3474 , 3524 , 3574 , 3624 , 3674 , 3725 , 3775 , 3825 , 3875 , 3925 , 3975 , 4025 , 4075 , 4124 , 4174 , 4224 , 4274 , 4323 , 4373 , 4423 , 4472 , 4522 , 4571 , 4620 , 4670 , 4719 , 4768 , 4818 , 4867 , 4916 , 4965 , 5014 , 5063 , 5112 , 5161 , 5210 , 5258 , 5307 , 5356 , 5404 , 5453 , 5501 , 5550 , 5598 , 5647 , 5695 , 5743 , 5791 , 5839 , 5888 , 5936 , 5983 , 6031 , 6079 , 6127 , 6175 , 6222 , 6270 , 6317 , 6365 , 6412 , 6460 , 6507 , 6554 , 6601 , 6648 , 6695 , 6742 , 6789 , 6836 , 6883 , 6929 , 6976 , 7023 , 7069 , 7115 , 7162 , 7208 , 7254 , 7300 , 7346 , 7392 , 7438 , 7484 , 7530 , 7575 , 7621 , 7667 , 7712 , 7757 , 7803 , 7848 , 7893 , 7938 , 7983 , 8028 , 8073 , 8118 , 8162 , 8207 , 8251 , 8296 , 8340 , 8384 , 8429 , 8473 , 8517 , 8561 , 8604 , 8648 , 8692 , 8735 , 8779 , 8822 , 8866 , 8909 , 8952 , 8995 , 9038 , 9081 , 9124 , 9167 , 9209 , 9252 , 9294 , 9336 , 9379 , 9421 , 9463 , 9505 , 9547 , 9589 , 9630 , 9672 , 9713 , 9755 , 9796 , 9837 , 9878 , 9919 , 9960 , 10001, 10042, 10082, 10123, 10163, 10204, 10244, 10284, 10324, 10364, 10404, 10444, 10483, 10523, 10562, 10601, 10641, 10680, 10719, 10758, 10796, 10835, 10873, 10912, 10950, 10989, 11027, 11065, 11103, 11140, 11178, 11216, 11253, 11290, 11328, 11365, 11402, 11439, 11476, 11512, 11549, 11585, 11622, 11658, 11694, 11730, 11766, 11802, 11837, 11873, 11908, 11943, 11979, 12014, 12049, 12083, 12118, 12153, 12187, 12221, 12256, 12290, 12324, 12358, 12391, 12425, 12458, 12492, 12525, 12558, 12591, 12624, 12657, 12689, 12722, 12754, 12787, 12819, 12851, 12883, 12914, 12946, 12977, 13009, 13040, 13071, 13102, 13133, 13164, 13194, 13225, 13255, 13285, 13315, 13345, 13375, 13405, 13434, 13463, 13493, 13522, 13551, 13580, 13608, 13637, 13666, 13694, 13722, 13750, 13778, 13806, 13833, 13861, 13888, 13916, 13943, 13970, 13996, 14023, 14050, 14076, 14102, 14129, 14155, 14180, 14206, 14232, 14257, 14282, 14308, 14333, 14357, 14382, 14407, 14431, 14455, 14480, 14504, 14528, 14551, 14575, 14598, 14622, 14645, 14668, 14691, 14713, 14736, 14758, 14781, 14803, 14825, 14847, 14868, 14890, 14911, 14932, 14954, 14974, 14995, 15016, 15036, 15057, 15077, 15097, 15117, 15137, 15156, 15176, 15195, 15214, 15233, 15252, 15271, 15290, 15308, 15326, 15344, 15362, 15380, 15398, 15415, 15433, 15450, 15467, 15484, 15501, 15517, 15534, 15550, 15566, 15582, 15598, 15614, 15629, 15645, 15660, 15675, 15690, 15704, 15719, 15733, 15748, 15762, 15776, 15790, 15803, 15817, 15830, 15843, 15856, 15869, 15882, 15895, 15907, 15919, 15931, 15943, 15955, 15967, 15978, 15989, 16001, 16012, 16022, 16033, 16044, 16054, 16064, 16074, 16084, 16094, 16103, 16113, 16122, 16131, 16140, 16149, 16157, 16166, 16174, 16182, 16190, 16198, 16206, 16213, 16221, 16228, 16235, 16242, 16248, 16255, 16261, 16267, 16273, 16279, 16285, 16291, 16296, 16301, 16306, 16311, 16316, 16321, 16325, 16329, 16333, 16337, 16341, 16345, 16348, 16352, 16355, 16358, 16361, 16363, 16366, 16368, 16370, 16372, 16374, 16376, 16377, 16379, 16380, 16381, 16382, 16383, 16383, 16384, 16384, #elif (SIN_TAB_SIZE == TAB_SIZE4K) 0 , 26 , 51 , 77 , 103 , 129 , 154 , 180 , 206 , 232 , 257 , 283 , 309 , 335 , 360 , 386 , 412 , 437 , 463 , 489 , 515 , 540 , 566 , 592 , 618 , 643 , 669 , 695 , 720 , 746 , 772 , 797 , 823 , 849 , 875 , 900 , 926 , 952 , 977 , 1003 , 1029 , 1054 , 1080 , 1106 , 1131 , 1157 , 1183 , 1208 , 1234 , 1260 , 1285 , 1311 , 1337 , 1362 , 1388 , 1414 , 1439 , 1465 , 1491 , 1516 , 1542 , 1567 , 1593 , 1619 , 1644 , 1670 , 1696 , 1721 , 1747 , 1772 , 1798 , 1823 , 1849 , 1875 , 1900 , 1926 , 1951 , 1977 , 2002 , 2028 , 2053 , 2079 , 2105 , 2130 , 2156 , 2181 , 2207 , 2232 , 2258 , 2283 , 2309 , 2334 , 2359 , 2385 , 2410 , 2436 , 2461 , 2487 , 2512 , 2538 , 2563 , 2588 , 2614 , 2639 , 2665 , 2690 , 2715 , 2741 , 2766 , 2792 , 2817 , 2842 , 2868 , 2893 , 2918 , 2944 , 2969 , 2994 , 3019 , 3045 , 3070 , 3095 , 3121 , 3146 , 3171 , 3196 , 3222 , 3247 , 3272 , 3297 , 3322 , 3348 , 3373 , 3398 , 3423 , 3448 , 3474 , 3499 , 3524 , 3549 , 3574 , 3599 , 3624 , 3649 , 3674 , 3700 , 3725 , 3750 , 3775 , 3800 , 3825 , 3850 , 3875 , 3900 , 3925 , 3950 , 3975 , 4000 , 4025 , 4050 , 4075 , 4099 , 4124 , 4149 , 4174 , 4199 , 4224 , 4249 , 4274 , 4298 , 4323 , 4348 , 4373 , 4398 , 4423 , 4447 , 4472 , 4497 , 4522 , 4546 , 4571 , 4596 , 4620 , 4645 , 4670 , 4694 , 4719 , 4744 , 4768 , 4793 , 4818 , 4842 , 4867 , 4891 , 4916 , 4940 , 4965 , 4989 , 5014 , 5038 , 5063 , 5087 , 5112 , 5136 , 5161 , 5185 , 5210 , 5234 , 5258 , 5283 , 5307 , 5331 , 5356 , 5380 , 5404 , 5429 , 5453 , 5477 , 5501 , 5526 , 5550 , 5574 , 5598 , 5622 , 5647 , 5671 , 5695 , 5719 , 5743 , 5767 , 5791 , 5815 , 5839 , 5863 , 5888 , 5912 , 5936 , 5959 , 5983 , 6007 , 6031 , 6055 , 6079 , 6103 , 6127 , 6151 , 6175 , 6198 , 6222 , 6246 , 6270 , 6294 , 6317 , 6341 , 6365 , 6389 , 6412 , 6436 , 6460 , 6483 , 6507 , 6530 , 6554 , 6578 , 6601 , 6625 , 6648 , 6672 , 6695 , 6719 , 6742 , 6766 , 6789 , 6813 , 6836 , 6859 , 6883 , 6906 , 6929 , 6953 , 6976 , 6999 , 7023 , 7046 , 7069 , 7092 , 7115 , 7139 , 7162 , 7185 , 7208 , 7231 , 7254 , 7277 , 7300 , 7323 , 7346 , 7369 , 7392 , 7415 , 7438 , 7461 , 7484 , 7507 , 7530 , 7553 , 7575 , 7598 , 7621 , 7644 , 7667 , 7689 , 7712 , 7735 , 7757 , 7780 , 7803 , 7825 , 7848 , 7870 , 7893 , 7916 , 7938 , 7961 , 7983 , 8006 , 8028 , 8050 , 8073 , 8095 , 8118 , 8140 , 8162 , 8185 , 8207 , 8229 , 8251 , 8274 , 8296 , 8318 , 8340 , 8362 , 8384 , 8406 , 8429 , 8451 , 8473 , 8495 , 8517 , 8539 , 8561 , 8583 , 8604 , 8626 , 8648 , 8670 , 8692 , 8714 , 8735 , 8757 , 8779 , 8801 , 8822 , 8844 , 8866 , 8887 , 8909 , 8931 , 8952 , 8974 , 8995 , 9017 , 9038 , 9060 , 9081 , 9102 , 9124 , 9145 , 9167 , 9188 , 9209 , 9230 , 9252 , 9273 , 9294 , 9315 , 9336 , 9358 , 9379 , 9400 , 9421 , 9442 , 9463 , 9484 , 9505 , 9526 , 9547 , 9568 , 9589 , 9609 , 9630 , 9651 , 9672 , 9693 , 9713 , 9734 , 9755 , 9775 , 9796 , 9817 , 9837 , 9858 , 9878 , 9899 , 9919 , 9940 , 9960 , 9981 , 10001, 10022, 10042, 10062, 10082, 10103, 10123, 10143, 10163, 10184, 10204, 10224, 10244, 10264, 10284, 10304, 10324, 10344, 10364, 10384, 10404, 10424, 10444, 10463, 10483, 10503, 10523, 10542, 10562, 10582, 10601, 10621, 10641, 10660, 10680, 10699, 10719, 10738, 10758, 10777, 10796, 10816, 10835, 10854, 10873, 10893, 10912, 10931, 10950, 10969, 10989, 11008, 11027, 11046, 11065, 11084, 11103, 11121, 11140, 11159, 11178, 11197, 11216, 11234, 11253, 11272, 11290, 11309, 11328, 11346, 11365, 11383, 11402, 11420, 11439, 11457, 11476, 11494, 11512, 11531, 11549, 11567, 11585, 11603, 11622, 11640, 11658, 11676, 11694, 11712, 11730, 11748, 11766, 11784, 11802, 11819, 11837, 11855, 11873, 11890, 11908, 11926, 11943, 11961, 11979, 11996, 12014, 12031, 12049, 12066, 12083, 12101, 12118, 12135, 12153, 12170, 12187, 12204, 12221, 12239, 12256, 12273, 12290, 12307, 12324, 12341, 12358, 12375, 12391, 12408, 12425, 12442, 12458, 12475, 12492, 12508, 12525, 12542, 12558, 12575, 12591, 12608, 12624, 12640, 12657, 12673, 12689, 12706, 12722, 12738, 12754, 12770, 12787, 12803, 12819, 12835, 12851, 12867, 12883, 12898, 12914, 12930, 12946, 12962, 12977, 12993, 13009, 13024, 13040, 13056, 13071, 13087, 13102, 13117, 13133, 13148, 13164, 13179, 13194, 13209, 13225, 13240, 13255, 13270, 13285, 13300, 13315, 13330, 13345, 13360, 13375, 13390, 13405, 13419, 13434, 13449, 13463, 13478, 13493, 13507, 13522, 13536, 13551, 13565, 13580, 13594, 13608, 13623, 13637, 13651, 13666, 13680, 13694, 13708, 13722, 13736, 13750, 13764, 13778, 13792, 13806, 13820, 13833, 13847, 13861, 13875, 13888, 13902, 13916, 13929, 13943, 13956, 13970, 13983, 13996, 14010, 14023, 14036, 14050, 14063, 14076, 14089, 14102, 14115, 14129, 14142, 14155, 14167, 14180, 14193, 14206, 14219, 14232, 14244, 14257, 14270, 14282, 14295, 14308, 14320, 14333, 14345, 14357, 14370, 14382, 14394, 14407, 14419, 14431, 14443, 14455, 14468, 14480, 14492, 14504, 14516, 14528, 14539, 14551, 14563, 14575, 14587, 14598, 14610, 14622, 14633, 14645, 14656, 14668, 14679, 14691, 14702, 14713, 14725, 14736, 14747, 14758, 14769, 14781, 14792, 14803, 14814, 14825, 14836, 14847, 14857, 14868, 14879, 14890, 14900, 14911, 14922, 14932, 14943, 14954, 14964, 14974, 14985, 14995, 15006, 15016, 15026, 15036, 15047, 15057, 15067, 15077, 15087, 15097, 15107, 15117, 15127, 15137, 15147, 15156, 15166, 15176, 15186, 15195, 15205, 15214, 15224, 15233, 15243, 15252, 15262, 15271, 15280, 15290, 15299, 15308, 15317, 15326, 15335, 15344, 15353, 15362, 15371, 15380, 15389, 15398, 15407, 15415, 15424, 15433, 15441, 15450, 15459, 15467, 15475, 15484, 15492, 15501, 15509, 15517, 15525, 15534, 15542, 15550, 15558, 15566, 15574, 15582, 15590, 15598, 15606, 15614, 15621, 15629, 15637, 15645, 15652, 15660, 15667, 15675, 15682, 15690, 15697, 15704, 15712, 15719, 15726, 15733, 15741, 15748, 15755, 15762, 15769, 15776, 15783, 15790, 15796, 15803, 15810, 15817, 15824, 15830, 15837, 15843, 15850, 15856, 15863, 15869, 15876, 15882, 15888, 15895, 15901, 15907, 15913, 15919, 15925, 15931, 15937, 15943, 15949, 15955, 15961, 15967, 15972, 15978, 15984, 15989, 15995, 16001, 16006, 16012, 16017, 16022, 16028, 16033, 16038, 16044, 16049, 16054, 16059, 16064, 16069, 16074, 16079, 16084, 16089, 16094, 16099, 16103, 16108, 16113, 16117, 16122, 16127, 16131, 16136, 16140, 16144, 16149, 16153, 16157, 16162, 16166, 16170, 16174, 16178, 16182, 16186, 16190, 16194, 16198, 16202, 16206, 16209, 16213, 16217, 16221, 16224, 16228, 16231, 16235, 16238, 16242, 16245, 16248, 16252, 16255, 16258, 16261, 16264, 16267, 16270, 16273, 16276, 16279, 16282, 16285, 16288, 16291, 16293, 16296, 16299, 16301, 16304, 16306, 16309, 16311, 16314, 16316, 16318, 16321, 16323, 16325, 16327, 16329, 16331, 16333, 16335, 16337, 16339, 16341, 16343, 16345, 16347, 16348, 16350, 16352, 16353, 16355, 16356, 16358, 16359, 16361, 16362, 16363, 16365, 16366, 16367, 16368, 16369, 16370, 16371, 16372, 16373, 16374, 16375, 16376, 16377, 16377, 16378, 16379, 16379, 16380, 16381, 16381, 16382, 16382, 16382, 16383, 16383, 16383, 16383, 16384, 16384, 16384, 16384, #elif (SIN_TAB_SIZE == TAB_SIZE256) 0, 402, 804, 1205, 1606, 2006, 2404, 2801, 3196, 3590, 3981, 4370, 4756, 5139, 5520, 5897, 6270, 6639, 7005, 7366, 7723, 8076, 8423, 8765, 9102, 9434, 9760, 10080, 10394, 10702, 11003, 11297, 11585, 11866, 12140, 12406, 12665, 12916, 13160, 13395, 13623, 13842, 14053, 14256, 14449, 14635, 14811, 14978, 15137, 15286, 15426, 15557, 15679, 15791, 15893, 15986, 16069, 16143, 16207, 16261, 16305, 16340, 16364, 16379, #elif (SIN_TAB_SIZE == TAB_SIZE1024) 0, 101, 201, 302, 402, 503, 603, 704, 804, 904, 1005, 1105, 1205, 1306, 1406, 1506, 1606, 1706, 1806, 1906, 2006, 2105, 2205, 2305, 2404, 2503, 2603, 2702, 2801, 2900, 2999, 3098, 3196, 3295, 3393, 3492, 3590, 3688, 3786, 3883, 3981, 4078, 4176, 4273, 4370, 4467, 4563, 4660, 4756, 4852, 4948, 5044, 5139, 5235, 5330, 5425, 5520, 5614, 5708, 5803, 5897, 5990, 6084, 6177, 6270, 6363, 6455, 6547, 6639, 6731, 6823, 6914, 7005, 7096, 7186, 7276, 7366, 7456, 7545, 7635, 7723, 7812, 7900, 7988, 8076, 8163, 8250, 8337, 8423, 8509, 8595, 8680, 8765, 8850, 8935, 9019, 9102, 9186, 9269, 9352, 9434, 9516, 9598, 9679, 9760, 9841, 9921, 10001, 10080, 10159, 10238, 10316, 10394, 10471, 10549, 10625, 10702, 10778, 10853, 10928, 11003, 11077, 11151, 11224, 11297, 11370, 11442, 11514, 11585, 11656, 11727, 11797, 11866, 11935, 12004, 12072, 12140, 12207, 12274, 12340, 12406, 12472, 12537, 12601, 12665, 12729, 12792, 12854, 12916, 12978, 13039, 13100, 13160, 13219, 13279, 13337, 13395, 13453, 13510, 13567, 13623, 13678, 13733, 13788, 13842, 13896, 13949, 14001, 14053, 14104, 14155, 14206, 14256, 14305, 14354, 14402, 14449, 14497, 14543, 14589, 14635, 14680, 14724, 14768, 14811, 14854, 14896, 14937, 14978, 15019, 15059, 15098, 15137, 15175, 15213, 15250, 15286, 15322, 15357, 15392, 15426, 15460, 15493, 15525, 15557, 15588, 15619, 15649, 15679, 15707, 15736, 15763, 15791, 15817, 15843, 15868, 15893, 15917, 15941, 15964, 15986, 16008, 16029, 16049, 16069, 16088, 16107, 16125, 16143, 16160, 16176, 16192, 16207, 16221, 16235, 16248, 16261, 16273, 16284, 16295, 16305, 16315, 16324, 16332, 16340, 16347, 16353, 16359, 16364, 16369, 16373, 16376, 16379, 16381, 16383, 16384, #elif (SIN_TAB_SIZE == TAB_SIZE4096) 0, 25, 50, 75, 101, 126, 151, 176, 201, 226, 251, 276, 302, 327, 352, 377, 402, 427, 452, 477, 503, 528, 553, 578, 603, 628, 653, 678, 704, 729, 754, 779, 804, 829, 854, 879, 904, 929, 955, 980, 1005, 1030, 1055, 1080, 1105, 1130, 1155, 1180, 1205, 1230, 1255, 1280, 1306, 1331, 1356, 1381, 1406, 1431, 1456, 1481, 1506, 1531, 1556, 1581, 1606, 1631, 1656, 1681, 1706, 1731, 1756, 1781, 1806, 1831, 1856, 1881, 1906, 1931, 1956, 1981, 2006, 2031, 2055, 2080, 2105, 2130, 2155, 2180, 2205, 2230, 2255, 2280, 2305, 2329, 2354, 2379, 2404, 2429, 2454, 2479, 2503, 2528, 2553, 2578, 2603, 2628, 2652, 2677, 2702, 2727, 2752, 2776, 2801, 2826, 2851, 2875, 2900, 2925, 2949, 2974, 2999, 3024, 3048, 3073, 3098, 3122, 3147, 3172, 3196, 3221, 3246, 3270, 3295, 3320, 3344, 3369, 3393, 3418, 3442, 3467, 3492, 3516, 3541, 3565, 3590, 3614, 3639, 3663, 3688, 3712, 3737, 3761, 3786, 3810, 3835, 3859, 3883, 3908, 3932, 3957, 3981, 4005, 4030, 4054, 4078, 4103, 4127, 4151, 4176, 4200, 4224, 4249, 4273, 4297, 4321, 4346, 4370, 4394, 4418, 4442, 4467, 4491, 4515, 4539, 4563, 4587, 4612, 4636, 4660, 4684, 4708, 4732, 4756, 4780, 4804, 4828, 4852, 4876, 4900, 4924, 4948, 4972, 4996, 5020, 5044, 5068, 5092, 5115, 5139, 5163, 5187, 5211, 5235, 5259, 5282, 5306, 5330, 5354, 5377, 5401, 5425, 5449, 5472, 5496, 5520, 5543, 5567, 5591, 5614, 5638, 5661, 5685, 5708, 5732, 5756, 5779, 5803, 5826, 5850, 5873, 5897, 5920, 5943, 5967, 5990, 6014, 6037, 6060, 6084, 6107, 6130, 6154, 6177, 6200, 6223, 6247, 6270, 6293, 6316, 6339, 6363, 6386, 6409, 6432, 6455, 6478, 6501, 6524, 6547, 6570, 6593, 6616, 6639, 6662, 6685, 6708, 6731, 6754, 6777, 6800, 6823, 6846, 6868, 6891, 6914, 6937, 6960, 6982, 7005, 7028, 7050, 7073, 7096, 7118, 7141, 7164, 7186, 7209, 7231, 7254, 7276, 7299, 7321, 7344, 7366, 7389, 7411, 7434, 7456, 7478, 7501, 7523, 7545, 7568, 7590, 7612, 7635, 7657, 7679, 7701, 7723, 7746, 7768, 7790, 7812, 7834, 7856, 7878, 7900, 7922, 7944, 7966, 7988, 8010, 8032, 8054, 8076, 8098, 8119, 8141, 8163, 8185, 8207, 8228, 8250, 8272, 8293, 8315, 8337, 8358, 8380, 8401, 8423, 8445, 8466, 8488, 8509, 8531, 8552, 8573, 8595, 8616, 8638, 8659, 8680, 8702, 8723, 8744, 8765, 8787, 8808, 8829, 8850, 8871, 8892, 8914, 8935, 8956, 8977, 8998, 9019, 9040, 9061, 9082, 9102, 9123, 9144, 9165, 9186, 9207, 9227, 9248, 9269, 9290, 9310, 9331, 9352, 9372, 9393, 9413, 9434, 9455, 9475, 9496, 9516, 9537, 9557, 9577, 9598, 9618, 9638, 9659, 9679, 9699, 9720, 9740, 9760, 9780, 9800, 9820, 9841, 9861, 9881, 9901, 9921, 9941, 9961, 9981, 10001, 10020, 10040, 10060, 10080, 10100, 10120, 10139, 10159, 10179, 10198, 10218, 10238, 10257, 10277, 10296, 10316, 10336, 10355, 10374, 10394, 10413, 10433, 10452, 10471, 10491, 10510, 10529, 10549, 10568, 10587, 10606, 10625, 10644, 10663, 10683, 10702, 10721, 10740, 10759, 10778, 10796, 10815, 10834, 10853, 10872, 10891, 10909, 10928, 10947, 10966, 10984, 11003, 11021, 11040, 11059, 11077, 11096, 11114, 11133, 11151, 11169, 11188, 11206, 11224, 11243, 11261, 11279, 11297, 11316, 11334, 11352, 11370, 11388, 11406, 11424, 11442, 11460, 11478, 11496, 11514, 11532, 11550, 11567, 11585, 11603, 11621, 11638, 11656, 11674, 11691, 11709, 11727, 11744, 11762, 11779, 11797, 11814, 11831, 11849, 11866, 11883, 11901, 11918, 11935, 11952, 11970, 11987, 12004, 12021, 12038, 12055, 12072, 12089, 12106, 12123, 12140, 12157, 12173, 12190, 12207, 12224, 12240, 12257, 12274, 12290, 12307, 12324, 12340, 12357, 12373, 12390, 12406, 12423, 12439, 12455, 12472, 12488, 12504, 12520, 12537, 12553, 12569, 12585, 12601, 12617, 12633, 12649, 12665, 12681, 12697, 12713, 12729, 12744, 12760, 12776, 12792, 12807, 12823, 12839, 12854, 12870, 12885, 12901, 12916, 12932, 12947, 12963, 12978, 12993, 13008, 13024, 13039, 13054, 13069, 13085, 13100, 13115, 13130, 13145, 13160, 13175, 13190, 13205, 13219, 13234, 13249, 13264, 13279, 13293, 13308, 13323, 13337, 13352, 13366, 13381, 13395, 13410, 13424, 13439, 13453, 13467, 13482, 13496, 13510, 13524, 13538, 13553, 13567, 13581, 13595, 13609, 13623, 13637, 13651, 13665, 13678, 13692, 13706, 13720, 13733, 13747, 13761, 13774, 13788, 13802, 13815, 13829, 13842, 13856, 13869, 13882, 13896, 13909, 13922, 13935, 13949, 13962, 13975, 13988, 14001, 14014, 14027, 14040, 14053, 14066, 14079, 14092, 14104, 14117, 14130, 14143, 14155, 14168, 14181, 14193, 14206, 14218, 14231, 14243, 14256, 14268, 14280, 14293, 14305, 14317, 14329, 14341, 14354, 14366, 14378, 14390, 14402, 14414, 14426, 14438, 14449, 14461, 14473, 14485, 14497, 14508, 14520, 14531, 14543, 14555, 14566, 14578, 14589, 14601, 14612, 14623, 14635, 14646, 14657, 14668, 14680, 14691, 14702, 14713, 14724, 14735, 14746, 14757, 14768, 14779, 14789, 14800, 14811, 14822, 14832, 14843, 14854, 14864, 14875, 14885, 14896, 14906, 14917, 14927, 14937, 14948, 14958, 14968, 14978, 14989, 14999, 15009, 15019, 15029, 15039, 15049, 15059, 15069, 15078, 15088, 15098, 15108, 15118, 15127, 15137, 15146, 15156, 15166, 15175, 15184, 15194, 15203, 15213, 15222, 15231, 15240, 15250, 15259, 15268, 15277, 15286, 15295, 15304, 15313, 15322, 15331, 15340, 15349, 15357, 15366, 15375, 15383, 15392, 15401, 15409, 15418, 15426, 15435, 15443, 15451, 15460, 15468, 15476, 15485, 15493, 15501, 15509, 15517, 15525, 15533, 15541, 15549, 15557, 15565, 15573, 15581, 15588, 15596, 15604, 15611, 15619, 15627, 15634, 15642, 15649, 15656, 15664, 15671, 15679, 15686, 15693, 15700, 15707, 15715, 15722, 15729, 15736, 15743, 15750, 15757, 15763, 15770, 15777, 15784, 15791, 15797, 15804, 15810, 15817, 15824, 15830, 15837, 15843, 15849, 15856, 15862, 15868, 15875, 15881, 15887, 15893, 15899, 15905, 15911, 15917, 15923, 15929, 15935, 15941, 15946, 15952, 15958, 15964, 15969, 15975, 15980, 15986, 15991, 15997, 16002, 16008, 16013, 16018, 16024, 16029, 16034, 16039, 16044, 16049, 16054, 16059, 16064, 16069, 16074, 16079, 16084, 16088, 16093, 16098, 16103, 16107, 16112, 16116, 16121, 16125, 16130, 16134, 16138, 16143, 16147, 16151, 16156, 16160, 16164, 16168, 16172, 16176, 16180, 16184, 16188, 16192, 16195, 16199, 16203, 16207, 16210, 16214, 16218, 16221, 16225, 16228, 16232, 16235, 16238, 16242, 16245, 16248, 16251, 16255, 16258, 16261, 16264, 16267, 16270, 16273, 16276, 16279, 16281, 16284, 16287, 16290, 16292, 16295, 16298, 16300, 16303, 16305, 16308, 16310, 16312, 16315, 16317, 16319, 16321, 16324, 16326, 16328, 16330, 16332, 16334, 16336, 16338, 16340, 16341, 16343, 16345, 16347, 16348, 16350, 16352, 16353, 16355, 16356, 16358, 16359, 16360, 16362, 16363, 16364, 16365, 16367, 16368, 16369, 16370, 16371, 16372, 16373, 16374, 16375, 16375, 16376, 16377, 16378, 16378, 16379, 16380, 16380, 16381, 16381, 16382, 16382, 16382, 16383, 16383, 16383, 16384, 16384, 16384, 16384, 16384, #else #endif 16384, }; int GetSinValue(int angidx) { angidx %= SIN_TAB_SIZE; if (angidx < 0) { angidx += SIN_TAB_SIZE; } #if (USE_1DIV4_TAB == 1) { int dir = 1; int actidx = angidx; if (angidx >= ACT_TAB_SIZE*3) { actidx = ACT_TAB_SIZE*4 - angidx; dir = -1; } else if (angidx >= ACT_TAB_SIZE*2) { actidx = angidx - ACT_TAB_SIZE*2; dir = -1; } else if (angidx >= ACT_TAB_SIZE*1) { actidx = ACT_TAB_SIZE*2 - angidx; } // printf("angidx=%d, actidx=%d, dir=%d\r\n", angidx, actidx, dir); return sin_x[actidx] * dir; } #else return sin_x[angidx]; #endif }