Added all the F4 libraries to the project
[fw/stlink] / exampleF4 / CMSIS / DSP_Lib / Source / TransformFunctions / arm_rfft_init_q31.c
1 /* ----------------------------------------------------------------------   
2 * Copyright (C) 2010 ARM Limited. All rights reserved.   
3 *   
4 * $Date:        15. July 2011  
5 * $Revision:    V1.0.10  
6 *   
7 * Project:          CMSIS DSP Library   
8 * Title:            arm_rfft_init_q31.c   
9 *   
10 * Description:  RFFT & RIFFT Q31 initialisation function   
11 *   
12 * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0
13 *  
14 * Version 1.0.10 2011/7/15 
15 *    Big Endian support added and Merged M0 and M3/M4 Source code.  
16 *   
17 * Version 1.0.3 2010/11/29  
18 *    Re-organized the CMSIS folders and updated documentation.   
19 *    
20 * Version 1.0.2 2010/11/11   
21 *    Documentation updated.    
22 *   
23 * Version 1.0.1 2010/10/05    
24 *    Production release and review comments incorporated.   
25 *   
26 * Version 1.0.0 2010/09/20    
27 *    Production release and review comments incorporated   
28 *   
29 * Version 0.0.7  2010/06/10    
30 *    Misra-C changes done   
31 * -------------------------------------------------------------------- */
32
33 #include "arm_math.h"
34
35 /**   
36  * @ingroup groupTransforms   
37  */
38
39 /**   
40  * @addtogroup RFFT_RIFFT   
41  * @{   
42  */
43
44 /**   
45 * \par   
46 * Generation floating point realCoefAQ31 array:   
47 * \par   
48 * n = 1024   
49 * <pre>for (i = 0; i < n; i++)   
50 * {   
51 *    pATable[2 * i] = 0.5 * (1.0 - sin (2 * PI / (double) (2 * n) * (double) i));   
52 *    pATable[2 * i + 1] = 0.5 * (-1.0 * cos (2 * PI / (double) (2 * n) * (double) i));   
53 * }</pre>   
54 * \par   
55 * Convert to fixed point Q31 format   
56 *     round(pATable[i] * pow(2, 31))   
57 */
58
59
60 const q31_t realCoefAQ31[1024] = {
61   0x40000000, 0xc0000000, 0x3f9b783c, 0xc0004ef5,
62   0x3f36f170, 0xc0013bd3, 0x3ed26c94, 0xc002c697,
63   0x3e6deaa1, 0xc004ef3f, 0x3e096c8d, 0xc007b5c4,
64   0x3da4f351, 0xc00b1a20, 0x3d407fe6, 0xc00f1c4a,
65   0x3cdc1342, 0xc013bc39, 0x3c77ae5e, 0xc018f9e1,
66   0x3c135231, 0xc01ed535, 0x3baeffb3, 0xc0254e27,
67   0x3b4ab7db, 0xc02c64a6, 0x3ae67ba2, 0xc03418a2,
68   0x3a824bfd, 0xc03c6a07, 0x3a1e29e5, 0xc04558c0,
69   0x39ba1651, 0xc04ee4b8, 0x39561237, 0xc0590dd8,
70   0x38f21e8e, 0xc063d405, 0x388e3c4d, 0xc06f3726,
71   0x382a6c6a, 0xc07b371e, 0x37c6afdc, 0xc087d3d0,
72   0x37630799, 0xc0950d1d, 0x36ff7496, 0xc0a2e2e3,
73   0x369bf7c9, 0xc0b15502, 0x36389228, 0xc0c06355,
74   0x35d544a7, 0xc0d00db6, 0x3572103d, 0xc0e05401,
75   0x350ef5de, 0xc0f1360b, 0x34abf67e, 0xc102b3ac,
76   0x34491311, 0xc114ccb9, 0x33e64c8c, 0xc1278104,
77   0x3383a3e2, 0xc13ad060, 0x33211a07, 0xc14eba9d,
78   0x32beafed, 0xc1633f8a, 0x325c6688, 0xc1785ef4,
79   0x31fa3ecb, 0xc18e18a7, 0x319839a6, 0xc1a46c6e,
80   0x3136580d, 0xc1bb5a11, 0x30d49af1, 0xc1d2e158,
81   0x30730342, 0xc1eb0209, 0x301191f3, 0xc203bbe8,
82   0x2fb047f2, 0xc21d0eb8, 0x2f4f2630, 0xc236fa3b,
83   0x2eee2d9d, 0xc2517e31, 0x2e8d5f29, 0xc26c9a58,
84   0x2e2cbbc1, 0xc2884e6e, 0x2dcc4454, 0xc2a49a2e,
85   0x2d6bf9d1, 0xc2c17d52, 0x2d0bdd25, 0xc2def794,
86   0x2cabef3d, 0xc2fd08a9, 0x2c4c3106, 0xc31bb049,
87   0x2beca36c, 0xc33aee27, 0x2b8d475b, 0xc35ac1f7,
88   0x2b2e1dbe, 0xc37b2b6a, 0x2acf277f, 0xc39c2a2f,
89   0x2a70658a, 0xc3bdbdf6, 0x2a11d8c8, 0xc3dfe66c,
90   0x29b38223, 0xc402a33c, 0x29556282, 0xc425f410,
91   0x28f77acf, 0xc449d892, 0x2899cbf1, 0xc46e5069,
92   0x283c56cf, 0xc4935b3c, 0x27df1c50, 0xc4b8f8ad,
93   0x27821d59, 0xc4df2862, 0x27255ad1, 0xc505e9fb,
94   0x26c8d59c, 0xc52d3d18, 0x266c8e9f, 0xc555215a,
95   0x261086bc, 0xc57d965d, 0x25b4bed8, 0xc5a69bbe,
96   0x255937d5, 0xc5d03118, 0x24fdf294, 0xc5fa5603,
97   0x24a2eff6, 0xc6250a18, 0x244830dd, 0xc6504ced,
98   0x23edb628, 0xc67c1e18, 0x239380b6, 0xc6a87d2d,
99   0x23399167, 0xc6d569be, 0x22dfe917, 0xc702e35c,
100   0x228688a4, 0xc730e997, 0x222d70eb, 0xc75f7bfe,
101   0x21d4a2c8, 0xc78e9a1d, 0x217c1f15, 0xc7be4381,
102   0x2123e6ad, 0xc7ee77b3, 0x20cbfa6a, 0xc81f363d,
103   0x20745b24, 0xc8507ea7, 0x201d09b4, 0xc8825077,
104   0x1fc606f1, 0xc8b4ab32, 0x1f6f53b3, 0xc8e78e5b,
105   0x1f18f0ce, 0xc91af976, 0x1ec2df18, 0xc94eec03,
106   0x1e6d1f65, 0xc9836582, 0x1e17b28a, 0xc9b86572,
107   0x1dc29958, 0xc9edeb50, 0x1d6dd4a2, 0xca23f698,
108   0x1d196538, 0xca5a86c4, 0x1cc54bec, 0xca919b4e,
109   0x1c71898d, 0xcac933ae, 0x1c1e1ee9, 0xcb014f5b,
110   0x1bcb0cce, 0xcb39edca, 0x1b785409, 0xcb730e70,
111   0x1b25f566, 0xcbacb0bf, 0x1ad3f1b1, 0xcbe6d42b,
112   0x1a8249b4, 0xcc217822, 0x1a30fe38, 0xcc5c9c14,
113   0x19e01006, 0xcc983f70, 0x198f7fe6, 0xccd461a2,
114   0x193f4e9e, 0xcd110216, 0x18ef7cf4, 0xcd4e2037,
115   0x18a00bae, 0xcd8bbb6d, 0x1850fb8e, 0xcdc9d320,
116   0x18024d59, 0xce0866b8, 0x17b401d1, 0xce47759a,
117   0x176619b6, 0xce86ff2a, 0x171895c9, 0xcec702cb,
118   0x16cb76c9, 0xcf077fe1, 0x167ebd74, 0xcf4875ca,
119   0x16326a88, 0xcf89e3e8, 0x15e67ec1, 0xcfcbc999,
120   0x159afadb, 0xd00e2639, 0x154fdf8f, 0xd050f926,
121   0x15052d97, 0xd09441bb, 0x14bae5ab, 0xd0d7ff51,
122   0x14710883, 0xd11c3142, 0x142796d5, 0xd160d6e5,
123   0x13de9156, 0xd1a5ef90, 0x1395f8ba, 0xd1eb7a9a,
124   0x134dcdb4, 0xd2317756, 0x130610f7, 0xd277e518,
125   0x12bec333, 0xd2bec333, 0x1277e518, 0xd30610f7,
126   0x12317756, 0xd34dcdb4, 0x11eb7a9a, 0xd395f8ba,
127   0x11a5ef90, 0xd3de9156, 0x1160d6e5, 0xd42796d5,
128   0x111c3142, 0xd4710883, 0x10d7ff51, 0xd4bae5ab,
129   0x109441bb, 0xd5052d97, 0x1050f926, 0xd54fdf8f,
130   0x100e2639, 0xd59afadb, 0xfcbc999, 0xd5e67ec1,
131   0xf89e3e8, 0xd6326a88, 0xf4875ca, 0xd67ebd74,
132   0xf077fe1, 0xd6cb76c9, 0xec702cb, 0xd71895c9,
133   0xe86ff2a, 0xd76619b6, 0xe47759a, 0xd7b401d1,
134   0xe0866b8, 0xd8024d59, 0xdc9d320, 0xd850fb8e,
135   0xd8bbb6d, 0xd8a00bae, 0xd4e2037, 0xd8ef7cf4,
136   0xd110216, 0xd93f4e9e, 0xcd461a2, 0xd98f7fe6,
137   0xc983f70, 0xd9e01006, 0xc5c9c14, 0xda30fe38,
138   0xc217822, 0xda8249b4, 0xbe6d42b, 0xdad3f1b1,
139   0xbacb0bf, 0xdb25f566, 0xb730e70, 0xdb785409,
140   0xb39edca, 0xdbcb0cce, 0xb014f5b, 0xdc1e1ee9,
141   0xac933ae, 0xdc71898d, 0xa919b4e, 0xdcc54bec,
142   0xa5a86c4, 0xdd196538, 0xa23f698, 0xdd6dd4a2,
143   0x9edeb50, 0xddc29958, 0x9b86572, 0xde17b28a,
144   0x9836582, 0xde6d1f65, 0x94eec03, 0xdec2df18,
145   0x91af976, 0xdf18f0ce, 0x8e78e5b, 0xdf6f53b3,
146   0x8b4ab32, 0xdfc606f1, 0x8825077, 0xe01d09b4,
147   0x8507ea7, 0xe0745b24, 0x81f363d, 0xe0cbfa6a,
148   0x7ee77b3, 0xe123e6ad, 0x7be4381, 0xe17c1f15,
149   0x78e9a1d, 0xe1d4a2c8, 0x75f7bfe, 0xe22d70eb,
150   0x730e997, 0xe28688a4, 0x702e35c, 0xe2dfe917,
151   0x6d569be, 0xe3399167, 0x6a87d2d, 0xe39380b6,
152   0x67c1e18, 0xe3edb628, 0x6504ced, 0xe44830dd,
153   0x6250a18, 0xe4a2eff6, 0x5fa5603, 0xe4fdf294,
154   0x5d03118, 0xe55937d5, 0x5a69bbe, 0xe5b4bed8,
155   0x57d965d, 0xe61086bc, 0x555215a, 0xe66c8e9f,
156   0x52d3d18, 0xe6c8d59c, 0x505e9fb, 0xe7255ad1,
157   0x4df2862, 0xe7821d59, 0x4b8f8ad, 0xe7df1c50,
158   0x4935b3c, 0xe83c56cf, 0x46e5069, 0xe899cbf1,
159   0x449d892, 0xe8f77acf, 0x425f410, 0xe9556282,
160   0x402a33c, 0xe9b38223, 0x3dfe66c, 0xea11d8c8,
161   0x3bdbdf6, 0xea70658a, 0x39c2a2f, 0xeacf277f,
162   0x37b2b6a, 0xeb2e1dbe, 0x35ac1f7, 0xeb8d475b,
163   0x33aee27, 0xebeca36c, 0x31bb049, 0xec4c3106,
164   0x2fd08a9, 0xecabef3d, 0x2def794, 0xed0bdd25,
165   0x2c17d52, 0xed6bf9d1, 0x2a49a2e, 0xedcc4454,
166   0x2884e6e, 0xee2cbbc1, 0x26c9a58, 0xee8d5f29,
167   0x2517e31, 0xeeee2d9d, 0x236fa3b, 0xef4f2630,
168   0x21d0eb8, 0xefb047f2, 0x203bbe8, 0xf01191f3,
169   0x1eb0209, 0xf0730342, 0x1d2e158, 0xf0d49af1,
170   0x1bb5a11, 0xf136580d, 0x1a46c6e, 0xf19839a6,
171   0x18e18a7, 0xf1fa3ecb, 0x1785ef4, 0xf25c6688,
172   0x1633f8a, 0xf2beafed, 0x14eba9d, 0xf3211a07,
173   0x13ad060, 0xf383a3e2, 0x1278104, 0xf3e64c8c,
174   0x114ccb9, 0xf4491311, 0x102b3ac, 0xf4abf67e,
175   0xf1360b, 0xf50ef5de, 0xe05401, 0xf572103d,
176   0xd00db6, 0xf5d544a7, 0xc06355, 0xf6389228,
177   0xb15502, 0xf69bf7c9, 0xa2e2e3, 0xf6ff7496,
178   0x950d1d, 0xf7630799, 0x87d3d0, 0xf7c6afdc,
179   0x7b371e, 0xf82a6c6a, 0x6f3726, 0xf88e3c4d,
180   0x63d405, 0xf8f21e8e, 0x590dd8, 0xf9561237,
181   0x4ee4b8, 0xf9ba1651, 0x4558c0, 0xfa1e29e5,
182   0x3c6a07, 0xfa824bfd, 0x3418a2, 0xfae67ba2,
183   0x2c64a6, 0xfb4ab7db, 0x254e27, 0xfbaeffb3,
184   0x1ed535, 0xfc135231, 0x18f9e1, 0xfc77ae5e,
185   0x13bc39, 0xfcdc1342, 0xf1c4a, 0xfd407fe6,
186   0xb1a20, 0xfda4f351, 0x7b5c4, 0xfe096c8d,
187   0x4ef3f, 0xfe6deaa1, 0x2c697, 0xfed26c94,
188   0x13bd3, 0xff36f170, 0x4ef5, 0xff9b783c,
189   0x0, 0x0, 0x4ef5, 0x6487c4,
190   0x13bd3, 0xc90e90, 0x2c697, 0x12d936c,
191   0x4ef3f, 0x192155f, 0x7b5c4, 0x1f69373,
192   0xb1a20, 0x25b0caf, 0xf1c4a, 0x2bf801a,
193   0x13bc39, 0x323ecbe, 0x18f9e1, 0x38851a2,
194   0x1ed535, 0x3ecadcf, 0x254e27, 0x451004d,
195   0x2c64a6, 0x4b54825, 0x3418a2, 0x519845e,
196   0x3c6a07, 0x57db403, 0x4558c0, 0x5e1d61b,
197   0x4ee4b8, 0x645e9af, 0x590dd8, 0x6a9edc9,
198   0x63d405, 0x70de172, 0x6f3726, 0x771c3b3,
199   0x7b371e, 0x7d59396, 0x87d3d0, 0x8395024,
200   0x950d1d, 0x89cf867, 0xa2e2e3, 0x9008b6a,
201   0xb15502, 0x9640837, 0xc06355, 0x9c76dd8,
202   0xd00db6, 0xa2abb59, 0xe05401, 0xa8defc3,
203   0xf1360b, 0xaf10a22, 0x102b3ac, 0xb540982,
204   0x114ccb9, 0xbb6ecef, 0x1278104, 0xc19b374,
205   0x13ad060, 0xc7c5c1e, 0x14eba9d, 0xcdee5f9,
206   0x1633f8a, 0xd415013, 0x1785ef4, 0xda39978,
207   0x18e18a7, 0xe05c135, 0x1a46c6e, 0xe67c65a,
208   0x1bb5a11, 0xec9a7f3, 0x1d2e158, 0xf2b650f,
209   0x1eb0209, 0xf8cfcbe, 0x203bbe8, 0xfee6e0d,
210   0x21d0eb8, 0x104fb80e, 0x236fa3b, 0x10b0d9d0,
211   0x2517e31, 0x1111d263, 0x26c9a58, 0x1172a0d7,
212   0x2884e6e, 0x11d3443f, 0x2a49a2e, 0x1233bbac,
213   0x2c17d52, 0x1294062f, 0x2def794, 0x12f422db,
214   0x2fd08a9, 0x135410c3, 0x31bb049, 0x13b3cefa,
215   0x33aee27, 0x14135c94, 0x35ac1f7, 0x1472b8a5,
216   0x37b2b6a, 0x14d1e242, 0x39c2a2f, 0x1530d881,
217   0x3bdbdf6, 0x158f9a76, 0x3dfe66c, 0x15ee2738,
218   0x402a33c, 0x164c7ddd, 0x425f410, 0x16aa9d7e,
219   0x449d892, 0x17088531, 0x46e5069, 0x1766340f,
220   0x4935b3c, 0x17c3a931, 0x4b8f8ad, 0x1820e3b0,
221   0x4df2862, 0x187de2a7, 0x505e9fb, 0x18daa52f,
222   0x52d3d18, 0x19372a64, 0x555215a, 0x19937161,
223   0x57d965d, 0x19ef7944, 0x5a69bbe, 0x1a4b4128,
224   0x5d03118, 0x1aa6c82b, 0x5fa5603, 0x1b020d6c,
225   0x6250a18, 0x1b5d100a, 0x6504ced, 0x1bb7cf23,
226   0x67c1e18, 0x1c1249d8, 0x6a87d2d, 0x1c6c7f4a,
227   0x6d569be, 0x1cc66e99, 0x702e35c, 0x1d2016e9,
228   0x730e997, 0x1d79775c, 0x75f7bfe, 0x1dd28f15,
229   0x78e9a1d, 0x1e2b5d38, 0x7be4381, 0x1e83e0eb,
230   0x7ee77b3, 0x1edc1953, 0x81f363d, 0x1f340596,
231   0x8507ea7, 0x1f8ba4dc, 0x8825077, 0x1fe2f64c,
232   0x8b4ab32, 0x2039f90f, 0x8e78e5b, 0x2090ac4d,
233   0x91af976, 0x20e70f32, 0x94eec03, 0x213d20e8,
234   0x9836582, 0x2192e09b, 0x9b86572, 0x21e84d76,
235   0x9edeb50, 0x223d66a8, 0xa23f698, 0x22922b5e,
236   0xa5a86c4, 0x22e69ac8, 0xa919b4e, 0x233ab414,
237   0xac933ae, 0x238e7673, 0xb014f5b, 0x23e1e117,
238   0xb39edca, 0x2434f332, 0xb730e70, 0x2487abf7,
239   0xbacb0bf, 0x24da0a9a, 0xbe6d42b, 0x252c0e4f,
240   0xc217822, 0x257db64c, 0xc5c9c14, 0x25cf01c8,
241   0xc983f70, 0x261feffa, 0xcd461a2, 0x2670801a,
242   0xd110216, 0x26c0b162, 0xd4e2037, 0x2710830c,
243   0xd8bbb6d, 0x275ff452, 0xdc9d320, 0x27af0472,
244   0xe0866b8, 0x27fdb2a7, 0xe47759a, 0x284bfe2f,
245   0xe86ff2a, 0x2899e64a, 0xec702cb, 0x28e76a37,
246   0xf077fe1, 0x29348937, 0xf4875ca, 0x2981428c,
247   0xf89e3e8, 0x29cd9578, 0xfcbc999, 0x2a19813f,
248   0x100e2639, 0x2a650525, 0x1050f926, 0x2ab02071,
249   0x109441bb, 0x2afad269, 0x10d7ff51, 0x2b451a55,
250   0x111c3142, 0x2b8ef77d, 0x1160d6e5, 0x2bd8692b,
251   0x11a5ef90, 0x2c216eaa, 0x11eb7a9a, 0x2c6a0746,
252   0x12317756, 0x2cb2324c, 0x1277e518, 0x2cf9ef09,
253   0x12bec333, 0x2d413ccd, 0x130610f7, 0x2d881ae8,
254   0x134dcdb4, 0x2dce88aa, 0x1395f8ba, 0x2e148566,
255   0x13de9156, 0x2e5a1070, 0x142796d5, 0x2e9f291b,
256   0x14710883, 0x2ee3cebe, 0x14bae5ab, 0x2f2800af,
257   0x15052d97, 0x2f6bbe45, 0x154fdf8f, 0x2faf06da,
258   0x159afadb, 0x2ff1d9c7, 0x15e67ec1, 0x30343667,
259   0x16326a88, 0x30761c18, 0x167ebd74, 0x30b78a36,
260   0x16cb76c9, 0x30f8801f, 0x171895c9, 0x3138fd35,
261   0x176619b6, 0x317900d6, 0x17b401d1, 0x31b88a66,
262   0x18024d59, 0x31f79948, 0x1850fb8e, 0x32362ce0,
263   0x18a00bae, 0x32744493, 0x18ef7cf4, 0x32b1dfc9,
264   0x193f4e9e, 0x32eefdea, 0x198f7fe6, 0x332b9e5e,
265   0x19e01006, 0x3367c090, 0x1a30fe38, 0x33a363ec,
266   0x1a8249b4, 0x33de87de, 0x1ad3f1b1, 0x34192bd5,
267   0x1b25f566, 0x34534f41, 0x1b785409, 0x348cf190,
268   0x1bcb0cce, 0x34c61236, 0x1c1e1ee9, 0x34feb0a5,
269   0x1c71898d, 0x3536cc52, 0x1cc54bec, 0x356e64b2,
270   0x1d196538, 0x35a5793c, 0x1d6dd4a2, 0x35dc0968,
271   0x1dc29958, 0x361214b0, 0x1e17b28a, 0x36479a8e,
272   0x1e6d1f65, 0x367c9a7e, 0x1ec2df18, 0x36b113fd,
273   0x1f18f0ce, 0x36e5068a, 0x1f6f53b3, 0x371871a5,
274   0x1fc606f1, 0x374b54ce, 0x201d09b4, 0x377daf89,
275   0x20745b24, 0x37af8159, 0x20cbfa6a, 0x37e0c9c3,
276   0x2123e6ad, 0x3811884d, 0x217c1f15, 0x3841bc7f,
277   0x21d4a2c8, 0x387165e3, 0x222d70eb, 0x38a08402,
278   0x228688a4, 0x38cf1669, 0x22dfe917, 0x38fd1ca4,
279   0x23399167, 0x392a9642, 0x239380b6, 0x395782d3,
280   0x23edb628, 0x3983e1e8, 0x244830dd, 0x39afb313,
281   0x24a2eff6, 0x39daf5e8, 0x24fdf294, 0x3a05a9fd,
282   0x255937d5, 0x3a2fcee8, 0x25b4bed8, 0x3a596442,
283   0x261086bc, 0x3a8269a3, 0x266c8e9f, 0x3aaadea6,
284   0x26c8d59c, 0x3ad2c2e8, 0x27255ad1, 0x3afa1605,
285   0x27821d59, 0x3b20d79e, 0x27df1c50, 0x3b470753,
286   0x283c56cf, 0x3b6ca4c4, 0x2899cbf1, 0x3b91af97,
287   0x28f77acf, 0x3bb6276e, 0x29556282, 0x3bda0bf0,
288   0x29b38223, 0x3bfd5cc4, 0x2a11d8c8, 0x3c201994,
289   0x2a70658a, 0x3c42420a, 0x2acf277f, 0x3c63d5d1,
290   0x2b2e1dbe, 0x3c84d496, 0x2b8d475b, 0x3ca53e09,
291   0x2beca36c, 0x3cc511d9, 0x2c4c3106, 0x3ce44fb7,
292   0x2cabef3d, 0x3d02f757, 0x2d0bdd25, 0x3d21086c,
293   0x2d6bf9d1, 0x3d3e82ae, 0x2dcc4454, 0x3d5b65d2,
294   0x2e2cbbc1, 0x3d77b192, 0x2e8d5f29, 0x3d9365a8,
295   0x2eee2d9d, 0x3dae81cf, 0x2f4f2630, 0x3dc905c5,
296   0x2fb047f2, 0x3de2f148, 0x301191f3, 0x3dfc4418,
297   0x30730342, 0x3e14fdf7, 0x30d49af1, 0x3e2d1ea8,
298   0x3136580d, 0x3e44a5ef, 0x319839a6, 0x3e5b9392,
299   0x31fa3ecb, 0x3e71e759, 0x325c6688, 0x3e87a10c,
300   0x32beafed, 0x3e9cc076, 0x33211a07, 0x3eb14563,
301   0x3383a3e2, 0x3ec52fa0, 0x33e64c8c, 0x3ed87efc,
302   0x34491311, 0x3eeb3347, 0x34abf67e, 0x3efd4c54,
303   0x350ef5de, 0x3f0ec9f5, 0x3572103d, 0x3f1fabff,
304   0x35d544a7, 0x3f2ff24a, 0x36389228, 0x3f3f9cab,
305   0x369bf7c9, 0x3f4eaafe, 0x36ff7496, 0x3f5d1d1d,
306   0x37630799, 0x3f6af2e3, 0x37c6afdc, 0x3f782c30,
307   0x382a6c6a, 0x3f84c8e2, 0x388e3c4d, 0x3f90c8da,
308   0x38f21e8e, 0x3f9c2bfb, 0x39561237, 0x3fa6f228,
309   0x39ba1651, 0x3fb11b48, 0x3a1e29e5, 0x3fbaa740,
310   0x3a824bfd, 0x3fc395f9, 0x3ae67ba2, 0x3fcbe75e,
311   0x3b4ab7db, 0x3fd39b5a, 0x3baeffb3, 0x3fdab1d9,
312   0x3c135231, 0x3fe12acb, 0x3c77ae5e, 0x3fe7061f,
313   0x3cdc1342, 0x3fec43c7, 0x3d407fe6, 0x3ff0e3b6,
314   0x3da4f351, 0x3ff4e5e0, 0x3e096c8d, 0x3ff84a3c,
315   0x3e6deaa1, 0x3ffb10c1, 0x3ed26c94, 0x3ffd3969,
316   0x3f36f170, 0x3ffec42d, 0x3f9b783c, 0x3fffb10b
317 };
318
319
320 /**   
321 * \par  
322 * Generation of realCoefBQ31 array:   
323 * \par   
324 *  n = 512   
325 * <pre>for (i = 0; i < n; i++)   
326 * {   
327 *    pBTable[2 * i] = 0.5 * (1.0 + sin (2 * PI / (double) (2 * n) * (double) i));   
328 *    pBTable[2 * i + 1] = 0.5 * (1.0 * cos (2 * PI / (double) (2 * n) * (double) i));   
329 * } </pre>   
330 * \par   
331 * Convert to fixed point Q31 format   
332 *     round(pBTable[i] * pow(2, 31))   
333 *   
334 */
335
336 const q31_t realCoefBQ31[1024] = {
337   0x40000000, 0x40000000, 0x406487c4, 0x3fffb10b,
338   0x40c90e90, 0x3ffec42d, 0x412d936c, 0x3ffd3969,
339   0x4192155f, 0x3ffb10c1, 0x41f69373, 0x3ff84a3c,
340   0x425b0caf, 0x3ff4e5e0, 0x42bf801a, 0x3ff0e3b6,
341   0x4323ecbe, 0x3fec43c7, 0x438851a2, 0x3fe7061f,
342   0x43ecadcf, 0x3fe12acb, 0x4451004d, 0x3fdab1d9,
343   0x44b54825, 0x3fd39b5a, 0x4519845e, 0x3fcbe75e,
344   0x457db403, 0x3fc395f9, 0x45e1d61b, 0x3fbaa740,
345   0x4645e9af, 0x3fb11b48, 0x46a9edc9, 0x3fa6f228,
346   0x470de172, 0x3f9c2bfb, 0x4771c3b3, 0x3f90c8da,
347   0x47d59396, 0x3f84c8e2, 0x48395024, 0x3f782c30,
348   0x489cf867, 0x3f6af2e3, 0x49008b6a, 0x3f5d1d1d,
349   0x49640837, 0x3f4eaafe, 0x49c76dd8, 0x3f3f9cab,
350   0x4a2abb59, 0x3f2ff24a, 0x4a8defc3, 0x3f1fabff,
351   0x4af10a22, 0x3f0ec9f5, 0x4b540982, 0x3efd4c54,
352   0x4bb6ecef, 0x3eeb3347, 0x4c19b374, 0x3ed87efc,
353   0x4c7c5c1e, 0x3ec52fa0, 0x4cdee5f9, 0x3eb14563,
354   0x4d415013, 0x3e9cc076, 0x4da39978, 0x3e87a10c,
355   0x4e05c135, 0x3e71e759, 0x4e67c65a, 0x3e5b9392,
356   0x4ec9a7f3, 0x3e44a5ef, 0x4f2b650f, 0x3e2d1ea8,
357   0x4f8cfcbe, 0x3e14fdf7, 0x4fee6e0d, 0x3dfc4418,
358   0x504fb80e, 0x3de2f148, 0x50b0d9d0, 0x3dc905c5,
359   0x5111d263, 0x3dae81cf, 0x5172a0d7, 0x3d9365a8,
360   0x51d3443f, 0x3d77b192, 0x5233bbac, 0x3d5b65d2,
361   0x5294062f, 0x3d3e82ae, 0x52f422db, 0x3d21086c,
362   0x535410c3, 0x3d02f757, 0x53b3cefa, 0x3ce44fb7,
363   0x54135c94, 0x3cc511d9, 0x5472b8a5, 0x3ca53e09,
364   0x54d1e242, 0x3c84d496, 0x5530d881, 0x3c63d5d1,
365   0x558f9a76, 0x3c42420a, 0x55ee2738, 0x3c201994,
366   0x564c7ddd, 0x3bfd5cc4, 0x56aa9d7e, 0x3bda0bf0,
367   0x57088531, 0x3bb6276e, 0x5766340f, 0x3b91af97,
368   0x57c3a931, 0x3b6ca4c4, 0x5820e3b0, 0x3b470753,
369   0x587de2a7, 0x3b20d79e, 0x58daa52f, 0x3afa1605,
370   0x59372a64, 0x3ad2c2e8, 0x59937161, 0x3aaadea6,
371   0x59ef7944, 0x3a8269a3, 0x5a4b4128, 0x3a596442,
372   0x5aa6c82b, 0x3a2fcee8, 0x5b020d6c, 0x3a05a9fd,
373   0x5b5d100a, 0x39daf5e8, 0x5bb7cf23, 0x39afb313,
374   0x5c1249d8, 0x3983e1e8, 0x5c6c7f4a, 0x395782d3,
375   0x5cc66e99, 0x392a9642, 0x5d2016e9, 0x38fd1ca4,
376   0x5d79775c, 0x38cf1669, 0x5dd28f15, 0x38a08402,
377   0x5e2b5d38, 0x387165e3, 0x5e83e0eb, 0x3841bc7f,
378   0x5edc1953, 0x3811884d, 0x5f340596, 0x37e0c9c3,
379   0x5f8ba4dc, 0x37af8159, 0x5fe2f64c, 0x377daf89,
380   0x6039f90f, 0x374b54ce, 0x6090ac4d, 0x371871a5,
381   0x60e70f32, 0x36e5068a, 0x613d20e8, 0x36b113fd,
382   0x6192e09b, 0x367c9a7e, 0x61e84d76, 0x36479a8e,
383   0x623d66a8, 0x361214b0, 0x62922b5e, 0x35dc0968,
384   0x62e69ac8, 0x35a5793c, 0x633ab414, 0x356e64b2,
385   0x638e7673, 0x3536cc52, 0x63e1e117, 0x34feb0a5,
386   0x6434f332, 0x34c61236, 0x6487abf7, 0x348cf190,
387   0x64da0a9a, 0x34534f41, 0x652c0e4f, 0x34192bd5,
388   0x657db64c, 0x33de87de, 0x65cf01c8, 0x33a363ec,
389   0x661feffa, 0x3367c090, 0x6670801a, 0x332b9e5e,
390   0x66c0b162, 0x32eefdea, 0x6710830c, 0x32b1dfc9,
391   0x675ff452, 0x32744493, 0x67af0472, 0x32362ce0,
392   0x67fdb2a7, 0x31f79948, 0x684bfe2f, 0x31b88a66,
393   0x6899e64a, 0x317900d6, 0x68e76a37, 0x3138fd35,
394   0x69348937, 0x30f8801f, 0x6981428c, 0x30b78a36,
395   0x69cd9578, 0x30761c18, 0x6a19813f, 0x30343667,
396   0x6a650525, 0x2ff1d9c7, 0x6ab02071, 0x2faf06da,
397   0x6afad269, 0x2f6bbe45, 0x6b451a55, 0x2f2800af,
398   0x6b8ef77d, 0x2ee3cebe, 0x6bd8692b, 0x2e9f291b,
399   0x6c216eaa, 0x2e5a1070, 0x6c6a0746, 0x2e148566,
400   0x6cb2324c, 0x2dce88aa, 0x6cf9ef09, 0x2d881ae8,
401   0x6d413ccd, 0x2d413ccd, 0x6d881ae8, 0x2cf9ef09,
402   0x6dce88aa, 0x2cb2324c, 0x6e148566, 0x2c6a0746,
403   0x6e5a1070, 0x2c216eaa, 0x6e9f291b, 0x2bd8692b,
404   0x6ee3cebe, 0x2b8ef77d, 0x6f2800af, 0x2b451a55,
405   0x6f6bbe45, 0x2afad269, 0x6faf06da, 0x2ab02071,
406   0x6ff1d9c7, 0x2a650525, 0x70343667, 0x2a19813f,
407   0x70761c18, 0x29cd9578, 0x70b78a36, 0x2981428c,
408   0x70f8801f, 0x29348937, 0x7138fd35, 0x28e76a37,
409   0x717900d6, 0x2899e64a, 0x71b88a66, 0x284bfe2f,
410   0x71f79948, 0x27fdb2a7, 0x72362ce0, 0x27af0472,
411   0x72744493, 0x275ff452, 0x72b1dfc9, 0x2710830c,
412   0x72eefdea, 0x26c0b162, 0x732b9e5e, 0x2670801a,
413   0x7367c090, 0x261feffa, 0x73a363ec, 0x25cf01c8,
414   0x73de87de, 0x257db64c, 0x74192bd5, 0x252c0e4f,
415   0x74534f41, 0x24da0a9a, 0x748cf190, 0x2487abf7,
416   0x74c61236, 0x2434f332, 0x74feb0a5, 0x23e1e117,
417   0x7536cc52, 0x238e7673, 0x756e64b2, 0x233ab414,
418   0x75a5793c, 0x22e69ac8, 0x75dc0968, 0x22922b5e,
419   0x761214b0, 0x223d66a8, 0x76479a8e, 0x21e84d76,
420   0x767c9a7e, 0x2192e09b, 0x76b113fd, 0x213d20e8,
421   0x76e5068a, 0x20e70f32, 0x771871a5, 0x2090ac4d,
422   0x774b54ce, 0x2039f90f, 0x777daf89, 0x1fe2f64c,
423   0x77af8159, 0x1f8ba4dc, 0x77e0c9c3, 0x1f340596,
424   0x7811884d, 0x1edc1953, 0x7841bc7f, 0x1e83e0eb,
425   0x787165e3, 0x1e2b5d38, 0x78a08402, 0x1dd28f15,
426   0x78cf1669, 0x1d79775c, 0x78fd1ca4, 0x1d2016e9,
427   0x792a9642, 0x1cc66e99, 0x795782d3, 0x1c6c7f4a,
428   0x7983e1e8, 0x1c1249d8, 0x79afb313, 0x1bb7cf23,
429   0x79daf5e8, 0x1b5d100a, 0x7a05a9fd, 0x1b020d6c,
430   0x7a2fcee8, 0x1aa6c82b, 0x7a596442, 0x1a4b4128,
431   0x7a8269a3, 0x19ef7944, 0x7aaadea6, 0x19937161,
432   0x7ad2c2e8, 0x19372a64, 0x7afa1605, 0x18daa52f,
433   0x7b20d79e, 0x187de2a7, 0x7b470753, 0x1820e3b0,
434   0x7b6ca4c4, 0x17c3a931, 0x7b91af97, 0x1766340f,
435   0x7bb6276e, 0x17088531, 0x7bda0bf0, 0x16aa9d7e,
436   0x7bfd5cc4, 0x164c7ddd, 0x7c201994, 0x15ee2738,
437   0x7c42420a, 0x158f9a76, 0x7c63d5d1, 0x1530d881,
438   0x7c84d496, 0x14d1e242, 0x7ca53e09, 0x1472b8a5,
439   0x7cc511d9, 0x14135c94, 0x7ce44fb7, 0x13b3cefa,
440   0x7d02f757, 0x135410c3, 0x7d21086c, 0x12f422db,
441   0x7d3e82ae, 0x1294062f, 0x7d5b65d2, 0x1233bbac,
442   0x7d77b192, 0x11d3443f, 0x7d9365a8, 0x1172a0d7,
443   0x7dae81cf, 0x1111d263, 0x7dc905c5, 0x10b0d9d0,
444   0x7de2f148, 0x104fb80e, 0x7dfc4418, 0xfee6e0d,
445   0x7e14fdf7, 0xf8cfcbe, 0x7e2d1ea8, 0xf2b650f,
446   0x7e44a5ef, 0xec9a7f3, 0x7e5b9392, 0xe67c65a,
447   0x7e71e759, 0xe05c135, 0x7e87a10c, 0xda39978,
448   0x7e9cc076, 0xd415013, 0x7eb14563, 0xcdee5f9,
449   0x7ec52fa0, 0xc7c5c1e, 0x7ed87efc, 0xc19b374,
450   0x7eeb3347, 0xbb6ecef, 0x7efd4c54, 0xb540982,
451   0x7f0ec9f5, 0xaf10a22, 0x7f1fabff, 0xa8defc3,
452   0x7f2ff24a, 0xa2abb59, 0x7f3f9cab, 0x9c76dd8,
453   0x7f4eaafe, 0x9640837, 0x7f5d1d1d, 0x9008b6a,
454   0x7f6af2e3, 0x89cf867, 0x7f782c30, 0x8395024,
455   0x7f84c8e2, 0x7d59396, 0x7f90c8da, 0x771c3b3,
456   0x7f9c2bfb, 0x70de172, 0x7fa6f228, 0x6a9edc9,
457   0x7fb11b48, 0x645e9af, 0x7fbaa740, 0x5e1d61b,
458   0x7fc395f9, 0x57db403, 0x7fcbe75e, 0x519845e,
459   0x7fd39b5a, 0x4b54825, 0x7fdab1d9, 0x451004d,
460   0x7fe12acb, 0x3ecadcf, 0x7fe7061f, 0x38851a2,
461   0x7fec43c7, 0x323ecbe, 0x7ff0e3b6, 0x2bf801a,
462   0x7ff4e5e0, 0x25b0caf, 0x7ff84a3c, 0x1f69373,
463   0x7ffb10c1, 0x192155f, 0x7ffd3969, 0x12d936c,
464   0x7ffec42d, 0xc90e90, 0x7fffb10b, 0x6487c4,
465   0x7fffffff, 0x0, 0x7fffb10b, 0xff9b783c,
466   0x7ffec42d, 0xff36f170, 0x7ffd3969, 0xfed26c94,
467   0x7ffb10c1, 0xfe6deaa1, 0x7ff84a3c, 0xfe096c8d,
468   0x7ff4e5e0, 0xfda4f351, 0x7ff0e3b6, 0xfd407fe6,
469   0x7fec43c7, 0xfcdc1342, 0x7fe7061f, 0xfc77ae5e,
470   0x7fe12acb, 0xfc135231, 0x7fdab1d9, 0xfbaeffb3,
471   0x7fd39b5a, 0xfb4ab7db, 0x7fcbe75e, 0xfae67ba2,
472   0x7fc395f9, 0xfa824bfd, 0x7fbaa740, 0xfa1e29e5,
473   0x7fb11b48, 0xf9ba1651, 0x7fa6f228, 0xf9561237,
474   0x7f9c2bfb, 0xf8f21e8e, 0x7f90c8da, 0xf88e3c4d,
475   0x7f84c8e2, 0xf82a6c6a, 0x7f782c30, 0xf7c6afdc,
476   0x7f6af2e3, 0xf7630799, 0x7f5d1d1d, 0xf6ff7496,
477   0x7f4eaafe, 0xf69bf7c9, 0x7f3f9cab, 0xf6389228,
478   0x7f2ff24a, 0xf5d544a7, 0x7f1fabff, 0xf572103d,
479   0x7f0ec9f5, 0xf50ef5de, 0x7efd4c54, 0xf4abf67e,
480   0x7eeb3347, 0xf4491311, 0x7ed87efc, 0xf3e64c8c,
481   0x7ec52fa0, 0xf383a3e2, 0x7eb14563, 0xf3211a07,
482   0x7e9cc076, 0xf2beafed, 0x7e87a10c, 0xf25c6688,
483   0x7e71e759, 0xf1fa3ecb, 0x7e5b9392, 0xf19839a6,
484   0x7e44a5ef, 0xf136580d, 0x7e2d1ea8, 0xf0d49af1,
485   0x7e14fdf7, 0xf0730342, 0x7dfc4418, 0xf01191f3,
486   0x7de2f148, 0xefb047f2, 0x7dc905c5, 0xef4f2630,
487   0x7dae81cf, 0xeeee2d9d, 0x7d9365a8, 0xee8d5f29,
488   0x7d77b192, 0xee2cbbc1, 0x7d5b65d2, 0xedcc4454,
489   0x7d3e82ae, 0xed6bf9d1, 0x7d21086c, 0xed0bdd25,
490   0x7d02f757, 0xecabef3d, 0x7ce44fb7, 0xec4c3106,
491   0x7cc511d9, 0xebeca36c, 0x7ca53e09, 0xeb8d475b,
492   0x7c84d496, 0xeb2e1dbe, 0x7c63d5d1, 0xeacf277f,
493   0x7c42420a, 0xea70658a, 0x7c201994, 0xea11d8c8,
494   0x7bfd5cc4, 0xe9b38223, 0x7bda0bf0, 0xe9556282,
495   0x7bb6276e, 0xe8f77acf, 0x7b91af97, 0xe899cbf1,
496   0x7b6ca4c4, 0xe83c56cf, 0x7b470753, 0xe7df1c50,
497   0x7b20d79e, 0xe7821d59, 0x7afa1605, 0xe7255ad1,
498   0x7ad2c2e8, 0xe6c8d59c, 0x7aaadea6, 0xe66c8e9f,
499   0x7a8269a3, 0xe61086bc, 0x7a596442, 0xe5b4bed8,
500   0x7a2fcee8, 0xe55937d5, 0x7a05a9fd, 0xe4fdf294,
501   0x79daf5e8, 0xe4a2eff6, 0x79afb313, 0xe44830dd,
502   0x7983e1e8, 0xe3edb628, 0x795782d3, 0xe39380b6,
503   0x792a9642, 0xe3399167, 0x78fd1ca4, 0xe2dfe917,
504   0x78cf1669, 0xe28688a4, 0x78a08402, 0xe22d70eb,
505   0x787165e3, 0xe1d4a2c8, 0x7841bc7f, 0xe17c1f15,
506   0x7811884d, 0xe123e6ad, 0x77e0c9c3, 0xe0cbfa6a,
507   0x77af8159, 0xe0745b24, 0x777daf89, 0xe01d09b4,
508   0x774b54ce, 0xdfc606f1, 0x771871a5, 0xdf6f53b3,
509   0x76e5068a, 0xdf18f0ce, 0x76b113fd, 0xdec2df18,
510   0x767c9a7e, 0xde6d1f65, 0x76479a8e, 0xde17b28a,
511   0x761214b0, 0xddc29958, 0x75dc0968, 0xdd6dd4a2,
512   0x75a5793c, 0xdd196538, 0x756e64b2, 0xdcc54bec,
513   0x7536cc52, 0xdc71898d, 0x74feb0a5, 0xdc1e1ee9,
514   0x74c61236, 0xdbcb0cce, 0x748cf190, 0xdb785409,
515   0x74534f41, 0xdb25f566, 0x74192bd5, 0xdad3f1b1,
516   0x73de87de, 0xda8249b4, 0x73a363ec, 0xda30fe38,
517   0x7367c090, 0xd9e01006, 0x732b9e5e, 0xd98f7fe6,
518   0x72eefdea, 0xd93f4e9e, 0x72b1dfc9, 0xd8ef7cf4,
519   0x72744493, 0xd8a00bae, 0x72362ce0, 0xd850fb8e,
520   0x71f79948, 0xd8024d59, 0x71b88a66, 0xd7b401d1,
521   0x717900d6, 0xd76619b6, 0x7138fd35, 0xd71895c9,
522   0x70f8801f, 0xd6cb76c9, 0x70b78a36, 0xd67ebd74,
523   0x70761c18, 0xd6326a88, 0x70343667, 0xd5e67ec1,
524   0x6ff1d9c7, 0xd59afadb, 0x6faf06da, 0xd54fdf8f,
525   0x6f6bbe45, 0xd5052d97, 0x6f2800af, 0xd4bae5ab,
526   0x6ee3cebe, 0xd4710883, 0x6e9f291b, 0xd42796d5,
527   0x6e5a1070, 0xd3de9156, 0x6e148566, 0xd395f8ba,
528   0x6dce88aa, 0xd34dcdb4, 0x6d881ae8, 0xd30610f7,
529   0x6d413ccd, 0xd2bec333, 0x6cf9ef09, 0xd277e518,
530   0x6cb2324c, 0xd2317756, 0x6c6a0746, 0xd1eb7a9a,
531   0x6c216eaa, 0xd1a5ef90, 0x6bd8692b, 0xd160d6e5,
532   0x6b8ef77d, 0xd11c3142, 0x6b451a55, 0xd0d7ff51,
533   0x6afad269, 0xd09441bb, 0x6ab02071, 0xd050f926,
534   0x6a650525, 0xd00e2639, 0x6a19813f, 0xcfcbc999,
535   0x69cd9578, 0xcf89e3e8, 0x6981428c, 0xcf4875ca,
536   0x69348937, 0xcf077fe1, 0x68e76a37, 0xcec702cb,
537   0x6899e64a, 0xce86ff2a, 0x684bfe2f, 0xce47759a,
538   0x67fdb2a7, 0xce0866b8, 0x67af0472, 0xcdc9d320,
539   0x675ff452, 0xcd8bbb6d, 0x6710830c, 0xcd4e2037,
540   0x66c0b162, 0xcd110216, 0x6670801a, 0xccd461a2,
541   0x661feffa, 0xcc983f70, 0x65cf01c8, 0xcc5c9c14,
542   0x657db64c, 0xcc217822, 0x652c0e4f, 0xcbe6d42b,
543   0x64da0a9a, 0xcbacb0bf, 0x6487abf7, 0xcb730e70,
544   0x6434f332, 0xcb39edca, 0x63e1e117, 0xcb014f5b,
545   0x638e7673, 0xcac933ae, 0x633ab414, 0xca919b4e,
546   0x62e69ac8, 0xca5a86c4, 0x62922b5e, 0xca23f698,
547   0x623d66a8, 0xc9edeb50, 0x61e84d76, 0xc9b86572,
548   0x6192e09b, 0xc9836582, 0x613d20e8, 0xc94eec03,
549   0x60e70f32, 0xc91af976, 0x6090ac4d, 0xc8e78e5b,
550   0x6039f90f, 0xc8b4ab32, 0x5fe2f64c, 0xc8825077,
551   0x5f8ba4dc, 0xc8507ea7, 0x5f340596, 0xc81f363d,
552   0x5edc1953, 0xc7ee77b3, 0x5e83e0eb, 0xc7be4381,
553   0x5e2b5d38, 0xc78e9a1d, 0x5dd28f15, 0xc75f7bfe,
554   0x5d79775c, 0xc730e997, 0x5d2016e9, 0xc702e35c,
555   0x5cc66e99, 0xc6d569be, 0x5c6c7f4a, 0xc6a87d2d,
556   0x5c1249d8, 0xc67c1e18, 0x5bb7cf23, 0xc6504ced,
557   0x5b5d100a, 0xc6250a18, 0x5b020d6c, 0xc5fa5603,
558   0x5aa6c82b, 0xc5d03118, 0x5a4b4128, 0xc5a69bbe,
559   0x59ef7944, 0xc57d965d, 0x59937161, 0xc555215a,
560   0x59372a64, 0xc52d3d18, 0x58daa52f, 0xc505e9fb,
561   0x587de2a7, 0xc4df2862, 0x5820e3b0, 0xc4b8f8ad,
562   0x57c3a931, 0xc4935b3c, 0x5766340f, 0xc46e5069,
563   0x57088531, 0xc449d892, 0x56aa9d7e, 0xc425f410,
564   0x564c7ddd, 0xc402a33c, 0x55ee2738, 0xc3dfe66c,
565   0x558f9a76, 0xc3bdbdf6, 0x5530d881, 0xc39c2a2f,
566   0x54d1e242, 0xc37b2b6a, 0x5472b8a5, 0xc35ac1f7,
567   0x54135c94, 0xc33aee27, 0x53b3cefa, 0xc31bb049,
568   0x535410c3, 0xc2fd08a9, 0x52f422db, 0xc2def794,
569   0x5294062f, 0xc2c17d52, 0x5233bbac, 0xc2a49a2e,
570   0x51d3443f, 0xc2884e6e, 0x5172a0d7, 0xc26c9a58,
571   0x5111d263, 0xc2517e31, 0x50b0d9d0, 0xc236fa3b,
572   0x504fb80e, 0xc21d0eb8, 0x4fee6e0d, 0xc203bbe8,
573   0x4f8cfcbe, 0xc1eb0209, 0x4f2b650f, 0xc1d2e158,
574   0x4ec9a7f3, 0xc1bb5a11, 0x4e67c65a, 0xc1a46c6e,
575   0x4e05c135, 0xc18e18a7, 0x4da39978, 0xc1785ef4,
576   0x4d415013, 0xc1633f8a, 0x4cdee5f9, 0xc14eba9d,
577   0x4c7c5c1e, 0xc13ad060, 0x4c19b374, 0xc1278104,
578   0x4bb6ecef, 0xc114ccb9, 0x4b540982, 0xc102b3ac,
579   0x4af10a22, 0xc0f1360b, 0x4a8defc3, 0xc0e05401,
580   0x4a2abb59, 0xc0d00db6, 0x49c76dd8, 0xc0c06355,
581   0x49640837, 0xc0b15502, 0x49008b6a, 0xc0a2e2e3,
582   0x489cf867, 0xc0950d1d, 0x48395024, 0xc087d3d0,
583   0x47d59396, 0xc07b371e, 0x4771c3b3, 0xc06f3726,
584   0x470de172, 0xc063d405, 0x46a9edc9, 0xc0590dd8,
585   0x4645e9af, 0xc04ee4b8, 0x45e1d61b, 0xc04558c0,
586   0x457db403, 0xc03c6a07, 0x4519845e, 0xc03418a2,
587   0x44b54825, 0xc02c64a6, 0x4451004d, 0xc0254e27,
588   0x43ecadcf, 0xc01ed535, 0x438851a2, 0xc018f9e1,
589   0x4323ecbe, 0xc013bc39, 0x42bf801a, 0xc00f1c4a,
590   0x425b0caf, 0xc00b1a20, 0x41f69373, 0xc007b5c4,
591   0x4192155f, 0xc004ef3f, 0x412d936c, 0xc002c697,
592   0x40c90e90, 0xc0013bd3, 0x406487c4, 0xc0004ef5
593 };
594
595 /**   
596 * @brief  Initialization function for the Q31 RFFT/RIFFT.  
597 * @param[in, out] *S             points to an instance of the Q31 RFFT/RIFFT structure.  
598 * @param[in, out] *S_CFFT        points to an instance of the Q31 CFFT/CIFFT structure.  
599 * @param[in]      fftLenReal     length of the FFT.  
600 * @param[in]      ifftFlagR      flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform.  
601 * @param[in]      bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output.  
602 * @return               The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if <code>fftLenReal</code> is not a supported value.  
603 *   
604 * \par Description:  
605 * \par  
606 * The parameter <code>fftLenReal</code> Specifies length of RFFT/RIFFT Process. Supported FFT Lengths are 128, 512, 2048.   
607 * \par   
608 * The parameter <code>ifftFlagR</code> controls whether a forward or inverse transform is computed.   
609 * Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated.   
610 * \par   
611 * The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order.   
612 * Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order.  
613 * \par   
614 * This function also initializes Twiddle factor table.   
615 */
616
617 arm_status arm_rfft_init_q31(
618   arm_rfft_instance_q31 * S,
619   arm_cfft_radix4_instance_q31 * S_CFFT,
620   uint32_t fftLenReal,
621   uint32_t ifftFlagR,
622   uint32_t bitReverseFlag)
623 {
624   /*  Initialise the default arm status */
625   arm_status status = ARM_MATH_SUCCESS;
626
627   /*  Initialize the Real FFT length */
628   S->fftLenReal = (uint16_t) fftLenReal;
629
630   /*  Initialize the Complex FFT length */
631   S->fftLenBy2 = (uint16_t) fftLenReal / 2u;
632
633   /*  Initialize the Twiddle coefficientA pointer */
634   S->pTwiddleAReal = (q31_t *) realCoefAQ31;
635
636   /*  Initialize the Twiddle coefficientB pointer */
637   S->pTwiddleBReal = (q31_t *) realCoefBQ31;
638
639   /*  Initialize the Flag for selection of RFFT or RIFFT */
640   S->ifftFlagR = (uint8_t) ifftFlagR;
641
642   /*  Initialize the Flag for calculation Bit reversal or not */
643   S->bitReverseFlagR = (uint8_t) bitReverseFlag;
644
645   /*  Initialization of coef modifier depending on the FFT length */
646   switch (S->fftLenReal)
647   {
648   case 512u:
649     S->twidCoefRModifier = 2u;
650     break;
651   case 128u:
652     S->twidCoefRModifier = 8u;
653     break;
654   default:
655     /*  Reporting argument error if rfftSize is not valid value */
656     status = ARM_MATH_ARGUMENT_ERROR;
657     break;
658   }
659
660   /* Init Complex FFT Instance */
661   S->pCfft = S_CFFT;
662
663   if(S->ifftFlagR)
664   {
665     /* Initializes the CIFFT Module for fftLenreal/2 length */
666     arm_cfft_radix4_init_q31(S->pCfft, (uint16_t) S->fftLenBy2, 1u, 1u);
667   }
668   else
669   {
670     /* Initializes the CFFT Module for fftLenreal/2 length */
671     arm_cfft_radix4_init_q31(S->pCfft, (uint16_t) S->fftLenBy2, 0u, 1u);
672   }
673
674   /* return the status of RFFT Init function */
675   return (status);
676
677 }
678
679   /**   
680    * @} end of RFFT_RIFFT group   
681    */