Rev 293 | Rev 491 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 293 | Rev 330 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | 3 | ||
Line 4... | Line 4... | ||
4 | // discrete mathematics |
4 | // discrete mathematics |
5 | 5 | ||
- | 6 | // sinus with argument in degree at an angular resolution of 1 degree and a discretisation of 13 bit. |
|
- | 7 | const s16 sinlookup[91] = {0, 143, 286, 429, 571, 714, 856, 998, 1140, 1282, 1423, 1563, 1703, 1843, 1982, 2120, 2258, 2395, 2531, 2667, 2802, 2936, 3069, 3201, 3332, 3462, 3591, 3719, 3846, 3972, 4096, 4219, 4341, 4462, 4581, 4699, 4815, 4930, 5043, 5155, 5266, 5374, 5482, 5587, 5691, 5793, 5893, 5991, 6088, 6183, 6275, 6366, 6455, 6542, 6627, 6710, 6791, 6870, 6947, 7022, 7094, 7165, 7233, 7299, 7363, 7424, 7484, 7541, 7595, 7648, 7698, 7746, 7791, 7834, 7875, 7913, 7949, 7982, 8013, 8041, 8068, 8091, 8112, 8131, 8147, 8161, 8172, 8181, 8187, 8191, 8192}; |
|
Line 6... | Line 8... | ||
6 | // sinus with argument in degree at an angular resolution of 1 degree and a discretisation of 13 bit. |
8 | //0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 38 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
7 | const s16 sinlookup[91] = {0, 143, 286, 429, 571, 714, 856, 998, 1140, 1282, 1423, 1563, 1703, 1843, 1982, 2120, 2258, 2395, 2531, 2667, 2802, 2936, 3069, 3201, 3332, 3462, 3591, 3719, 3846, 3972, 4096, 4219, 4341, 4462, 4581, 4699, 4815, 4930, 5043, 5155, 5266, 5374, 5482, 5587, 5691, 5793, 5893, 5991, 6088, 6183, 6275, 6366, 6455, 6542, 6627, 6710, 6791, 6870, 6947, 7022, 7094, 7165, 7233, 7299, 7363, 7424, 7484, 7541, 7595, 7648, 7698, 7746, 7791, 7834, 7875, 7913, 7949, 7982, 8013, 8041, 8068, 8091, 8112, 8131, 8147, 8161, 8172, 8181, 8187, 8191, 8192}; |
9 | const s16 arccos64[65] = {90,89,88,87,86, 85, 84, 83, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 51, 50, 49, 48, 47, 45, 44, 43, 41, 40, 39, 37, 36, 34, 32, 31, 29, 27, 25, 23, 20, 18, 14, 10, 0}; |
8 | 10 | ||
9 | s16 c_sin_8192(s16 angle) |
11 | s16 c_sin_8192(s16 angle) |
Line 31... | Line 33... | ||
31 | sinus = sinlookup[angle]; |
33 | sinus = sinlookup[angle]; |
32 | // calculate sinus value |
34 | // calculate sinus value |
33 | return (sinus * m * n); |
35 | return (sinus * m * n); |
34 | } |
36 | } |
Line -... | Line 37... | ||
- | 37 | ||
- | 38 | s16 c_arccos2(s32 a,s32 b) |
|
- | 39 | { |
|
- | 40 | if(a>b) return(0); |
|
- | 41 | return(arccos64[64 * a / b]); |
|
- | 42 | } |
|
35 | 43 | ||
36 | // cosinus with argument in degree at an angular resolution of 1 degree and a discretisation of 13 bit. |
44 | // cosinus with argument in degree at an angular resolution of 1 degree and a discretisation of 13 bit. |
37 | s16 c_cos_8192(s16 angle) |
45 | s16 c_cos_8192(s16 angle) |
38 | { |
46 | { |
39 | return (c_sin_8192(90 - angle)); |
47 | return (c_sin_8192(90 - angle)); |