Files
kunlun/driver/inc/math_tbl.h
2024-09-28 14:24:04 +08:00

215 lines
18 KiB
C
Executable File

const int32_t sin_ang[360]={
0, 4, 9, 13, 18, 22, 27, 31, 36, 40,
44, 49, 53, 58, 62, 66, 71, 75, 79, 83,
88, 92, 96, 100, 104, 108, 112, 116, 120, 124,
128, 132, 136, 139, 143, 147, 150, 154, 158, 161,
165, 168, 171, 175, 178, 181, 184, 187, 190, 193,
196, 199, 202, 204, 207, 210, 212, 215, 217, 219,
222, 224, 226, 228, 230, 232, 234, 236, 237, 239,
241, 242, 243, 245, 246, 247, 248, 249, 250, 251,
252, 253, 254, 254, 255, 255, 255, 256, 256, 256,
256, 256, 256, 256, 255, 255, 255, 254, 254, 253,
252, 251, 250, 249, 248, 247, 246, 245, 243, 242,
241, 239, 237, 236, 234, 232, 230, 228, 226, 224,
222, 219, 217, 215, 212, 210, 207, 204, 202, 199,
196, 193, 190, 187, 184, 181, 178, 175, 171, 168,
165, 161, 158, 154, 150, 147, 143, 139, 136, 132,
128, 124, 120, 116, 112, 108, 104, 100, 96, 92,
88, 83, 79, 75, 71, 66, 62, 58, 53, 49,
44, 40, 36, 31, 27, 22, 18, 13, 9, 4,
0, -4, -9, -13, -18, -22, -27, -31, -36, -40,
-44, -49, -53, -58, -62, -66, -71, -75, -79, -83,
-88, -92, -96, -100, -104, -108, -112, -116, -120, -124,
-128, -132, -136, -139, -143, -147, -150, -154, -158, -161,
-165, -168, -171, -175, -178, -181, -184, -187, -190, -193,
-196, -199, -202, -204, -207, -210, -212, -215, -217, -219,
-222, -224, -226, -228, -230, -232, -234, -236, -237, -239,
-241, -242, -243, -245, -246, -247, -248, -249, -250, -251,
-252, -253, -254, -254, -255, -255, -255, -256, -256, -256,
-256, -256, -256, -256, -255, -255, -255, -254, -254, -253,
-252, -251, -250, -249, -248, -247, -246, -245, -243, -242,
-241, -239, -237, -236, -234, -232, -230, -228, -226, -224,
-222, -219, -217, -215, -212, -210, -207, -204, -202, -199,
-196, -193, -190, -187, -184, -181, -178, -175, -171, -168,
-165, -161, -158, -154, -150, -147, -143, -139, -136, -132,
-128, -124, -120, -116, -112, -108, -104, -100, -96, -92,
-88, -83, -79, -75, -71, -66, -62, -58, -53, -49,
-44, -40, -36, -31, -27, -22, -18, -13, -9, -4,
};
const int32_t cos_ang[360]={
256, 256, 256, 256, 255, 255, 255, 254, 254, 253,
252, 251, 250, 249, 248, 247, 246, 245, 243, 242,
241, 239, 237, 236, 234, 232, 230, 228, 226, 224,
222, 219, 217, 215, 212, 210, 207, 204, 202, 199,
196, 193, 190, 187, 184, 181, 178, 175, 171, 168,
165, 161, 158, 154, 150, 147, 143, 139, 136, 132,
128, 124, 120, 116, 112, 108, 104, 100, 96, 92,
88, 83, 79, 75, 71, 66, 62, 58, 53, 49,
44, 40, 36, 31, 27, 22, 18, 13, 9, 4,
0, -4, -9, -13, -18, -22, -27, -31, -36, -40,
-44, -49, -53, -58, -62, -66, -71, -75, -79, -83,
-88, -92, -96, -100, -104, -108, -112, -116, -120, -124,
-128, -132, -136, -139, -143, -147, -150, -154, -158, -161,
-165, -168, -171, -175, -178, -181, -184, -187, -190, -193,
-196, -199, -202, -204, -207, -210, -212, -215, -217, -219,
-222, -224, -226, -228, -230, -232, -234, -236, -237, -239,
-241, -242, -243, -245, -246, -247, -248, -249, -250, -251,
-252, -253, -254, -254, -255, -255, -255, -256, -256, -256,
-256, -256, -256, -256, -255, -255, -255, -254, -254, -253,
-252, -251, -250, -249, -248, -247, -246, -245, -243, -242,
-241, -239, -237, -236, -234, -232, -230, -228, -226, -224,
-222, -219, -217, -215, -212, -210, -207, -204, -202, -199,
-196, -193, -190, -187, -184, -181, -178, -175, -171, -168,
-165, -161, -158, -154, -150, -147, -143, -139, -136, -132,
-128, -124, -120, -116, -112, -108, -104, -100, -96, -92,
-88, -83, -79, -75, -71, -66, -62, -58, -53, -49,
-44, -40, -36, -31, -27, -22, -18, -13, -9, -4,
0, 4, 9, 13, 18, 22, 27, 31, 36, 40,
44, 49, 53, 58, 62, 66, 71, 75, 79, 83,
88, 92, 96, 100, 104, 108, 112, 116, 120, 124,
128, 132, 136, 139, 143, 147, 150, 154, 158, 161,
165, 168, 171, 175, 178, 181, 184, 187, 190, 193,
196, 199, 202, 204, 207, 210, 212, 215, 217, 219,
222, 224, 226, 228, 230, 232, 234, 236, 237, 239,
241, 242, 243, 245, 246, 247, 248, 249, 250, 251,
252, 253, 254, 254, 255, 255, 255, 256, 256, 256,
};
// sin_tab=sin(2*PI*i/N)*pow(2,15)
const int32_t cos_tab[1024]={
32768,32767,32766,32762,32758,32753,32746,32738,32729,32718,32706,32693,32679,32664,32647,32629,
32610,32590,32568,32546,32522,32496,32470,32442,32413,32383,32352,32319,32286,32251,32214,32177,
32138,32099,32058,32015,31972,31927,31881,31834,31786,31737,31686,31634,31581,31527,31471,31415,
31357,31298,31238,31177,31114,31050,30986,30920,30853,30784,30715,30644,30572,30499,30425,30350,
30274,30196,30118,30038,29957,29875,29792,29707,29622,29535,29448,29359,29269,29178,29086,28993,
28899,28803,28707,28610,28511,28411,28311,28209,28106,28002,27897,27791,27684,27576,27467,27357,
27246,27133,27020,26906,26791,26674,26557,26439,26320,26199,26078,25956,25833,25708,25583,25457,
25330,25202,25073,24943,24812,24680,24548,24414,24279,24144,24008,23870,23732,23593,23453,23312,
23170,23028,22884,22740,22595,22449,22302,22154,22006,21856,21706,21555,21403,21251,21097,20943,
20788,20632,20475,20318,20160,20001,19841,19681,19520,19358,19195,19032,18868,18703,18538,18372,
18205,18037,17869,17700,17531,17361,17190,17018,16846,16673,16500,16326,16151,15976,15800,15624,
15447,15269,15091,14912,14733,14553,14373,14192,14010,13828,13646,13463,13279,13095,12910,12725,
12540,12354,12167,11980,11793,11605,11417,11228,11039,10850,10660,10469,10279,10088,9896,9704,
9512,9319,9127,8933,8740,8546,8351,8157,7962,7767,7571,7376,7180,6983,6787,6590,
6393,6195,5998,5800,5602,5404,5205,5007,4808,4609,4410,4211,4011,3812,3612,3412,
3212,3012,2811,2611,2411,2210,2009,1809,1608,1407,1206,1005,804,603,402,201,
0,-201,-402,-603,-804,-1005,-1206,-1407,-1608,-1809,-2009,-2210,-2411,-2611,-2811,-3012,
-3212,-3412,-3612,-3812,-4011,-4211,-4410,-4609,-4808,-5007,-5205,-5404,-5602,-5800,-5998,-6195,
-6393,-6590,-6787,-6983,-7180,-7376,-7571,-7767,-7962,-8157,-8351,-8546,-8740,-8933,-9127,-9319,
-9512,-9704,-9896,-10088,-10279,-10469,-10660,-10850,-11039,-11228,-11417,-11605,-11793,-11980,-12167,-12354,
-12540,-12725,-12910,-13095,-13279,-13463,-13646,-13828,-14010,-14192,-14373,-14553,-14733,-14912,-15091,-15269,
-15447,-15624,-15800,-15976,-16151,-16326,-16500,-16673,-16846,-17018,-17190,-17361,-17531,-17700,-17869,-18037,
-18205,-18372,-18538,-18703,-18868,-19032,-19195,-19358,-19520,-19681,-19841,-20001,-20160,-20318,-20475,-20632,
-20788,-20943,-21097,-21251,-21403,-21555,-21706,-21856,-22006,-22154,-22302,-22449,-22595,-22740,-22884,-23028,
-23170,-23312,-23453,-23593,-23732,-23870,-24008,-24144,-24279,-24414,-24548,-24680,-24812,-24943,-25073,-25202,
-25330,-25457,-25583,-25708,-25833,-25956,-26078,-26199,-26320,-26439,-26557,-26674,-26791,-26906,-27020,-27133,
-27246,-27357,-27467,-27576,-27684,-27791,-27897,-28002,-28106,-28209,-28311,-28411,-28511,-28610,-28707,-28803,
-28899,-28993,-29086,-29178,-29269,-29359,-29448,-29535,-29622,-29707,-29792,-29875,-29957,-30038,-30118,-30196,
-30274,-30350,-30425,-30499,-30572,-30644,-30715,-30784,-30853,-30920,-30986,-31050,-31114,-31177,-31238,-31298,
-31357,-31415,-31471,-31527,-31581,-31634,-31686,-31737,-31786,-31834,-31881,-31927,-31972,-32015,-32058,-32099,
-32138,-32177,-32214,-32251,-32286,-32319,-32352,-32383,-32413,-32442,-32470,-32496,-32522,-32546,-32568,-32590,
-32610,-32629,-32647,-32664,-32679,-32693,-32706,-32718,-32729,-32738,-32746,-32753,-32758,-32762,-32766,-32767,
-32768,-32767,-32766,-32762,-32758,-32753,-32746,-32738,-32729,-32718,-32706,-32693,-32679,-32664,-32647,-32629,
-32610,-32590,-32568,-32546,-32522,-32496,-32470,-32442,-32413,-32383,-32352,-32319,-32286,-32251,-32214,-32177,
-32138,-32099,-32058,-32015,-31972,-31927,-31881,-31834,-31786,-31737,-31686,-31634,-31581,-31527,-31471,-31415,
-31357,-31298,-31238,-31177,-31114,-31050,-30986,-30920,-30853,-30784,-30715,-30644,-30572,-30499,-30425,-30350,
-30274,-30196,-30118,-30038,-29957,-29875,-29792,-29707,-29622,-29535,-29448,-29359,-29269,-29178,-29086,-28993,
-28899,-28803,-28707,-28610,-28511,-28411,-28311,-28209,-28106,-28002,-27897,-27791,-27684,-27576,-27467,-27357,
-27246,-27133,-27020,-26906,-26791,-26674,-26557,-26439,-26320,-26199,-26078,-25956,-25833,-25708,-25583,-25457,
-25330,-25202,-25073,-24943,-24812,-24680,-24548,-24414,-24279,-24144,-24008,-23870,-23732,-23593,-23453,-23312,
-23170,-23028,-22884,-22740,-22595,-22449,-22302,-22154,-22006,-21856,-21706,-21555,-21403,-21251,-21097,-20943,
-20788,-20632,-20475,-20318,-20160,-20001,-19841,-19681,-19520,-19358,-19195,-19032,-18868,-18703,-18538,-18372,
-18205,-18037,-17869,-17700,-17531,-17361,-17190,-17018,-16846,-16673,-16500,-16326,-16151,-15976,-15800,-15624,
-15447,-15269,-15091,-14912,-14733,-14553,-14373,-14192,-14010,-13828,-13646,-13463,-13279,-13095,-12910,-12725,
-12540,-12354,-12167,-11980,-11793,-11605,-11417,-11228,-11039,-10850,-10660,-10469,-10279,-10088,-9896,-9704,
-9512,-9319,-9127,-8933,-8740,-8546,-8351,-8157,-7962,-7767,-7571,-7376,-7180,-6983,-6787,-6590,
-6393,-6195,-5998,-5800,-5602,-5404,-5205,-5007,-4808,-4609,-4410,-4211,-4011,-3812,-3612,-3412,
-3212,-3012,-2811,-2611,-2411,-2210,-2009,-1809,-1608,-1407,-1206,-1005,-804,-603,-402,-201,
0,201,402,603,804,1005,1206,1407,1608,1809,2009,2210,2411,2611,2811,3012,
3212,3412,3612,3812,4011,4211,4410,4609,4808,5007,5205,5404,5602,5800,5998,6195,
6393,6590,6787,6983,7180,7376,7571,7767,7962,8157,8351,8546,8740,8933,9127,9319,
9512,9704,9896,10088,10279,10469,10660,10850,11039,11228,11417,11605,11793,11980,12167,12354,
12540,12725,12910,13095,13279,13463,13646,13828,14010,14192,14373,14553,14733,14912,15091,15269,
15447,15624,15800,15976,16151,16326,16500,16673,16846,17018,17190,17361,17531,17700,17869,18037,
18205,18372,18538,18703,18868,19032,19195,19358,19520,19681,19841,20001,20160,20318,20475,20632,
20788,20943,21097,21251,21403,21555,21706,21856,22006,22154,22302,22449,22595,22740,22884,23028,
23170,23312,23453,23593,23732,23870,24008,24144,24279,24414,24548,24680,24812,24943,25073,25202,
25330,25457,25583,25708,25833,25956,26078,26199,26320,26439,26557,26674,26791,26906,27020,27133,
27246,27357,27467,27576,27684,27791,27897,28002,28106,28209,28311,28411,28511,28610,28707,28803,
28899,28993,29086,29178,29269,29359,29448,29535,29622,29707,29792,29875,29957,30038,30118,30196,
30274,30350,30425,30499,30572,30644,30715,30784,30853,30920,30986,31050,31114,31177,31238,31298,
31357,31415,31471,31527,31581,31634,31686,31737,31786,31834,31881,31927,31972,32015,32058,32099,
32138,32177,32214,32251,32286,32319,32352,32383,32413,32442,32470,32496,32522,32546,32568,32590,
32610,32629,32647,32664,32679,32693,32706,32718,32729,32738,32746,32753,32758,32762,32766,32767,
};
const int32_t sin_tab[1024]={
0, 201,402, 603,804, 1005,1206,1407,1608,1809,2009,2210,2411,2611,2811,3012,
3212,3412,3612,3812,4011,4211,4410,4609,4808,5007,5205,5404,5602,5800,5998,6195,
6393,6590,6787,6983,7180,7376,7571,7767,7962,8157,8351,8546,8740,8933,9127,9319,
9512,9704,9896,10088,10279,10469,10660,10850,11039,11228,11417,11605,11793,11980,12167,12354,
12540,12725,12910,13095,13279,13463,13646,13828,14010,14192,14373,14553,14733,14912,15091,15269,
15447,15624,15800,15976,16151,16326,16500,16673,16846,17018,17190,17361,17531,17700,17869,18037,
18205,18372,18538,18703,18868,19032,19195,19358,19520,19681,19841,20001,20160,20318,20475,20632,
20788,20943,21097,21251,21403,21555,21706,21856,22006,22154,22302,22449,22595,22740,22884,23028,
23170,23312,23453,23593,23732,23870,24008,24144,24279,24414,24548,24680,24812,24943,25073,25202,
25330,25457,25583,25708,25833,25956,26078,26199,26320,26439,26557,26674,26791,26906,27020,27133,
27246,27357,27467,27576,27684,27791,27897,28002,28106,28209,28311,28411,28511,28610,28707,28803,
28899,28993,29086,29178,29269,29359,29448,29535,29622,29707,29792,29875,29957,30038,30118,30196,
30274,30350,30425,30499,30572,30644,30715,30784,30853,30920,30986,31050,31114,31177,31238,31298,
31357,31415,31471,31527,31581,31634,31686,31737,31786,31834,31881,31927,31972,32015,32058,32099,
32138,32177,32214,32251,32286,32319,32352,32383,32413,32442,32470,32496,32522,32546,32568,32590,
32610,32629,32647,32664,32679,32693,32706,32718,32729,32738,32746,32753,32758,32762,32766,32767,
32768,32767,32766,32762,32758,32753,32746,32738,32729,32718,32706,32693,32679,32664,32647,32629,
32610,32590,32568,32546,32522,32496,32470,32442,32413,32383,32352,32319,32286,32251,32214,32177,
32138,32099,32058,32015,31972,31927,31881,31834,31786,31737,31686,31634,31581,31527,31471,31415,
31357,31298,31238,31177,31114,31050,30986,30920,30853,30784,30715,30644,30572,30499,30425,30350,
30274,30196,30118,30038,29957,29875,29792,29707,29622,29535,29448,29359,29269,29178,29086,28993,
28899,28803,28707,28610,28511,28411,28311,28209,28106,28002,27897,27791,27684,27576,27467,27357,
27246,27133,27020,26906,26791,26674,26557,26439,26320,26199,26078,25956,25833,25708,25583,25457,
25330,25202,25073,24943,24812,24680,24548,24414,24279,24144,24008,23870,23732,23593,23453,23312,
23170,23028,22884,22740,22595,22449,22302,22154,22006,21856,21706,21555,21403,21251,21097,20943,
20788,20632,20475,20318,20160,20001,19841,19681,19520,19358,19195,19032,18868,18703,18538,18372,
18205,18037,17869,17700,17531,17361,17190,17018,16846,16673,16500,16326,16151,15976,15800,15624,
15447,15269,15091,14912,14733,14553,14373,14192,14010,13828,13646,13463,13279,13095,12910,12725,
12540,12354,12167,11980,11793,11605,11417,11228,11039,10850,10660,10469,10279,10088,9896,9704,
9512,9319,9127,8933,8740,8546,8351,8157,7962,7767,7571,7376,7180,6983,6787,6590,
6393,6195,5998,5800,5602,5404,5205,5007,4808,4609,4410,4211,4011,3812,3612,3412,
3212,3012,2811,2611,2411,2210,2009,1809,1608,1407,1206,1005,804,603,402,201,
0,-201,-402,-603,-804,-1005,-1206,-1407,-1608,-1809,-2009,-2210,-2411,-2611,-2811,-3012,
-3212,-3412,-3612,-3812,-4011,-4211,-4410,-4609,-4808,-5007,-5205,-5404,-5602,-5800,-5998,-6195,
-6393,-6590,-6787,-6983,-7180,-7376,-7571,-7767,-7962,-8157,-8351,-8546,-8740,-8933,-9127,-9319,
-9512,-9704,-9896,-10088,-10279,-10469,-10660,-10850,-11039,-11228,-11417,-11605,-11793,-11980,-12167,-12354,
-12540,-12725,-12910,-13095,-13279,-13463,-13646,-13828,-14010,-14192,-14373,-14553,-14733,-14912,-15091,-15269,
-15447,-15624,-15800,-15976,-16151,-16326,-16500,-16673,-16846,-17018,-17190,-17361,-17531,-17700,-17869,-18037,
-18205,-18372,-18538,-18703,-18868,-19032,-19195,-19358,-19520,-19681,-19841,-20001,-20160,-20318,-20475,-20632,
-20788,-20943,-21097,-21251,-21403,-21555,-21706,-21856,-22006,-22154,-22302,-22449,-22595,-22740,-22884,-23028,
-23170,-23312,-23453,-23593,-23732,-23870,-24008,-24144,-24279,-24414,-24548,-24680,-24812,-24943,-25073,-25202,
-25330,-25457,-25583,-25708,-25833,-25956,-26078,-26199,-26320,-26439,-26557,-26674,-26791,-26906,-27020,-27133,
-27246,-27357,-27467,-27576,-27684,-27791,-27897,-28002,-28106,-28209,-28311,-28411,-28511,-28610,-28707,-28803,
-28899,-28993,-29086,-29178,-29269,-29359,-29448,-29535,-29622,-29707,-29792,-29875,-29957,-30038,-30118,-30196,
-30274,-30350,-30425,-30499,-30572,-30644,-30715,-30784,-30853,-30920,-30986,-31050,-31114,-31177,-31238,-31298,
-31357,-31415,-31471,-31527,-31581,-31634,-31686,-31737,-31786,-31834,-31881,-31927,-31972,-32015,-32058,-32099,
-32138,-32177,-32214,-32251,-32286,-32319,-32352,-32383,-32413,-32442,-32470,-32496,-32522,-32546,-32568,-32590,
-32610,-32629,-32647,-32664,-32679,-32693,-32706,-32718,-32729,-32738,-32746,-32753,-32758,-32762,-32766,-32767,
-32768,-32767,-32766,-32762,-32758,-32753,-32746,-32738,-32729,-32718,-32706,-32693,-32679,-32664,-32647,-32629,
-32610,-32590,-32568,-32546,-32522,-32496,-32470,-32442,-32413,-32383,-32352,-32319,-32286,-32251,-32214,-32177,
-32138,-32099,-32058,-32015,-31972,-31927,-31881,-31834,-31786,-31737,-31686,-31634,-31581,-31527,-31471,-31415,
-31357,-31298,-31238,-31177,-31114,-31050,-30986,-30920,-30853,-30784,-30715,-30644,-30572,-30499,-30425,-30350,
-30274,-30196,-30118,-30038,-29957,-29875,-29792,-29707,-29622,-29535,-29448,-29359,-29269,-29178,-29086,-28993,
-28899,-28803,-28707,-28610,-28511,-28411,-28311,-28209,-28106,-28002,-27897,-27791,-27684,-27576,-27467,-27357,
-27246,-27133,-27020,-26906,-26791,-26674,-26557,-26439,-26320,-26199,-26078,-25956,-25833,-25708,-25583,-25457,
-25330,-25202,-25073,-24943,-24812,-24680,-24548,-24414,-24279,-24144,-24008,-23870,-23732,-23593,-23453,-23312,
-23170,-23028,-22884,-22740,-22595,-22449,-22302,-22154,-22006,-21856,-21706,-21555,-21403,-21251,-21097,-20943,
-20788,-20632,-20475,-20318,-20160,-20001,-19841,-19681,-19520,-19358,-19195,-19032,-18868,-18703,-18538,-18372,
-18205,-18037,-17869,-17700,-17531,-17361,-17190,-17018,-16846,-16673,-16500,-16326,-16151,-15976,-15800,-15624,
-15447,-15269,-15091,-14912,-14733,-14553,-14373,-14192,-14010,-13828,-13646,-13463,-13279,-13095,-12910,-12725,
-12540,-12354,-12167,-11980,-11793,-11605,-11417,-11228,-11039,-10850,-10660,-10469,-10279,-10088,-9896,-9704,
-9512,-9319,-9127,-8933,-8740,-8546,-8351,-8157,-7962,-7767,-7571,-7376,-7180,-6983,-6787,-6590,
-6393,-6195,-5998,-5800,-5602,-5404,-5205,-5007,-4808,-4609,-4410,-4211,-4011,-3812,-3612,-3412,
-3212,-3012,-2811,-2611,-2411,-2210,-2009,-1809,-1608,-1407,-1206,-1005,-804,-603,-402,-201,
};