diff options
author | Michael Giacomelli <giac2000@hotmail.com> | 2009-07-17 23:53:40 +0000 |
---|---|---|
committer | Michael Giacomelli <giac2000@hotmail.com> | 2009-07-17 23:53:40 +0000 |
commit | b957f7214be31bc5752625f9b9d60f96a77a9e34 (patch) | |
tree | 35987cd27988c0442dcb234912d3fb59468f5aad /apps | |
parent | c247483ef18360668c997ab64dc7345eaf65209c (diff) | |
download | rockbox-b957f7214be31bc5752625f9b9d60f96a77a9e34.tar.gz rockbox-b957f7214be31bc5752625f9b9d60f96a77a9e34.zip |
Rearrange the MDCT library lookup tables so that codecs can access them. Access them in cook. Remove old cook trig tables. Replace old 32x16 bit fixed point multiply code with faster ASM ARM/Coldfire versions using full 32 bit precision. Improves performance signficantly on PP5024 (~200% realtime for a 64k file) while saving a lot of memory and improving accuracy.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21939 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/codecs/lib/SOURCES | 1 | ||||
-rw-r--r-- | apps/codecs/lib/mdct2.c | 2 | ||||
-rwxr-xr-x | apps/codecs/lib/mdct_lookup.c | 547 | ||||
-rw-r--r-- | apps/codecs/lib/mdct_lookup.h | 525 | ||||
-rw-r--r-- | apps/codecs/libcook/cook_fixpoint.h | 65 | ||||
-rw-r--r-- | apps/codecs/libcook/cookdata_fixpoint.h | 7 |
6 files changed, 613 insertions, 534 deletions
diff --git a/apps/codecs/lib/SOURCES b/apps/codecs/lib/SOURCES index 0141af21dc..3a741a5c81 100644 --- a/apps/codecs/lib/SOURCES +++ b/apps/codecs/lib/SOURCES | |||
@@ -3,6 +3,7 @@ codeclib.c | |||
3 | fixedpoint.c | 3 | fixedpoint.c |
4 | 4 | ||
5 | mdct2.c | 5 | mdct2.c |
6 | mdct_lookup.c | ||
6 | #ifdef CPU_ARM | 7 | #ifdef CPU_ARM |
7 | mdct_arm.S | 8 | mdct_arm.S |
8 | setjmp_arm.S | 9 | setjmp_arm.S |
diff --git a/apps/codecs/lib/mdct2.c b/apps/codecs/lib/mdct2.c index c38f92db2c..7c448e1a01 100644 --- a/apps/codecs/lib/mdct2.c +++ b/apps/codecs/lib/mdct2.c | |||
@@ -362,7 +362,7 @@ void mdct_backward(int n, int32_t *in, int32_t *out) { | |||
362 | int step; | 362 | int step; |
363 | for (shift=6;!(n&(1<<shift));shift++); | 363 | for (shift=6;!(n&(1<<shift));shift++); |
364 | shift=13-shift; | 364 | shift=13-shift; |
365 | step=2<<shift; | 365 | step=2<<shift; |
366 | 366 | ||
367 | /* rotate */ | 367 | /* rotate */ |
368 | 368 | ||
diff --git a/apps/codecs/lib/mdct_lookup.c b/apps/codecs/lib/mdct_lookup.c new file mode 100755 index 0000000000..195ba9e752 --- /dev/null +++ b/apps/codecs/lib/mdct_lookup.c | |||
@@ -0,0 +1,547 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id: mdct_lookup.c 21701 2009-07-07 13:36:34Z $ | ||
9 | * | ||
10 | * Copyright (C) 2009 Michael Giacomelli | ||
11 | * | ||
12 | * | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or | ||
15 | * modify it under the terms of the GNU General Public License | ||
16 | * as published by the Free Software Foundation; either version 2 | ||
17 | * of the License, or (at your option) any later version. | ||
18 | * | ||
19 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
20 | * KIND, either express or implied. | ||
21 | * | ||
22 | ****************************************************************************/ | ||
23 | |||
24 | #include <codecs/lib/codeclib.h> | ||
25 | |||
26 | |||
27 | /* {sin(2*i*PI/4096, cos(2*i*PI/4096)}, with i = 0 to 512 */ | ||
28 | const int32_t sincos_lookup0[1026] ICONST_ATTR = { | ||
29 | 0x00000000, 0x7fffffff, 0x003243f5, 0x7ffff621, | ||
30 | 0x006487e3, 0x7fffd886, 0x0096cbc1, 0x7fffa72c, | ||
31 | 0x00c90f88, 0x7fff6216, 0x00fb5330, 0x7fff0943, | ||
32 | 0x012d96b1, 0x7ffe9cb2, 0x015fda03, 0x7ffe1c65, | ||
33 | 0x01921d20, 0x7ffd885a, 0x01c45ffe, 0x7ffce093, | ||
34 | 0x01f6a297, 0x7ffc250f, 0x0228e4e2, 0x7ffb55ce, | ||
35 | 0x025b26d7, 0x7ffa72d1, 0x028d6870, 0x7ff97c18, | ||
36 | 0x02bfa9a4, 0x7ff871a2, 0x02f1ea6c, 0x7ff75370, | ||
37 | 0x03242abf, 0x7ff62182, 0x03566a96, 0x7ff4dbd9, | ||
38 | 0x0388a9ea, 0x7ff38274, 0x03bae8b2, 0x7ff21553, | ||
39 | 0x03ed26e6, 0x7ff09478, 0x041f6480, 0x7feeffe1, | ||
40 | 0x0451a177, 0x7fed5791, 0x0483ddc3, 0x7feb9b85, | ||
41 | 0x04b6195d, 0x7fe9cbc0, 0x04e8543e, 0x7fe7e841, | ||
42 | 0x051a8e5c, 0x7fe5f108, 0x054cc7b1, 0x7fe3e616, | ||
43 | 0x057f0035, 0x7fe1c76b, 0x05b137df, 0x7fdf9508, | ||
44 | 0x05e36ea9, 0x7fdd4eec, 0x0615a48b, 0x7fdaf519, | ||
45 | 0x0647d97c, 0x7fd8878e, 0x067a0d76, 0x7fd6064c, | ||
46 | 0x06ac406f, 0x7fd37153, 0x06de7262, 0x7fd0c8a3, | ||
47 | 0x0710a345, 0x7fce0c3e, 0x0742d311, 0x7fcb3c23, | ||
48 | 0x077501be, 0x7fc85854, 0x07a72f45, 0x7fc560cf, | ||
49 | 0x07d95b9e, 0x7fc25596, 0x080b86c2, 0x7fbf36aa, | ||
50 | 0x083db0a7, 0x7fbc040a, 0x086fd947, 0x7fb8bdb8, | ||
51 | 0x08a2009a, 0x7fb563b3, 0x08d42699, 0x7fb1f5fc, | ||
52 | 0x09064b3a, 0x7fae7495, 0x09386e78, 0x7faadf7c, | ||
53 | 0x096a9049, 0x7fa736b4, 0x099cb0a7, 0x7fa37a3c, | ||
54 | 0x09cecf89, 0x7f9faa15, 0x0a00ece8, 0x7f9bc640, | ||
55 | 0x0a3308bd, 0x7f97cebd, 0x0a6522fe, 0x7f93c38c, | ||
56 | 0x0a973ba5, 0x7f8fa4b0, 0x0ac952aa, 0x7f8b7227, | ||
57 | 0x0afb6805, 0x7f872bf3, 0x0b2d7baf, 0x7f82d214, | ||
58 | 0x0b5f8d9f, 0x7f7e648c, 0x0b919dcf, 0x7f79e35a, | ||
59 | 0x0bc3ac35, 0x7f754e80, 0x0bf5b8cb, 0x7f70a5fe, | ||
60 | 0x0c27c389, 0x7f6be9d4, 0x0c59cc68, 0x7f671a05, | ||
61 | 0x0c8bd35e, 0x7f62368f, 0x0cbdd865, 0x7f5d3f75, | ||
62 | 0x0cefdb76, 0x7f5834b7, 0x0d21dc87, 0x7f531655, | ||
63 | 0x0d53db92, 0x7f4de451, 0x0d85d88f, 0x7f489eaa, | ||
64 | 0x0db7d376, 0x7f434563, 0x0de9cc40, 0x7f3dd87c, | ||
65 | 0x0e1bc2e4, 0x7f3857f6, 0x0e4db75b, 0x7f32c3d1, | ||
66 | 0x0e7fa99e, 0x7f2d1c0e, 0x0eb199a4, 0x7f2760af, | ||
67 | 0x0ee38766, 0x7f2191b4, 0x0f1572dc, 0x7f1baf1e, | ||
68 | 0x0f475bff, 0x7f15b8ee, 0x0f7942c7, 0x7f0faf25, | ||
69 | 0x0fab272b, 0x7f0991c4, 0x0fdd0926, 0x7f0360cb, | ||
70 | 0x100ee8ad, 0x7efd1c3c, 0x1040c5bb, 0x7ef6c418, | ||
71 | 0x1072a048, 0x7ef05860, 0x10a4784b, 0x7ee9d914, | ||
72 | 0x10d64dbd, 0x7ee34636, 0x11082096, 0x7edc9fc6, | ||
73 | 0x1139f0cf, 0x7ed5e5c6, 0x116bbe60, 0x7ecf1837, | ||
74 | 0x119d8941, 0x7ec8371a, 0x11cf516a, 0x7ec14270, | ||
75 | 0x120116d5, 0x7eba3a39, 0x1232d979, 0x7eb31e78, | ||
76 | 0x1264994e, 0x7eabef2c, 0x1296564d, 0x7ea4ac58, | ||
77 | 0x12c8106f, 0x7e9d55fc, 0x12f9c7aa, 0x7e95ec1a, | ||
78 | 0x132b7bf9, 0x7e8e6eb2, 0x135d2d53, 0x7e86ddc6, | ||
79 | 0x138edbb1, 0x7e7f3957, 0x13c0870a, 0x7e778166, | ||
80 | 0x13f22f58, 0x7e6fb5f4, 0x1423d492, 0x7e67d703, | ||
81 | 0x145576b1, 0x7e5fe493, 0x148715ae, 0x7e57dea7, | ||
82 | 0x14b8b17f, 0x7e4fc53e, 0x14ea4a1f, 0x7e47985b, | ||
83 | 0x151bdf86, 0x7e3f57ff, 0x154d71aa, 0x7e37042a, | ||
84 | 0x157f0086, 0x7e2e9cdf, 0x15b08c12, 0x7e26221f, | ||
85 | 0x15e21445, 0x7e1d93ea, 0x16139918, 0x7e14f242, | ||
86 | 0x16451a83, 0x7e0c3d29, 0x1676987f, 0x7e0374a0, | ||
87 | 0x16a81305, 0x7dfa98a8, 0x16d98a0c, 0x7df1a942, | ||
88 | 0x170afd8d, 0x7de8a670, 0x173c6d80, 0x7ddf9034, | ||
89 | 0x176dd9de, 0x7dd6668f, 0x179f429f, 0x7dcd2981, | ||
90 | 0x17d0a7bc, 0x7dc3d90d, 0x1802092c, 0x7dba7534, | ||
91 | 0x183366e9, 0x7db0fdf8, 0x1864c0ea, 0x7da77359, | ||
92 | 0x18961728, 0x7d9dd55a, 0x18c7699b, 0x7d9423fc, | ||
93 | 0x18f8b83c, 0x7d8a5f40, 0x192a0304, 0x7d808728, | ||
94 | 0x195b49ea, 0x7d769bb5, 0x198c8ce7, 0x7d6c9ce9, | ||
95 | 0x19bdcbf3, 0x7d628ac6, 0x19ef0707, 0x7d58654d, | ||
96 | 0x1a203e1b, 0x7d4e2c7f, 0x1a517128, 0x7d43e05e, | ||
97 | 0x1a82a026, 0x7d3980ec, 0x1ab3cb0d, 0x7d2f0e2b, | ||
98 | 0x1ae4f1d6, 0x7d24881b, 0x1b161479, 0x7d19eebf, | ||
99 | 0x1b4732ef, 0x7d0f4218, 0x1b784d30, 0x7d048228, | ||
100 | 0x1ba96335, 0x7cf9aef0, 0x1bda74f6, 0x7ceec873, | ||
101 | 0x1c0b826a, 0x7ce3ceb2, 0x1c3c8b8c, 0x7cd8c1ae, | ||
102 | 0x1c6d9053, 0x7ccda169, 0x1c9e90b8, 0x7cc26de5, | ||
103 | 0x1ccf8cb3, 0x7cb72724, 0x1d00843d, 0x7cabcd28, | ||
104 | 0x1d31774d, 0x7ca05ff1, 0x1d6265dd, 0x7c94df83, | ||
105 | 0x1d934fe5, 0x7c894bde, 0x1dc4355e, 0x7c7da505, | ||
106 | 0x1df5163f, 0x7c71eaf9, 0x1e25f282, 0x7c661dbc, | ||
107 | 0x1e56ca1e, 0x7c5a3d50, 0x1e879d0d, 0x7c4e49b7, | ||
108 | 0x1eb86b46, 0x7c4242f2, 0x1ee934c3, 0x7c362904, | ||
109 | 0x1f19f97b, 0x7c29fbee, 0x1f4ab968, 0x7c1dbbb3, | ||
110 | 0x1f7b7481, 0x7c116853, 0x1fac2abf, 0x7c0501d2, | ||
111 | 0x1fdcdc1b, 0x7bf88830, 0x200d888d, 0x7bebfb70, | ||
112 | 0x203e300d, 0x7bdf5b94, 0x206ed295, 0x7bd2a89e, | ||
113 | 0x209f701c, 0x7bc5e290, 0x20d0089c, 0x7bb9096b, | ||
114 | 0x21009c0c, 0x7bac1d31, 0x21312a65, 0x7b9f1de6, | ||
115 | 0x2161b3a0, 0x7b920b89, 0x219237b5, 0x7b84e61f, | ||
116 | 0x21c2b69c, 0x7b77ada8, 0x21f3304f, 0x7b6a6227, | ||
117 | 0x2223a4c5, 0x7b5d039e, 0x225413f8, 0x7b4f920e, | ||
118 | 0x22847de0, 0x7b420d7a, 0x22b4e274, 0x7b3475e5, | ||
119 | 0x22e541af, 0x7b26cb4f, 0x23159b88, 0x7b190dbc, | ||
120 | 0x2345eff8, 0x7b0b3d2c, 0x23763ef7, 0x7afd59a4, | ||
121 | 0x23a6887f, 0x7aef6323, 0x23d6cc87, 0x7ae159ae, | ||
122 | 0x24070b08, 0x7ad33d45, 0x243743fa, 0x7ac50dec, | ||
123 | 0x24677758, 0x7ab6cba4, 0x2497a517, 0x7aa8766f, | ||
124 | 0x24c7cd33, 0x7a9a0e50, 0x24f7efa2, 0x7a8b9348, | ||
125 | 0x25280c5e, 0x7a7d055b, 0x2558235f, 0x7a6e648a, | ||
126 | 0x2588349d, 0x7a5fb0d8, 0x25b84012, 0x7a50ea47, | ||
127 | 0x25e845b6, 0x7a4210d8, 0x26184581, 0x7a332490, | ||
128 | 0x26483f6c, 0x7a24256f, 0x26783370, 0x7a151378, | ||
129 | 0x26a82186, 0x7a05eead, 0x26d809a5, 0x79f6b711, | ||
130 | 0x2707ebc7, 0x79e76ca7, 0x2737c7e3, 0x79d80f6f, | ||
131 | 0x27679df4, 0x79c89f6e, 0x27976df1, 0x79b91ca4, | ||
132 | 0x27c737d3, 0x79a98715, 0x27f6fb92, 0x7999dec4, | ||
133 | 0x2826b928, 0x798a23b1, 0x2856708d, 0x797a55e0, | ||
134 | 0x288621b9, 0x796a7554, 0x28b5cca5, 0x795a820e, | ||
135 | 0x28e5714b, 0x794a7c12, 0x29150fa1, 0x793a6361, | ||
136 | 0x2944a7a2, 0x792a37fe, 0x29743946, 0x7919f9ec, | ||
137 | 0x29a3c485, 0x7909a92d, 0x29d34958, 0x78f945c3, | ||
138 | 0x2a02c7b8, 0x78e8cfb2, 0x2a323f9e, 0x78d846fb, | ||
139 | 0x2a61b101, 0x78c7aba2, 0x2a911bdc, 0x78b6fda8, | ||
140 | 0x2ac08026, 0x78a63d11, 0x2aefddd8, 0x789569df, | ||
141 | 0x2b1f34eb, 0x78848414, 0x2b4e8558, 0x78738bb3, | ||
142 | 0x2b7dcf17, 0x786280bf, 0x2bad1221, 0x7851633b, | ||
143 | 0x2bdc4e6f, 0x78403329, 0x2c0b83fa, 0x782ef08b, | ||
144 | 0x2c3ab2b9, 0x781d9b65, 0x2c69daa6, 0x780c33b8, | ||
145 | 0x2c98fbba, 0x77fab989, 0x2cc815ee, 0x77e92cd9, | ||
146 | 0x2cf72939, 0x77d78daa, 0x2d263596, 0x77c5dc01, | ||
147 | 0x2d553afc, 0x77b417df, 0x2d843964, 0x77a24148, | ||
148 | 0x2db330c7, 0x7790583e, 0x2de2211e, 0x777e5cc3, | ||
149 | 0x2e110a62, 0x776c4edb, 0x2e3fec8b, 0x775a2e89, | ||
150 | 0x2e6ec792, 0x7747fbce, 0x2e9d9b70, 0x7735b6af, | ||
151 | 0x2ecc681e, 0x77235f2d, 0x2efb2d95, 0x7710f54c, | ||
152 | 0x2f29ebcc, 0x76fe790e, 0x2f58a2be, 0x76ebea77, | ||
153 | 0x2f875262, 0x76d94989, 0x2fb5fab2, 0x76c69647, | ||
154 | 0x2fe49ba7, 0x76b3d0b4, 0x30133539, 0x76a0f8d2, | ||
155 | 0x3041c761, 0x768e0ea6, 0x30705217, 0x767b1231, | ||
156 | 0x309ed556, 0x76680376, 0x30cd5115, 0x7654e279, | ||
157 | 0x30fbc54d, 0x7641af3d, 0x312a31f8, 0x762e69c4, | ||
158 | 0x3158970e, 0x761b1211, 0x3186f487, 0x7607a828, | ||
159 | 0x31b54a5e, 0x75f42c0b, 0x31e39889, 0x75e09dbd, | ||
160 | 0x3211df04, 0x75ccfd42, 0x32401dc6, 0x75b94a9c, | ||
161 | 0x326e54c7, 0x75a585cf, 0x329c8402, 0x7591aedd, | ||
162 | 0x32caab6f, 0x757dc5ca, 0x32f8cb07, 0x7569ca99, | ||
163 | 0x3326e2c3, 0x7555bd4c, 0x3354f29b, 0x75419de7, | ||
164 | 0x3382fa88, 0x752d6c6c, 0x33b0fa84, 0x751928e0, | ||
165 | 0x33def287, 0x7504d345, 0x340ce28b, 0x74f06b9e, | ||
166 | 0x343aca87, 0x74dbf1ef, 0x3468aa76, 0x74c7663a, | ||
167 | 0x34968250, 0x74b2c884, 0x34c4520d, 0x749e18cd, | ||
168 | 0x34f219a8, 0x7489571c, 0x351fd918, 0x74748371, | ||
169 | 0x354d9057, 0x745f9dd1, 0x357b3f5d, 0x744aa63f, | ||
170 | 0x35a8e625, 0x74359cbd, 0x35d684a6, 0x74208150, | ||
171 | 0x36041ad9, 0x740b53fb, 0x3631a8b8, 0x73f614c0, | ||
172 | 0x365f2e3b, 0x73e0c3a3, 0x368cab5c, 0x73cb60a8, | ||
173 | 0x36ba2014, 0x73b5ebd1, 0x36e78c5b, 0x73a06522, | ||
174 | 0x3714f02a, 0x738acc9e, 0x37424b7b, 0x73752249, | ||
175 | 0x376f9e46, 0x735f6626, 0x379ce885, 0x73499838, | ||
176 | 0x37ca2a30, 0x7333b883, 0x37f76341, 0x731dc70a, | ||
177 | 0x382493b0, 0x7307c3d0, 0x3851bb77, 0x72f1aed9, | ||
178 | 0x387eda8e, 0x72db8828, 0x38abf0ef, 0x72c54fc1, | ||
179 | 0x38d8fe93, 0x72af05a7, 0x39060373, 0x7298a9dd, | ||
180 | 0x3932ff87, 0x72823c67, 0x395ff2c9, 0x726bbd48, | ||
181 | 0x398cdd32, 0x72552c85, 0x39b9bebc, 0x723e8a20, | ||
182 | 0x39e6975e, 0x7227d61c, 0x3a136712, 0x7211107e, | ||
183 | 0x3a402dd2, 0x71fa3949, 0x3a6ceb96, 0x71e35080, | ||
184 | 0x3a99a057, 0x71cc5626, 0x3ac64c0f, 0x71b54a41, | ||
185 | 0x3af2eeb7, 0x719e2cd2, 0x3b1f8848, 0x7186fdde, | ||
186 | 0x3b4c18ba, 0x716fbd68, 0x3b78a007, 0x71586b74, | ||
187 | 0x3ba51e29, 0x71410805, 0x3bd19318, 0x7129931f, | ||
188 | 0x3bfdfecd, 0x71120cc5, 0x3c2a6142, 0x70fa74fc, | ||
189 | 0x3c56ba70, 0x70e2cbc6, 0x3c830a50, 0x70cb1128, | ||
190 | 0x3caf50da, 0x70b34525, 0x3cdb8e09, 0x709b67c0, | ||
191 | 0x3d07c1d6, 0x708378ff, 0x3d33ec39, 0x706b78e3, | ||
192 | 0x3d600d2c, 0x70536771, 0x3d8c24a8, 0x703b44ad, | ||
193 | 0x3db832a6, 0x7023109a, 0x3de4371f, 0x700acb3c, | ||
194 | 0x3e10320d, 0x6ff27497, 0x3e3c2369, 0x6fda0cae, | ||
195 | 0x3e680b2c, 0x6fc19385, 0x3e93e950, 0x6fa90921, | ||
196 | 0x3ebfbdcd, 0x6f906d84, 0x3eeb889c, 0x6f77c0b3, | ||
197 | 0x3f1749b8, 0x6f5f02b2, 0x3f430119, 0x6f463383, | ||
198 | 0x3f6eaeb8, 0x6f2d532c, 0x3f9a5290, 0x6f1461b0, | ||
199 | 0x3fc5ec98, 0x6efb5f12, 0x3ff17cca, 0x6ee24b57, | ||
200 | 0x401d0321, 0x6ec92683, 0x40487f94, 0x6eaff099, | ||
201 | 0x4073f21d, 0x6e96a99d, 0x409f5ab6, 0x6e7d5193, | ||
202 | 0x40cab958, 0x6e63e87f, 0x40f60dfb, 0x6e4a6e66, | ||
203 | 0x4121589b, 0x6e30e34a, 0x414c992f, 0x6e174730, | ||
204 | 0x4177cfb1, 0x6dfd9a1c, 0x41a2fc1a, 0x6de3dc11, | ||
205 | 0x41ce1e65, 0x6dca0d14, 0x41f93689, 0x6db02d29, | ||
206 | 0x42244481, 0x6d963c54, 0x424f4845, 0x6d7c3a98, | ||
207 | 0x427a41d0, 0x6d6227fa, 0x42a5311b, 0x6d48047e, | ||
208 | 0x42d0161e, 0x6d2dd027, 0x42faf0d4, 0x6d138afb, | ||
209 | 0x4325c135, 0x6cf934fc, 0x4350873c, 0x6cdece2f, | ||
210 | 0x437b42e1, 0x6cc45698, 0x43a5f41e, 0x6ca9ce3b, | ||
211 | 0x43d09aed, 0x6c8f351c, 0x43fb3746, 0x6c748b3f, | ||
212 | 0x4425c923, 0x6c59d0a9, 0x4450507e, 0x6c3f055d, | ||
213 | 0x447acd50, 0x6c242960, 0x44a53f93, 0x6c093cb6, | ||
214 | 0x44cfa740, 0x6bee3f62, 0x44fa0450, 0x6bd3316a, | ||
215 | 0x452456bd, 0x6bb812d1, 0x454e9e80, 0x6b9ce39b, | ||
216 | 0x4578db93, 0x6b81a3cd, 0x45a30df0, 0x6b66536b, | ||
217 | 0x45cd358f, 0x6b4af279, 0x45f7526b, 0x6b2f80fb, | ||
218 | 0x4621647d, 0x6b13fef5, 0x464b6bbe, 0x6af86c6c, | ||
219 | 0x46756828, 0x6adcc964, 0x469f59b4, 0x6ac115e2, | ||
220 | 0x46c9405c, 0x6aa551e9, 0x46f31c1a, 0x6a897d7d, | ||
221 | 0x471cece7, 0x6a6d98a4, 0x4746b2bc, 0x6a51a361, | ||
222 | 0x47706d93, 0x6a359db9, 0x479a1d67, 0x6a1987b0, | ||
223 | 0x47c3c22f, 0x69fd614a, 0x47ed5be6, 0x69e12a8c, | ||
224 | 0x4816ea86, 0x69c4e37a, 0x48406e08, 0x69a88c19, | ||
225 | 0x4869e665, 0x698c246c, 0x48935397, 0x696fac78, | ||
226 | 0x48bcb599, 0x69532442, 0x48e60c62, 0x69368bce, | ||
227 | 0x490f57ee, 0x6919e320, 0x49389836, 0x68fd2a3d, | ||
228 | 0x4961cd33, 0x68e06129, 0x498af6df, 0x68c387e9, | ||
229 | 0x49b41533, 0x68a69e81, 0x49dd282a, 0x6889a4f6, | ||
230 | 0x4a062fbd, 0x686c9b4b, 0x4a2f2be6, 0x684f8186, | ||
231 | 0x4a581c9e, 0x683257ab, 0x4a8101de, 0x68151dbe, | ||
232 | 0x4aa9dba2, 0x67f7d3c5, 0x4ad2a9e2, 0x67da79c3, | ||
233 | 0x4afb6c98, 0x67bd0fbd, 0x4b2423be, 0x679f95b7, | ||
234 | 0x4b4ccf4d, 0x67820bb7, 0x4b756f40, 0x676471c0, | ||
235 | 0x4b9e0390, 0x6746c7d8, 0x4bc68c36, 0x67290e02, | ||
236 | 0x4bef092d, 0x670b4444, 0x4c177a6e, 0x66ed6aa1, | ||
237 | 0x4c3fdff4, 0x66cf8120, 0x4c6839b7, 0x66b187c3, | ||
238 | 0x4c9087b1, 0x66937e91, 0x4cb8c9dd, 0x6675658c, | ||
239 | 0x4ce10034, 0x66573cbb, 0x4d092ab0, 0x66390422, | ||
240 | 0x4d31494b, 0x661abbc5, 0x4d595bfe, 0x65fc63a9, | ||
241 | 0x4d8162c4, 0x65ddfbd3, 0x4da95d96, 0x65bf8447, | ||
242 | 0x4dd14c6e, 0x65a0fd0b, 0x4df92f46, 0x65826622, | ||
243 | 0x4e210617, 0x6563bf92, 0x4e48d0dd, 0x6545095f, | ||
244 | 0x4e708f8f, 0x6526438f, 0x4e984229, 0x65076e25, | ||
245 | 0x4ebfe8a5, 0x64e88926, 0x4ee782fb, 0x64c99498, | ||
246 | 0x4f0f1126, 0x64aa907f, 0x4f369320, 0x648b7ce0, | ||
247 | 0x4f5e08e3, 0x646c59bf, 0x4f857269, 0x644d2722, | ||
248 | 0x4faccfab, 0x642de50d, 0x4fd420a4, 0x640e9386, | ||
249 | 0x4ffb654d, 0x63ef3290, 0x50229da1, 0x63cfc231, | ||
250 | 0x5049c999, 0x63b0426d, 0x5070e92f, 0x6390b34a, | ||
251 | 0x5097fc5e, 0x637114cc, 0x50bf031f, 0x635166f9, | ||
252 | 0x50e5fd6d, 0x6331a9d4, 0x510ceb40, 0x6311dd64, | ||
253 | 0x5133cc94, 0x62f201ac, 0x515aa162, 0x62d216b3, | ||
254 | 0x518169a5, 0x62b21c7b, 0x51a82555, 0x6292130c, | ||
255 | 0x51ced46e, 0x6271fa69, 0x51f576ea, 0x6251d298, | ||
256 | 0x521c0cc2, 0x62319b9d, 0x524295f0, 0x6211557e, | ||
257 | 0x5269126e, 0x61f1003f, 0x528f8238, 0x61d09be5, | ||
258 | 0x52b5e546, 0x61b02876, 0x52dc3b92, 0x618fa5f7, | ||
259 | 0x53028518, 0x616f146c, 0x5328c1d0, 0x614e73da, | ||
260 | 0x534ef1b5, 0x612dc447, 0x537514c2, 0x610d05b7, | ||
261 | 0x539b2af0, 0x60ec3830, 0x53c13439, 0x60cb5bb7, | ||
262 | 0x53e73097, 0x60aa7050, 0x540d2005, 0x60897601, | ||
263 | 0x5433027d, 0x60686ccf, 0x5458d7f9, 0x604754bf, | ||
264 | 0x547ea073, 0x60262dd6, 0x54a45be6, 0x6004f819, | ||
265 | 0x54ca0a4b, 0x5fe3b38d, 0x54efab9c, 0x5fc26038, | ||
266 | 0x55153fd4, 0x5fa0fe1f, 0x553ac6ee, 0x5f7f8d46, | ||
267 | 0x556040e2, 0x5f5e0db3, 0x5585adad, 0x5f3c7f6b, | ||
268 | 0x55ab0d46, 0x5f1ae274, 0x55d05faa, 0x5ef936d1, | ||
269 | 0x55f5a4d2, 0x5ed77c8a, 0x561adcb9, 0x5eb5b3a2, | ||
270 | 0x56400758, 0x5e93dc1f, 0x566524aa, 0x5e71f606, | ||
271 | 0x568a34a9, 0x5e50015d, 0x56af3750, 0x5e2dfe29, | ||
272 | 0x56d42c99, 0x5e0bec6e, 0x56f9147e, 0x5de9cc33, | ||
273 | 0x571deefa, 0x5dc79d7c, 0x5742bc06, 0x5da5604f, | ||
274 | 0x57677b9d, 0x5d8314b1, 0x578c2dba, 0x5d60baa7, | ||
275 | 0x57b0d256, 0x5d3e5237, 0x57d5696d, 0x5d1bdb65, | ||
276 | 0x57f9f2f8, 0x5cf95638, 0x581e6ef1, 0x5cd6c2b5, | ||
277 | 0x5842dd54, 0x5cb420e0, 0x58673e1b, 0x5c9170bf, | ||
278 | 0x588b9140, 0x5c6eb258, 0x58afd6bd, 0x5c4be5b0, | ||
279 | 0x58d40e8c, 0x5c290acc, 0x58f838a9, 0x5c0621b2, | ||
280 | 0x591c550e, 0x5be32a67, 0x594063b5, 0x5bc024f0, | ||
281 | 0x59646498, 0x5b9d1154, 0x598857b2, 0x5b79ef96, | ||
282 | 0x59ac3cfd, 0x5b56bfbd, 0x59d01475, 0x5b3381ce, | ||
283 | 0x59f3de12, 0x5b1035cf, 0x5a1799d1, 0x5aecdbc5, | ||
284 | 0x5a3b47ab, 0x5ac973b5, 0x5a5ee79a, 0x5aa5fda5, | ||
285 | 0x5a82799a, 0x5a82799a | ||
286 | }; | ||
287 | |||
288 | /* {sin((2*i+1)*PI/4096, cos((2*i+1)*PI/4096)}, with i = 0 to 511 */ | ||
289 | const int32_t sincos_lookup1[1024] ICONST_ATTR = { | ||
290 | 0x001921fb, 0x7ffffd88, 0x004b65ee, 0x7fffe9cb, | ||
291 | 0x007da9d4, 0x7fffc251, 0x00afeda8, 0x7fff8719, | ||
292 | 0x00e23160, 0x7fff3824, 0x011474f6, 0x7ffed572, | ||
293 | 0x0146b860, 0x7ffe5f03, 0x0178fb99, 0x7ffdd4d7, | ||
294 | 0x01ab3e97, 0x7ffd36ee, 0x01dd8154, 0x7ffc8549, | ||
295 | 0x020fc3c6, 0x7ffbbfe6, 0x024205e8, 0x7ffae6c7, | ||
296 | 0x027447b0, 0x7ff9f9ec, 0x02a68917, 0x7ff8f954, | ||
297 | 0x02d8ca16, 0x7ff7e500, 0x030b0aa4, 0x7ff6bcf0, | ||
298 | 0x033d4abb, 0x7ff58125, 0x036f8a51, 0x7ff4319d, | ||
299 | 0x03a1c960, 0x7ff2ce5b, 0x03d407df, 0x7ff1575d, | ||
300 | 0x040645c7, 0x7fefcca4, 0x04388310, 0x7fee2e30, | ||
301 | 0x046abfb3, 0x7fec7c02, 0x049cfba7, 0x7feab61a, | ||
302 | 0x04cf36e5, 0x7fe8dc78, 0x05017165, 0x7fe6ef1c, | ||
303 | 0x0533ab20, 0x7fe4ee06, 0x0565e40d, 0x7fe2d938, | ||
304 | 0x05981c26, 0x7fe0b0b1, 0x05ca5361, 0x7fde7471, | ||
305 | 0x05fc89b8, 0x7fdc247a, 0x062ebf22, 0x7fd9c0ca, | ||
306 | 0x0660f398, 0x7fd74964, 0x06932713, 0x7fd4be46, | ||
307 | 0x06c5598a, 0x7fd21f72, 0x06f78af6, 0x7fcf6ce8, | ||
308 | 0x0729bb4e, 0x7fcca6a7, 0x075bea8c, 0x7fc9ccb2, | ||
309 | 0x078e18a7, 0x7fc6df08, 0x07c04598, 0x7fc3dda9, | ||
310 | 0x07f27157, 0x7fc0c896, 0x08249bdd, 0x7fbd9fd0, | ||
311 | 0x0856c520, 0x7fba6357, 0x0888ed1b, 0x7fb7132b, | ||
312 | 0x08bb13c5, 0x7fb3af4e, 0x08ed3916, 0x7fb037bf, | ||
313 | 0x091f5d06, 0x7facac7f, 0x09517f8f, 0x7fa90d8e, | ||
314 | 0x0983a0a7, 0x7fa55aee, 0x09b5c048, 0x7fa1949e, | ||
315 | 0x09e7de6a, 0x7f9dbaa0, 0x0a19fb04, 0x7f99ccf4, | ||
316 | 0x0a4c1610, 0x7f95cb9a, 0x0a7e2f85, 0x7f91b694, | ||
317 | 0x0ab0475c, 0x7f8d8de1, 0x0ae25d8d, 0x7f895182, | ||
318 | 0x0b147211, 0x7f850179, 0x0b4684df, 0x7f809dc5, | ||
319 | 0x0b7895f0, 0x7f7c2668, 0x0baaa53b, 0x7f779b62, | ||
320 | 0x0bdcb2bb, 0x7f72fcb4, 0x0c0ebe66, 0x7f6e4a5e, | ||
321 | 0x0c40c835, 0x7f698461, 0x0c72d020, 0x7f64aabf, | ||
322 | 0x0ca4d620, 0x7f5fbd77, 0x0cd6da2d, 0x7f5abc8a, | ||
323 | 0x0d08dc3f, 0x7f55a7fa, 0x0d3adc4e, 0x7f507fc7, | ||
324 | 0x0d6cda53, 0x7f4b43f2, 0x0d9ed646, 0x7f45f47b, | ||
325 | 0x0dd0d01f, 0x7f409164, 0x0e02c7d7, 0x7f3b1aad, | ||
326 | 0x0e34bd66, 0x7f359057, 0x0e66b0c3, 0x7f2ff263, | ||
327 | 0x0e98a1e9, 0x7f2a40d2, 0x0eca90ce, 0x7f247ba5, | ||
328 | 0x0efc7d6b, 0x7f1ea2dc, 0x0f2e67b8, 0x7f18b679, | ||
329 | 0x0f604faf, 0x7f12b67c, 0x0f923546, 0x7f0ca2e7, | ||
330 | 0x0fc41876, 0x7f067bba, 0x0ff5f938, 0x7f0040f6, | ||
331 | 0x1027d784, 0x7ef9f29d, 0x1059b352, 0x7ef390ae, | ||
332 | 0x108b8c9b, 0x7eed1b2c, 0x10bd6356, 0x7ee69217, | ||
333 | 0x10ef377d, 0x7edff570, 0x11210907, 0x7ed94538, | ||
334 | 0x1152d7ed, 0x7ed28171, 0x1184a427, 0x7ecbaa1a, | ||
335 | 0x11b66dad, 0x7ec4bf36, 0x11e83478, 0x7ebdc0c6, | ||
336 | 0x1219f880, 0x7eb6aeca, 0x124bb9be, 0x7eaf8943, | ||
337 | 0x127d7829, 0x7ea85033, 0x12af33ba, 0x7ea1039b, | ||
338 | 0x12e0ec6a, 0x7e99a37c, 0x1312a230, 0x7e922fd6, | ||
339 | 0x13445505, 0x7e8aa8ac, 0x137604e2, 0x7e830dff, | ||
340 | 0x13a7b1bf, 0x7e7b5fce, 0x13d95b93, 0x7e739e1d, | ||
341 | 0x140b0258, 0x7e6bc8eb, 0x143ca605, 0x7e63e03b, | ||
342 | 0x146e4694, 0x7e5be40c, 0x149fe3fc, 0x7e53d462, | ||
343 | 0x14d17e36, 0x7e4bb13c, 0x1503153a, 0x7e437a9c, | ||
344 | 0x1534a901, 0x7e3b3083, 0x15663982, 0x7e32d2f4, | ||
345 | 0x1597c6b7, 0x7e2a61ed, 0x15c95097, 0x7e21dd73, | ||
346 | 0x15fad71b, 0x7e194584, 0x162c5a3b, 0x7e109a24, | ||
347 | 0x165dd9f0, 0x7e07db52, 0x168f5632, 0x7dff0911, | ||
348 | 0x16c0cef9, 0x7df62362, 0x16f2443e, 0x7ded2a47, | ||
349 | 0x1723b5f9, 0x7de41dc0, 0x17552422, 0x7ddafdce, | ||
350 | 0x17868eb3, 0x7dd1ca75, 0x17b7f5a3, 0x7dc883b4, | ||
351 | 0x17e958ea, 0x7dbf298d, 0x181ab881, 0x7db5bc02, | ||
352 | 0x184c1461, 0x7dac3b15, 0x187d6c82, 0x7da2a6c6, | ||
353 | 0x18aec0db, 0x7d98ff17, 0x18e01167, 0x7d8f4409, | ||
354 | 0x19115e1c, 0x7d85759f, 0x1942a6f3, 0x7d7b93da, | ||
355 | 0x1973ebe6, 0x7d719eba, 0x19a52ceb, 0x7d679642, | ||
356 | 0x19d669fc, 0x7d5d7a74, 0x1a07a311, 0x7d534b50, | ||
357 | 0x1a38d823, 0x7d4908d9, 0x1a6a0929, 0x7d3eb30f, | ||
358 | 0x1a9b361d, 0x7d3449f5, 0x1acc5ef6, 0x7d29cd8c, | ||
359 | 0x1afd83ad, 0x7d1f3dd6, 0x1b2ea43a, 0x7d149ad5, | ||
360 | 0x1b5fc097, 0x7d09e489, 0x1b90d8bb, 0x7cff1af5, | ||
361 | 0x1bc1ec9e, 0x7cf43e1a, 0x1bf2fc3a, 0x7ce94dfb, | ||
362 | 0x1c240786, 0x7cde4a98, 0x1c550e7c, 0x7cd333f3, | ||
363 | 0x1c861113, 0x7cc80a0f, 0x1cb70f43, 0x7cbcccec, | ||
364 | 0x1ce80906, 0x7cb17c8d, 0x1d18fe54, 0x7ca618f3, | ||
365 | 0x1d49ef26, 0x7c9aa221, 0x1d7adb73, 0x7c8f1817, | ||
366 | 0x1dabc334, 0x7c837ad8, 0x1ddca662, 0x7c77ca65, | ||
367 | 0x1e0d84f5, 0x7c6c06c0, 0x1e3e5ee5, 0x7c602fec, | ||
368 | 0x1e6f342c, 0x7c5445e9, 0x1ea004c1, 0x7c4848ba, | ||
369 | 0x1ed0d09d, 0x7c3c3860, 0x1f0197b8, 0x7c3014de, | ||
370 | 0x1f325a0b, 0x7c23de35, 0x1f63178f, 0x7c179467, | ||
371 | 0x1f93d03c, 0x7c0b3777, 0x1fc4840a, 0x7bfec765, | ||
372 | 0x1ff532f2, 0x7bf24434, 0x2025dcec, 0x7be5ade6, | ||
373 | 0x205681f1, 0x7bd9047c, 0x208721f9, 0x7bcc47fa, | ||
374 | 0x20b7bcfe, 0x7bbf7860, 0x20e852f6, 0x7bb295b0, | ||
375 | 0x2118e3dc, 0x7ba59fee, 0x21496fa7, 0x7b989719, | ||
376 | 0x2179f64f, 0x7b8b7b36, 0x21aa77cf, 0x7b7e4c45, | ||
377 | 0x21daf41d, 0x7b710a49, 0x220b6b32, 0x7b63b543, | ||
378 | 0x223bdd08, 0x7b564d36, 0x226c4996, 0x7b48d225, | ||
379 | 0x229cb0d5, 0x7b3b4410, 0x22cd12bd, 0x7b2da2fa, | ||
380 | 0x22fd6f48, 0x7b1feee5, 0x232dc66d, 0x7b1227d3, | ||
381 | 0x235e1826, 0x7b044dc7, 0x238e646a, 0x7af660c2, | ||
382 | 0x23beab33, 0x7ae860c7, 0x23eeec78, 0x7ada4dd8, | ||
383 | 0x241f2833, 0x7acc27f7, 0x244f5e5c, 0x7abdef25, | ||
384 | 0x247f8eec, 0x7aafa367, 0x24afb9da, 0x7aa144bc, | ||
385 | 0x24dfdf20, 0x7a92d329, 0x250ffeb7, 0x7a844eae, | ||
386 | 0x25401896, 0x7a75b74f, 0x25702cb7, 0x7a670d0d, | ||
387 | 0x25a03b11, 0x7a584feb, 0x25d0439f, 0x7a497feb, | ||
388 | 0x26004657, 0x7a3a9d0f, 0x26304333, 0x7a2ba75a, | ||
389 | 0x26603a2c, 0x7a1c9ece, 0x26902b39, 0x7a0d836d, | ||
390 | 0x26c01655, 0x79fe5539, 0x26effb76, 0x79ef1436, | ||
391 | 0x271fda96, 0x79dfc064, 0x274fb3ae, 0x79d059c8, | ||
392 | 0x277f86b5, 0x79c0e062, 0x27af53a6, 0x79b15435, | ||
393 | 0x27df1a77, 0x79a1b545, 0x280edb23, 0x79920392, | ||
394 | 0x283e95a1, 0x79823f20, 0x286e49ea, 0x797267f2, | ||
395 | 0x289df7f8, 0x79627e08, 0x28cd9fc1, 0x79528167, | ||
396 | 0x28fd4140, 0x79427210, 0x292cdc6d, 0x79325006, | ||
397 | 0x295c7140, 0x79221b4b, 0x298bffb2, 0x7911d3e2, | ||
398 | 0x29bb87bc, 0x790179cd, 0x29eb0957, 0x78f10d0f, | ||
399 | 0x2a1a847b, 0x78e08dab, 0x2a49f920, 0x78cffba3, | ||
400 | 0x2a796740, 0x78bf56f9, 0x2aa8ced3, 0x78ae9fb0, | ||
401 | 0x2ad82fd2, 0x789dd5cb, 0x2b078a36, 0x788cf94c, | ||
402 | 0x2b36ddf7, 0x787c0a36, 0x2b662b0e, 0x786b088c, | ||
403 | 0x2b957173, 0x7859f44f, 0x2bc4b120, 0x7848cd83, | ||
404 | 0x2bf3ea0d, 0x7837942b, 0x2c231c33, 0x78264849, | ||
405 | 0x2c52478a, 0x7814e9df, 0x2c816c0c, 0x780378f1, | ||
406 | 0x2cb089b1, 0x77f1f581, 0x2cdfa071, 0x77e05f91, | ||
407 | 0x2d0eb046, 0x77ceb725, 0x2d3db928, 0x77bcfc3f, | ||
408 | 0x2d6cbb10, 0x77ab2ee2, 0x2d9bb5f6, 0x77994f11, | ||
409 | 0x2dcaa9d5, 0x77875cce, 0x2df996a3, 0x7775581d, | ||
410 | 0x2e287c5a, 0x776340ff, 0x2e575af3, 0x77511778, | ||
411 | 0x2e863267, 0x773edb8b, 0x2eb502ae, 0x772c8d3a, | ||
412 | 0x2ee3cbc1, 0x771a2c88, 0x2f128d99, 0x7707b979, | ||
413 | 0x2f41482e, 0x76f5340e, 0x2f6ffb7a, 0x76e29c4b, | ||
414 | 0x2f9ea775, 0x76cff232, 0x2fcd4c19, 0x76bd35c7, | ||
415 | 0x2ffbe95d, 0x76aa670d, 0x302a7f3a, 0x76978605, | ||
416 | 0x30590dab, 0x768492b4, 0x308794a6, 0x76718d1c, | ||
417 | 0x30b61426, 0x765e7540, 0x30e48c22, 0x764b4b23, | ||
418 | 0x3112fc95, 0x76380ec8, 0x31416576, 0x7624c031, | ||
419 | 0x316fc6be, 0x76115f63, 0x319e2067, 0x75fdec60, | ||
420 | 0x31cc7269, 0x75ea672a, 0x31fabcbd, 0x75d6cfc5, | ||
421 | 0x3228ff5c, 0x75c32634, 0x32573a3f, 0x75af6a7b, | ||
422 | 0x32856d5e, 0x759b9c9b, 0x32b398b3, 0x7587bc98, | ||
423 | 0x32e1bc36, 0x7573ca75, 0x330fd7e1, 0x755fc635, | ||
424 | 0x333debab, 0x754bafdc, 0x336bf78f, 0x7537876c, | ||
425 | 0x3399fb85, 0x75234ce8, 0x33c7f785, 0x750f0054, | ||
426 | 0x33f5eb89, 0x74faa1b3, 0x3423d78a, 0x74e63108, | ||
427 | 0x3451bb81, 0x74d1ae55, 0x347f9766, 0x74bd199f, | ||
428 | 0x34ad6b32, 0x74a872e8, 0x34db36df, 0x7493ba34, | ||
429 | 0x3508fa66, 0x747eef85, 0x3536b5be, 0x746a12df, | ||
430 | 0x356468e2, 0x74552446, 0x359213c9, 0x744023bc, | ||
431 | 0x35bfb66e, 0x742b1144, 0x35ed50c9, 0x7415ece2, | ||
432 | 0x361ae2d3, 0x7400b69a, 0x36486c86, 0x73eb6e6e, | ||
433 | 0x3675edd9, 0x73d61461, 0x36a366c6, 0x73c0a878, | ||
434 | 0x36d0d746, 0x73ab2ab4, 0x36fe3f52, 0x73959b1b, | ||
435 | 0x372b9ee3, 0x737ff9ae, 0x3758f5f2, 0x736a4671, | ||
436 | 0x37864477, 0x73548168, 0x37b38a6d, 0x733eaa96, | ||
437 | 0x37e0c7cc, 0x7328c1ff, 0x380dfc8d, 0x7312c7a5, | ||
438 | 0x383b28a9, 0x72fcbb8c, 0x38684c19, 0x72e69db7, | ||
439 | 0x389566d6, 0x72d06e2b, 0x38c278d9, 0x72ba2cea, | ||
440 | 0x38ef821c, 0x72a3d9f7, 0x391c8297, 0x728d7557, | ||
441 | 0x39497a43, 0x7276ff0d, 0x39766919, 0x7260771b, | ||
442 | 0x39a34f13, 0x7249dd86, 0x39d02c2a, 0x72333251, | ||
443 | 0x39fd0056, 0x721c7580, 0x3a29cb91, 0x7205a716, | ||
444 | 0x3a568dd4, 0x71eec716, 0x3a834717, 0x71d7d585, | ||
445 | 0x3aaff755, 0x71c0d265, 0x3adc9e86, 0x71a9bdba, | ||
446 | 0x3b093ca3, 0x71929789, 0x3b35d1a5, 0x717b5fd3, | ||
447 | 0x3b625d86, 0x7164169d, 0x3b8ee03e, 0x714cbbeb, | ||
448 | 0x3bbb59c7, 0x71354fc0, 0x3be7ca1a, 0x711dd220, | ||
449 | 0x3c143130, 0x7106430e, 0x3c408f03, 0x70eea28e, | ||
450 | 0x3c6ce38a, 0x70d6f0a4, 0x3c992ec0, 0x70bf2d53, | ||
451 | 0x3cc5709e, 0x70a7589f, 0x3cf1a91c, 0x708f728b, | ||
452 | 0x3d1dd835, 0x70777b1c, 0x3d49fde1, 0x705f7255, | ||
453 | 0x3d761a19, 0x70475839, 0x3da22cd7, 0x702f2ccd, | ||
454 | 0x3dce3614, 0x7016f014, 0x3dfa35c8, 0x6ffea212, | ||
455 | 0x3e262bee, 0x6fe642ca, 0x3e52187f, 0x6fcdd241, | ||
456 | 0x3e7dfb73, 0x6fb5507a, 0x3ea9d4c3, 0x6f9cbd79, | ||
457 | 0x3ed5a46b, 0x6f841942, 0x3f016a61, 0x6f6b63d8, | ||
458 | 0x3f2d26a0, 0x6f529d40, 0x3f58d921, 0x6f39c57d, | ||
459 | 0x3f8481dd, 0x6f20dc92, 0x3fb020ce, 0x6f07e285, | ||
460 | 0x3fdbb5ec, 0x6eeed758, 0x40074132, 0x6ed5bb10, | ||
461 | 0x4032c297, 0x6ebc8db0, 0x405e3a16, 0x6ea34f3d, | ||
462 | 0x4089a7a8, 0x6e89ffb9, 0x40b50b46, 0x6e709f2a, | ||
463 | 0x40e064ea, 0x6e572d93, 0x410bb48c, 0x6e3daaf8, | ||
464 | 0x4136fa27, 0x6e24175c, 0x416235b2, 0x6e0a72c5, | ||
465 | 0x418d6729, 0x6df0bd35, 0x41b88e84, 0x6dd6f6b1, | ||
466 | 0x41e3abbc, 0x6dbd1f3c, 0x420ebecb, 0x6da336dc, | ||
467 | 0x4239c7aa, 0x6d893d93, 0x4264c653, 0x6d6f3365, | ||
468 | 0x428fbabe, 0x6d551858, 0x42baa4e6, 0x6d3aec6e, | ||
469 | 0x42e584c3, 0x6d20afac, 0x43105a50, 0x6d066215, | ||
470 | 0x433b2585, 0x6cec03af, 0x4365e65b, 0x6cd1947c, | ||
471 | 0x43909ccd, 0x6cb71482, 0x43bb48d4, 0x6c9c83c3, | ||
472 | 0x43e5ea68, 0x6c81e245, 0x44108184, 0x6c67300b, | ||
473 | 0x443b0e21, 0x6c4c6d1a, 0x44659039, 0x6c319975, | ||
474 | 0x449007c4, 0x6c16b521, 0x44ba74bd, 0x6bfbc021, | ||
475 | 0x44e4d71c, 0x6be0ba7b, 0x450f2edb, 0x6bc5a431, | ||
476 | 0x45397bf4, 0x6baa7d49, 0x4563be60, 0x6b8f45c7, | ||
477 | 0x458df619, 0x6b73fdae, 0x45b82318, 0x6b58a503, | ||
478 | 0x45e24556, 0x6b3d3bcb, 0x460c5cce, 0x6b21c208, | ||
479 | 0x46366978, 0x6b0637c1, 0x46606b4e, 0x6aea9cf8, | ||
480 | 0x468a624a, 0x6acef1b2, 0x46b44e65, 0x6ab335f4, | ||
481 | 0x46de2f99, 0x6a9769c1, 0x470805df, 0x6a7b8d1e, | ||
482 | 0x4731d131, 0x6a5fa010, 0x475b9188, 0x6a43a29a, | ||
483 | 0x478546de, 0x6a2794c1, 0x47aef12c, 0x6a0b7689, | ||
484 | 0x47d8906d, 0x69ef47f6, 0x48022499, 0x69d3090e, | ||
485 | 0x482badab, 0x69b6b9d3, 0x48552b9b, 0x699a5a4c, | ||
486 | 0x487e9e64, 0x697dea7b, 0x48a805ff, 0x69616a65, | ||
487 | 0x48d16265, 0x6944da10, 0x48fab391, 0x6928397e, | ||
488 | 0x4923f97b, 0x690b88b5, 0x494d341e, 0x68eec7b9, | ||
489 | 0x49766373, 0x68d1f68f, 0x499f8774, 0x68b5153a, | ||
490 | 0x49c8a01b, 0x689823bf, 0x49f1ad61, 0x687b2224, | ||
491 | 0x4a1aaf3f, 0x685e106c, 0x4a43a5b0, 0x6840ee9b, | ||
492 | 0x4a6c90ad, 0x6823bcb7, 0x4a957030, 0x68067ac3, | ||
493 | 0x4abe4433, 0x67e928c5, 0x4ae70caf, 0x67cbc6c0, | ||
494 | 0x4b0fc99d, 0x67ae54ba, 0x4b387af9, 0x6790d2b6, | ||
495 | 0x4b6120bb, 0x677340ba, 0x4b89badd, 0x67559eca, | ||
496 | 0x4bb24958, 0x6737ecea, 0x4bdacc28, 0x671a2b20, | ||
497 | 0x4c034345, 0x66fc596f, 0x4c2baea9, 0x66de77dc, | ||
498 | 0x4c540e4e, 0x66c0866d, 0x4c7c622d, 0x66a28524, | ||
499 | 0x4ca4aa41, 0x66847408, 0x4ccce684, 0x6666531d, | ||
500 | 0x4cf516ee, 0x66482267, 0x4d1d3b7a, 0x6629e1ec, | ||
501 | 0x4d455422, 0x660b91af, 0x4d6d60df, 0x65ed31b5, | ||
502 | 0x4d9561ac, 0x65cec204, 0x4dbd5682, 0x65b0429f, | ||
503 | 0x4de53f5a, 0x6591b38c, 0x4e0d1c30, 0x657314cf, | ||
504 | 0x4e34ecfc, 0x6554666d, 0x4e5cb1b9, 0x6535a86b, | ||
505 | 0x4e846a60, 0x6516dacd, 0x4eac16eb, 0x64f7fd98, | ||
506 | 0x4ed3b755, 0x64d910d1, 0x4efb4b96, 0x64ba147d, | ||
507 | 0x4f22d3aa, 0x649b08a0, 0x4f4a4f89, 0x647bed3f, | ||
508 | 0x4f71bf2e, 0x645cc260, 0x4f992293, 0x643d8806, | ||
509 | 0x4fc079b1, 0x641e3e38, 0x4fe7c483, 0x63fee4f8, | ||
510 | 0x500f0302, 0x63df7c4d, 0x50363529, 0x63c0043b, | ||
511 | 0x505d5af1, 0x63a07cc7, 0x50847454, 0x6380e5f6, | ||
512 | 0x50ab814d, 0x63613fcd, 0x50d281d5, 0x63418a50, | ||
513 | 0x50f975e6, 0x6321c585, 0x51205d7b, 0x6301f171, | ||
514 | 0x5147388c, 0x62e20e17, 0x516e0715, 0x62c21b7e, | ||
515 | 0x5194c910, 0x62a219aa, 0x51bb7e75, 0x628208a1, | ||
516 | 0x51e22740, 0x6261e866, 0x5208c36a, 0x6241b8ff, | ||
517 | 0x522f52ee, 0x62217a72, 0x5255d5c5, 0x62012cc2, | ||
518 | 0x527c4bea, 0x61e0cff5, 0x52a2b556, 0x61c06410, | ||
519 | 0x52c91204, 0x619fe918, 0x52ef61ee, 0x617f5f12, | ||
520 | 0x5315a50e, 0x615ec603, 0x533bdb5d, 0x613e1df0, | ||
521 | 0x536204d7, 0x611d66de, 0x53882175, 0x60fca0d2, | ||
522 | 0x53ae3131, 0x60dbcbd1, 0x53d43406, 0x60bae7e1, | ||
523 | 0x53fa29ed, 0x6099f505, 0x542012e1, 0x6078f344, | ||
524 | 0x5445eedb, 0x6057e2a2, 0x546bbdd7, 0x6036c325, | ||
525 | 0x54917fce, 0x601594d1, 0x54b734ba, 0x5ff457ad, | ||
526 | 0x54dcdc96, 0x5fd30bbc, 0x5502775c, 0x5fb1b104, | ||
527 | 0x55280505, 0x5f90478a, 0x554d858d, 0x5f6ecf53, | ||
528 | 0x5572f8ed, 0x5f4d4865, 0x55985f20, 0x5f2bb2c5, | ||
529 | 0x55bdb81f, 0x5f0a0e77, 0x55e303e6, 0x5ee85b82, | ||
530 | 0x5608426e, 0x5ec699e9, 0x562d73b2, 0x5ea4c9b3, | ||
531 | 0x565297ab, 0x5e82eae5, 0x5677ae54, 0x5e60fd84, | ||
532 | 0x569cb7a8, 0x5e3f0194, 0x56c1b3a1, 0x5e1cf71c, | ||
533 | 0x56e6a239, 0x5dfade20, 0x570b8369, 0x5dd8b6a7, | ||
534 | 0x5730572e, 0x5db680b4, 0x57551d80, 0x5d943c4e, | ||
535 | 0x5779d65b, 0x5d71e979, 0x579e81b8, 0x5d4f883b, | ||
536 | 0x57c31f92, 0x5d2d189a, 0x57e7afe4, 0x5d0a9a9a, | ||
537 | 0x580c32a7, 0x5ce80e41, 0x5830a7d6, 0x5cc57394, | ||
538 | 0x58550f6c, 0x5ca2ca99, 0x58796962, 0x5c801354, | ||
539 | 0x589db5b3, 0x5c5d4dcc, 0x58c1f45b, 0x5c3a7a05, | ||
540 | 0x58e62552, 0x5c179806, 0x590a4893, 0x5bf4a7d2, | ||
541 | 0x592e5e19, 0x5bd1a971, 0x595265df, 0x5bae9ce7, | ||
542 | 0x59765fde, 0x5b8b8239, 0x599a4c12, 0x5b68596d, | ||
543 | 0x59be2a74, 0x5b452288, 0x59e1faff, 0x5b21dd90, | ||
544 | 0x5a05bdae, 0x5afe8a8b, 0x5a29727b, 0x5adb297d, | ||
545 | 0x5a4d1960, 0x5ab7ba6c, 0x5a70b258, 0x5a943d5e, | ||
546 | }; | ||
547 | |||
diff --git a/apps/codecs/lib/mdct_lookup.h b/apps/codecs/lib/mdct_lookup.h index 65f1e49316..67e166b783 100644 --- a/apps/codecs/lib/mdct_lookup.h +++ b/apps/codecs/lib/mdct_lookup.h | |||
@@ -16,529 +16,8 @@ | |||
16 | ********************************************************************/ | 16 | ********************************************************************/ |
17 | 17 | ||
18 | 18 | ||
19 | extern const int32_t sincos_lookup0[1026]; | ||
20 | extern const int32_t sincos_lookup1[1024]; | ||
19 | 21 | ||
20 | 22 | ||
21 | 23 | ||
22 | |||
23 | |||
24 | /* {sin(2*i*PI/4096), cos(2*i*PI/4096)}, with i = 0 to 512 */ | ||
25 | static const int32_t sincos_lookup0[1026] ICONST_ATTR = { | ||
26 | X(0x00000000), X(0x7fffffff), X(0x003243f5), X(0x7ffff621), | ||
27 | X(0x006487e3), X(0x7fffd886), X(0x0096cbc1), X(0x7fffa72c), | ||
28 | X(0x00c90f88), X(0x7fff6216), X(0x00fb5330), X(0x7fff0943), | ||
29 | X(0x012d96b1), X(0x7ffe9cb2), X(0x015fda03), X(0x7ffe1c65), | ||
30 | X(0x01921d20), X(0x7ffd885a), X(0x01c45ffe), X(0x7ffce093), | ||
31 | X(0x01f6a297), X(0x7ffc250f), X(0x0228e4e2), X(0x7ffb55ce), | ||
32 | X(0x025b26d7), X(0x7ffa72d1), X(0x028d6870), X(0x7ff97c18), | ||
33 | X(0x02bfa9a4), X(0x7ff871a2), X(0x02f1ea6c), X(0x7ff75370), | ||
34 | X(0x03242abf), X(0x7ff62182), X(0x03566a96), X(0x7ff4dbd9), | ||
35 | X(0x0388a9ea), X(0x7ff38274), X(0x03bae8b2), X(0x7ff21553), | ||
36 | X(0x03ed26e6), X(0x7ff09478), X(0x041f6480), X(0x7feeffe1), | ||
37 | X(0x0451a177), X(0x7fed5791), X(0x0483ddc3), X(0x7feb9b85), | ||
38 | X(0x04b6195d), X(0x7fe9cbc0), X(0x04e8543e), X(0x7fe7e841), | ||
39 | X(0x051a8e5c), X(0x7fe5f108), X(0x054cc7b1), X(0x7fe3e616), | ||
40 | X(0x057f0035), X(0x7fe1c76b), X(0x05b137df), X(0x7fdf9508), | ||
41 | X(0x05e36ea9), X(0x7fdd4eec), X(0x0615a48b), X(0x7fdaf519), | ||
42 | X(0x0647d97c), X(0x7fd8878e), X(0x067a0d76), X(0x7fd6064c), | ||
43 | X(0x06ac406f), X(0x7fd37153), X(0x06de7262), X(0x7fd0c8a3), | ||
44 | X(0x0710a345), X(0x7fce0c3e), X(0x0742d311), X(0x7fcb3c23), | ||
45 | X(0x077501be), X(0x7fc85854), X(0x07a72f45), X(0x7fc560cf), | ||
46 | X(0x07d95b9e), X(0x7fc25596), X(0x080b86c2), X(0x7fbf36aa), | ||
47 | X(0x083db0a7), X(0x7fbc040a), X(0x086fd947), X(0x7fb8bdb8), | ||
48 | X(0x08a2009a), X(0x7fb563b3), X(0x08d42699), X(0x7fb1f5fc), | ||
49 | X(0x09064b3a), X(0x7fae7495), X(0x09386e78), X(0x7faadf7c), | ||
50 | X(0x096a9049), X(0x7fa736b4), X(0x099cb0a7), X(0x7fa37a3c), | ||
51 | X(0x09cecf89), X(0x7f9faa15), X(0x0a00ece8), X(0x7f9bc640), | ||
52 | X(0x0a3308bd), X(0x7f97cebd), X(0x0a6522fe), X(0x7f93c38c), | ||
53 | X(0x0a973ba5), X(0x7f8fa4b0), X(0x0ac952aa), X(0x7f8b7227), | ||
54 | X(0x0afb6805), X(0x7f872bf3), X(0x0b2d7baf), X(0x7f82d214), | ||
55 | X(0x0b5f8d9f), X(0x7f7e648c), X(0x0b919dcf), X(0x7f79e35a), | ||
56 | X(0x0bc3ac35), X(0x7f754e80), X(0x0bf5b8cb), X(0x7f70a5fe), | ||
57 | X(0x0c27c389), X(0x7f6be9d4), X(0x0c59cc68), X(0x7f671a05), | ||
58 | X(0x0c8bd35e), X(0x7f62368f), X(0x0cbdd865), X(0x7f5d3f75), | ||
59 | X(0x0cefdb76), X(0x7f5834b7), X(0x0d21dc87), X(0x7f531655), | ||
60 | X(0x0d53db92), X(0x7f4de451), X(0x0d85d88f), X(0x7f489eaa), | ||
61 | X(0x0db7d376), X(0x7f434563), X(0x0de9cc40), X(0x7f3dd87c), | ||
62 | X(0x0e1bc2e4), X(0x7f3857f6), X(0x0e4db75b), X(0x7f32c3d1), | ||
63 | X(0x0e7fa99e), X(0x7f2d1c0e), X(0x0eb199a4), X(0x7f2760af), | ||
64 | X(0x0ee38766), X(0x7f2191b4), X(0x0f1572dc), X(0x7f1baf1e), | ||
65 | X(0x0f475bff), X(0x7f15b8ee), X(0x0f7942c7), X(0x7f0faf25), | ||
66 | X(0x0fab272b), X(0x7f0991c4), X(0x0fdd0926), X(0x7f0360cb), | ||
67 | X(0x100ee8ad), X(0x7efd1c3c), X(0x1040c5bb), X(0x7ef6c418), | ||
68 | X(0x1072a048), X(0x7ef05860), X(0x10a4784b), X(0x7ee9d914), | ||
69 | X(0x10d64dbd), X(0x7ee34636), X(0x11082096), X(0x7edc9fc6), | ||
70 | X(0x1139f0cf), X(0x7ed5e5c6), X(0x116bbe60), X(0x7ecf1837), | ||
71 | X(0x119d8941), X(0x7ec8371a), X(0x11cf516a), X(0x7ec14270), | ||
72 | X(0x120116d5), X(0x7eba3a39), X(0x1232d979), X(0x7eb31e78), | ||
73 | X(0x1264994e), X(0x7eabef2c), X(0x1296564d), X(0x7ea4ac58), | ||
74 | X(0x12c8106f), X(0x7e9d55fc), X(0x12f9c7aa), X(0x7e95ec1a), | ||
75 | X(0x132b7bf9), X(0x7e8e6eb2), X(0x135d2d53), X(0x7e86ddc6), | ||
76 | X(0x138edbb1), X(0x7e7f3957), X(0x13c0870a), X(0x7e778166), | ||
77 | X(0x13f22f58), X(0x7e6fb5f4), X(0x1423d492), X(0x7e67d703), | ||
78 | X(0x145576b1), X(0x7e5fe493), X(0x148715ae), X(0x7e57dea7), | ||
79 | X(0x14b8b17f), X(0x7e4fc53e), X(0x14ea4a1f), X(0x7e47985b), | ||
80 | X(0x151bdf86), X(0x7e3f57ff), X(0x154d71aa), X(0x7e37042a), | ||
81 | X(0x157f0086), X(0x7e2e9cdf), X(0x15b08c12), X(0x7e26221f), | ||
82 | X(0x15e21445), X(0x7e1d93ea), X(0x16139918), X(0x7e14f242), | ||
83 | X(0x16451a83), X(0x7e0c3d29), X(0x1676987f), X(0x7e0374a0), | ||
84 | X(0x16a81305), X(0x7dfa98a8), X(0x16d98a0c), X(0x7df1a942), | ||
85 | X(0x170afd8d), X(0x7de8a670), X(0x173c6d80), X(0x7ddf9034), | ||
86 | X(0x176dd9de), X(0x7dd6668f), X(0x179f429f), X(0x7dcd2981), | ||
87 | X(0x17d0a7bc), X(0x7dc3d90d), X(0x1802092c), X(0x7dba7534), | ||
88 | X(0x183366e9), X(0x7db0fdf8), X(0x1864c0ea), X(0x7da77359), | ||
89 | X(0x18961728), X(0x7d9dd55a), X(0x18c7699b), X(0x7d9423fc), | ||
90 | X(0x18f8b83c), X(0x7d8a5f40), X(0x192a0304), X(0x7d808728), | ||
91 | X(0x195b49ea), X(0x7d769bb5), X(0x198c8ce7), X(0x7d6c9ce9), | ||
92 | X(0x19bdcbf3), X(0x7d628ac6), X(0x19ef0707), X(0x7d58654d), | ||
93 | X(0x1a203e1b), X(0x7d4e2c7f), X(0x1a517128), X(0x7d43e05e), | ||
94 | X(0x1a82a026), X(0x7d3980ec), X(0x1ab3cb0d), X(0x7d2f0e2b), | ||
95 | X(0x1ae4f1d6), X(0x7d24881b), X(0x1b161479), X(0x7d19eebf), | ||
96 | X(0x1b4732ef), X(0x7d0f4218), X(0x1b784d30), X(0x7d048228), | ||
97 | X(0x1ba96335), X(0x7cf9aef0), X(0x1bda74f6), X(0x7ceec873), | ||
98 | X(0x1c0b826a), X(0x7ce3ceb2), X(0x1c3c8b8c), X(0x7cd8c1ae), | ||
99 | X(0x1c6d9053), X(0x7ccda169), X(0x1c9e90b8), X(0x7cc26de5), | ||
100 | X(0x1ccf8cb3), X(0x7cb72724), X(0x1d00843d), X(0x7cabcd28), | ||
101 | X(0x1d31774d), X(0x7ca05ff1), X(0x1d6265dd), X(0x7c94df83), | ||
102 | X(0x1d934fe5), X(0x7c894bde), X(0x1dc4355e), X(0x7c7da505), | ||
103 | X(0x1df5163f), X(0x7c71eaf9), X(0x1e25f282), X(0x7c661dbc), | ||
104 | X(0x1e56ca1e), X(0x7c5a3d50), X(0x1e879d0d), X(0x7c4e49b7), | ||
105 | X(0x1eb86b46), X(0x7c4242f2), X(0x1ee934c3), X(0x7c362904), | ||
106 | X(0x1f19f97b), X(0x7c29fbee), X(0x1f4ab968), X(0x7c1dbbb3), | ||
107 | X(0x1f7b7481), X(0x7c116853), X(0x1fac2abf), X(0x7c0501d2), | ||
108 | X(0x1fdcdc1b), X(0x7bf88830), X(0x200d888d), X(0x7bebfb70), | ||
109 | X(0x203e300d), X(0x7bdf5b94), X(0x206ed295), X(0x7bd2a89e), | ||
110 | X(0x209f701c), X(0x7bc5e290), X(0x20d0089c), X(0x7bb9096b), | ||
111 | X(0x21009c0c), X(0x7bac1d31), X(0x21312a65), X(0x7b9f1de6), | ||
112 | X(0x2161b3a0), X(0x7b920b89), X(0x219237b5), X(0x7b84e61f), | ||
113 | X(0x21c2b69c), X(0x7b77ada8), X(0x21f3304f), X(0x7b6a6227), | ||
114 | X(0x2223a4c5), X(0x7b5d039e), X(0x225413f8), X(0x7b4f920e), | ||
115 | X(0x22847de0), X(0x7b420d7a), X(0x22b4e274), X(0x7b3475e5), | ||
116 | X(0x22e541af), X(0x7b26cb4f), X(0x23159b88), X(0x7b190dbc), | ||
117 | X(0x2345eff8), X(0x7b0b3d2c), X(0x23763ef7), X(0x7afd59a4), | ||
118 | X(0x23a6887f), X(0x7aef6323), X(0x23d6cc87), X(0x7ae159ae), | ||
119 | X(0x24070b08), X(0x7ad33d45), X(0x243743fa), X(0x7ac50dec), | ||
120 | X(0x24677758), X(0x7ab6cba4), X(0x2497a517), X(0x7aa8766f), | ||
121 | X(0x24c7cd33), X(0x7a9a0e50), X(0x24f7efa2), X(0x7a8b9348), | ||
122 | X(0x25280c5e), X(0x7a7d055b), X(0x2558235f), X(0x7a6e648a), | ||
123 | X(0x2588349d), X(0x7a5fb0d8), X(0x25b84012), X(0x7a50ea47), | ||
124 | X(0x25e845b6), X(0x7a4210d8), X(0x26184581), X(0x7a332490), | ||
125 | X(0x26483f6c), X(0x7a24256f), X(0x26783370), X(0x7a151378), | ||
126 | X(0x26a82186), X(0x7a05eead), X(0x26d809a5), X(0x79f6b711), | ||
127 | X(0x2707ebc7), X(0x79e76ca7), X(0x2737c7e3), X(0x79d80f6f), | ||
128 | X(0x27679df4), X(0x79c89f6e), X(0x27976df1), X(0x79b91ca4), | ||
129 | X(0x27c737d3), X(0x79a98715), X(0x27f6fb92), X(0x7999dec4), | ||
130 | X(0x2826b928), X(0x798a23b1), X(0x2856708d), X(0x797a55e0), | ||
131 | X(0x288621b9), X(0x796a7554), X(0x28b5cca5), X(0x795a820e), | ||
132 | X(0x28e5714b), X(0x794a7c12), X(0x29150fa1), X(0x793a6361), | ||
133 | X(0x2944a7a2), X(0x792a37fe), X(0x29743946), X(0x7919f9ec), | ||
134 | X(0x29a3c485), X(0x7909a92d), X(0x29d34958), X(0x78f945c3), | ||
135 | X(0x2a02c7b8), X(0x78e8cfb2), X(0x2a323f9e), X(0x78d846fb), | ||
136 | X(0x2a61b101), X(0x78c7aba2), X(0x2a911bdc), X(0x78b6fda8), | ||
137 | X(0x2ac08026), X(0x78a63d11), X(0x2aefddd8), X(0x789569df), | ||
138 | X(0x2b1f34eb), X(0x78848414), X(0x2b4e8558), X(0x78738bb3), | ||
139 | X(0x2b7dcf17), X(0x786280bf), X(0x2bad1221), X(0x7851633b), | ||
140 | X(0x2bdc4e6f), X(0x78403329), X(0x2c0b83fa), X(0x782ef08b), | ||
141 | X(0x2c3ab2b9), X(0x781d9b65), X(0x2c69daa6), X(0x780c33b8), | ||
142 | X(0x2c98fbba), X(0x77fab989), X(0x2cc815ee), X(0x77e92cd9), | ||
143 | X(0x2cf72939), X(0x77d78daa), X(0x2d263596), X(0x77c5dc01), | ||
144 | X(0x2d553afc), X(0x77b417df), X(0x2d843964), X(0x77a24148), | ||
145 | X(0x2db330c7), X(0x7790583e), X(0x2de2211e), X(0x777e5cc3), | ||
146 | X(0x2e110a62), X(0x776c4edb), X(0x2e3fec8b), X(0x775a2e89), | ||
147 | X(0x2e6ec792), X(0x7747fbce), X(0x2e9d9b70), X(0x7735b6af), | ||
148 | X(0x2ecc681e), X(0x77235f2d), X(0x2efb2d95), X(0x7710f54c), | ||
149 | X(0x2f29ebcc), X(0x76fe790e), X(0x2f58a2be), X(0x76ebea77), | ||
150 | X(0x2f875262), X(0x76d94989), X(0x2fb5fab2), X(0x76c69647), | ||
151 | X(0x2fe49ba7), X(0x76b3d0b4), X(0x30133539), X(0x76a0f8d2), | ||
152 | X(0x3041c761), X(0x768e0ea6), X(0x30705217), X(0x767b1231), | ||
153 | X(0x309ed556), X(0x76680376), X(0x30cd5115), X(0x7654e279), | ||
154 | X(0x30fbc54d), X(0x7641af3d), X(0x312a31f8), X(0x762e69c4), | ||
155 | X(0x3158970e), X(0x761b1211), X(0x3186f487), X(0x7607a828), | ||
156 | X(0x31b54a5e), X(0x75f42c0b), X(0x31e39889), X(0x75e09dbd), | ||
157 | X(0x3211df04), X(0x75ccfd42), X(0x32401dc6), X(0x75b94a9c), | ||
158 | X(0x326e54c7), X(0x75a585cf), X(0x329c8402), X(0x7591aedd), | ||
159 | X(0x32caab6f), X(0x757dc5ca), X(0x32f8cb07), X(0x7569ca99), | ||
160 | X(0x3326e2c3), X(0x7555bd4c), X(0x3354f29b), X(0x75419de7), | ||
161 | X(0x3382fa88), X(0x752d6c6c), X(0x33b0fa84), X(0x751928e0), | ||
162 | X(0x33def287), X(0x7504d345), X(0x340ce28b), X(0x74f06b9e), | ||
163 | X(0x343aca87), X(0x74dbf1ef), X(0x3468aa76), X(0x74c7663a), | ||
164 | X(0x34968250), X(0x74b2c884), X(0x34c4520d), X(0x749e18cd), | ||
165 | X(0x34f219a8), X(0x7489571c), X(0x351fd918), X(0x74748371), | ||
166 | X(0x354d9057), X(0x745f9dd1), X(0x357b3f5d), X(0x744aa63f), | ||
167 | X(0x35a8e625), X(0x74359cbd), X(0x35d684a6), X(0x74208150), | ||
168 | X(0x36041ad9), X(0x740b53fb), X(0x3631a8b8), X(0x73f614c0), | ||
169 | X(0x365f2e3b), X(0x73e0c3a3), X(0x368cab5c), X(0x73cb60a8), | ||
170 | X(0x36ba2014), X(0x73b5ebd1), X(0x36e78c5b), X(0x73a06522), | ||
171 | X(0x3714f02a), X(0x738acc9e), X(0x37424b7b), X(0x73752249), | ||
172 | X(0x376f9e46), X(0x735f6626), X(0x379ce885), X(0x73499838), | ||
173 | X(0x37ca2a30), X(0x7333b883), X(0x37f76341), X(0x731dc70a), | ||
174 | X(0x382493b0), X(0x7307c3d0), X(0x3851bb77), X(0x72f1aed9), | ||
175 | X(0x387eda8e), X(0x72db8828), X(0x38abf0ef), X(0x72c54fc1), | ||
176 | X(0x38d8fe93), X(0x72af05a7), X(0x39060373), X(0x7298a9dd), | ||
177 | X(0x3932ff87), X(0x72823c67), X(0x395ff2c9), X(0x726bbd48), | ||
178 | X(0x398cdd32), X(0x72552c85), X(0x39b9bebc), X(0x723e8a20), | ||
179 | X(0x39e6975e), X(0x7227d61c), X(0x3a136712), X(0x7211107e), | ||
180 | X(0x3a402dd2), X(0x71fa3949), X(0x3a6ceb96), X(0x71e35080), | ||
181 | X(0x3a99a057), X(0x71cc5626), X(0x3ac64c0f), X(0x71b54a41), | ||
182 | X(0x3af2eeb7), X(0x719e2cd2), X(0x3b1f8848), X(0x7186fdde), | ||
183 | X(0x3b4c18ba), X(0x716fbd68), X(0x3b78a007), X(0x71586b74), | ||
184 | X(0x3ba51e29), X(0x71410805), X(0x3bd19318), X(0x7129931f), | ||
185 | X(0x3bfdfecd), X(0x71120cc5), X(0x3c2a6142), X(0x70fa74fc), | ||
186 | X(0x3c56ba70), X(0x70e2cbc6), X(0x3c830a50), X(0x70cb1128), | ||
187 | X(0x3caf50da), X(0x70b34525), X(0x3cdb8e09), X(0x709b67c0), | ||
188 | X(0x3d07c1d6), X(0x708378ff), X(0x3d33ec39), X(0x706b78e3), | ||
189 | X(0x3d600d2c), X(0x70536771), X(0x3d8c24a8), X(0x703b44ad), | ||
190 | X(0x3db832a6), X(0x7023109a), X(0x3de4371f), X(0x700acb3c), | ||
191 | X(0x3e10320d), X(0x6ff27497), X(0x3e3c2369), X(0x6fda0cae), | ||
192 | X(0x3e680b2c), X(0x6fc19385), X(0x3e93e950), X(0x6fa90921), | ||
193 | X(0x3ebfbdcd), X(0x6f906d84), X(0x3eeb889c), X(0x6f77c0b3), | ||
194 | X(0x3f1749b8), X(0x6f5f02b2), X(0x3f430119), X(0x6f463383), | ||
195 | X(0x3f6eaeb8), X(0x6f2d532c), X(0x3f9a5290), X(0x6f1461b0), | ||
196 | X(0x3fc5ec98), X(0x6efb5f12), X(0x3ff17cca), X(0x6ee24b57), | ||
197 | X(0x401d0321), X(0x6ec92683), X(0x40487f94), X(0x6eaff099), | ||
198 | X(0x4073f21d), X(0x6e96a99d), X(0x409f5ab6), X(0x6e7d5193), | ||
199 | X(0x40cab958), X(0x6e63e87f), X(0x40f60dfb), X(0x6e4a6e66), | ||
200 | X(0x4121589b), X(0x6e30e34a), X(0x414c992f), X(0x6e174730), | ||
201 | X(0x4177cfb1), X(0x6dfd9a1c), X(0x41a2fc1a), X(0x6de3dc11), | ||
202 | X(0x41ce1e65), X(0x6dca0d14), X(0x41f93689), X(0x6db02d29), | ||
203 | X(0x42244481), X(0x6d963c54), X(0x424f4845), X(0x6d7c3a98), | ||
204 | X(0x427a41d0), X(0x6d6227fa), X(0x42a5311b), X(0x6d48047e), | ||
205 | X(0x42d0161e), X(0x6d2dd027), X(0x42faf0d4), X(0x6d138afb), | ||
206 | X(0x4325c135), X(0x6cf934fc), X(0x4350873c), X(0x6cdece2f), | ||
207 | X(0x437b42e1), X(0x6cc45698), X(0x43a5f41e), X(0x6ca9ce3b), | ||
208 | X(0x43d09aed), X(0x6c8f351c), X(0x43fb3746), X(0x6c748b3f), | ||
209 | X(0x4425c923), X(0x6c59d0a9), X(0x4450507e), X(0x6c3f055d), | ||
210 | X(0x447acd50), X(0x6c242960), X(0x44a53f93), X(0x6c093cb6), | ||
211 | X(0x44cfa740), X(0x6bee3f62), X(0x44fa0450), X(0x6bd3316a), | ||
212 | X(0x452456bd), X(0x6bb812d1), X(0x454e9e80), X(0x6b9ce39b), | ||
213 | X(0x4578db93), X(0x6b81a3cd), X(0x45a30df0), X(0x6b66536b), | ||
214 | X(0x45cd358f), X(0x6b4af279), X(0x45f7526b), X(0x6b2f80fb), | ||
215 | X(0x4621647d), X(0x6b13fef5), X(0x464b6bbe), X(0x6af86c6c), | ||
216 | X(0x46756828), X(0x6adcc964), X(0x469f59b4), X(0x6ac115e2), | ||
217 | X(0x46c9405c), X(0x6aa551e9), X(0x46f31c1a), X(0x6a897d7d), | ||
218 | X(0x471cece7), X(0x6a6d98a4), X(0x4746b2bc), X(0x6a51a361), | ||
219 | X(0x47706d93), X(0x6a359db9), X(0x479a1d67), X(0x6a1987b0), | ||
220 | X(0x47c3c22f), X(0x69fd614a), X(0x47ed5be6), X(0x69e12a8c), | ||
221 | X(0x4816ea86), X(0x69c4e37a), X(0x48406e08), X(0x69a88c19), | ||
222 | X(0x4869e665), X(0x698c246c), X(0x48935397), X(0x696fac78), | ||
223 | X(0x48bcb599), X(0x69532442), X(0x48e60c62), X(0x69368bce), | ||
224 | X(0x490f57ee), X(0x6919e320), X(0x49389836), X(0x68fd2a3d), | ||
225 | X(0x4961cd33), X(0x68e06129), X(0x498af6df), X(0x68c387e9), | ||
226 | X(0x49b41533), X(0x68a69e81), X(0x49dd282a), X(0x6889a4f6), | ||
227 | X(0x4a062fbd), X(0x686c9b4b), X(0x4a2f2be6), X(0x684f8186), | ||
228 | X(0x4a581c9e), X(0x683257ab), X(0x4a8101de), X(0x68151dbe), | ||
229 | X(0x4aa9dba2), X(0x67f7d3c5), X(0x4ad2a9e2), X(0x67da79c3), | ||
230 | X(0x4afb6c98), X(0x67bd0fbd), X(0x4b2423be), X(0x679f95b7), | ||
231 | X(0x4b4ccf4d), X(0x67820bb7), X(0x4b756f40), X(0x676471c0), | ||
232 | X(0x4b9e0390), X(0x6746c7d8), X(0x4bc68c36), X(0x67290e02), | ||
233 | X(0x4bef092d), X(0x670b4444), X(0x4c177a6e), X(0x66ed6aa1), | ||
234 | X(0x4c3fdff4), X(0x66cf8120), X(0x4c6839b7), X(0x66b187c3), | ||
235 | X(0x4c9087b1), X(0x66937e91), X(0x4cb8c9dd), X(0x6675658c), | ||
236 | X(0x4ce10034), X(0x66573cbb), X(0x4d092ab0), X(0x66390422), | ||
237 | X(0x4d31494b), X(0x661abbc5), X(0x4d595bfe), X(0x65fc63a9), | ||
238 | X(0x4d8162c4), X(0x65ddfbd3), X(0x4da95d96), X(0x65bf8447), | ||
239 | X(0x4dd14c6e), X(0x65a0fd0b), X(0x4df92f46), X(0x65826622), | ||
240 | X(0x4e210617), X(0x6563bf92), X(0x4e48d0dd), X(0x6545095f), | ||
241 | X(0x4e708f8f), X(0x6526438f), X(0x4e984229), X(0x65076e25), | ||
242 | X(0x4ebfe8a5), X(0x64e88926), X(0x4ee782fb), X(0x64c99498), | ||
243 | X(0x4f0f1126), X(0x64aa907f), X(0x4f369320), X(0x648b7ce0), | ||
244 | X(0x4f5e08e3), X(0x646c59bf), X(0x4f857269), X(0x644d2722), | ||
245 | X(0x4faccfab), X(0x642de50d), X(0x4fd420a4), X(0x640e9386), | ||
246 | X(0x4ffb654d), X(0x63ef3290), X(0x50229da1), X(0x63cfc231), | ||
247 | X(0x5049c999), X(0x63b0426d), X(0x5070e92f), X(0x6390b34a), | ||
248 | X(0x5097fc5e), X(0x637114cc), X(0x50bf031f), X(0x635166f9), | ||
249 | X(0x50e5fd6d), X(0x6331a9d4), X(0x510ceb40), X(0x6311dd64), | ||
250 | X(0x5133cc94), X(0x62f201ac), X(0x515aa162), X(0x62d216b3), | ||
251 | X(0x518169a5), X(0x62b21c7b), X(0x51a82555), X(0x6292130c), | ||
252 | X(0x51ced46e), X(0x6271fa69), X(0x51f576ea), X(0x6251d298), | ||
253 | X(0x521c0cc2), X(0x62319b9d), X(0x524295f0), X(0x6211557e), | ||
254 | X(0x5269126e), X(0x61f1003f), X(0x528f8238), X(0x61d09be5), | ||
255 | X(0x52b5e546), X(0x61b02876), X(0x52dc3b92), X(0x618fa5f7), | ||
256 | X(0x53028518), X(0x616f146c), X(0x5328c1d0), X(0x614e73da), | ||
257 | X(0x534ef1b5), X(0x612dc447), X(0x537514c2), X(0x610d05b7), | ||
258 | X(0x539b2af0), X(0x60ec3830), X(0x53c13439), X(0x60cb5bb7), | ||
259 | X(0x53e73097), X(0x60aa7050), X(0x540d2005), X(0x60897601), | ||
260 | X(0x5433027d), X(0x60686ccf), X(0x5458d7f9), X(0x604754bf), | ||
261 | X(0x547ea073), X(0x60262dd6), X(0x54a45be6), X(0x6004f819), | ||
262 | X(0x54ca0a4b), X(0x5fe3b38d), X(0x54efab9c), X(0x5fc26038), | ||
263 | X(0x55153fd4), X(0x5fa0fe1f), X(0x553ac6ee), X(0x5f7f8d46), | ||
264 | X(0x556040e2), X(0x5f5e0db3), X(0x5585adad), X(0x5f3c7f6b), | ||
265 | X(0x55ab0d46), X(0x5f1ae274), X(0x55d05faa), X(0x5ef936d1), | ||
266 | X(0x55f5a4d2), X(0x5ed77c8a), X(0x561adcb9), X(0x5eb5b3a2), | ||
267 | X(0x56400758), X(0x5e93dc1f), X(0x566524aa), X(0x5e71f606), | ||
268 | X(0x568a34a9), X(0x5e50015d), X(0x56af3750), X(0x5e2dfe29), | ||
269 | X(0x56d42c99), X(0x5e0bec6e), X(0x56f9147e), X(0x5de9cc33), | ||
270 | X(0x571deefa), X(0x5dc79d7c), X(0x5742bc06), X(0x5da5604f), | ||
271 | X(0x57677b9d), X(0x5d8314b1), X(0x578c2dba), X(0x5d60baa7), | ||
272 | X(0x57b0d256), X(0x5d3e5237), X(0x57d5696d), X(0x5d1bdb65), | ||
273 | X(0x57f9f2f8), X(0x5cf95638), X(0x581e6ef1), X(0x5cd6c2b5), | ||
274 | X(0x5842dd54), X(0x5cb420e0), X(0x58673e1b), X(0x5c9170bf), | ||
275 | X(0x588b9140), X(0x5c6eb258), X(0x58afd6bd), X(0x5c4be5b0), | ||
276 | X(0x58d40e8c), X(0x5c290acc), X(0x58f838a9), X(0x5c0621b2), | ||
277 | X(0x591c550e), X(0x5be32a67), X(0x594063b5), X(0x5bc024f0), | ||
278 | X(0x59646498), X(0x5b9d1154), X(0x598857b2), X(0x5b79ef96), | ||
279 | X(0x59ac3cfd), X(0x5b56bfbd), X(0x59d01475), X(0x5b3381ce), | ||
280 | X(0x59f3de12), X(0x5b1035cf), X(0x5a1799d1), X(0x5aecdbc5), | ||
281 | X(0x5a3b47ab), X(0x5ac973b5), X(0x5a5ee79a), X(0x5aa5fda5), | ||
282 | X(0x5a82799a), X(0x5a82799a) | ||
283 | }; | ||
284 | |||
285 | /* {sin((2*i+1)*PI/4096), cos((2*i+1)*PI/4096)}, with i = 0 to 511 */ | ||
286 | static const int32_t sincos_lookup1[1024] ICONST_ATTR = { | ||
287 | X(0x001921fb), X(0x7ffffd88), X(0x004b65ee), X(0x7fffe9cb), | ||
288 | X(0x007da9d4), X(0x7fffc251), X(0x00afeda8), X(0x7fff8719), | ||
289 | X(0x00e23160), X(0x7fff3824), X(0x011474f6), X(0x7ffed572), | ||
290 | X(0x0146b860), X(0x7ffe5f03), X(0x0178fb99), X(0x7ffdd4d7), | ||
291 | X(0x01ab3e97), X(0x7ffd36ee), X(0x01dd8154), X(0x7ffc8549), | ||
292 | X(0x020fc3c6), X(0x7ffbbfe6), X(0x024205e8), X(0x7ffae6c7), | ||
293 | X(0x027447b0), X(0x7ff9f9ec), X(0x02a68917), X(0x7ff8f954), | ||
294 | X(0x02d8ca16), X(0x7ff7e500), X(0x030b0aa4), X(0x7ff6bcf0), | ||
295 | X(0x033d4abb), X(0x7ff58125), X(0x036f8a51), X(0x7ff4319d), | ||
296 | X(0x03a1c960), X(0x7ff2ce5b), X(0x03d407df), X(0x7ff1575d), | ||
297 | X(0x040645c7), X(0x7fefcca4), X(0x04388310), X(0x7fee2e30), | ||
298 | X(0x046abfb3), X(0x7fec7c02), X(0x049cfba7), X(0x7feab61a), | ||
299 | X(0x04cf36e5), X(0x7fe8dc78), X(0x05017165), X(0x7fe6ef1c), | ||
300 | X(0x0533ab20), X(0x7fe4ee06), X(0x0565e40d), X(0x7fe2d938), | ||
301 | X(0x05981c26), X(0x7fe0b0b1), X(0x05ca5361), X(0x7fde7471), | ||
302 | X(0x05fc89b8), X(0x7fdc247a), X(0x062ebf22), X(0x7fd9c0ca), | ||
303 | X(0x0660f398), X(0x7fd74964), X(0x06932713), X(0x7fd4be46), | ||
304 | X(0x06c5598a), X(0x7fd21f72), X(0x06f78af6), X(0x7fcf6ce8), | ||
305 | X(0x0729bb4e), X(0x7fcca6a7), X(0x075bea8c), X(0x7fc9ccb2), | ||
306 | X(0x078e18a7), X(0x7fc6df08), X(0x07c04598), X(0x7fc3dda9), | ||
307 | X(0x07f27157), X(0x7fc0c896), X(0x08249bdd), X(0x7fbd9fd0), | ||
308 | X(0x0856c520), X(0x7fba6357), X(0x0888ed1b), X(0x7fb7132b), | ||
309 | X(0x08bb13c5), X(0x7fb3af4e), X(0x08ed3916), X(0x7fb037bf), | ||
310 | X(0x091f5d06), X(0x7facac7f), X(0x09517f8f), X(0x7fa90d8e), | ||
311 | X(0x0983a0a7), X(0x7fa55aee), X(0x09b5c048), X(0x7fa1949e), | ||
312 | X(0x09e7de6a), X(0x7f9dbaa0), X(0x0a19fb04), X(0x7f99ccf4), | ||
313 | X(0x0a4c1610), X(0x7f95cb9a), X(0x0a7e2f85), X(0x7f91b694), | ||
314 | X(0x0ab0475c), X(0x7f8d8de1), X(0x0ae25d8d), X(0x7f895182), | ||
315 | X(0x0b147211), X(0x7f850179), X(0x0b4684df), X(0x7f809dc5), | ||
316 | X(0x0b7895f0), X(0x7f7c2668), X(0x0baaa53b), X(0x7f779b62), | ||
317 | X(0x0bdcb2bb), X(0x7f72fcb4), X(0x0c0ebe66), X(0x7f6e4a5e), | ||
318 | X(0x0c40c835), X(0x7f698461), X(0x0c72d020), X(0x7f64aabf), | ||
319 | X(0x0ca4d620), X(0x7f5fbd77), X(0x0cd6da2d), X(0x7f5abc8a), | ||
320 | X(0x0d08dc3f), X(0x7f55a7fa), X(0x0d3adc4e), X(0x7f507fc7), | ||
321 | X(0x0d6cda53), X(0x7f4b43f2), X(0x0d9ed646), X(0x7f45f47b), | ||
322 | X(0x0dd0d01f), X(0x7f409164), X(0x0e02c7d7), X(0x7f3b1aad), | ||
323 | X(0x0e34bd66), X(0x7f359057), X(0x0e66b0c3), X(0x7f2ff263), | ||
324 | X(0x0e98a1e9), X(0x7f2a40d2), X(0x0eca90ce), X(0x7f247ba5), | ||
325 | X(0x0efc7d6b), X(0x7f1ea2dc), X(0x0f2e67b8), X(0x7f18b679), | ||
326 | X(0x0f604faf), X(0x7f12b67c), X(0x0f923546), X(0x7f0ca2e7), | ||
327 | X(0x0fc41876), X(0x7f067bba), X(0x0ff5f938), X(0x7f0040f6), | ||
328 | X(0x1027d784), X(0x7ef9f29d), X(0x1059b352), X(0x7ef390ae), | ||
329 | X(0x108b8c9b), X(0x7eed1b2c), X(0x10bd6356), X(0x7ee69217), | ||
330 | X(0x10ef377d), X(0x7edff570), X(0x11210907), X(0x7ed94538), | ||
331 | X(0x1152d7ed), X(0x7ed28171), X(0x1184a427), X(0x7ecbaa1a), | ||
332 | X(0x11b66dad), X(0x7ec4bf36), X(0x11e83478), X(0x7ebdc0c6), | ||
333 | X(0x1219f880), X(0x7eb6aeca), X(0x124bb9be), X(0x7eaf8943), | ||
334 | X(0x127d7829), X(0x7ea85033), X(0x12af33ba), X(0x7ea1039b), | ||
335 | X(0x12e0ec6a), X(0x7e99a37c), X(0x1312a230), X(0x7e922fd6), | ||
336 | X(0x13445505), X(0x7e8aa8ac), X(0x137604e2), X(0x7e830dff), | ||
337 | X(0x13a7b1bf), X(0x7e7b5fce), X(0x13d95b93), X(0x7e739e1d), | ||
338 | X(0x140b0258), X(0x7e6bc8eb), X(0x143ca605), X(0x7e63e03b), | ||
339 | X(0x146e4694), X(0x7e5be40c), X(0x149fe3fc), X(0x7e53d462), | ||
340 | X(0x14d17e36), X(0x7e4bb13c), X(0x1503153a), X(0x7e437a9c), | ||
341 | X(0x1534a901), X(0x7e3b3083), X(0x15663982), X(0x7e32d2f4), | ||
342 | X(0x1597c6b7), X(0x7e2a61ed), X(0x15c95097), X(0x7e21dd73), | ||
343 | X(0x15fad71b), X(0x7e194584), X(0x162c5a3b), X(0x7e109a24), | ||
344 | X(0x165dd9f0), X(0x7e07db52), X(0x168f5632), X(0x7dff0911), | ||
345 | X(0x16c0cef9), X(0x7df62362), X(0x16f2443e), X(0x7ded2a47), | ||
346 | X(0x1723b5f9), X(0x7de41dc0), X(0x17552422), X(0x7ddafdce), | ||
347 | X(0x17868eb3), X(0x7dd1ca75), X(0x17b7f5a3), X(0x7dc883b4), | ||
348 | X(0x17e958ea), X(0x7dbf298d), X(0x181ab881), X(0x7db5bc02), | ||
349 | X(0x184c1461), X(0x7dac3b15), X(0x187d6c82), X(0x7da2a6c6), | ||
350 | X(0x18aec0db), X(0x7d98ff17), X(0x18e01167), X(0x7d8f4409), | ||
351 | X(0x19115e1c), X(0x7d85759f), X(0x1942a6f3), X(0x7d7b93da), | ||
352 | X(0x1973ebe6), X(0x7d719eba), X(0x19a52ceb), X(0x7d679642), | ||
353 | X(0x19d669fc), X(0x7d5d7a74), X(0x1a07a311), X(0x7d534b50), | ||
354 | X(0x1a38d823), X(0x7d4908d9), X(0x1a6a0929), X(0x7d3eb30f), | ||
355 | X(0x1a9b361d), X(0x7d3449f5), X(0x1acc5ef6), X(0x7d29cd8c), | ||
356 | X(0x1afd83ad), X(0x7d1f3dd6), X(0x1b2ea43a), X(0x7d149ad5), | ||
357 | X(0x1b5fc097), X(0x7d09e489), X(0x1b90d8bb), X(0x7cff1af5), | ||
358 | X(0x1bc1ec9e), X(0x7cf43e1a), X(0x1bf2fc3a), X(0x7ce94dfb), | ||
359 | X(0x1c240786), X(0x7cde4a98), X(0x1c550e7c), X(0x7cd333f3), | ||
360 | X(0x1c861113), X(0x7cc80a0f), X(0x1cb70f43), X(0x7cbcccec), | ||
361 | X(0x1ce80906), X(0x7cb17c8d), X(0x1d18fe54), X(0x7ca618f3), | ||
362 | X(0x1d49ef26), X(0x7c9aa221), X(0x1d7adb73), X(0x7c8f1817), | ||
363 | X(0x1dabc334), X(0x7c837ad8), X(0x1ddca662), X(0x7c77ca65), | ||
364 | X(0x1e0d84f5), X(0x7c6c06c0), X(0x1e3e5ee5), X(0x7c602fec), | ||
365 | X(0x1e6f342c), X(0x7c5445e9), X(0x1ea004c1), X(0x7c4848ba), | ||
366 | X(0x1ed0d09d), X(0x7c3c3860), X(0x1f0197b8), X(0x7c3014de), | ||
367 | X(0x1f325a0b), X(0x7c23de35), X(0x1f63178f), X(0x7c179467), | ||
368 | X(0x1f93d03c), X(0x7c0b3777), X(0x1fc4840a), X(0x7bfec765), | ||
369 | X(0x1ff532f2), X(0x7bf24434), X(0x2025dcec), X(0x7be5ade6), | ||
370 | X(0x205681f1), X(0x7bd9047c), X(0x208721f9), X(0x7bcc47fa), | ||
371 | X(0x20b7bcfe), X(0x7bbf7860), X(0x20e852f6), X(0x7bb295b0), | ||
372 | X(0x2118e3dc), X(0x7ba59fee), X(0x21496fa7), X(0x7b989719), | ||
373 | X(0x2179f64f), X(0x7b8b7b36), X(0x21aa77cf), X(0x7b7e4c45), | ||
374 | X(0x21daf41d), X(0x7b710a49), X(0x220b6b32), X(0x7b63b543), | ||
375 | X(0x223bdd08), X(0x7b564d36), X(0x226c4996), X(0x7b48d225), | ||
376 | X(0x229cb0d5), X(0x7b3b4410), X(0x22cd12bd), X(0x7b2da2fa), | ||
377 | X(0x22fd6f48), X(0x7b1feee5), X(0x232dc66d), X(0x7b1227d3), | ||
378 | X(0x235e1826), X(0x7b044dc7), X(0x238e646a), X(0x7af660c2), | ||
379 | X(0x23beab33), X(0x7ae860c7), X(0x23eeec78), X(0x7ada4dd8), | ||
380 | X(0x241f2833), X(0x7acc27f7), X(0x244f5e5c), X(0x7abdef25), | ||
381 | X(0x247f8eec), X(0x7aafa367), X(0x24afb9da), X(0x7aa144bc), | ||
382 | X(0x24dfdf20), X(0x7a92d329), X(0x250ffeb7), X(0x7a844eae), | ||
383 | X(0x25401896), X(0x7a75b74f), X(0x25702cb7), X(0x7a670d0d), | ||
384 | X(0x25a03b11), X(0x7a584feb), X(0x25d0439f), X(0x7a497feb), | ||
385 | X(0x26004657), X(0x7a3a9d0f), X(0x26304333), X(0x7a2ba75a), | ||
386 | X(0x26603a2c), X(0x7a1c9ece), X(0x26902b39), X(0x7a0d836d), | ||
387 | X(0x26c01655), X(0x79fe5539), X(0x26effb76), X(0x79ef1436), | ||
388 | X(0x271fda96), X(0x79dfc064), X(0x274fb3ae), X(0x79d059c8), | ||
389 | X(0x277f86b5), X(0x79c0e062), X(0x27af53a6), X(0x79b15435), | ||
390 | X(0x27df1a77), X(0x79a1b545), X(0x280edb23), X(0x79920392), | ||
391 | X(0x283e95a1), X(0x79823f20), X(0x286e49ea), X(0x797267f2), | ||
392 | X(0x289df7f8), X(0x79627e08), X(0x28cd9fc1), X(0x79528167), | ||
393 | X(0x28fd4140), X(0x79427210), X(0x292cdc6d), X(0x79325006), | ||
394 | X(0x295c7140), X(0x79221b4b), X(0x298bffb2), X(0x7911d3e2), | ||
395 | X(0x29bb87bc), X(0x790179cd), X(0x29eb0957), X(0x78f10d0f), | ||
396 | X(0x2a1a847b), X(0x78e08dab), X(0x2a49f920), X(0x78cffba3), | ||
397 | X(0x2a796740), X(0x78bf56f9), X(0x2aa8ced3), X(0x78ae9fb0), | ||
398 | X(0x2ad82fd2), X(0x789dd5cb), X(0x2b078a36), X(0x788cf94c), | ||
399 | X(0x2b36ddf7), X(0x787c0a36), X(0x2b662b0e), X(0x786b088c), | ||
400 | X(0x2b957173), X(0x7859f44f), X(0x2bc4b120), X(0x7848cd83), | ||
401 | X(0x2bf3ea0d), X(0x7837942b), X(0x2c231c33), X(0x78264849), | ||
402 | X(0x2c52478a), X(0x7814e9df), X(0x2c816c0c), X(0x780378f1), | ||
403 | X(0x2cb089b1), X(0x77f1f581), X(0x2cdfa071), X(0x77e05f91), | ||
404 | X(0x2d0eb046), X(0x77ceb725), X(0x2d3db928), X(0x77bcfc3f), | ||
405 | X(0x2d6cbb10), X(0x77ab2ee2), X(0x2d9bb5f6), X(0x77994f11), | ||
406 | X(0x2dcaa9d5), X(0x77875cce), X(0x2df996a3), X(0x7775581d), | ||
407 | X(0x2e287c5a), X(0x776340ff), X(0x2e575af3), X(0x77511778), | ||
408 | X(0x2e863267), X(0x773edb8b), X(0x2eb502ae), X(0x772c8d3a), | ||
409 | X(0x2ee3cbc1), X(0x771a2c88), X(0x2f128d99), X(0x7707b979), | ||
410 | X(0x2f41482e), X(0x76f5340e), X(0x2f6ffb7a), X(0x76e29c4b), | ||
411 | X(0x2f9ea775), X(0x76cff232), X(0x2fcd4c19), X(0x76bd35c7), | ||
412 | X(0x2ffbe95d), X(0x76aa670d), X(0x302a7f3a), X(0x76978605), | ||
413 | X(0x30590dab), X(0x768492b4), X(0x308794a6), X(0x76718d1c), | ||
414 | X(0x30b61426), X(0x765e7540), X(0x30e48c22), X(0x764b4b23), | ||
415 | X(0x3112fc95), X(0x76380ec8), X(0x31416576), X(0x7624c031), | ||
416 | X(0x316fc6be), X(0x76115f63), X(0x319e2067), X(0x75fdec60), | ||
417 | X(0x31cc7269), X(0x75ea672a), X(0x31fabcbd), X(0x75d6cfc5), | ||
418 | X(0x3228ff5c), X(0x75c32634), X(0x32573a3f), X(0x75af6a7b), | ||
419 | X(0x32856d5e), X(0x759b9c9b), X(0x32b398b3), X(0x7587bc98), | ||
420 | X(0x32e1bc36), X(0x7573ca75), X(0x330fd7e1), X(0x755fc635), | ||
421 | X(0x333debab), X(0x754bafdc), X(0x336bf78f), X(0x7537876c), | ||
422 | X(0x3399fb85), X(0x75234ce8), X(0x33c7f785), X(0x750f0054), | ||
423 | X(0x33f5eb89), X(0x74faa1b3), X(0x3423d78a), X(0x74e63108), | ||
424 | X(0x3451bb81), X(0x74d1ae55), X(0x347f9766), X(0x74bd199f), | ||
425 | X(0x34ad6b32), X(0x74a872e8), X(0x34db36df), X(0x7493ba34), | ||
426 | X(0x3508fa66), X(0x747eef85), X(0x3536b5be), X(0x746a12df), | ||
427 | X(0x356468e2), X(0x74552446), X(0x359213c9), X(0x744023bc), | ||
428 | X(0x35bfb66e), X(0x742b1144), X(0x35ed50c9), X(0x7415ece2), | ||
429 | X(0x361ae2d3), X(0x7400b69a), X(0x36486c86), X(0x73eb6e6e), | ||
430 | X(0x3675edd9), X(0x73d61461), X(0x36a366c6), X(0x73c0a878), | ||
431 | X(0x36d0d746), X(0x73ab2ab4), X(0x36fe3f52), X(0x73959b1b), | ||
432 | X(0x372b9ee3), X(0x737ff9ae), X(0x3758f5f2), X(0x736a4671), | ||
433 | X(0x37864477), X(0x73548168), X(0x37b38a6d), X(0x733eaa96), | ||
434 | X(0x37e0c7cc), X(0x7328c1ff), X(0x380dfc8d), X(0x7312c7a5), | ||
435 | X(0x383b28a9), X(0x72fcbb8c), X(0x38684c19), X(0x72e69db7), | ||
436 | X(0x389566d6), X(0x72d06e2b), X(0x38c278d9), X(0x72ba2cea), | ||
437 | X(0x38ef821c), X(0x72a3d9f7), X(0x391c8297), X(0x728d7557), | ||
438 | X(0x39497a43), X(0x7276ff0d), X(0x39766919), X(0x7260771b), | ||
439 | X(0x39a34f13), X(0x7249dd86), X(0x39d02c2a), X(0x72333251), | ||
440 | X(0x39fd0056), X(0x721c7580), X(0x3a29cb91), X(0x7205a716), | ||
441 | X(0x3a568dd4), X(0x71eec716), X(0x3a834717), X(0x71d7d585), | ||
442 | X(0x3aaff755), X(0x71c0d265), X(0x3adc9e86), X(0x71a9bdba), | ||
443 | X(0x3b093ca3), X(0x71929789), X(0x3b35d1a5), X(0x717b5fd3), | ||
444 | X(0x3b625d86), X(0x7164169d), X(0x3b8ee03e), X(0x714cbbeb), | ||
445 | X(0x3bbb59c7), X(0x71354fc0), X(0x3be7ca1a), X(0x711dd220), | ||
446 | X(0x3c143130), X(0x7106430e), X(0x3c408f03), X(0x70eea28e), | ||
447 | X(0x3c6ce38a), X(0x70d6f0a4), X(0x3c992ec0), X(0x70bf2d53), | ||
448 | X(0x3cc5709e), X(0x70a7589f), X(0x3cf1a91c), X(0x708f728b), | ||
449 | X(0x3d1dd835), X(0x70777b1c), X(0x3d49fde1), X(0x705f7255), | ||
450 | X(0x3d761a19), X(0x70475839), X(0x3da22cd7), X(0x702f2ccd), | ||
451 | X(0x3dce3614), X(0x7016f014), X(0x3dfa35c8), X(0x6ffea212), | ||
452 | X(0x3e262bee), X(0x6fe642ca), X(0x3e52187f), X(0x6fcdd241), | ||
453 | X(0x3e7dfb73), X(0x6fb5507a), X(0x3ea9d4c3), X(0x6f9cbd79), | ||
454 | X(0x3ed5a46b), X(0x6f841942), X(0x3f016a61), X(0x6f6b63d8), | ||
455 | X(0x3f2d26a0), X(0x6f529d40), X(0x3f58d921), X(0x6f39c57d), | ||
456 | X(0x3f8481dd), X(0x6f20dc92), X(0x3fb020ce), X(0x6f07e285), | ||
457 | X(0x3fdbb5ec), X(0x6eeed758), X(0x40074132), X(0x6ed5bb10), | ||
458 | X(0x4032c297), X(0x6ebc8db0), X(0x405e3a16), X(0x6ea34f3d), | ||
459 | X(0x4089a7a8), X(0x6e89ffb9), X(0x40b50b46), X(0x6e709f2a), | ||
460 | X(0x40e064ea), X(0x6e572d93), X(0x410bb48c), X(0x6e3daaf8), | ||
461 | X(0x4136fa27), X(0x6e24175c), X(0x416235b2), X(0x6e0a72c5), | ||
462 | X(0x418d6729), X(0x6df0bd35), X(0x41b88e84), X(0x6dd6f6b1), | ||
463 | X(0x41e3abbc), X(0x6dbd1f3c), X(0x420ebecb), X(0x6da336dc), | ||
464 | X(0x4239c7aa), X(0x6d893d93), X(0x4264c653), X(0x6d6f3365), | ||
465 | X(0x428fbabe), X(0x6d551858), X(0x42baa4e6), X(0x6d3aec6e), | ||
466 | X(0x42e584c3), X(0x6d20afac), X(0x43105a50), X(0x6d066215), | ||
467 | X(0x433b2585), X(0x6cec03af), X(0x4365e65b), X(0x6cd1947c), | ||
468 | X(0x43909ccd), X(0x6cb71482), X(0x43bb48d4), X(0x6c9c83c3), | ||
469 | X(0x43e5ea68), X(0x6c81e245), X(0x44108184), X(0x6c67300b), | ||
470 | X(0x443b0e21), X(0x6c4c6d1a), X(0x44659039), X(0x6c319975), | ||
471 | X(0x449007c4), X(0x6c16b521), X(0x44ba74bd), X(0x6bfbc021), | ||
472 | X(0x44e4d71c), X(0x6be0ba7b), X(0x450f2edb), X(0x6bc5a431), | ||
473 | X(0x45397bf4), X(0x6baa7d49), X(0x4563be60), X(0x6b8f45c7), | ||
474 | X(0x458df619), X(0x6b73fdae), X(0x45b82318), X(0x6b58a503), | ||
475 | X(0x45e24556), X(0x6b3d3bcb), X(0x460c5cce), X(0x6b21c208), | ||
476 | X(0x46366978), X(0x6b0637c1), X(0x46606b4e), X(0x6aea9cf8), | ||
477 | X(0x468a624a), X(0x6acef1b2), X(0x46b44e65), X(0x6ab335f4), | ||
478 | X(0x46de2f99), X(0x6a9769c1), X(0x470805df), X(0x6a7b8d1e), | ||
479 | X(0x4731d131), X(0x6a5fa010), X(0x475b9188), X(0x6a43a29a), | ||
480 | X(0x478546de), X(0x6a2794c1), X(0x47aef12c), X(0x6a0b7689), | ||
481 | X(0x47d8906d), X(0x69ef47f6), X(0x48022499), X(0x69d3090e), | ||
482 | X(0x482badab), X(0x69b6b9d3), X(0x48552b9b), X(0x699a5a4c), | ||
483 | X(0x487e9e64), X(0x697dea7b), X(0x48a805ff), X(0x69616a65), | ||
484 | X(0x48d16265), X(0x6944da10), X(0x48fab391), X(0x6928397e), | ||
485 | X(0x4923f97b), X(0x690b88b5), X(0x494d341e), X(0x68eec7b9), | ||
486 | X(0x49766373), X(0x68d1f68f), X(0x499f8774), X(0x68b5153a), | ||
487 | X(0x49c8a01b), X(0x689823bf), X(0x49f1ad61), X(0x687b2224), | ||
488 | X(0x4a1aaf3f), X(0x685e106c), X(0x4a43a5b0), X(0x6840ee9b), | ||
489 | X(0x4a6c90ad), X(0x6823bcb7), X(0x4a957030), X(0x68067ac3), | ||
490 | X(0x4abe4433), X(0x67e928c5), X(0x4ae70caf), X(0x67cbc6c0), | ||
491 | X(0x4b0fc99d), X(0x67ae54ba), X(0x4b387af9), X(0x6790d2b6), | ||
492 | X(0x4b6120bb), X(0x677340ba), X(0x4b89badd), X(0x67559eca), | ||
493 | X(0x4bb24958), X(0x6737ecea), X(0x4bdacc28), X(0x671a2b20), | ||
494 | X(0x4c034345), X(0x66fc596f), X(0x4c2baea9), X(0x66de77dc), | ||
495 | X(0x4c540e4e), X(0x66c0866d), X(0x4c7c622d), X(0x66a28524), | ||
496 | X(0x4ca4aa41), X(0x66847408), X(0x4ccce684), X(0x6666531d), | ||
497 | X(0x4cf516ee), X(0x66482267), X(0x4d1d3b7a), X(0x6629e1ec), | ||
498 | X(0x4d455422), X(0x660b91af), X(0x4d6d60df), X(0x65ed31b5), | ||
499 | X(0x4d9561ac), X(0x65cec204), X(0x4dbd5682), X(0x65b0429f), | ||
500 | X(0x4de53f5a), X(0x6591b38c), X(0x4e0d1c30), X(0x657314cf), | ||
501 | X(0x4e34ecfc), X(0x6554666d), X(0x4e5cb1b9), X(0x6535a86b), | ||
502 | X(0x4e846a60), X(0x6516dacd), X(0x4eac16eb), X(0x64f7fd98), | ||
503 | X(0x4ed3b755), X(0x64d910d1), X(0x4efb4b96), X(0x64ba147d), | ||
504 | X(0x4f22d3aa), X(0x649b08a0), X(0x4f4a4f89), X(0x647bed3f), | ||
505 | X(0x4f71bf2e), X(0x645cc260), X(0x4f992293), X(0x643d8806), | ||
506 | X(0x4fc079b1), X(0x641e3e38), X(0x4fe7c483), X(0x63fee4f8), | ||
507 | X(0x500f0302), X(0x63df7c4d), X(0x50363529), X(0x63c0043b), | ||
508 | X(0x505d5af1), X(0x63a07cc7), X(0x50847454), X(0x6380e5f6), | ||
509 | X(0x50ab814d), X(0x63613fcd), X(0x50d281d5), X(0x63418a50), | ||
510 | X(0x50f975e6), X(0x6321c585), X(0x51205d7b), X(0x6301f171), | ||
511 | X(0x5147388c), X(0x62e20e17), X(0x516e0715), X(0x62c21b7e), | ||
512 | X(0x5194c910), X(0x62a219aa), X(0x51bb7e75), X(0x628208a1), | ||
513 | X(0x51e22740), X(0x6261e866), X(0x5208c36a), X(0x6241b8ff), | ||
514 | X(0x522f52ee), X(0x62217a72), X(0x5255d5c5), X(0x62012cc2), | ||
515 | X(0x527c4bea), X(0x61e0cff5), X(0x52a2b556), X(0x61c06410), | ||
516 | X(0x52c91204), X(0x619fe918), X(0x52ef61ee), X(0x617f5f12), | ||
517 | X(0x5315a50e), X(0x615ec603), X(0x533bdb5d), X(0x613e1df0), | ||
518 | X(0x536204d7), X(0x611d66de), X(0x53882175), X(0x60fca0d2), | ||
519 | X(0x53ae3131), X(0x60dbcbd1), X(0x53d43406), X(0x60bae7e1), | ||
520 | X(0x53fa29ed), X(0x6099f505), X(0x542012e1), X(0x6078f344), | ||
521 | X(0x5445eedb), X(0x6057e2a2), X(0x546bbdd7), X(0x6036c325), | ||
522 | X(0x54917fce), X(0x601594d1), X(0x54b734ba), X(0x5ff457ad), | ||
523 | X(0x54dcdc96), X(0x5fd30bbc), X(0x5502775c), X(0x5fb1b104), | ||
524 | X(0x55280505), X(0x5f90478a), X(0x554d858d), X(0x5f6ecf53), | ||
525 | X(0x5572f8ed), X(0x5f4d4865), X(0x55985f20), X(0x5f2bb2c5), | ||
526 | X(0x55bdb81f), X(0x5f0a0e77), X(0x55e303e6), X(0x5ee85b82), | ||
527 | X(0x5608426e), X(0x5ec699e9), X(0x562d73b2), X(0x5ea4c9b3), | ||
528 | X(0x565297ab), X(0x5e82eae5), X(0x5677ae54), X(0x5e60fd84), | ||
529 | X(0x569cb7a8), X(0x5e3f0194), X(0x56c1b3a1), X(0x5e1cf71c), | ||
530 | X(0x56e6a239), X(0x5dfade20), X(0x570b8369), X(0x5dd8b6a7), | ||
531 | X(0x5730572e), X(0x5db680b4), X(0x57551d80), X(0x5d943c4e), | ||
532 | X(0x5779d65b), X(0x5d71e979), X(0x579e81b8), X(0x5d4f883b), | ||
533 | X(0x57c31f92), X(0x5d2d189a), X(0x57e7afe4), X(0x5d0a9a9a), | ||
534 | X(0x580c32a7), X(0x5ce80e41), X(0x5830a7d6), X(0x5cc57394), | ||
535 | X(0x58550f6c), X(0x5ca2ca99), X(0x58796962), X(0x5c801354), | ||
536 | X(0x589db5b3), X(0x5c5d4dcc), X(0x58c1f45b), X(0x5c3a7a05), | ||
537 | X(0x58e62552), X(0x5c179806), X(0x590a4893), X(0x5bf4a7d2), | ||
538 | X(0x592e5e19), X(0x5bd1a971), X(0x595265df), X(0x5bae9ce7), | ||
539 | X(0x59765fde), X(0x5b8b8239), X(0x599a4c12), X(0x5b68596d), | ||
540 | X(0x59be2a74), X(0x5b452288), X(0x59e1faff), X(0x5b21dd90), | ||
541 | X(0x5a05bdae), X(0x5afe8a8b), X(0x5a29727b), X(0x5adb297d), | ||
542 | X(0x5a4d1960), X(0x5ab7ba6c), X(0x5a70b258), X(0x5a943d5e), | ||
543 | }; | ||
544 | |||
diff --git a/apps/codecs/libcook/cook_fixpoint.h b/apps/codecs/libcook/cook_fixpoint.h index 2e7f68913b..c2ab9299c6 100644 --- a/apps/codecs/libcook/cook_fixpoint.h +++ b/apps/codecs/libcook/cook_fixpoint.h | |||
@@ -73,14 +73,55 @@ static inline FIXP fixp_pow2(FIXP x, int i) | |||
73 | * @param a fix point value | 73 | * @param a fix point value |
74 | * @param b fix point fraction, 0 <= b < 1 | 74 | * @param b fix point fraction, 0 <= b < 1 |
75 | */ | 75 | */ |
76 | |||
76 | static inline FIXP fixp_mult_su(FIXP a, FIXPU b) | 77 | static inline FIXP fixp_mult_su(FIXP a, FIXPU b) |
77 | { | 78 | { |
79 | |||
78 | int32_t hb = (a >> 16) * b; | 80 | int32_t hb = (a >> 16) * b; |
79 | uint32_t lb = (a & 0xffff) * b; | 81 | uint32_t lb = (a & 0xffff) * b; |
80 | 82 | ||
81 | return hb + (lb >> 16) + ((lb & 0x8000) >> 15); | 83 | return hb + (lb >> 16) + ((lb & 0x8000) >> 15); |
82 | } | 84 | } |
83 | 85 | ||
86 | /* Faster version of the above using 32x32=64 bit multiply */ | ||
87 | #ifdef CPU_ARM | ||
88 | #define fixmul31(x, y) \ | ||
89 | ({ int32_t __hi; \ | ||
90 | uint32_t __lo; \ | ||
91 | int32_t __result; \ | ||
92 | asm ("smull %0, %1, %3, %4\n\t" \ | ||
93 | "movs %2, %1, lsl #1" \ | ||
94 | : "=&r" (__lo), "=&r" (__hi), "=r" (__result) \ | ||
95 | : "%r" (x), "r" (y) \ | ||
96 | : "cc"); \ | ||
97 | __result; \ | ||
98 | }) | ||
99 | |||
100 | #elif defined(CPU_COLDFIRE) | ||
101 | static inline int32_t fixmul31(int32_t x, int32_t y) | ||
102 | { | ||
103 | asm ( | ||
104 | "mac.l %[x], %[y], %%acc0 \n" /* multiply */ | ||
105 | "movclr.l %%acc0, %[x] \n" /* get higher half */ | ||
106 | : [x] "+d" (x) | ||
107 | : [y] "d" (y) | ||
108 | ); | ||
109 | return x; | ||
110 | } | ||
111 | #else | ||
112 | static inline int32_t fixmul31(int32_t x, int32_t y) | ||
113 | { | ||
114 | int64_t temp; | ||
115 | |||
116 | temp = x; | ||
117 | temp *= y; | ||
118 | |||
119 | temp >>= 31; //16+31-16 = 31 bits | ||
120 | |||
121 | return (int32_t)temp; | ||
122 | } | ||
123 | #endif | ||
124 | |||
84 | /* math functions taken from libavutil/common.h */ | 125 | /* math functions taken from libavutil/common.h */ |
85 | 126 | ||
86 | static inline int av_log2(unsigned int v) | 127 | static inline int av_log2(unsigned int v) |
@@ -162,7 +203,7 @@ static inline void imlt_math(COOKContext *q, FIXP *in) | |||
162 | const int n = q->samples_per_channel; | 203 | const int n = q->samples_per_channel; |
163 | const int step = 4 << (10 - av_log2(n)); | 204 | const int step = 4 << (10 - av_log2(n)); |
164 | int i = 0, j = step>>1; | 205 | int i = 0, j = step>>1; |
165 | 206 | ||
166 | cook_mdct_backward(2 * n, in, q->mono_mdct_output); | 207 | cook_mdct_backward(2 * n, in, q->mono_mdct_output); |
167 | 208 | ||
168 | do { | 209 | do { |
@@ -184,30 +225,35 @@ static inline void imlt_math(COOKContext *q, FIXP *in) | |||
184 | } | 225 | } |
185 | #else | 226 | #else |
186 | #include <codecs/lib/codeclib.h> | 227 | #include <codecs/lib/codeclib.h> |
228 | #include <codecs/lib/mdct_lookup.h> | ||
187 | 229 | ||
188 | static inline void imlt_math(COOKContext *q, FIXP *in) | 230 | static inline void imlt_math(COOKContext *q, FIXP *in) |
189 | { | 231 | { |
190 | const int n = q->samples_per_channel; | 232 | const int n = q->samples_per_channel; |
191 | const int step = 4 << (10 - av_log2(n)); | 233 | const int step = 2 << (10 - av_log2(n)); |
192 | int i = 0, j = step>>1; | 234 | int i = 0, j = 0; |
193 | 235 | ||
194 | mdct_backward(2 * n, in, q->mono_mdct_output); | 236 | mdct_backward(2 * n, in, q->mono_mdct_output); |
195 | 237 | ||
196 | do { | 238 | do { |
197 | FIXP tmp = q->mono_mdct_output[i]; | 239 | FIXP tmp = q->mono_mdct_output[i]; |
198 | 240 | ||
199 | q->mono_mdct_output[i] = | 241 | q->mono_mdct_output[i] = |
200 | fixp_mult_su(-q->mono_mdct_output[n + i], sincos_lookup[j]); | 242 | fixmul31(-q->mono_mdct_output[n + i], (sincos_lookup0[j])); |
201 | q->mono_mdct_output[n + i] = fixp_mult_su(tmp, sincos_lookup[j+1]); | 243 | |
244 | q->mono_mdct_output[n + i] = fixmul31(tmp, (sincos_lookup0[j+1]) ); | ||
245 | |||
202 | j += step; | 246 | j += step; |
247 | |||
203 | } while (++i < n/2); | 248 | } while (++i < n/2); |
249 | |||
204 | do { | 250 | do { |
205 | FIXP tmp = q->mono_mdct_output[i]; | 251 | FIXP tmp = q->mono_mdct_output[i]; |
206 | 252 | ||
207 | j -= step; | 253 | j -= step; |
208 | q->mono_mdct_output[i] = | 254 | q->mono_mdct_output[i] = |
209 | fixp_mult_su(-q->mono_mdct_output[n + i], sincos_lookup[j+1]); | 255 | fixmul31(-q->mono_mdct_output[n + i], (sincos_lookup0[j+1]) ); |
210 | q->mono_mdct_output[n + i] = fixp_mult_su(tmp, sincos_lookup[j]); | 256 | q->mono_mdct_output[n + i] = fixmul31(tmp, (sincos_lookup0[j]) ); |
211 | } while (++i < n); | 257 | } while (++i < n); |
212 | } | 258 | } |
213 | #endif | 259 | #endif |
@@ -291,6 +337,7 @@ static inline void output_math(COOKContext *q, int16_t *out, int chan) | |||
291 | int j; | 337 | int j; |
292 | 338 | ||
293 | for (j = 0; j < q->samples_per_channel; j++) { | 339 | for (j = 0; j < q->samples_per_channel; j++) { |
294 | out[chan + q->nb_channels * j] = fixp_pow2(q->mono_mdct_output[j], -11); | 340 | out[chan + q->nb_channels * j] = |
341 | av_clip(fixp_pow2(q->mono_mdct_output[j], -11), -32768, 32767); | ||
295 | } | 342 | } |
296 | } | 343 | } |
diff --git a/apps/codecs/libcook/cookdata_fixpoint.h b/apps/codecs/libcook/cookdata_fixpoint.h index 7a9440c664..72ccabeb89 100644 --- a/apps/codecs/libcook/cookdata_fixpoint.h +++ b/apps/codecs/libcook/cookdata_fixpoint.h | |||
@@ -43,7 +43,9 @@ typedef struct { | |||
43 | #define cPI1_8 0xec83 /* 1pi/8 2^16 */ | 43 | #define cPI1_8 0xec83 /* 1pi/8 2^16 */ |
44 | #define cPI2_8 0xb505 /* 2pi/8 2^16 */ | 44 | #define cPI2_8 0xb505 /* 2pi/8 2^16 */ |
45 | #define cPI3_8 0x61f8 /* 3pi/8 2^16 */ | 45 | #define cPI3_8 0x61f8 /* 3pi/8 2^16 */ |
46 | #endif | 46 | |
47 | |||
48 | |||
47 | static const FIXPU sincos_lookup[2050] = { | 49 | static const FIXPU sincos_lookup[2050] = { |
48 | /* x_i = 2^16 sin(i 2pi/8192), 2^16 cos(i 2pi/8192); i=0..1024 */ | 50 | /* x_i = 2^16 sin(i 2pi/8192), 2^16 cos(i 2pi/8192); i=0..1024 */ |
49 | 0x0000, 0xffff, 0x0032, 0xffff, 0x0065, 0xffff, 0x0097, 0xffff, | 51 | 0x0000, 0xffff, 0x0032, 0xffff, 0x0065, 0xffff, 0x0097, 0xffff, |
@@ -305,6 +307,8 @@ static const FIXPU sincos_lookup[2050] = { | |||
305 | 0xb505, 0xb505 | 307 | 0xb505, 0xb505 |
306 | }; | 308 | }; |
307 | 309 | ||
310 | #endif | ||
311 | |||
308 | static const FIXPU pow128_tab[128] = { | 312 | static const FIXPU pow128_tab[128] = { |
309 | /* x_i = 2^(15+i/128) */ | 313 | /* x_i = 2^(15+i/128) */ |
310 | 0x8000, 0x80b2, 0x8165, 0x8219, 0x82ce, 0x8383, 0x843a, 0x84f2, 0x85ab, | 314 | 0x8000, 0x80b2, 0x8165, 0x8219, 0x82ce, 0x8383, 0x843a, 0x84f2, 0x85ab, |
@@ -325,6 +329,7 @@ static const FIXPU pow128_tab[128] = { | |||
325 | }; | 329 | }; |
326 | 330 | ||
327 | 331 | ||
332 | |||
328 | /* dither_table and quant_centroid_table. | 333 | /* dither_table and quant_centroid_table. |
329 | * Index 1: [0] - scaled by 2^13, [1] - scaled by 2^13 / sqrt(2) | 334 | * Index 1: [0] - scaled by 2^13, [1] - scaled by 2^13 / sqrt(2) |
330 | * Index 2: [0..7] - category | 335 | * Index 2: [0..7] - category |