Merge branch 'jnosky/master'
[fw/stlink] / exampleF4 / CMSIS / DSP_Lib / Source / TransformFunctions / arm_cfft_radix4_init_f32.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_cfft_radix4_init_f32.c   
9 *   
10 * Description:  Radix-4 Decimation in Frequency Floating-point CFFT & CIFFT Initialization 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.5  2010/04/26    
30 *        incorporated review comments and updated with latest CMSIS layer   
31 *   
32 * Version 0.0.3  2010/03/10    
33 *    Initial version   
34 * -------------------------------------------------------------------- */
35
36
37 #include "arm_math.h"
38 #include "arm_common_tables.h"
39
40 /**   
41  * @ingroup groupTransforms   
42  */
43
44 /**   
45  * @addtogroup CFFT_CIFFT   
46  * @{   
47  */
48
49 /*   
50 * @brief  Floating-point Twiddle factors Table Generation   
51 */
52
53
54 /**   
55 * \par   
56 * Example code for Floating-point Twiddle factors Generation:   
57 * \par   
58 * <pre>for(i = 0; i< N; i++)   
59 * {   
60 *       twiddleCoef[2*i]= cos(i * 2*PI/(float)N);   
61 *       twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N);   
62 * } </pre>   
63 * \par   
64 * where N = 1024        and PI = 3.14159265358979   
65 * \par   
66 * Cos and Sin values are in interleaved fashion   
67 *    
68 */
69
70 static const float32_t twiddleCoef[2048] = {
71   1.000000000000000000f, 0.000000000000000000f,
72   0.999981175282601110f, 0.006135884649154475f,
73   0.999924701839144500f, 0.012271538285719925f,
74   0.999830581795823400f, 0.018406729905804820f,
75   0.999698818696204250f, 0.024541228522912288f,
76   0.999529417501093140f, 0.030674803176636626f,
77   0.999322384588349540f, 0.036807222941358832f,
78   0.999077727752645360f, 0.042938256934940820f,
79   0.998795456205172410f, 0.049067674327418015f,
80   0.998475580573294770f, 0.055195244349689934f,
81   0.998118112900149180f, 0.061320736302208578f,
82   0.997723066644191640f, 0.067443919563664051f,
83   0.997290456678690210f, 0.073564563599667426f,
84   0.996820299291165670f, 0.079682437971430126f,
85   0.996312612182778000f, 0.085797312344439894f,
86   0.995767414467659820f, 0.091908956497132724f,
87   0.995184726672196930f, 0.098017140329560604f,
88   0.994564570734255420f, 0.104121633872054590f,
89   0.993906970002356060f, 0.110222207293883060f,
90   0.993211949234794500f, 0.116318630911904750f,
91   0.992479534598709970f, 0.122410675199216200f,
92   0.991709753669099530f, 0.128498110793793170f,
93   0.990902635427780010f, 0.134580708507126170f,
94   0.990058210262297120f, 0.140658239332849210f,
95   0.989176509964781010f, 0.146730474455361750f,
96   0.988257567730749460f, 0.152797185258443440f,
97   0.987301418157858430f, 0.158858143333861450f,
98   0.986308097244598670f, 0.164913120489969890f,
99   0.985277642388941220f, 0.170961888760301220f,
100   0.984210092386929030f, 0.177004220412148750f,
101   0.983105487431216290f, 0.183039887955140950f,
102   0.981963869109555240f, 0.189068664149806190f,
103   0.980785280403230430f, 0.195090322016128250f,
104   0.979569765685440520f, 0.201104634842091900f,
105   0.978317370719627650f, 0.207111376192218560f,
106   0.977028142657754390f, 0.213110319916091360f,
107   0.975702130038528570f, 0.219101240156869800f,
108   0.974339382785575860f, 0.225083911359792830f,
109   0.972939952205560180f, 0.231058108280671110f,
110   0.971503890986251780f, 0.237023605994367200f,
111   0.970031253194543970f, 0.242980179903263870f,
112   0.968522094274417380f, 0.248927605745720150f,
113   0.966976471044852070f, 0.254865659604514570f,
114   0.965394441697689400f, 0.260794117915275510f,
115   0.963776065795439840f, 0.266712757474898370f,
116   0.962121404269041580f, 0.272621355449948980f,
117   0.960430519415565790f, 0.278519689385053060f,
118   0.958703474895871600f, 0.284407537211271880f,
119   0.956940335732208820f, 0.290284677254462330f,
120   0.955141168305770780f, 0.296150888243623790f,
121   0.953306040354193860f, 0.302005949319228080f,
122   0.951435020969008340f, 0.307849640041534870f,
123   0.949528180593036670f, 0.313681740398891520f,
124   0.947585591017741090f, 0.319502030816015690f,
125   0.945607325380521280f, 0.325310292162262930f,
126   0.943593458161960390f, 0.331106305759876430f,
127   0.941544065183020810f, 0.336889853392220050f,
128   0.939459223602189920f, 0.342660717311994380f,
129   0.937339011912574960f, 0.348418680249434560f,
130   0.935183509938947610f, 0.354163525420490340f,
131   0.932992798834738960f, 0.359895036534988110f,
132   0.930766961078983710f, 0.365612997804773850f,
133   0.928506080473215590f, 0.371317193951837540f,
134   0.926210242138311380f, 0.377007410216418260f,
135   0.923879532511286740f, 0.382683432365089780f,
136   0.921514039342042010f, 0.388345046698826250f,
137   0.919113851690057770f, 0.393992040061048100f,
138   0.916679059921042700f, 0.399624199845646790f,
139   0.914209755703530690f, 0.405241314004989860f,
140   0.911706032005429880f, 0.410843171057903910f,
141   0.909167983090522380f, 0.416429560097637150f,
142   0.906595704514915330f, 0.422000270799799680f,
143   0.903989293123443340f, 0.427555093430282080f,
144   0.901348847046022030f, 0.433093818853151960f,
145   0.898674465693953820f, 0.438616238538527660f,
146   0.895966249756185220f, 0.444122144570429200f,
147   0.893224301195515320f, 0.449611329654606540f,
148   0.890448723244757880f, 0.455083587126343840f,
149   0.887639620402853930f, 0.460538710958240010f,
150   0.884797098430937790f, 0.465976495767966180f,
151   0.881921264348355050f, 0.471396736825997640f,
152   0.879012226428633530f, 0.476799230063322090f,
153   0.876070094195406600f, 0.482183772079122720f,
154   0.873094978418290090f, 0.487550160148436000f,
155   0.870086991108711460f, 0.492898192229784040f,
156   0.867046245515692650f, 0.498227666972781870f,
157   0.863972856121586810f, 0.503538383725717580f,
158   0.860866938637767310f, 0.508830142543106990f,
159   0.857728610000272120f, 0.514102744193221660f,
160   0.854557988365400530f, 0.519355990165589640f,
161   0.851355193105265200f, 0.524589682678468950f,
162   0.848120344803297230f, 0.529803624686294610f,
163   0.844853565249707120f, 0.534997619887097150f,
164   0.841554977436898440f, 0.540171472729892850f,
165   0.838224705554838080f, 0.545324988422046460f,
166   0.834862874986380010f, 0.550457972936604810f,
167   0.831469612302545240f, 0.555570233019602180f,
168   0.828045045257755800f, 0.560661576197336030f,
169   0.824589302785025290f, 0.565731810783613120f,
170   0.821102514991104650f, 0.570780745886967260f,
171   0.817584813151583710f, 0.575808191417845340f,
172   0.814036329705948410f, 0.580813958095764530f,
173   0.810457198252594770f, 0.585797857456438860f,
174   0.806847553543799330f, 0.590759701858874160f,
175   0.803207531480644940f, 0.595699304492433360f,
176   0.799537269107905010f, 0.600616479383868970f,
177   0.795836904608883570f, 0.605511041404325550f,
178   0.792106577300212390f, 0.610382806276309480f,
179   0.788346427626606340f, 0.615231590580626820f,
180   0.784556597155575240f, 0.620057211763289100f,
181   0.780737228572094490f, 0.624859488142386340f,
182   0.776888465673232440f, 0.629638238914926980f,
183   0.773010453362736990f, 0.634393284163645490f,
184   0.769103337645579700f, 0.639124444863775730f,
185   0.765167265622458960f, 0.643831542889791390f,
186   0.761202385484261780f, 0.648514401022112440f,
187   0.757208846506484570f, 0.653172842953776760f,
188   0.753186799043612520f, 0.657806693297078640f,
189   0.749136394523459370f, 0.662415777590171780f,
190   0.745057785441466060f, 0.666999922303637470f,
191   0.740951125354959110f, 0.671558954847018330f,
192   0.736816568877369900f, 0.676092703575315920f,
193   0.732654271672412820f, 0.680600997795453020f,
194   0.728464390448225200f, 0.685083667772700360f,
195   0.724247082951467000f, 0.689540544737066830f,
196   0.720002507961381650f, 0.693971460889654000f,
197   0.715730825283818590f, 0.698376249408972920f,
198   0.711432195745216430f, 0.702754744457225300f,
199   0.707106781186547570f, 0.707106781186547460f,
200   0.702754744457225300f, 0.711432195745216430f,
201   0.698376249408972920f, 0.715730825283818590f,
202   0.693971460889654000f, 0.720002507961381650f,
203   0.689540544737066940f, 0.724247082951466890f,
204   0.685083667772700360f, 0.728464390448225200f,
205   0.680600997795453130f, 0.732654271672412820f,
206   0.676092703575316030f, 0.736816568877369790f,
207   0.671558954847018330f, 0.740951125354959110f,
208   0.666999922303637470f, 0.745057785441465950f,
209   0.662415777590171780f, 0.749136394523459260f,
210   0.657806693297078640f, 0.753186799043612410f,
211   0.653172842953776760f, 0.757208846506484460f,
212   0.648514401022112550f, 0.761202385484261780f,
213   0.643831542889791500f, 0.765167265622458960f,
214   0.639124444863775730f, 0.769103337645579590f,
215   0.634393284163645490f, 0.773010453362736990f,
216   0.629638238914927100f, 0.776888465673232440f,
217   0.624859488142386450f, 0.780737228572094380f,
218   0.620057211763289210f, 0.784556597155575240f,
219   0.615231590580626820f, 0.788346427626606230f,
220   0.610382806276309480f, 0.792106577300212390f,
221   0.605511041404325550f, 0.795836904608883460f,
222   0.600616479383868970f, 0.799537269107905010f,
223   0.595699304492433470f, 0.803207531480644830f,
224   0.590759701858874280f, 0.806847553543799220f,
225   0.585797857456438860f, 0.810457198252594770f,
226   0.580813958095764530f, 0.814036329705948300f,
227   0.575808191417845340f, 0.817584813151583710f,
228   0.570780745886967370f, 0.821102514991104650f,
229   0.565731810783613230f, 0.824589302785025290f,
230   0.560661576197336030f, 0.828045045257755800f,
231   0.555570233019602290f, 0.831469612302545240f,
232   0.550457972936604810f, 0.834862874986380010f,
233   0.545324988422046460f, 0.838224705554837970f,
234   0.540171472729892970f, 0.841554977436898330f,
235   0.534997619887097260f, 0.844853565249707010f,
236   0.529803624686294830f, 0.848120344803297120f,
237   0.524589682678468840f, 0.851355193105265200f,
238   0.519355990165589530f, 0.854557988365400530f,
239   0.514102744193221660f, 0.857728610000272120f,
240   0.508830142543106990f, 0.860866938637767310f,
241   0.503538383725717580f, 0.863972856121586700f,
242   0.498227666972781870f, 0.867046245515692650f,
243   0.492898192229784090f, 0.870086991108711350f,
244   0.487550160148436050f, 0.873094978418290090f,
245   0.482183772079122830f, 0.876070094195406600f,
246   0.476799230063322250f, 0.879012226428633410f,
247   0.471396736825997810f, 0.881921264348354940f,
248   0.465976495767966130f, 0.884797098430937790f,
249   0.460538710958240010f, 0.887639620402853930f,
250   0.455083587126343840f, 0.890448723244757880f,
251   0.449611329654606600f, 0.893224301195515320f,
252   0.444122144570429260f, 0.895966249756185110f,
253   0.438616238538527710f, 0.898674465693953820f,
254   0.433093818853152010f, 0.901348847046022030f,
255   0.427555093430282200f, 0.903989293123443340f,
256   0.422000270799799790f, 0.906595704514915330f,
257   0.416429560097637320f, 0.909167983090522270f,
258   0.410843171057903910f, 0.911706032005429880f,
259   0.405241314004989860f, 0.914209755703530690f,
260   0.399624199845646790f, 0.916679059921042700f,
261   0.393992040061048100f, 0.919113851690057770f,
262   0.388345046698826300f, 0.921514039342041900f,
263   0.382683432365089840f, 0.923879532511286740f,
264   0.377007410216418310f, 0.926210242138311270f,
265   0.371317193951837600f, 0.928506080473215480f,
266   0.365612997804773960f, 0.930766961078983710f,
267   0.359895036534988280f, 0.932992798834738850f,
268   0.354163525420490510f, 0.935183509938947500f,
269   0.348418680249434510f, 0.937339011912574960f,
270   0.342660717311994380f, 0.939459223602189920f,
271   0.336889853392220050f, 0.941544065183020810f,
272   0.331106305759876430f, 0.943593458161960390f,
273   0.325310292162262980f, 0.945607325380521280f,
274   0.319502030816015750f, 0.947585591017741090f,
275   0.313681740398891570f, 0.949528180593036670f,
276   0.307849640041534980f, 0.951435020969008340f,
277   0.302005949319228200f, 0.953306040354193750f,
278   0.296150888243623960f, 0.955141168305770670f,
279   0.290284677254462330f, 0.956940335732208940f,
280   0.284407537211271820f, 0.958703474895871600f,
281   0.278519689385053060f, 0.960430519415565790f,
282   0.272621355449948980f, 0.962121404269041580f,
283   0.266712757474898420f, 0.963776065795439840f,
284   0.260794117915275570f, 0.965394441697689400f,
285   0.254865659604514630f, 0.966976471044852070f,
286   0.248927605745720260f, 0.968522094274417270f,
287   0.242980179903263980f, 0.970031253194543970f,
288   0.237023605994367340f, 0.971503890986251780f,
289   0.231058108280671280f, 0.972939952205560070f,
290   0.225083911359792780f, 0.974339382785575860f,
291   0.219101240156869770f, 0.975702130038528570f,
292   0.213110319916091360f, 0.977028142657754390f,
293   0.207111376192218560f, 0.978317370719627650f,
294   0.201104634842091960f, 0.979569765685440520f,
295   0.195090322016128330f, 0.980785280403230430f,
296   0.189068664149806280f, 0.981963869109555240f,
297   0.183039887955141060f, 0.983105487431216290f,
298   0.177004220412148860f, 0.984210092386929030f,
299   0.170961888760301360f, 0.985277642388941220f,
300   0.164913120489970090f, 0.986308097244598670f,
301   0.158858143333861390f, 0.987301418157858430f,
302   0.152797185258443410f, 0.988257567730749460f,
303   0.146730474455361750f, 0.989176509964781010f,
304   0.140658239332849240f, 0.990058210262297120f,
305   0.134580708507126220f, 0.990902635427780010f,
306   0.128498110793793220f, 0.991709753669099530f,
307   0.122410675199216280f, 0.992479534598709970f,
308   0.116318630911904880f, 0.993211949234794500f,
309   0.110222207293883180f, 0.993906970002356060f,
310   0.104121633872054730f, 0.994564570734255420f,
311   0.098017140329560770f, 0.995184726672196820f,
312   0.091908956497132696f, 0.995767414467659820f,
313   0.085797312344439880f, 0.996312612182778000f,
314   0.079682437971430126f, 0.996820299291165670f,
315   0.073564563599667454f, 0.997290456678690210f,
316   0.067443919563664106f, 0.997723066644191640f,
317   0.061320736302208648f, 0.998118112900149180f,
318   0.055195244349690031f, 0.998475580573294770f,
319   0.049067674327418126f, 0.998795456205172410f,
320   0.042938256934940959f, 0.999077727752645360f,
321   0.036807222941358991f, 0.999322384588349540f,
322   0.030674803176636581f, 0.999529417501093140f,
323   0.024541228522912264f, 0.999698818696204250f,
324   0.018406729905804820f, 0.999830581795823400f,
325   0.012271538285719944f, 0.999924701839144500f,
326   0.006135884649154515f, 0.999981175282601110f,
327   0.000000000000000061f, 1.000000000000000000f,
328   -0.006135884649154393f, 0.999981175282601110f,
329   -0.012271538285719823f, 0.999924701839144500f,
330   -0.018406729905804695f, 0.999830581795823400f,
331   -0.024541228522912142f, 0.999698818696204250f,
332   -0.030674803176636459f, 0.999529417501093140f,
333   -0.036807222941358866f, 0.999322384588349540f,
334   -0.042938256934940834f, 0.999077727752645360f,
335   -0.049067674327418008f, 0.998795456205172410f,
336   -0.055195244349689913f, 0.998475580573294770f,
337   -0.061320736302208530f, 0.998118112900149180f,
338   -0.067443919563663982f, 0.997723066644191640f,
339   -0.073564563599667329f, 0.997290456678690210f,
340   -0.079682437971430015f, 0.996820299291165780f,
341   -0.085797312344439755f, 0.996312612182778000f,
342   -0.091908956497132571f, 0.995767414467659820f,
343   -0.098017140329560645f, 0.995184726672196930f,
344   -0.104121633872054600f, 0.994564570734255420f,
345   -0.110222207293883060f, 0.993906970002356060f,
346   -0.116318630911904750f, 0.993211949234794500f,
347   -0.122410675199216150f, 0.992479534598709970f,
348   -0.128498110793793110f, 0.991709753669099530f,
349   -0.134580708507126110f, 0.990902635427780010f,
350   -0.140658239332849130f, 0.990058210262297120f,
351   -0.146730474455361640f, 0.989176509964781010f,
352   -0.152797185258443300f, 0.988257567730749460f,
353   -0.158858143333861280f, 0.987301418157858430f,
354   -0.164913120489969950f, 0.986308097244598670f,
355   -0.170961888760301240f, 0.985277642388941220f,
356   -0.177004220412148750f, 0.984210092386929030f,
357   -0.183039887955140920f, 0.983105487431216290f,
358   -0.189068664149806160f, 0.981963869109555240f,
359   -0.195090322016128190f, 0.980785280403230430f,
360   -0.201104634842091820f, 0.979569765685440520f,
361   -0.207111376192218450f, 0.978317370719627650f,
362   -0.213110319916091250f, 0.977028142657754390f,
363   -0.219101240156869660f, 0.975702130038528570f,
364   -0.225083911359792670f, 0.974339382785575860f,
365   -0.231058108280671140f, 0.972939952205560180f,
366   -0.237023605994367230f, 0.971503890986251780f,
367   -0.242980179903263870f, 0.970031253194543970f,
368   -0.248927605745720120f, 0.968522094274417380f,
369   -0.254865659604514520f, 0.966976471044852070f,
370   -0.260794117915275460f, 0.965394441697689400f,
371   -0.266712757474898310f, 0.963776065795439840f,
372   -0.272621355449948870f, 0.962121404269041580f,
373   -0.278519689385052950f, 0.960430519415565900f,
374   -0.284407537211271710f, 0.958703474895871600f,
375   -0.290284677254462160f, 0.956940335732208940f,
376   -0.296150888243623840f, 0.955141168305770670f,
377   -0.302005949319228080f, 0.953306040354193860f,
378   -0.307849640041534870f, 0.951435020969008340f,
379   -0.313681740398891410f, 0.949528180593036670f,
380   -0.319502030816015640f, 0.947585591017741200f,
381   -0.325310292162262870f, 0.945607325380521390f,
382   -0.331106305759876320f, 0.943593458161960390f,
383   -0.336889853392219940f, 0.941544065183020810f,
384   -0.342660717311994270f, 0.939459223602189920f,
385   -0.348418680249434400f, 0.937339011912574960f,
386   -0.354163525420490400f, 0.935183509938947610f,
387   -0.359895036534988170f, 0.932992798834738850f,
388   -0.365612997804773850f, 0.930766961078983710f,
389   -0.371317193951837490f, 0.928506080473215590f,
390   -0.377007410216418200f, 0.926210242138311380f,
391   -0.382683432365089730f, 0.923879532511286740f,
392   -0.388345046698826190f, 0.921514039342042010f,
393   -0.393992040061047990f, 0.919113851690057770f,
394   -0.399624199845646680f, 0.916679059921042700f,
395   -0.405241314004989750f, 0.914209755703530690f,
396   -0.410843171057903800f, 0.911706032005429880f,
397   -0.416429560097636990f, 0.909167983090522490f,
398   -0.422000270799799680f, 0.906595704514915330f,
399   -0.427555093430281860f, 0.903989293123443450f,
400   -0.433093818853151900f, 0.901348847046022030f,
401   -0.438616238538527380f, 0.898674465693953930f,
402   -0.444122144570429140f, 0.895966249756185220f,
403   -0.449611329654606710f, 0.893224301195515210f,
404   -0.455083587126343720f, 0.890448723244757990f,
405   -0.460538710958240060f, 0.887639620402853930f,
406   -0.465976495767966010f, 0.884797098430937900f,
407   -0.471396736825997700f, 0.881921264348355050f,
408   -0.476799230063321920f, 0.879012226428633530f,
409   -0.482183772079122720f, 0.876070094195406600f,
410   -0.487550160148435720f, 0.873094978418290200f,
411   -0.492898192229783980f, 0.870086991108711460f,
412   -0.498227666972781590f, 0.867046245515692760f,
413   -0.503538383725717460f, 0.863972856121586810f,
414   -0.508830142543107100f, 0.860866938637767200f,
415   -0.514102744193221660f, 0.857728610000272120f,
416   -0.519355990165589640f, 0.854557988365400530f,
417   -0.524589682678468730f, 0.851355193105265200f,
418   -0.529803624686294720f, 0.848120344803297230f,
419   -0.534997619887097040f, 0.844853565249707230f,
420   -0.540171472729892850f, 0.841554977436898440f,
421   -0.545324988422046240f, 0.838224705554838190f,
422   -0.550457972936604700f, 0.834862874986380120f,
423   -0.555570233019601960f, 0.831469612302545460f,
424   -0.560661576197335920f, 0.828045045257755800f,
425   -0.565731810783613230f, 0.824589302785025180f,
426   -0.570780745886967140f, 0.821102514991104760f,
427   -0.575808191417845340f, 0.817584813151583710f,
428   -0.580813958095764420f, 0.814036329705948520f,
429   -0.585797857456438860f, 0.810457198252594770f,
430   -0.590759701858874050f, 0.806847553543799450f,
431   -0.595699304492433360f, 0.803207531480644940f,
432   -0.600616479383868750f, 0.799537269107905240f,
433   -0.605511041404325430f, 0.795836904608883570f,
434   -0.610382806276309590f, 0.792106577300212280f,
435   -0.615231590580626710f, 0.788346427626606340f,
436   -0.620057211763289210f, 0.784556597155575130f,
437   -0.624859488142386230f, 0.780737228572094600f,
438   -0.629638238914927100f, 0.776888465673232440f,
439   -0.634393284163645380f, 0.773010453362737100f,
440   -0.639124444863775730f, 0.769103337645579590f,
441   -0.643831542889791280f, 0.765167265622459070f,
442   -0.648514401022112440f, 0.761202385484261890f,
443   -0.653172842953776530f, 0.757208846506484680f,
444   -0.657806693297078640f, 0.753186799043612520f,
445   -0.662415777590171890f, 0.749136394523459260f,
446   -0.666999922303637360f, 0.745057785441466060f,
447   -0.671558954847018440f, 0.740951125354958990f,
448   -0.676092703575315810f, 0.736816568877370020f,
449   -0.680600997795453020f, 0.732654271672412820f,
450   -0.685083667772700240f, 0.728464390448225310f,
451   -0.689540544737066940f, 0.724247082951466890f,
452   -0.693971460889653780f, 0.720002507961381770f,
453   -0.698376249408972800f, 0.715730825283818710f,
454   -0.702754744457225080f, 0.711432195745216660f,
455   -0.707106781186547460f, 0.707106781186547570f,
456   -0.711432195745216540f, 0.702754744457225190f,
457   -0.715730825283818590f, 0.698376249408972920f,
458   -0.720002507961381650f, 0.693971460889654000f,
459   -0.724247082951466780f, 0.689540544737067050f,
460   -0.728464390448225200f, 0.685083667772700360f,
461   -0.732654271672412700f, 0.680600997795453240f,
462   -0.736816568877369900f, 0.676092703575315920f,
463   -0.740951125354958880f, 0.671558954847018550f,
464   -0.745057785441465950f, 0.666999922303637580f,
465   -0.749136394523459150f, 0.662415777590172010f,
466   -0.753186799043612410f, 0.657806693297078750f,
467   -0.757208846506484570f, 0.653172842953776640f,
468   -0.761202385484261670f, 0.648514401022112550f,
469   -0.765167265622458960f, 0.643831542889791390f,
470   -0.769103337645579480f, 0.639124444863775840f,
471   -0.773010453362736990f, 0.634393284163645490f,
472   -0.776888465673232330f, 0.629638238914927210f,
473   -0.780737228572094490f, 0.624859488142386340f,
474   -0.784556597155575020f, 0.620057211763289430f,
475   -0.788346427626606230f, 0.615231590580626930f,
476   -0.792106577300212170f, 0.610382806276309700f,
477   -0.795836904608883460f, 0.605511041404325660f,
478   -0.799537269107905120f, 0.600616479383868860f,
479   -0.803207531480644830f, 0.595699304492433470f,
480   -0.806847553543799330f, 0.590759701858874160f,
481   -0.810457198252594660f, 0.585797857456438980f,
482   -0.814036329705948410f, 0.580813958095764530f,
483   -0.817584813151583600f, 0.575808191417845450f,
484   -0.821102514991104650f, 0.570780745886967260f,
485   -0.824589302785025070f, 0.565731810783613450f,
486   -0.828045045257755690f, 0.560661576197336140f,
487   -0.831469612302545350f, 0.555570233019602180f,
488   -0.834862874986380010f, 0.550457972936604920f,
489   -0.838224705554838080f, 0.545324988422046350f,
490   -0.841554977436898330f, 0.540171472729892970f,
491   -0.844853565249707120f, 0.534997619887097150f,
492   -0.848120344803297120f, 0.529803624686294830f,
493   -0.851355193105265200f, 0.524589682678468950f,
494   -0.854557988365400420f, 0.519355990165589750f,
495   -0.857728610000272010f, 0.514102744193221770f,
496   -0.860866938637767090f, 0.508830142543107320f,
497   -0.863972856121586700f, 0.503538383725717690f,
498   -0.867046245515692760f, 0.498227666972781760f,
499   -0.870086991108711350f, 0.492898192229784150f,
500   -0.873094978418290090f, 0.487550160148435880f,
501   -0.876070094195406490f, 0.482183772079122890f,
502   -0.879012226428633530f, 0.476799230063322090f,
503   -0.881921264348354940f, 0.471396736825997860f,
504   -0.884797098430937790f, 0.465976495767966180f,
505   -0.887639620402853820f, 0.460538710958240230f,
506   -0.890448723244757880f, 0.455083587126343890f,
507   -0.893224301195515210f, 0.449611329654606870f,
508   -0.895966249756185110f, 0.444122144570429310f,
509   -0.898674465693953930f, 0.438616238538527550f,
510   -0.901348847046021920f, 0.433093818853152070f,
511   -0.903989293123443340f, 0.427555093430282030f,
512   -0.906595704514915330f, 0.422000270799799850f,
513   -0.909167983090522380f, 0.416429560097637150f,
514   -0.911706032005429770f, 0.410843171057904130f,
515   -0.914209755703530690f, 0.405241314004989920f,
516   -0.916679059921042590f, 0.399624199845647070f,
517   -0.919113851690057770f, 0.393992040061048150f,
518   -0.921514039342041790f, 0.388345046698826580f,
519   -0.923879532511286740f, 0.382683432365089890f,
520   -0.926210242138311380f, 0.377007410216418150f,
521   -0.928506080473215480f, 0.371317193951837710f,
522   -0.930766961078983710f, 0.365612997804773800f,
523   -0.932992798834738850f, 0.359895036534988330f,
524   -0.935183509938947610f, 0.354163525420490400f,
525   -0.937339011912574850f, 0.348418680249434790f,
526   -0.939459223602189920f, 0.342660717311994430f,
527   -0.941544065183020700f, 0.336889853392220330f,
528   -0.943593458161960390f, 0.331106305759876480f,
529   -0.945607325380521170f, 0.325310292162263260f,
530   -0.947585591017741090f, 0.319502030816015800f,
531   -0.949528180593036670f, 0.313681740398891410f,
532   -0.951435020969008340f, 0.307849640041535030f,
533   -0.953306040354193860f, 0.302005949319228030f,
534   -0.955141168305770670f, 0.296150888243624010f,
535   -0.956940335732208820f, 0.290284677254462390f,
536   -0.958703474895871490f, 0.284407537211272100f,
537   -0.960430519415565790f, 0.278519689385053170f,
538   -0.962121404269041470f, 0.272621355449949250f,
539   -0.963776065795439840f, 0.266712757474898480f,
540   -0.965394441697689290f, 0.260794117915275850f,
541   -0.966976471044852070f, 0.254865659604514680f,
542   -0.968522094274417380f, 0.248927605745720090f,
543   -0.970031253194543970f, 0.242980179903264070f,
544   -0.971503890986251780f, 0.237023605994367170f,
545   -0.972939952205560070f, 0.231058108280671330f,
546   -0.974339382785575860f, 0.225083911359792830f,
547   -0.975702130038528460f, 0.219101240156870050f,
548   -0.977028142657754390f, 0.213110319916091420f,
549   -0.978317370719627540f, 0.207111376192218840f,
550   -0.979569765685440520f, 0.201104634842092010f,
551   -0.980785280403230430f, 0.195090322016128610f,
552   -0.981963869109555240f, 0.189068664149806360f,
553   -0.983105487431216290f, 0.183039887955140900f,
554   -0.984210092386929030f, 0.177004220412148940f,
555   -0.985277642388941220f, 0.170961888760301220f,
556   -0.986308097244598560f, 0.164913120489970140f,
557   -0.987301418157858430f, 0.158858143333861470f,
558   -0.988257567730749460f, 0.152797185258443690f,
559   -0.989176509964781010f, 0.146730474455361800f,
560   -0.990058210262297010f, 0.140658239332849540f,
561   -0.990902635427780010f, 0.134580708507126280f,
562   -0.991709753669099530f, 0.128498110793793090f,
563   -0.992479534598709970f, 0.122410675199216350f,
564   -0.993211949234794500f, 0.116318630911904710f,
565   -0.993906970002356060f, 0.110222207293883240f,
566   -0.994564570734255420f, 0.104121633872054570f,
567   -0.995184726672196820f, 0.098017140329560826f,
568   -0.995767414467659820f, 0.091908956497132752f,
569   -0.996312612182778000f, 0.085797312344440158f,
570   -0.996820299291165670f, 0.079682437971430195f,
571   -0.997290456678690210f, 0.073564563599667732f,
572   -0.997723066644191640f, 0.067443919563664176f,
573   -0.998118112900149180f, 0.061320736302208488f,
574   -0.998475580573294770f, 0.055195244349690094f,
575   -0.998795456205172410f, 0.049067674327417966f,
576   -0.999077727752645360f, 0.042938256934941021f,
577   -0.999322384588349540f, 0.036807222941358832f,
578   -0.999529417501093140f, 0.030674803176636865f,
579   -0.999698818696204250f, 0.024541228522912326f,
580   -0.999830581795823400f, 0.018406729905805101f,
581   -0.999924701839144500f, 0.012271538285720007f,
582   -0.999981175282601110f, 0.006135884649154799f,
583   -1.000000000000000000f, 0.000000000000000122f,
584   -0.999981175282601110f, -0.006135884649154554f,
585   -0.999924701839144500f, -0.012271538285719762f,
586   -0.999830581795823400f, -0.018406729905804858f,
587   -0.999698818696204250f, -0.024541228522912080f,
588   -0.999529417501093140f, -0.030674803176636619f,
589   -0.999322384588349540f, -0.036807222941358582f,
590   -0.999077727752645360f, -0.042938256934940779f,
591   -0.998795456205172410f, -0.049067674327417724f,
592   -0.998475580573294770f, -0.055195244349689851f,
593   -0.998118112900149180f, -0.061320736302208245f,
594   -0.997723066644191640f, -0.067443919563663926f,
595   -0.997290456678690210f, -0.073564563599667496f,
596   -0.996820299291165780f, -0.079682437971429945f,
597   -0.996312612182778000f, -0.085797312344439922f,
598   -0.995767414467659820f, -0.091908956497132516f,
599   -0.995184726672196930f, -0.098017140329560590f,
600   -0.994564570734255530f, -0.104121633872054320f,
601   -0.993906970002356060f, -0.110222207293883000f,
602   -0.993211949234794610f, -0.116318630911904470f,
603   -0.992479534598709970f, -0.122410675199216100f,
604   -0.991709753669099530f, -0.128498110793792840f,
605   -0.990902635427780010f, -0.134580708507126060f,
606   -0.990058210262297120f, -0.140658239332849290f,
607   -0.989176509964781010f, -0.146730474455361580f,
608   -0.988257567730749460f, -0.152797185258443440f,
609   -0.987301418157858430f, -0.158858143333861220f,
610   -0.986308097244598670f, -0.164913120489969890f,
611   -0.985277642388941330f, -0.170961888760300970f,
612   -0.984210092386929140f, -0.177004220412148690f,
613   -0.983105487431216400f, -0.183039887955140650f,
614   -0.981963869109555240f, -0.189068664149806110f,
615   -0.980785280403230430f, -0.195090322016128360f,
616   -0.979569765685440520f, -0.201104634842091760f,
617   -0.978317370719627650f, -0.207111376192218590f,
618   -0.977028142657754390f, -0.213110319916091200f,
619   -0.975702130038528570f, -0.219101240156869800f,
620   -0.974339382785575860f, -0.225083911359792610f,
621   -0.972939952205560180f, -0.231058108280671080f,
622   -0.971503890986251890f, -0.237023605994366950f,
623   -0.970031253194543970f, -0.242980179903263820f,
624   -0.968522094274417380f, -0.248927605745719870f,
625   -0.966976471044852180f, -0.254865659604514460f,
626   -0.965394441697689400f, -0.260794117915275630f,
627   -0.963776065795439950f, -0.266712757474898250f,
628   -0.962121404269041580f, -0.272621355449949030f,
629   -0.960430519415565900f, -0.278519689385052890f,
630   -0.958703474895871600f, -0.284407537211271820f,
631   -0.956940335732208940f, -0.290284677254462110f,
632   -0.955141168305770780f, -0.296150888243623790f,
633   -0.953306040354193970f, -0.302005949319227810f,
634   -0.951435020969008450f, -0.307849640041534810f,
635   -0.949528180593036790f, -0.313681740398891180f,
636   -0.947585591017741200f, -0.319502030816015580f,
637   -0.945607325380521280f, -0.325310292162262980f,
638   -0.943593458161960390f, -0.331106305759876260f,
639   -0.941544065183020810f, -0.336889853392220110f,
640   -0.939459223602190030f, -0.342660717311994210f,
641   -0.937339011912574960f, -0.348418680249434560f,
642   -0.935183509938947720f, -0.354163525420490120f,
643   -0.932992798834738960f, -0.359895036534988110f,
644   -0.930766961078983820f, -0.365612997804773580f,
645   -0.928506080473215590f, -0.371317193951837430f,
646   -0.926210242138311490f, -0.377007410216417930f,
647   -0.923879532511286850f, -0.382683432365089670f,
648   -0.921514039342041900f, -0.388345046698826360f,
649   -0.919113851690057770f, -0.393992040061047930f,
650   -0.916679059921042700f, -0.399624199845646840f,
651   -0.914209755703530690f, -0.405241314004989690f,
652   -0.911706032005429880f, -0.410843171057903910f,
653   -0.909167983090522490f, -0.416429560097636930f,
654   -0.906595704514915450f, -0.422000270799799630f,
655   -0.903989293123443450f, -0.427555093430281810f,
656   -0.901348847046022030f, -0.433093818853151850f,
657   -0.898674465693954040f, -0.438616238538527330f,
658   -0.895966249756185220f, -0.444122144570429090f,
659   -0.893224301195515320f, -0.449611329654606650f,
660   -0.890448723244757990f, -0.455083587126343670f,
661   -0.887639620402853930f, -0.460538710958240060f,
662   -0.884797098430937900f, -0.465976495767965960f,
663   -0.881921264348355050f, -0.471396736825997640f,
664   -0.879012226428633640f, -0.476799230063321870f,
665   -0.876070094195406600f, -0.482183772079122660f,
666   -0.873094978418290200f, -0.487550160148435660f,
667   -0.870086991108711460f, -0.492898192229783930f,
668   -0.867046245515692870f, -0.498227666972781540f,
669   -0.863972856121586810f, -0.503538383725717460f,
670   -0.860866938637767310f, -0.508830142543107100f,
671   -0.857728610000272120f, -0.514102744193221550f,
672   -0.854557988365400530f, -0.519355990165589640f,
673   -0.851355193105265310f, -0.524589682678468730f,
674   -0.848120344803297230f, -0.529803624686294610f,
675   -0.844853565249707230f, -0.534997619887096930f,
676   -0.841554977436898440f, -0.540171472729892850f,
677   -0.838224705554838190f, -0.545324988422046130f,
678   -0.834862874986380120f, -0.550457972936604700f,
679   -0.831469612302545460f, -0.555570233019601960f,
680   -0.828045045257755800f, -0.560661576197335920f,
681   -0.824589302785025290f, -0.565731810783613230f,
682   -0.821102514991104760f, -0.570780745886967140f,
683   -0.817584813151583710f, -0.575808191417845340f,
684   -0.814036329705948520f, -0.580813958095764300f,
685   -0.810457198252594770f, -0.585797857456438860f,
686   -0.806847553543799450f, -0.590759701858873940f,
687   -0.803207531480644940f, -0.595699304492433250f,
688   -0.799537269107905240f, -0.600616479383868640f,
689   -0.795836904608883570f, -0.605511041404325430f,
690   -0.792106577300212280f, -0.610382806276309480f,
691   -0.788346427626606340f, -0.615231590580626710f,
692   -0.784556597155575240f, -0.620057211763289210f,
693   -0.780737228572094600f, -0.624859488142386230f,
694   -0.776888465673232440f, -0.629638238914926980f,
695   -0.773010453362737100f, -0.634393284163645270f,
696   -0.769103337645579700f, -0.639124444863775730f,
697   -0.765167265622459070f, -0.643831542889791280f,
698   -0.761202385484261890f, -0.648514401022112330f,
699   -0.757208846506484790f, -0.653172842953776530f,
700   -0.753186799043612630f, -0.657806693297078530f,
701   -0.749136394523459260f, -0.662415777590171780f,
702   -0.745057785441466060f, -0.666999922303637360f,
703   -0.740951125354959110f, -0.671558954847018440f,
704   -0.736816568877370020f, -0.676092703575315810f,
705   -0.732654271672412820f, -0.680600997795453020f,
706   -0.728464390448225420f, -0.685083667772700130f,
707   -0.724247082951467000f, -0.689540544737066830f,
708   -0.720002507961381880f, -0.693971460889653780f,
709   -0.715730825283818710f, -0.698376249408972800f,
710   -0.711432195745216660f, -0.702754744457225080f,
711   -0.707106781186547680f, -0.707106781186547460f,
712   -0.702754744457225300f, -0.711432195745216430f,
713   -0.698376249408973030f, -0.715730825283818480f,
714   -0.693971460889654000f, -0.720002507961381650f,
715   -0.689540544737067050f, -0.724247082951466780f,
716   -0.685083667772700360f, -0.728464390448225200f,
717   -0.680600997795453240f, -0.732654271672412590f,
718   -0.676092703575316030f, -0.736816568877369790f,
719   -0.671558954847018660f, -0.740951125354958880f,
720   -0.666999922303637580f, -0.745057785441465840f,
721   -0.662415777590172010f, -0.749136394523459040f,
722   -0.657806693297078750f, -0.753186799043612410f,
723   -0.653172842953777090f, -0.757208846506484230f,
724   -0.648514401022112220f, -0.761202385484262000f,
725   -0.643831542889791500f, -0.765167265622458960f,
726   -0.639124444863775950f, -0.769103337645579480f,
727   -0.634393284163645930f, -0.773010453362736660f,
728   -0.629638238914926870f, -0.776888465673232550f,
729   -0.624859488142386450f, -0.780737228572094380f,
730   -0.620057211763289430f, -0.784556597155575020f,
731   -0.615231590580627260f, -0.788346427626605890f,
732   -0.610382806276309360f, -0.792106577300212390f,
733   -0.605511041404325660f, -0.795836904608883460f,
734   -0.600616479383869310f, -0.799537269107904790f,
735   -0.595699304492433130f, -0.803207531480645050f,
736   -0.590759701858874280f, -0.806847553543799220f,
737   -0.585797857456439090f, -0.810457198252594660f,
738   -0.580813958095764970f, -0.814036329705948080f,
739   -0.575808191417845230f, -0.817584813151583820f,
740   -0.570780745886967370f, -0.821102514991104650f,
741   -0.565731810783613450f, -0.824589302785025070f,
742   -0.560661576197336480f, -0.828045045257755460f,
743   -0.555570233019602180f, -0.831469612302545240f,
744   -0.550457972936604920f, -0.834862874986380010f,
745   -0.545324988422046800f, -0.838224705554837860f,
746   -0.540171472729892740f, -0.841554977436898550f,
747   -0.534997619887097260f, -0.844853565249707010f,
748   -0.529803624686294940f, -0.848120344803297120f,
749   -0.524589682678469390f, -0.851355193105264860f,
750   -0.519355990165589420f, -0.854557988365400640f,
751   -0.514102744193221770f, -0.857728610000272010f,
752   -0.508830142543107320f, -0.860866938637767090f,
753   -0.503538383725718020f, -0.863972856121586470f,
754   -0.498227666972781810f, -0.867046245515692650f,
755   -0.492898192229784200f, -0.870086991108711350f,
756   -0.487550160148436330f, -0.873094978418289870f,
757   -0.482183772079122550f, -0.876070094195406710f,
758   -0.476799230063322140f, -0.879012226428633410f,
759   -0.471396736825997860f, -0.881921264348354940f,
760   -0.465976495767966630f, -0.884797098430937570f,
761   -0.460538710958239890f, -0.887639620402854050f,
762   -0.455083587126343950f, -0.890448723244757880f,
763   -0.449611329654606930f, -0.893224301195515210f,
764   -0.444122144570429760f, -0.895966249756184880f,
765   -0.438616238538527600f, -0.898674465693953820f,
766   -0.433093818853152120f, -0.901348847046021920f,
767   -0.427555093430282470f, -0.903989293123443120f,
768   -0.422000270799799520f, -0.906595704514915450f,
769   -0.416429560097637210f, -0.909167983090522380f,
770   -0.410843171057904190f, -0.911706032005429770f,
771   -0.405241314004990360f, -0.914209755703530470f,
772   -0.399624199845646730f, -0.916679059921042700f,
773   -0.393992040061048210f, -0.919113851690057660f,
774   -0.388345046698826630f, -0.921514039342041790f,
775   -0.382683432365090340f, -0.923879532511286520f,
776   -0.377007410216418200f, -0.926210242138311380f,
777   -0.371317193951837770f, -0.928506080473215480f,
778   -0.365612997804774300f, -0.930766961078983600f,
779   -0.359895036534987940f, -0.932992798834738960f,
780   -0.354163525420490450f, -0.935183509938947610f,
781   -0.348418680249434840f, -0.937339011912574850f,
782   -0.342660717311994880f, -0.939459223602189700f,
783   -0.336889853392219940f, -0.941544065183020810f,
784   -0.331106305759876540f, -0.943593458161960270f,
785   -0.325310292162263310f, -0.945607325380521170f,
786   -0.319502030816015410f, -0.947585591017741200f,
787   -0.313681740398891460f, -0.949528180593036670f,
788   -0.307849640041535090f, -0.951435020969008340f,
789   -0.302005949319228530f, -0.953306040354193750f,
790   -0.296150888243623680f, -0.955141168305770780f,
791   -0.290284677254462440f, -0.956940335732208820f,
792   -0.284407537211272150f, -0.958703474895871490f,
793   -0.278519689385053610f, -0.960430519415565680f,
794   -0.272621355449948870f, -0.962121404269041580f,
795   -0.266712757474898530f, -0.963776065795439840f,
796   -0.260794117915275900f, -0.965394441697689290f,
797   -0.254865659604514350f, -0.966976471044852180f,
798   -0.248927605745720150f, -0.968522094274417270f,
799   -0.242980179903264120f, -0.970031253194543970f,
800   -0.237023605994367670f, -0.971503890986251670f,
801   -0.231058108280670940f, -0.972939952205560180f,
802   -0.225083911359792920f, -0.974339382785575860f,
803   -0.219101240156870100f, -0.975702130038528460f,
804   -0.213110319916091920f, -0.977028142657754280f,
805   -0.207111376192218480f, -0.978317370719627650f,
806   -0.201104634842092070f, -0.979569765685440520f,
807   -0.195090322016128660f, -0.980785280403230320f,
808   -0.189068664149805970f, -0.981963869109555350f,
809   -0.183039887955140950f, -0.983105487431216290f,
810   -0.177004220412149000f, -0.984210092386929030f,
811   -0.170961888760301690f, -0.985277642388941110f,
812   -0.164913120489969760f, -0.986308097244598670f,
813   -0.158858143333861530f, -0.987301418157858320f,
814   -0.152797185258443740f, -0.988257567730749460f,
815   -0.146730474455362300f, -0.989176509964780900f,
816   -0.140658239332849160f, -0.990058210262297120f,
817   -0.134580708507126360f, -0.990902635427780010f,
818   -0.128498110793793590f, -0.991709753669099530f,
819   -0.122410675199215960f, -0.992479534598710080f,
820   -0.116318630911904770f, -0.993211949234794500f,
821   -0.110222207293883310f, -0.993906970002356060f,
822   -0.104121633872055070f, -0.994564570734255420f,
823   -0.098017140329560451f, -0.995184726672196930f,
824   -0.091908956497132821f, -0.995767414467659820f,
825   -0.085797312344440227f, -0.996312612182778000f,
826   -0.079682437971430695f, -0.996820299291165670f,
827   -0.073564563599667357f, -0.997290456678690210f,
828   -0.067443919563664231f, -0.997723066644191640f,
829   -0.061320736302208995f, -0.998118112900149180f,
830   -0.055195244349689712f, -0.998475580573294770f,
831   -0.049067674327418029f, -0.998795456205172410f,
832   -0.042938256934941084f, -0.999077727752645360f,
833   -0.036807222941359331f, -0.999322384588349430f,
834   -0.030674803176636484f, -0.999529417501093140f,
835   -0.024541228522912389f, -0.999698818696204250f,
836   -0.018406729905805164f, -0.999830581795823400f,
837   -0.012271538285720512f, -0.999924701839144500f,
838   -0.006135884649154416f, -0.999981175282601110f,
839   -0.000000000000000184f, -1.000000000000000000f,
840   0.006135884649154049f, -0.999981175282601110f,
841   0.012271538285720144f, -0.999924701839144500f,
842   0.018406729905804796f, -0.999830581795823400f,
843   0.024541228522912021f, -0.999698818696204250f,
844   0.030674803176636116f, -0.999529417501093140f,
845   0.036807222941358964f, -0.999322384588349540f,
846   0.042938256934940716f, -0.999077727752645360f,
847   0.049067674327417661f, -0.998795456205172410f,
848   0.055195244349689344f, -0.998475580573294770f,
849   0.061320736302208627f, -0.998118112900149180f,
850   0.067443919563663871f, -0.997723066644191640f,
851   0.073564563599666982f, -0.997290456678690210f,
852   0.079682437971430334f, -0.996820299291165670f,
853   0.085797312344439852f, -0.996312612182778000f,
854   0.091908956497132446f, -0.995767414467659820f,
855   0.098017140329560090f, -0.995184726672196930f,
856   0.104121633872054700f, -0.994564570734255420f,
857   0.110222207293882930f, -0.993906970002356060f,
858   0.116318630911904410f, -0.993211949234794610f,
859   0.122410675199215600f, -0.992479534598710080f,
860   0.128498110793793220f, -0.991709753669099530f,
861   0.134580708507125970f, -0.990902635427780010f,
862   0.140658239332848790f, -0.990058210262297120f,
863   0.146730474455361940f, -0.989176509964780900f,
864   0.152797185258443380f, -0.988257567730749460f,
865   0.158858143333861170f, -0.987301418157858430f,
866   0.164913120489969390f, -0.986308097244598780f,
867   0.170961888760301330f, -0.985277642388941220f,
868   0.177004220412148640f, -0.984210092386929140f,
869   0.183039887955140590f, -0.983105487431216400f,
870   0.189068664149805610f, -0.981963869109555350f,
871   0.195090322016128300f, -0.980785280403230430f,
872   0.201104634842091710f, -0.979569765685440630f,
873   0.207111376192218120f, -0.978317370719627770f,
874   0.213110319916091560f, -0.977028142657754280f,
875   0.219101240156869740f, -0.975702130038528570f,
876   0.225083911359792550f, -0.974339382785575970f,
877   0.231058108280670580f, -0.972939952205560290f,
878   0.237023605994367310f, -0.971503890986251780f,
879   0.242980179903263760f, -0.970031253194543970f,
880   0.248927605745719790f, -0.968522094274417380f,
881   0.254865659604513960f, -0.966976471044852290f,
882   0.260794117915275510f, -0.965394441697689400f,
883   0.266712757474898200f, -0.963776065795439950f,
884   0.272621355449948530f, -0.962121404269041690f,
885   0.278519689385053280f, -0.960430519415565790f,
886   0.284407537211271770f, -0.958703474895871600f,
887   0.290284677254462050f, -0.956940335732208940f,
888   0.296150888243623290f, -0.955141168305770890f,
889   0.302005949319228140f, -0.953306040354193860f,
890   0.307849640041534760f, -0.951435020969008450f,
891   0.313681740398891130f, -0.949528180593036790f,
892   0.319502030816015080f, -0.947585591017741310f,
893   0.325310292162262930f, -0.945607325380521280f,
894   0.331106305759876210f, -0.943593458161960390f,
895   0.336889853392219610f, -0.941544065183020920f,
896   0.342660717311994540f, -0.939459223602189810f,
897   0.348418680249434510f, -0.937339011912574960f,
898   0.354163525420490070f, -0.935183509938947720f,
899   0.359895036534987610f, -0.932992798834739070f,
900   0.365612997804773960f, -0.930766961078983710f,
901   0.371317193951837380f, -0.928506080473215590f,
902   0.377007410216417870f, -0.926210242138311490f,
903   0.382683432365090000f, -0.923879532511286630f,
904   0.388345046698826300f, -0.921514039342041900f,
905   0.393992040061047880f, -0.919113851690057880f,
906   0.399624199845646400f, -0.916679059921042820f,
907   0.405241314004990030f, -0.914209755703530580f,
908   0.410843171057903860f, -0.911706032005429880f,
909   0.416429560097636870f, -0.909167983090522490f,
910   0.422000270799799180f, -0.906595704514915560f,
911   0.427555093430282140f, -0.903989293123443340f,
912   0.433093818853151790f, -0.901348847046022140f,
913   0.438616238538527270f, -0.898674465693954040f,
914   0.444122144570429420f, -0.895966249756185000f,
915   0.449611329654606600f, -0.893224301195515320f,
916   0.455083587126343610f, -0.890448723244757990f,
917   0.460538710958239560f, -0.887639620402854160f,
918   0.465976495767966290f, -0.884797098430937680f,
919   0.471396736825997590f, -0.881921264348355050f,
920   0.476799230063321870f, -0.879012226428633640f,
921   0.482183772079122220f, -0.876070094195406930f,
922   0.487550160148436000f, -0.873094978418290090f,
923   0.492898192229783870f, -0.870086991108711460f,
924   0.498227666972781480f, -0.867046245515692870f,
925   0.503538383725717800f, -0.863972856121586590f,
926   0.508830142543106990f, -0.860866938637767310f,
927   0.514102744193221550f, -0.857728610000272230f,
928   0.519355990165589200f, -0.854557988365400760f,
929   0.524589682678469060f, -0.851355193105265080f,
930   0.529803624686294610f, -0.848120344803297340f,
931   0.534997619887096930f, -0.844853565249707230f,
932   0.540171472729892410f, -0.841554977436898780f,
933   0.545324988422046460f, -0.838224705554837970f,
934   0.550457972936604700f, -0.834862874986380120f,
935   0.555570233019601840f, -0.831469612302545460f,
936   0.560661576197336250f, -0.828045045257755690f,
937   0.565731810783613120f, -0.824589302785025290f,
938   0.570780745886967030f, -0.821102514991104870f,
939   0.575808191417844890f, -0.817584813151584040f,
940   0.580813958095764640f, -0.814036329705948300f,
941   0.585797857456438750f, -0.810457198252594880f,
942   0.590759701858873940f, -0.806847553543799450f,
943   0.595699304492432910f, -0.803207531480645280f,
944   0.600616479383868970f, -0.799537269107905010f,
945   0.605511041404325320f, -0.795836904608883680f,
946   0.610382806276309140f, -0.792106577300212610f,
947   0.615231590580627040f, -0.788346427626606120f,
948   0.620057211763289100f, -0.784556597155575240f,
949   0.624859488142386120f, -0.780737228572094600f,
950   0.629638238914926650f, -0.776888465673232780f,
951   0.634393284163645600f, -0.773010453362736880f,
952   0.639124444863775620f, -0.769103337645579700f,
953   0.643831542889791160f, -0.765167265622459180f,
954   0.648514401022112000f, -0.761202385484262220f,
955   0.653172842953776760f, -0.757208846506484570f,
956   0.657806693297078530f, -0.753186799043612630f,
957   0.662415777590171450f, -0.749136394523459590f,
958   0.666999922303637690f, -0.745057785441465840f,
959   0.671558954847018330f, -0.740951125354959110f,
960   0.676092703575315700f, -0.736816568877370020f,
961   0.680600997795452690f, -0.732654271672413150f,
962   0.685083667772700470f, -0.728464390448225090f,
963   0.689540544737066830f, -0.724247082951467000f,
964   0.693971460889653780f, -0.720002507961381880f,
965   0.698376249408972360f, -0.715730825283819040f,
966   0.702754744457225300f, -0.711432195745216430f,
967   0.707106781186547350f, -0.707106781186547680f,
968   0.711432195745216100f, -0.702754744457225630f,
969   0.715730825283818820f, -0.698376249408972690f,
970   0.720002507961381540f, -0.693971460889654000f,
971   0.724247082951466670f, -0.689540544737067160f,
972   0.728464390448224860f, -0.685083667772700800f,
973   0.732654271672412930f, -0.680600997795453020f,
974   0.736816568877369790f, -0.676092703575316030f,
975   0.740951125354958880f, -0.671558954847018660f,
976   0.745057785441465500f, -0.666999922303638030f,
977   0.749136394523459370f, -0.662415777590171780f,
978   0.753186799043612300f, -0.657806693297078860f,
979   0.757208846506484230f, -0.653172842953777090f,
980   0.761202385484261890f, -0.648514401022112330f,
981   0.765167265622458850f, -0.643831542889791500f,
982   0.769103337645579480f, -0.639124444863775950f,
983   0.773010453362736660f, -0.634393284163645930f,
984   0.776888465673232550f, -0.629638238914926980f,
985   0.780737228572094380f, -0.624859488142386450f,
986   0.784556597155575020f, -0.620057211763289540f,
987   0.788346427626605890f, -0.615231590580627370f,
988   0.792106577300212390f, -0.610382806276309480f,
989   0.795836904608883340f, -0.605511041404325660f,
990   0.799537269107904790f, -0.600616479383869310f,
991   0.803207531480645050f, -0.595699304492433250f,
992   0.806847553543799220f, -0.590759701858874280f,
993   0.810457198252594660f, -0.585797857456439090f,
994   0.814036329705948080f, -0.580813958095764970f,
995   0.817584813151583710f, -0.575808191417845230f,
996   0.821102514991104540f, -0.570780745886967370f,
997   0.824589302785025070f, -0.565731810783613560f,
998   0.828045045257755350f, -0.560661576197336590f,
999   0.831469612302545240f, -0.555570233019602180f,
1000   0.834862874986379900f, -0.550457972936605030f,
1001   0.838224705554837750f, -0.545324988422046800f,
1002   0.841554977436898440f, -0.540171472729892740f,
1003   0.844853565249707010f, -0.534997619887097260f,
1004   0.848120344803297120f, -0.529803624686294940f,
1005   0.851355193105264860f, -0.524589682678469390f,
1006   0.854557988365400530f, -0.519355990165589530f,
1007   0.857728610000272010f, -0.514102744193221880f,
1008   0.860866938637767090f, -0.508830142543107430f,
1009   0.863972856121586360f, -0.503538383725718130f,
1010   0.867046245515692650f, -0.498227666972781870f,
1011   0.870086991108711350f, -0.492898192229784260f,
1012   0.873094978418289870f, -0.487550160148436380f,
1013   0.876070094195406710f, -0.482183772079122610f,
1014   0.879012226428633410f, -0.476799230063322200f,
1015   0.881921264348354830f, -0.471396736825997920f,
1016   0.884797098430937460f, -0.465976495767966680f,
1017   0.887639620402853930f, -0.460538710958239950f,
1018   0.890448723244757770f, -0.455083587126344000f,
1019   0.893224301195515100f, -0.449611329654606980f,
1020   0.895966249756184880f, -0.444122144570429810f,
1021   0.898674465693953820f, -0.438616238538527660f,
1022   0.901348847046021920f, -0.433093818853152180f,
1023   0.903989293123443120f, -0.427555093430282530f,
1024   0.906595704514915450f, -0.422000270799799570f,
1025   0.909167983090522380f, -0.416429560097637260f,
1026   0.911706032005429660f, -0.410843171057904240f,
1027   0.914209755703530470f, -0.405241314004990420f,
1028   0.916679059921042700f, -0.399624199845646790f,
1029   0.919113851690057660f, -0.393992040061048270f,
1030   0.921514039342041790f, -0.388345046698826690f,
1031   0.923879532511286520f, -0.382683432365090390f,
1032   0.926210242138311380f, -0.377007410216418260f,
1033   0.928506080473215480f, -0.371317193951837820f,
1034   0.930766961078983490f, -0.365612997804774350f,
1035   0.932992798834738960f, -0.359895036534988000f,
1036   0.935183509938947500f, -0.354163525420490510f,
1037   0.937339011912574850f, -0.348418680249434900f,
1038   0.939459223602189700f, -0.342660717311994930f,
1039   0.941544065183020810f, -0.336889853392220000f,
1040   0.943593458161960270f, -0.331106305759876600f,
1041   0.945607325380521170f, -0.325310292162263370f,
1042   0.947585591017741200f, -0.319502030816015470f,
1043   0.949528180593036670f, -0.313681740398891520f,
1044   0.951435020969008340f, -0.307849640041535140f,
1045   0.953306040354193640f, -0.302005949319228580f,
1046   0.955141168305770780f, -0.296150888243623730f,
1047   0.956940335732208820f, -0.290284677254462500f,
1048   0.958703474895871490f, -0.284407537211272210f,
1049   0.960430519415565680f, -0.278519689385053670f,
1050   0.962121404269041580f, -0.272621355449948980f,
1051   0.963776065795439840f, -0.266712757474898590f,
1052   0.965394441697689290f, -0.260794117915275960f,
1053   0.966976471044852180f, -0.254865659604514410f,
1054   0.968522094274417270f, -0.248927605745720200f,
1055   0.970031253194543970f, -0.242980179903264180f,
1056   0.971503890986251670f, -0.237023605994367730f,
1057   0.972939952205560180f, -0.231058108280671000f,
1058   0.974339382785575860f, -0.225083911359792970f,
1059   0.975702130038528460f, -0.219101240156870160f,
1060   0.977028142657754170f, -0.213110319916091970f,
1061   0.978317370719627650f, -0.207111376192218530f,
1062   0.979569765685440520f, -0.201104634842092120f,
1063   0.980785280403230320f, -0.195090322016128720f,
1064   0.981963869109555350f, -0.189068664149806030f,
1065   0.983105487431216290f, -0.183039887955141010f,
1066   0.984210092386929030f, -0.177004220412149050f,
1067   0.985277642388941110f, -0.170961888760301770f,
1068   0.986308097244598670f, -0.164913120489969810f,
1069   0.987301418157858320f, -0.158858143333861580f,
1070   0.988257567730749460f, -0.152797185258443800f,
1071   0.989176509964780900f, -0.146730474455362390f,
1072   0.990058210262297120f, -0.140658239332849210f,
1073   0.990902635427780010f, -0.134580708507126420f,
1074   0.991709753669099410f, -0.128498110793793640f,
1075   0.992479534598709970f, -0.122410675199216030f,
1076   0.993211949234794500f, -0.116318630911904840f,
1077   0.993906970002356060f, -0.110222207293883360f,
1078   0.994564570734255420f, -0.104121633872055130f,
1079   0.995184726672196930f, -0.098017140329560506f,
1080   0.995767414467659820f, -0.091908956497132877f,
1081   0.996312612182778000f, -0.085797312344440282f,
1082   0.996820299291165670f, -0.079682437971430750f,
1083   0.997290456678690210f, -0.073564563599667412f,
1084   0.997723066644191640f, -0.067443919563664287f,
1085   0.998118112900149180f, -0.061320736302209057f,
1086   0.998475580573294770f, -0.055195244349689775f,
1087   0.998795456205172410f, -0.049067674327418091f,
1088   0.999077727752645360f, -0.042938256934941139f,
1089   0.999322384588349430f, -0.036807222941359394f,
1090   0.999529417501093140f, -0.030674803176636543f,
1091   0.999698818696204250f, -0.024541228522912448f,
1092   0.999830581795823400f, -0.018406729905805226f,
1093   0.999924701839144500f, -0.012271538285720572f,
1094   0.999981175282601110f, -0.006135884649154477f
1095 };
1096
1097 /**   
1098 * @brief  Initialization function for the floating-point CFFT/CIFFT.  
1099 * @param[in,out] *S             points to an instance of the floating-point CFFT/CIFFT structure.  
1100 * @param[in]     fftLen         length of the FFT.  
1101 * @param[in]     ifftFlag       flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform.  
1102 * @param[in]     bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output.  
1103 * @return        The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if <code>fftLen</code> is not a supported value.  
1104 *   
1105 * \par Description:  
1106 * \par   
1107 * The parameter <code>ifftFlag</code> controls whether a forward or inverse transform is computed.   
1108 * Set(=1) ifftFlag for calculation of CIFFT otherwise  CFFT is calculated  
1109 * \par   
1110 * The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order.   
1111 * Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order.   
1112 * \par   
1113 * The parameter <code>fftLen</code>     Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024.   
1114 * \par   
1115 * This Function also initializes Twiddle factor table pointer and Bit reversal table pointer.   
1116 */
1117
1118 arm_status arm_cfft_radix4_init_f32(
1119   arm_cfft_radix4_instance_f32 * S,
1120   uint16_t fftLen,
1121   uint8_t ifftFlag,
1122   uint8_t bitReverseFlag)
1123 {
1124   /*  Initialise the default arm status */
1125   arm_status status = ARM_MATH_SUCCESS;
1126
1127   /*  Initialise the FFT length */
1128   S->fftLen = fftLen;
1129
1130   /*  Initialise the Twiddle coefficient pointer */
1131   S->pTwiddle = (float32_t *) twiddleCoef;
1132
1133   /*  Initialise the Flag for selection of CFFT or CIFFT */
1134   S->ifftFlag = ifftFlag;
1135
1136   /*  Initialise the Flag for calculation Bit reversal or not */
1137   S->bitReverseFlag = bitReverseFlag;
1138
1139   /*  Initializations of structure parameters depending on the FFT length */
1140   switch (S->fftLen)
1141   {
1142
1143   case 1024u:
1144     /*  Initializations of structure parameters for 1024 point FFT */
1145
1146     /*  Initialise the twiddle coef modifier value */
1147     S->twidCoefModifier = 1u;
1148     /*  Initialise the bit reversal table modifier */
1149     S->bitRevFactor = 1u;
1150     /*  Initialise the bit reversal table pointer */
1151     S->pBitRevTable = armBitRevTable;
1152     /*  Initialise the 1/fftLen Value */
1153     S->onebyfftLen = 0.0009765625f;
1154     break;
1155
1156
1157   case 256u:
1158     /*  Initializations of structure parameters for 256 point FFT */
1159     S->twidCoefModifier = 4u;
1160     S->bitRevFactor = 4u;
1161     S->pBitRevTable = &armBitRevTable[3];
1162     S->onebyfftLen = 0.00390625f;
1163     break;
1164
1165   case 64u:
1166     /*  Initializations of structure parameters for 64 point FFT */
1167     S->twidCoefModifier = 16u;
1168     S->bitRevFactor = 16u;
1169     S->pBitRevTable = &armBitRevTable[15];
1170     S->onebyfftLen = 0.015625f;
1171     break;
1172
1173   case 16u:
1174     /*  Initializations of structure parameters for 16 point FFT */
1175     S->twidCoefModifier = 64u;
1176     S->bitRevFactor = 64u;
1177     S->pBitRevTable = &armBitRevTable[63];
1178     S->onebyfftLen = 0.0625f;
1179     break;
1180
1181
1182   default:
1183     /*  Reporting argument error if fftSize is not valid value */
1184     status = ARM_MATH_ARGUMENT_ERROR;
1185     break;
1186   }
1187
1188   return (status);
1189 }
1190
1191 /**   
1192  * @} end of CFFT_CIFFT group   
1193  */