CMSIS DSP Library from CMSIS 2.0. See http://www.onarm.com/cmsis/ for full details

Dependents:   K22F_DSP_Matrix_least_square BNO055-ELEC3810 1BNO055 ECE4180Project--Slave2 ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers arm_cfft_radix4_init_q31.c Source File

arm_cfft_radix4_init_q31.c

00001 /* ----------------------------------------------------------------------  
00002 * Copyright (C) 2010 ARM Limited. All rights reserved.  
00003 *  
00004 * $Date:        29. November 2010  
00005 * $Revision:    V1.0.3  
00006 *  
00007 * Project:      CMSIS DSP Library  
00008 * Title:        arm_cfft_radix4_init_q31.c  
00009 *  
00010 * Description:  Radix-4 Decimation in Frequency Q31 FFT & IFFT initialization function  
00011 *  
00012 * Target Processor: Cortex-M4/Cortex-M3
00013 *  
00014 * Version 1.0.3 2010/11/29 
00015 *    Re-organized the CMSIS folders and updated documentation.  
00016 *   
00017 * Version 1.0.2 2010/11/11  
00018 *    Documentation updated.   
00019 *  
00020 * Version 1.0.1 2010/10/05   
00021 *    Production release and review comments incorporated.  
00022 *  
00023 * Version 1.0.0 2010/09/20   
00024 *    Production release and review comments incorporated.  
00025 *  
00026 * Version 0.0.5  2010/04/26   
00027 *    incorporated review comments and updated with latest CMSIS layer  
00028 *  
00029 * Version 0.0.3  2010/03/10   
00030 *    Initial version  
00031 * -------------------------------------------------------------------- */ 
00032  
00033 #include "arm_math.h" 
00034 #include "arm_common_tables.h" 
00035  
00036 /**  
00037  * @ingroup groupTransforms  
00038  */ 
00039  
00040 /**  
00041  * @addtogroup CFFT_CIFFT  
00042  * @{  
00043  */ 
00044  
00045 /*  
00046 * @brief  Twiddle factors Table  
00047 */ 
00048  
00049 /**  
00050 * \par 
00051 * Example code for Q31 Twiddle factors Generation::  
00052 * \par  
00053 * <pre>for(i = 0; i< N; i++)  
00054 * {  
00055 *    twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N);  
00056 *    twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N);  
00057 * } </pre>  
00058 * \par  
00059 * where N = 1024    and PI = 3.14159265358979  
00060 * \par  
00061 * Cos and Sin values are interleaved fashion  
00062 * \par  
00063 * Convert Floating point to Q31(Fixed point 1.31):  
00064 *   round(twiddleCoefQ31(i) * pow(2, 31))  
00065 *  
00066 */ 
00067  
00068 static const q31_t twiddleCoefQ31 [2048] = { 
00069   0x7fffffff, 0x0, 0x7fff6216, 0xc90f88, 0x7ffd885a, 0x1921d20, 0x7ffa72d1, 
00070   0x25b26d7, 
00071   0x7ff62182, 0x3242abf, 0x7ff09478, 0x3ed26e6, 0x7fe9cbc0, 0x4b6195d, 
00072   0x7fe1c76b, 0x57f0035, 
00073   0x7fd8878e, 0x647d97c, 0x7fce0c3e, 0x710a345, 0x7fc25596, 0x7d95b9e, 
00074   0x7fb563b3, 0x8a2009a, 
00075   0x7fa736b4, 0x96a9049, 0x7f97cebd, 0xa3308bd, 0x7f872bf3, 0xafb6805, 
00076   0x7f754e80, 0xbc3ac35, 
00077   0x7f62368f, 0xc8bd35e, 0x7f4de451, 0xd53db92, 0x7f3857f6, 0xe1bc2e4, 
00078   0x7f2191b4, 0xee38766, 
00079   0x7f0991c4, 0xfab272b, 0x7ef05860, 0x1072a048, 0x7ed5e5c6, 0x1139f0cf, 
00080   0x7eba3a39, 0x120116d5, 
00081   0x7e9d55fc, 0x12c8106f, 0x7e7f3957, 0x138edbb1, 0x7e5fe493, 0x145576b1, 
00082   0x7e3f57ff, 0x151bdf86, 
00083   0x7e1d93ea, 0x15e21445, 0x7dfa98a8, 0x16a81305, 0x7dd6668f, 0x176dd9de, 
00084   0x7db0fdf8, 0x183366e9, 
00085   0x7d8a5f40, 0x18f8b83c, 0x7d628ac6, 0x19bdcbf3, 0x7d3980ec, 0x1a82a026, 
00086   0x7d0f4218, 0x1b4732ef, 
00087   0x7ce3ceb2, 0x1c0b826a, 0x7cb72724, 0x1ccf8cb3, 0x7c894bde, 0x1d934fe5, 
00088   0x7c5a3d50, 0x1e56ca1e, 
00089   0x7c29fbee, 0x1f19f97b, 0x7bf88830, 0x1fdcdc1b, 0x7bc5e290, 0x209f701c, 
00090   0x7b920b89, 0x2161b3a0, 
00091   0x7b5d039e, 0x2223a4c5, 0x7b26cb4f, 0x22e541af, 0x7aef6323, 0x23a6887f, 
00092   0x7ab6cba4, 0x24677758, 
00093   0x7a7d055b, 0x25280c5e, 0x7a4210d8, 0x25e845b6, 0x7a05eead, 0x26a82186, 
00094   0x79c89f6e, 0x27679df4, 
00095   0x798a23b1, 0x2826b928, 0x794a7c12, 0x28e5714b, 0x7909a92d, 0x29a3c485, 
00096   0x78c7aba2, 0x2a61b101, 
00097   0x78848414, 0x2b1f34eb, 0x78403329, 0x2bdc4e6f, 0x77fab989, 0x2c98fbba, 
00098   0x77b417df, 0x2d553afc, 
00099   0x776c4edb, 0x2e110a62, 0x77235f2d, 0x2ecc681e, 0x76d94989, 0x2f875262, 
00100   0x768e0ea6, 0x3041c761, 
00101   0x7641af3d, 0x30fbc54d, 0x75f42c0b, 0x31b54a5e, 0x75a585cf, 0x326e54c7, 
00102   0x7555bd4c, 0x3326e2c3, 
00103   0x7504d345, 0x33def287, 0x74b2c884, 0x34968250, 0x745f9dd1, 0x354d9057, 
00104   0x740b53fb, 0x36041ad9, 
00105   0x73b5ebd1, 0x36ba2014, 0x735f6626, 0x376f9e46, 0x7307c3d0, 0x382493b0, 
00106   0x72af05a7, 0x38d8fe93, 
00107   0x72552c85, 0x398cdd32, 0x71fa3949, 0x3a402dd2, 0x719e2cd2, 0x3af2eeb7, 
00108   0x71410805, 0x3ba51e29, 
00109   0x70e2cbc6, 0x3c56ba70, 0x708378ff, 0x3d07c1d6, 0x7023109a, 0x3db832a6, 
00110   0x6fc19385, 0x3e680b2c, 
00111   0x6f5f02b2, 0x3f1749b8, 0x6efb5f12, 0x3fc5ec98, 0x6e96a99d, 0x4073f21d, 
00112   0x6e30e34a, 0x4121589b, 
00113   0x6dca0d14, 0x41ce1e65, 0x6d6227fa, 0x427a41d0, 0x6cf934fc, 0x4325c135, 
00114   0x6c8f351c, 0x43d09aed, 
00115   0x6c242960, 0x447acd50, 0x6bb812d1, 0x452456bd, 0x6b4af279, 0x45cd358f, 
00116   0x6adcc964, 0x46756828, 
00117   0x6a6d98a4, 0x471cece7, 0x69fd614a, 0x47c3c22f, 0x698c246c, 0x4869e665, 
00118   0x6919e320, 0x490f57ee, 
00119   0x68a69e81, 0x49b41533, 0x683257ab, 0x4a581c9e, 0x67bd0fbd, 0x4afb6c98, 
00120   0x6746c7d8, 0x4b9e0390, 
00121   0x66cf8120, 0x4c3fdff4, 0x66573cbb, 0x4ce10034, 0x65ddfbd3, 0x4d8162c4, 
00122   0x6563bf92, 0x4e210617, 
00123   0x64e88926, 0x4ebfe8a5, 0x646c59bf, 0x4f5e08e3, 0x63ef3290, 0x4ffb654d, 
00124   0x637114cc, 0x5097fc5e, 
00125   0x62f201ac, 0x5133cc94, 0x6271fa69, 0x51ced46e, 0x61f1003f, 0x5269126e, 
00126   0x616f146c, 0x53028518, 
00127   0x60ec3830, 0x539b2af0, 0x60686ccf, 0x5433027d, 0x5fe3b38d, 0x54ca0a4b, 
00128   0x5f5e0db3, 0x556040e2, 
00129   0x5ed77c8a, 0x55f5a4d2, 0x5e50015d, 0x568a34a9, 0x5dc79d7c, 0x571deefa, 
00130   0x5d3e5237, 0x57b0d256, 
00131   0x5cb420e0, 0x5842dd54, 0x5c290acc, 0x58d40e8c, 0x5b9d1154, 0x59646498, 
00132   0x5b1035cf, 0x59f3de12, 
00133   0x5a82799a, 0x5a82799a, 0x59f3de12, 0x5b1035cf, 0x59646498, 0x5b9d1154, 
00134   0x58d40e8c, 0x5c290acc, 
00135   0x5842dd54, 0x5cb420e0, 0x57b0d256, 0x5d3e5237, 0x571deefa, 0x5dc79d7c, 
00136   0x568a34a9, 0x5e50015d, 
00137   0x55f5a4d2, 0x5ed77c8a, 0x556040e2, 0x5f5e0db3, 0x54ca0a4b, 0x5fe3b38d, 
00138   0x5433027d, 0x60686ccf, 
00139   0x539b2af0, 0x60ec3830, 0x53028518, 0x616f146c, 0x5269126e, 0x61f1003f, 
00140   0x51ced46e, 0x6271fa69, 
00141   0x5133cc94, 0x62f201ac, 0x5097fc5e, 0x637114cc, 0x4ffb654d, 0x63ef3290, 
00142   0x4f5e08e3, 0x646c59bf, 
00143   0x4ebfe8a5, 0x64e88926, 0x4e210617, 0x6563bf92, 0x4d8162c4, 0x65ddfbd3, 
00144   0x4ce10034, 0x66573cbb, 
00145   0x4c3fdff4, 0x66cf8120, 0x4b9e0390, 0x6746c7d8, 0x4afb6c98, 0x67bd0fbd, 
00146   0x4a581c9e, 0x683257ab, 
00147   0x49b41533, 0x68a69e81, 0x490f57ee, 0x6919e320, 0x4869e665, 0x698c246c, 
00148   0x47c3c22f, 0x69fd614a, 
00149   0x471cece7, 0x6a6d98a4, 0x46756828, 0x6adcc964, 0x45cd358f, 0x6b4af279, 
00150   0x452456bd, 0x6bb812d1, 
00151   0x447acd50, 0x6c242960, 0x43d09aed, 0x6c8f351c, 0x4325c135, 0x6cf934fc, 
00152   0x427a41d0, 0x6d6227fa, 
00153   0x41ce1e65, 0x6dca0d14, 0x4121589b, 0x6e30e34a, 0x4073f21d, 0x6e96a99d, 
00154   0x3fc5ec98, 0x6efb5f12, 
00155   0x3f1749b8, 0x6f5f02b2, 0x3e680b2c, 0x6fc19385, 0x3db832a6, 0x7023109a, 
00156   0x3d07c1d6, 0x708378ff, 
00157   0x3c56ba70, 0x70e2cbc6, 0x3ba51e29, 0x71410805, 0x3af2eeb7, 0x719e2cd2, 
00158   0x3a402dd2, 0x71fa3949, 
00159   0x398cdd32, 0x72552c85, 0x38d8fe93, 0x72af05a7, 0x382493b0, 0x7307c3d0, 
00160   0x376f9e46, 0x735f6626, 
00161   0x36ba2014, 0x73b5ebd1, 0x36041ad9, 0x740b53fb, 0x354d9057, 0x745f9dd1, 
00162   0x34968250, 0x74b2c884, 
00163   0x33def287, 0x7504d345, 0x3326e2c3, 0x7555bd4c, 0x326e54c7, 0x75a585cf, 
00164   0x31b54a5e, 0x75f42c0b, 
00165   0x30fbc54d, 0x7641af3d, 0x3041c761, 0x768e0ea6, 0x2f875262, 0x76d94989, 
00166   0x2ecc681e, 0x77235f2d, 
00167   0x2e110a62, 0x776c4edb, 0x2d553afc, 0x77b417df, 0x2c98fbba, 0x77fab989, 
00168   0x2bdc4e6f, 0x78403329, 
00169   0x2b1f34eb, 0x78848414, 0x2a61b101, 0x78c7aba2, 0x29a3c485, 0x7909a92d, 
00170   0x28e5714b, 0x794a7c12, 
00171   0x2826b928, 0x798a23b1, 0x27679df4, 0x79c89f6e, 0x26a82186, 0x7a05eead, 
00172   0x25e845b6, 0x7a4210d8, 
00173   0x25280c5e, 0x7a7d055b, 0x24677758, 0x7ab6cba4, 0x23a6887f, 0x7aef6323, 
00174   0x22e541af, 0x7b26cb4f, 
00175   0x2223a4c5, 0x7b5d039e, 0x2161b3a0, 0x7b920b89, 0x209f701c, 0x7bc5e290, 
00176   0x1fdcdc1b, 0x7bf88830, 
00177   0x1f19f97b, 0x7c29fbee, 0x1e56ca1e, 0x7c5a3d50, 0x1d934fe5, 0x7c894bde, 
00178   0x1ccf8cb3, 0x7cb72724, 
00179   0x1c0b826a, 0x7ce3ceb2, 0x1b4732ef, 0x7d0f4218, 0x1a82a026, 0x7d3980ec, 
00180   0x19bdcbf3, 0x7d628ac6, 
00181   0x18f8b83c, 0x7d8a5f40, 0x183366e9, 0x7db0fdf8, 0x176dd9de, 0x7dd6668f, 
00182   0x16a81305, 0x7dfa98a8, 
00183   0x15e21445, 0x7e1d93ea, 0x151bdf86, 0x7e3f57ff, 0x145576b1, 0x7e5fe493, 
00184   0x138edbb1, 0x7e7f3957, 
00185   0x12c8106f, 0x7e9d55fc, 0x120116d5, 0x7eba3a39, 0x1139f0cf, 0x7ed5e5c6, 
00186   0x1072a048, 0x7ef05860, 
00187   0xfab272b, 0x7f0991c4, 0xee38766, 0x7f2191b4, 0xe1bc2e4, 0x7f3857f6, 
00188   0xd53db92, 0x7f4de451, 
00189   0xc8bd35e, 0x7f62368f, 0xbc3ac35, 0x7f754e80, 0xafb6805, 0x7f872bf3, 
00190   0xa3308bd, 0x7f97cebd, 
00191   0x96a9049, 0x7fa736b4, 0x8a2009a, 0x7fb563b3, 0x7d95b9e, 0x7fc25596, 
00192   0x710a345, 0x7fce0c3e, 
00193   0x647d97c, 0x7fd8878e, 0x57f0035, 0x7fe1c76b, 0x4b6195d, 0x7fe9cbc0, 
00194   0x3ed26e6, 0x7ff09478, 
00195   0x3242abf, 0x7ff62182, 0x25b26d7, 0x7ffa72d1, 0x1921d20, 0x7ffd885a, 
00196   0xc90f88, 0x7fff6216, 
00197   0x0, 0x7fffffff, 0xff36f078, 0x7fff6216, 0xfe6de2e0, 0x7ffd885a, 0xfda4d929, 
00198   0x7ffa72d1, 
00199   0xfcdbd541, 0x7ff62182, 0xfc12d91a, 0x7ff09478, 0xfb49e6a3, 0x7fe9cbc0, 
00200   0xfa80ffcb, 0x7fe1c76b, 
00201   0xf9b82684, 0x7fd8878e, 0xf8ef5cbb, 0x7fce0c3e, 0xf826a462, 0x7fc25596, 
00202   0xf75dff66, 0x7fb563b3, 
00203   0xf6956fb7, 0x7fa736b4, 0xf5ccf743, 0x7f97cebd, 0xf50497fb, 0x7f872bf3, 
00204   0xf43c53cb, 0x7f754e80, 
00205   0xf3742ca2, 0x7f62368f, 0xf2ac246e, 0x7f4de451, 0xf1e43d1c, 0x7f3857f6, 
00206   0xf11c789a, 0x7f2191b4, 
00207   0xf054d8d5, 0x7f0991c4, 0xef8d5fb8, 0x7ef05860, 0xeec60f31, 0x7ed5e5c6, 
00208   0xedfee92b, 0x7eba3a39, 
00209   0xed37ef91, 0x7e9d55fc, 0xec71244f, 0x7e7f3957, 0xebaa894f, 0x7e5fe493, 
00210   0xeae4207a, 0x7e3f57ff, 
00211   0xea1debbb, 0x7e1d93ea, 0xe957ecfb, 0x7dfa98a8, 0xe8922622, 0x7dd6668f, 
00212   0xe7cc9917, 0x7db0fdf8, 
00213   0xe70747c4, 0x7d8a5f40, 0xe642340d, 0x7d628ac6, 0xe57d5fda, 0x7d3980ec, 
00214   0xe4b8cd11, 0x7d0f4218, 
00215   0xe3f47d96, 0x7ce3ceb2, 0xe330734d, 0x7cb72724, 0xe26cb01b, 0x7c894bde, 
00216   0xe1a935e2, 0x7c5a3d50, 
00217   0xe0e60685, 0x7c29fbee, 0xe02323e5, 0x7bf88830, 0xdf608fe4, 0x7bc5e290, 
00218   0xde9e4c60, 0x7b920b89, 
00219   0xdddc5b3b, 0x7b5d039e, 0xdd1abe51, 0x7b26cb4f, 0xdc597781, 0x7aef6323, 
00220   0xdb9888a8, 0x7ab6cba4, 
00221   0xdad7f3a2, 0x7a7d055b, 0xda17ba4a, 0x7a4210d8, 0xd957de7a, 0x7a05eead, 
00222   0xd898620c, 0x79c89f6e, 
00223   0xd7d946d8, 0x798a23b1, 0xd71a8eb5, 0x794a7c12, 0xd65c3b7b, 0x7909a92d, 
00224   0xd59e4eff, 0x78c7aba2, 
00225   0xd4e0cb15, 0x78848414, 0xd423b191, 0x78403329, 0xd3670446, 0x77fab989, 
00226   0xd2aac504, 0x77b417df, 
00227   0xd1eef59e, 0x776c4edb, 0xd13397e2, 0x77235f2d, 0xd078ad9e, 0x76d94989, 
00228   0xcfbe389f, 0x768e0ea6, 
00229   0xcf043ab3, 0x7641af3d, 0xce4ab5a2, 0x75f42c0b, 0xcd91ab39, 0x75a585cf, 
00230   0xccd91d3d, 0x7555bd4c, 
00231   0xcc210d79, 0x7504d345, 0xcb697db0, 0x74b2c884, 0xcab26fa9, 0x745f9dd1, 
00232   0xc9fbe527, 0x740b53fb, 
00233   0xc945dfec, 0x73b5ebd1, 0xc89061ba, 0x735f6626, 0xc7db6c50, 0x7307c3d0, 
00234   0xc727016d, 0x72af05a7, 
00235   0xc67322ce, 0x72552c85, 0xc5bfd22e, 0x71fa3949, 0xc50d1149, 0x719e2cd2, 
00236   0xc45ae1d7, 0x71410805, 
00237   0xc3a94590, 0x70e2cbc6, 0xc2f83e2a, 0x708378ff, 0xc247cd5a, 0x7023109a, 
00238   0xc197f4d4, 0x6fc19385, 
00239   0xc0e8b648, 0x6f5f02b2, 0xc03a1368, 0x6efb5f12, 0xbf8c0de3, 0x6e96a99d, 
00240   0xbedea765, 0x6e30e34a, 
00241   0xbe31e19b, 0x6dca0d14, 0xbd85be30, 0x6d6227fa, 0xbcda3ecb, 0x6cf934fc, 
00242   0xbc2f6513, 0x6c8f351c, 
00243   0xbb8532b0, 0x6c242960, 0xbadba943, 0x6bb812d1, 0xba32ca71, 0x6b4af279, 
00244   0xb98a97d8, 0x6adcc964, 
00245   0xb8e31319, 0x6a6d98a4, 0xb83c3dd1, 0x69fd614a, 0xb796199b, 0x698c246c, 
00246   0xb6f0a812, 0x6919e320, 
00247   0xb64beacd, 0x68a69e81, 0xb5a7e362, 0x683257ab, 0xb5049368, 0x67bd0fbd, 
00248   0xb461fc70, 0x6746c7d8, 
00249   0xb3c0200c, 0x66cf8120, 0xb31effcc, 0x66573cbb, 0xb27e9d3c, 0x65ddfbd3, 
00250   0xb1def9e9, 0x6563bf92, 
00251   0xb140175b, 0x64e88926, 0xb0a1f71d, 0x646c59bf, 0xb0049ab3, 0x63ef3290, 
00252   0xaf6803a2, 0x637114cc, 
00253   0xaecc336c, 0x62f201ac, 0xae312b92, 0x6271fa69, 0xad96ed92, 0x61f1003f, 
00254   0xacfd7ae8, 0x616f146c, 
00255   0xac64d510, 0x60ec3830, 0xabccfd83, 0x60686ccf, 0xab35f5b5, 0x5fe3b38d, 
00256   0xaa9fbf1e, 0x5f5e0db3, 
00257   0xaa0a5b2e, 0x5ed77c8a, 0xa975cb57, 0x5e50015d, 0xa8e21106, 0x5dc79d7c, 
00258   0xa84f2daa, 0x5d3e5237, 
00259   0xa7bd22ac, 0x5cb420e0, 0xa72bf174, 0x5c290acc, 0xa69b9b68, 0x5b9d1154, 
00260   0xa60c21ee, 0x5b1035cf, 
00261   0xa57d8666, 0x5a82799a, 0xa4efca31, 0x59f3de12, 0xa462eeac, 0x59646498, 
00262   0xa3d6f534, 0x58d40e8c, 
00263   0xa34bdf20, 0x5842dd54, 0xa2c1adc9, 0x57b0d256, 0xa2386284, 0x571deefa, 
00264   0xa1affea3, 0x568a34a9, 
00265   0xa1288376, 0x55f5a4d2, 0xa0a1f24d, 0x556040e2, 0xa01c4c73, 0x54ca0a4b, 
00266   0x9f979331, 0x5433027d, 
00267   0x9f13c7d0, 0x539b2af0, 0x9e90eb94, 0x53028518, 0x9e0effc1, 0x5269126e, 
00268   0x9d8e0597, 0x51ced46e, 
00269   0x9d0dfe54, 0x5133cc94, 0x9c8eeb34, 0x5097fc5e, 0x9c10cd70, 0x4ffb654d, 
00270   0x9b93a641, 0x4f5e08e3, 
00271   0x9b1776da, 0x4ebfe8a5, 0x9a9c406e, 0x4e210617, 0x9a22042d, 0x4d8162c4, 
00272   0x99a8c345, 0x4ce10034, 
00273   0x99307ee0, 0x4c3fdff4, 0x98b93828, 0x4b9e0390, 0x9842f043, 0x4afb6c98, 
00274   0x97cda855, 0x4a581c9e, 
00275   0x9759617f, 0x49b41533, 0x96e61ce0, 0x490f57ee, 0x9673db94, 0x4869e665, 
00276   0x96029eb6, 0x47c3c22f, 
00277   0x9592675c, 0x471cece7, 0x9523369c, 0x46756828, 0x94b50d87, 0x45cd358f, 
00278   0x9447ed2f, 0x452456bd, 
00279   0x93dbd6a0, 0x447acd50, 0x9370cae4, 0x43d09aed, 0x9306cb04, 0x4325c135, 
00280   0x929dd806, 0x427a41d0, 
00281   0x9235f2ec, 0x41ce1e65, 0x91cf1cb6, 0x4121589b, 0x91695663, 0x4073f21d, 
00282   0x9104a0ee, 0x3fc5ec98, 
00283   0x90a0fd4e, 0x3f1749b8, 0x903e6c7b, 0x3e680b2c, 0x8fdcef66, 0x3db832a6, 
00284   0x8f7c8701, 0x3d07c1d6, 
00285   0x8f1d343a, 0x3c56ba70, 0x8ebef7fb, 0x3ba51e29, 0x8e61d32e, 0x3af2eeb7, 
00286   0x8e05c6b7, 0x3a402dd2, 
00287   0x8daad37b, 0x398cdd32, 0x8d50fa59, 0x38d8fe93, 0x8cf83c30, 0x382493b0, 
00288   0x8ca099da, 0x376f9e46, 
00289   0x8c4a142f, 0x36ba2014, 0x8bf4ac05, 0x36041ad9, 0x8ba0622f, 0x354d9057, 
00290   0x8b4d377c, 0x34968250, 
00291   0x8afb2cbb, 0x33def287, 0x8aaa42b4, 0x3326e2c3, 0x8a5a7a31, 0x326e54c7, 
00292   0x8a0bd3f5, 0x31b54a5e, 
00293   0x89be50c3, 0x30fbc54d, 0x8971f15a, 0x3041c761, 0x8926b677, 0x2f875262, 
00294   0x88dca0d3, 0x2ecc681e, 
00295   0x8893b125, 0x2e110a62, 0x884be821, 0x2d553afc, 0x88054677, 0x2c98fbba, 
00296   0x87bfccd7, 0x2bdc4e6f, 
00297   0x877b7bec, 0x2b1f34eb, 0x8738545e, 0x2a61b101, 0x86f656d3, 0x29a3c485, 
00298   0x86b583ee, 0x28e5714b, 
00299   0x8675dc4f, 0x2826b928, 0x86376092, 0x27679df4, 0x85fa1153, 0x26a82186, 
00300   0x85bdef28, 0x25e845b6, 
00301   0x8582faa5, 0x25280c5e, 0x8549345c, 0x24677758, 0x85109cdd, 0x23a6887f, 
00302   0x84d934b1, 0x22e541af, 
00303   0x84a2fc62, 0x2223a4c5, 0x846df477, 0x2161b3a0, 0x843a1d70, 0x209f701c, 
00304   0x840777d0, 0x1fdcdc1b, 
00305   0x83d60412, 0x1f19f97b, 0x83a5c2b0, 0x1e56ca1e, 0x8376b422, 0x1d934fe5, 
00306   0x8348d8dc, 0x1ccf8cb3, 
00307   0x831c314e, 0x1c0b826a, 0x82f0bde8, 0x1b4732ef, 0x82c67f14, 0x1a82a026, 
00308   0x829d753a, 0x19bdcbf3, 
00309   0x8275a0c0, 0x18f8b83c, 0x824f0208, 0x183366e9, 0x82299971, 0x176dd9de, 
00310   0x82056758, 0x16a81305, 
00311   0x81e26c16, 0x15e21445, 0x81c0a801, 0x151bdf86, 0x81a01b6d, 0x145576b1, 
00312   0x8180c6a9, 0x138edbb1, 
00313   0x8162aa04, 0x12c8106f, 0x8145c5c7, 0x120116d5, 0x812a1a3a, 0x1139f0cf, 
00314   0x810fa7a0, 0x1072a048, 
00315   0x80f66e3c, 0xfab272b, 0x80de6e4c, 0xee38766, 0x80c7a80a, 0xe1bc2e4, 
00316   0x80b21baf, 0xd53db92, 
00317   0x809dc971, 0xc8bd35e, 0x808ab180, 0xbc3ac35, 0x8078d40d, 0xafb6805, 
00318   0x80683143, 0xa3308bd, 
00319   0x8058c94c, 0x96a9049, 0x804a9c4d, 0x8a2009a, 0x803daa6a, 0x7d95b9e, 
00320   0x8031f3c2, 0x710a345, 
00321   0x80277872, 0x647d97c, 0x801e3895, 0x57f0035, 0x80163440, 0x4b6195d, 
00322   0x800f6b88, 0x3ed26e6, 
00323   0x8009de7e, 0x3242abf, 0x80058d2f, 0x25b26d7, 0x800277a6, 0x1921d20, 
00324   0x80009dea, 0xc90f88, 
00325   0x80000000, 0x0, 0x80009dea, 0xff36f078, 0x800277a6, 0xfe6de2e0, 0x80058d2f, 
00326   0xfda4d929, 
00327   0x8009de7e, 0xfcdbd541, 0x800f6b88, 0xfc12d91a, 0x80163440, 0xfb49e6a3, 
00328   0x801e3895, 0xfa80ffcb, 
00329   0x80277872, 0xf9b82684, 0x8031f3c2, 0xf8ef5cbb, 0x803daa6a, 0xf826a462, 
00330   0x804a9c4d, 0xf75dff66, 
00331   0x8058c94c, 0xf6956fb7, 0x80683143, 0xf5ccf743, 0x8078d40d, 0xf50497fb, 
00332   0x808ab180, 0xf43c53cb, 
00333   0x809dc971, 0xf3742ca2, 0x80b21baf, 0xf2ac246e, 0x80c7a80a, 0xf1e43d1c, 
00334   0x80de6e4c, 0xf11c789a, 
00335   0x80f66e3c, 0xf054d8d5, 0x810fa7a0, 0xef8d5fb8, 0x812a1a3a, 0xeec60f31, 
00336   0x8145c5c7, 0xedfee92b, 
00337   0x8162aa04, 0xed37ef91, 0x8180c6a9, 0xec71244f, 0x81a01b6d, 0xebaa894f, 
00338   0x81c0a801, 0xeae4207a, 
00339   0x81e26c16, 0xea1debbb, 0x82056758, 0xe957ecfb, 0x82299971, 0xe8922622, 
00340   0x824f0208, 0xe7cc9917, 
00341   0x8275a0c0, 0xe70747c4, 0x829d753a, 0xe642340d, 0x82c67f14, 0xe57d5fda, 
00342   0x82f0bde8, 0xe4b8cd11, 
00343   0x831c314e, 0xe3f47d96, 0x8348d8dc, 0xe330734d, 0x8376b422, 0xe26cb01b, 
00344   0x83a5c2b0, 0xe1a935e2, 
00345   0x83d60412, 0xe0e60685, 0x840777d0, 0xe02323e5, 0x843a1d70, 0xdf608fe4, 
00346   0x846df477, 0xde9e4c60, 
00347   0x84a2fc62, 0xdddc5b3b, 0x84d934b1, 0xdd1abe51, 0x85109cdd, 0xdc597781, 
00348   0x8549345c, 0xdb9888a8, 
00349   0x8582faa5, 0xdad7f3a2, 0x85bdef28, 0xda17ba4a, 0x85fa1153, 0xd957de7a, 
00350   0x86376092, 0xd898620c, 
00351   0x8675dc4f, 0xd7d946d8, 0x86b583ee, 0xd71a8eb5, 0x86f656d3, 0xd65c3b7b, 
00352   0x8738545e, 0xd59e4eff, 
00353   0x877b7bec, 0xd4e0cb15, 0x87bfccd7, 0xd423b191, 0x88054677, 0xd3670446, 
00354   0x884be821, 0xd2aac504, 
00355   0x8893b125, 0xd1eef59e, 0x88dca0d3, 0xd13397e2, 0x8926b677, 0xd078ad9e, 
00356   0x8971f15a, 0xcfbe389f, 
00357   0x89be50c3, 0xcf043ab3, 0x8a0bd3f5, 0xce4ab5a2, 0x8a5a7a31, 0xcd91ab39, 
00358   0x8aaa42b4, 0xccd91d3d, 
00359   0x8afb2cbb, 0xcc210d79, 0x8b4d377c, 0xcb697db0, 0x8ba0622f, 0xcab26fa9, 
00360   0x8bf4ac05, 0xc9fbe527, 
00361   0x8c4a142f, 0xc945dfec, 0x8ca099da, 0xc89061ba, 0x8cf83c30, 0xc7db6c50, 
00362   0x8d50fa59, 0xc727016d, 
00363   0x8daad37b, 0xc67322ce, 0x8e05c6b7, 0xc5bfd22e, 0x8e61d32e, 0xc50d1149, 
00364   0x8ebef7fb, 0xc45ae1d7, 
00365   0x8f1d343a, 0xc3a94590, 0x8f7c8701, 0xc2f83e2a, 0x8fdcef66, 0xc247cd5a, 
00366   0x903e6c7b, 0xc197f4d4, 
00367   0x90a0fd4e, 0xc0e8b648, 0x9104a0ee, 0xc03a1368, 0x91695663, 0xbf8c0de3, 
00368   0x91cf1cb6, 0xbedea765, 
00369   0x9235f2ec, 0xbe31e19b, 0x929dd806, 0xbd85be30, 0x9306cb04, 0xbcda3ecb, 
00370   0x9370cae4, 0xbc2f6513, 
00371   0x93dbd6a0, 0xbb8532b0, 0x9447ed2f, 0xbadba943, 0x94b50d87, 0xba32ca71, 
00372   0x9523369c, 0xb98a97d8, 
00373   0x9592675c, 0xb8e31319, 0x96029eb6, 0xb83c3dd1, 0x9673db94, 0xb796199b, 
00374   0x96e61ce0, 0xb6f0a812, 
00375   0x9759617f, 0xb64beacd, 0x97cda855, 0xb5a7e362, 0x9842f043, 0xb5049368, 
00376   0x98b93828, 0xb461fc70, 
00377   0x99307ee0, 0xb3c0200c, 0x99a8c345, 0xb31effcc, 0x9a22042d, 0xb27e9d3c, 
00378   0x9a9c406e, 0xb1def9e9, 
00379   0x9b1776da, 0xb140175b, 0x9b93a641, 0xb0a1f71d, 0x9c10cd70, 0xb0049ab3, 
00380   0x9c8eeb34, 0xaf6803a2, 
00381   0x9d0dfe54, 0xaecc336c, 0x9d8e0597, 0xae312b92, 0x9e0effc1, 0xad96ed92, 
00382   0x9e90eb94, 0xacfd7ae8, 
00383   0x9f13c7d0, 0xac64d510, 0x9f979331, 0xabccfd83, 0xa01c4c73, 0xab35f5b5, 
00384   0xa0a1f24d, 0xaa9fbf1e, 
00385   0xa1288376, 0xaa0a5b2e, 0xa1affea3, 0xa975cb57, 0xa2386284, 0xa8e21106, 
00386   0xa2c1adc9, 0xa84f2daa, 
00387   0xa34bdf20, 0xa7bd22ac, 0xa3d6f534, 0xa72bf174, 0xa462eeac, 0xa69b9b68, 
00388   0xa4efca31, 0xa60c21ee, 
00389   0xa57d8666, 0xa57d8666, 0xa60c21ee, 0xa4efca31, 0xa69b9b68, 0xa462eeac, 
00390   0xa72bf174, 0xa3d6f534, 
00391   0xa7bd22ac, 0xa34bdf20, 0xa84f2daa, 0xa2c1adc9, 0xa8e21106, 0xa2386284, 
00392   0xa975cb57, 0xa1affea3, 
00393   0xaa0a5b2e, 0xa1288376, 0xaa9fbf1e, 0xa0a1f24d, 0xab35f5b5, 0xa01c4c73, 
00394   0xabccfd83, 0x9f979331, 
00395   0xac64d510, 0x9f13c7d0, 0xacfd7ae8, 0x9e90eb94, 0xad96ed92, 0x9e0effc1, 
00396   0xae312b92, 0x9d8e0597, 
00397   0xaecc336c, 0x9d0dfe54, 0xaf6803a2, 0x9c8eeb34, 0xb0049ab3, 0x9c10cd70, 
00398   0xb0a1f71d, 0x9b93a641, 
00399   0xb140175b, 0x9b1776da, 0xb1def9e9, 0x9a9c406e, 0xb27e9d3c, 0x9a22042d, 
00400   0xb31effcc, 0x99a8c345, 
00401   0xb3c0200c, 0x99307ee0, 0xb461fc70, 0x98b93828, 0xb5049368, 0x9842f043, 
00402   0xb5a7e362, 0x97cda855, 
00403   0xb64beacd, 0x9759617f, 0xb6f0a812, 0x96e61ce0, 0xb796199b, 0x9673db94, 
00404   0xb83c3dd1, 0x96029eb6, 
00405   0xb8e31319, 0x9592675c, 0xb98a97d8, 0x9523369c, 0xba32ca71, 0x94b50d87, 
00406   0xbadba943, 0x9447ed2f, 
00407   0xbb8532b0, 0x93dbd6a0, 0xbc2f6513, 0x9370cae4, 0xbcda3ecb, 0x9306cb04, 
00408   0xbd85be30, 0x929dd806, 
00409   0xbe31e19b, 0x9235f2ec, 0xbedea765, 0x91cf1cb6, 0xbf8c0de3, 0x91695663, 
00410   0xc03a1368, 0x9104a0ee, 
00411   0xc0e8b648, 0x90a0fd4e, 0xc197f4d4, 0x903e6c7b, 0xc247cd5a, 0x8fdcef66, 
00412   0xc2f83e2a, 0x8f7c8701, 
00413   0xc3a94590, 0x8f1d343a, 0xc45ae1d7, 0x8ebef7fb, 0xc50d1149, 0x8e61d32e, 
00414   0xc5bfd22e, 0x8e05c6b7, 
00415   0xc67322ce, 0x8daad37b, 0xc727016d, 0x8d50fa59, 0xc7db6c50, 0x8cf83c30, 
00416   0xc89061ba, 0x8ca099da, 
00417   0xc945dfec, 0x8c4a142f, 0xc9fbe527, 0x8bf4ac05, 0xcab26fa9, 0x8ba0622f, 
00418   0xcb697db0, 0x8b4d377c, 
00419   0xcc210d79, 0x8afb2cbb, 0xccd91d3d, 0x8aaa42b4, 0xcd91ab39, 0x8a5a7a31, 
00420   0xce4ab5a2, 0x8a0bd3f5, 
00421   0xcf043ab3, 0x89be50c3, 0xcfbe389f, 0x8971f15a, 0xd078ad9e, 0x8926b677, 
00422   0xd13397e2, 0x88dca0d3, 
00423   0xd1eef59e, 0x8893b125, 0xd2aac504, 0x884be821, 0xd3670446, 0x88054677, 
00424   0xd423b191, 0x87bfccd7, 
00425   0xd4e0cb15, 0x877b7bec, 0xd59e4eff, 0x8738545e, 0xd65c3b7b, 0x86f656d3, 
00426   0xd71a8eb5, 0x86b583ee, 
00427   0xd7d946d8, 0x8675dc4f, 0xd898620c, 0x86376092, 0xd957de7a, 0x85fa1153, 
00428   0xda17ba4a, 0x85bdef28, 
00429   0xdad7f3a2, 0x8582faa5, 0xdb9888a8, 0x8549345c, 0xdc597781, 0x85109cdd, 
00430   0xdd1abe51, 0x84d934b1, 
00431   0xdddc5b3b, 0x84a2fc62, 0xde9e4c60, 0x846df477, 0xdf608fe4, 0x843a1d70, 
00432   0xe02323e5, 0x840777d0, 
00433   0xe0e60685, 0x83d60412, 0xe1a935e2, 0x83a5c2b0, 0xe26cb01b, 0x8376b422, 
00434   0xe330734d, 0x8348d8dc, 
00435   0xe3f47d96, 0x831c314e, 0xe4b8cd11, 0x82f0bde8, 0xe57d5fda, 0x82c67f14, 
00436   0xe642340d, 0x829d753a, 
00437   0xe70747c4, 0x8275a0c0, 0xe7cc9917, 0x824f0208, 0xe8922622, 0x82299971, 
00438   0xe957ecfb, 0x82056758, 
00439   0xea1debbb, 0x81e26c16, 0xeae4207a, 0x81c0a801, 0xebaa894f, 0x81a01b6d, 
00440   0xec71244f, 0x8180c6a9, 
00441   0xed37ef91, 0x8162aa04, 0xedfee92b, 0x8145c5c7, 0xeec60f31, 0x812a1a3a, 
00442   0xef8d5fb8, 0x810fa7a0, 
00443   0xf054d8d5, 0x80f66e3c, 0xf11c789a, 0x80de6e4c, 0xf1e43d1c, 0x80c7a80a, 
00444   0xf2ac246e, 0x80b21baf, 
00445   0xf3742ca2, 0x809dc971, 0xf43c53cb, 0x808ab180, 0xf50497fb, 0x8078d40d, 
00446   0xf5ccf743, 0x80683143, 
00447   0xf6956fb7, 0x8058c94c, 0xf75dff66, 0x804a9c4d, 0xf826a462, 0x803daa6a, 
00448   0xf8ef5cbb, 0x8031f3c2, 
00449   0xf9b82684, 0x80277872, 0xfa80ffcb, 0x801e3895, 0xfb49e6a3, 0x80163440, 
00450   0xfc12d91a, 0x800f6b88, 
00451   0xfcdbd541, 0x8009de7e, 0xfda4d929, 0x80058d2f, 0xfe6de2e0, 0x800277a6, 
00452   0xff36f078, 0x80009dea, 
00453   0x0, 0x80000000, 0xc90f88, 0x80009dea, 0x1921d20, 0x800277a6, 0x25b26d7, 
00454   0x80058d2f, 
00455   0x3242abf, 0x8009de7e, 0x3ed26e6, 0x800f6b88, 0x4b6195d, 0x80163440, 
00456   0x57f0035, 0x801e3895, 
00457   0x647d97c, 0x80277872, 0x710a345, 0x8031f3c2, 0x7d95b9e, 0x803daa6a, 
00458   0x8a2009a, 0x804a9c4d, 
00459   0x96a9049, 0x8058c94c, 0xa3308bd, 0x80683143, 0xafb6805, 0x8078d40d, 
00460   0xbc3ac35, 0x808ab180, 
00461   0xc8bd35e, 0x809dc971, 0xd53db92, 0x80b21baf, 0xe1bc2e4, 0x80c7a80a, 
00462   0xee38766, 0x80de6e4c, 
00463   0xfab272b, 0x80f66e3c, 0x1072a048, 0x810fa7a0, 0x1139f0cf, 0x812a1a3a, 
00464   0x120116d5, 0x8145c5c7, 
00465   0x12c8106f, 0x8162aa04, 0x138edbb1, 0x8180c6a9, 0x145576b1, 0x81a01b6d, 
00466   0x151bdf86, 0x81c0a801, 
00467   0x15e21445, 0x81e26c16, 0x16a81305, 0x82056758, 0x176dd9de, 0x82299971, 
00468   0x183366e9, 0x824f0208, 
00469   0x18f8b83c, 0x8275a0c0, 0x19bdcbf3, 0x829d753a, 0x1a82a026, 0x82c67f14, 
00470   0x1b4732ef, 0x82f0bde8, 
00471   0x1c0b826a, 0x831c314e, 0x1ccf8cb3, 0x8348d8dc, 0x1d934fe5, 0x8376b422, 
00472   0x1e56ca1e, 0x83a5c2b0, 
00473   0x1f19f97b, 0x83d60412, 0x1fdcdc1b, 0x840777d0, 0x209f701c, 0x843a1d70, 
00474   0x2161b3a0, 0x846df477, 
00475   0x2223a4c5, 0x84a2fc62, 0x22e541af, 0x84d934b1, 0x23a6887f, 0x85109cdd, 
00476   0x24677758, 0x8549345c, 
00477   0x25280c5e, 0x8582faa5, 0x25e845b6, 0x85bdef28, 0x26a82186, 0x85fa1153, 
00478   0x27679df4, 0x86376092, 
00479   0x2826b928, 0x8675dc4f, 0x28e5714b, 0x86b583ee, 0x29a3c485, 0x86f656d3, 
00480   0x2a61b101, 0x8738545e, 
00481   0x2b1f34eb, 0x877b7bec, 0x2bdc4e6f, 0x87bfccd7, 0x2c98fbba, 0x88054677, 
00482   0x2d553afc, 0x884be821, 
00483   0x2e110a62, 0x8893b125, 0x2ecc681e, 0x88dca0d3, 0x2f875262, 0x8926b677, 
00484   0x3041c761, 0x8971f15a, 
00485   0x30fbc54d, 0x89be50c3, 0x31b54a5e, 0x8a0bd3f5, 0x326e54c7, 0x8a5a7a31, 
00486   0x3326e2c3, 0x8aaa42b4, 
00487   0x33def287, 0x8afb2cbb, 0x34968250, 0x8b4d377c, 0x354d9057, 0x8ba0622f, 
00488   0x36041ad9, 0x8bf4ac05, 
00489   0x36ba2014, 0x8c4a142f, 0x376f9e46, 0x8ca099da, 0x382493b0, 0x8cf83c30, 
00490   0x38d8fe93, 0x8d50fa59, 
00491   0x398cdd32, 0x8daad37b, 0x3a402dd2, 0x8e05c6b7, 0x3af2eeb7, 0x8e61d32e, 
00492   0x3ba51e29, 0x8ebef7fb, 
00493   0x3c56ba70, 0x8f1d343a, 0x3d07c1d6, 0x8f7c8701, 0x3db832a6, 0x8fdcef66, 
00494   0x3e680b2c, 0x903e6c7b, 
00495   0x3f1749b8, 0x90a0fd4e, 0x3fc5ec98, 0x9104a0ee, 0x4073f21d, 0x91695663, 
00496   0x4121589b, 0x91cf1cb6, 
00497   0x41ce1e65, 0x9235f2ec, 0x427a41d0, 0x929dd806, 0x4325c135, 0x9306cb04, 
00498   0x43d09aed, 0x9370cae4, 
00499   0x447acd50, 0x93dbd6a0, 0x452456bd, 0x9447ed2f, 0x45cd358f, 0x94b50d87, 
00500   0x46756828, 0x9523369c, 
00501   0x471cece7, 0x9592675c, 0x47c3c22f, 0x96029eb6, 0x4869e665, 0x9673db94, 
00502   0x490f57ee, 0x96e61ce0, 
00503   0x49b41533, 0x9759617f, 0x4a581c9e, 0x97cda855, 0x4afb6c98, 0x9842f043, 
00504   0x4b9e0390, 0x98b93828, 
00505   0x4c3fdff4, 0x99307ee0, 0x4ce10034, 0x99a8c345, 0x4d8162c4, 0x9a22042d, 
00506   0x4e210617, 0x9a9c406e, 
00507   0x4ebfe8a5, 0x9b1776da, 0x4f5e08e3, 0x9b93a641, 0x4ffb654d, 0x9c10cd70, 
00508   0x5097fc5e, 0x9c8eeb34, 
00509   0x5133cc94, 0x9d0dfe54, 0x51ced46e, 0x9d8e0597, 0x5269126e, 0x9e0effc1, 
00510   0x53028518, 0x9e90eb94, 
00511   0x539b2af0, 0x9f13c7d0, 0x5433027d, 0x9f979331, 0x54ca0a4b, 0xa01c4c73, 
00512   0x556040e2, 0xa0a1f24d, 
00513   0x55f5a4d2, 0xa1288376, 0x568a34a9, 0xa1affea3, 0x571deefa, 0xa2386284, 
00514   0x57b0d256, 0xa2c1adc9, 
00515   0x5842dd54, 0xa34bdf20, 0x58d40e8c, 0xa3d6f534, 0x59646498, 0xa462eeac, 
00516   0x59f3de12, 0xa4efca31, 
00517   0x5a82799a, 0xa57d8666, 0x5b1035cf, 0xa60c21ee, 0x5b9d1154, 0xa69b9b68, 
00518   0x5c290acc, 0xa72bf174, 
00519   0x5cb420e0, 0xa7bd22ac, 0x5d3e5237, 0xa84f2daa, 0x5dc79d7c, 0xa8e21106, 
00520   0x5e50015d, 0xa975cb57, 
00521   0x5ed77c8a, 0xaa0a5b2e, 0x5f5e0db3, 0xaa9fbf1e, 0x5fe3b38d, 0xab35f5b5, 
00522   0x60686ccf, 0xabccfd83, 
00523   0x60ec3830, 0xac64d510, 0x616f146c, 0xacfd7ae8, 0x61f1003f, 0xad96ed92, 
00524   0x6271fa69, 0xae312b92, 
00525   0x62f201ac, 0xaecc336c, 0x637114cc, 0xaf6803a2, 0x63ef3290, 0xb0049ab3, 
00526   0x646c59bf, 0xb0a1f71d, 
00527   0x64e88926, 0xb140175b, 0x6563bf92, 0xb1def9e9, 0x65ddfbd3, 0xb27e9d3c, 
00528   0x66573cbb, 0xb31effcc, 
00529   0x66cf8120, 0xb3c0200c, 0x6746c7d8, 0xb461fc70, 0x67bd0fbd, 0xb5049368, 
00530   0x683257ab, 0xb5a7e362, 
00531   0x68a69e81, 0xb64beacd, 0x6919e320, 0xb6f0a812, 0x698c246c, 0xb796199b, 
00532   0x69fd614a, 0xb83c3dd1, 
00533   0x6a6d98a4, 0xb8e31319, 0x6adcc964, 0xb98a97d8, 0x6b4af279, 0xba32ca71, 
00534   0x6bb812d1, 0xbadba943, 
00535   0x6c242960, 0xbb8532b0, 0x6c8f351c, 0xbc2f6513, 0x6cf934fc, 0xbcda3ecb, 
00536   0x6d6227fa, 0xbd85be30, 
00537   0x6dca0d14, 0xbe31e19b, 0x6e30e34a, 0xbedea765, 0x6e96a99d, 0xbf8c0de3, 
00538   0x6efb5f12, 0xc03a1368, 
00539   0x6f5f02b2, 0xc0e8b648, 0x6fc19385, 0xc197f4d4, 0x7023109a, 0xc247cd5a, 
00540   0x708378ff, 0xc2f83e2a, 
00541   0x70e2cbc6, 0xc3a94590, 0x71410805, 0xc45ae1d7, 0x719e2cd2, 0xc50d1149, 
00542   0x71fa3949, 0xc5bfd22e, 
00543   0x72552c85, 0xc67322ce, 0x72af05a7, 0xc727016d, 0x7307c3d0, 0xc7db6c50, 
00544   0x735f6626, 0xc89061ba, 
00545   0x73b5ebd1, 0xc945dfec, 0x740b53fb, 0xc9fbe527, 0x745f9dd1, 0xcab26fa9, 
00546   0x74b2c884, 0xcb697db0, 
00547   0x7504d345, 0xcc210d79, 0x7555bd4c, 0xccd91d3d, 0x75a585cf, 0xcd91ab39, 
00548   0x75f42c0b, 0xce4ab5a2, 
00549   0x7641af3d, 0xcf043ab3, 0x768e0ea6, 0xcfbe389f, 0x76d94989, 0xd078ad9e, 
00550   0x77235f2d, 0xd13397e2, 
00551   0x776c4edb, 0xd1eef59e, 0x77b417df, 0xd2aac504, 0x77fab989, 0xd3670446, 
00552   0x78403329, 0xd423b191, 
00553   0x78848414, 0xd4e0cb15, 0x78c7aba2, 0xd59e4eff, 0x7909a92d, 0xd65c3b7b, 
00554   0x794a7c12, 0xd71a8eb5, 
00555   0x798a23b1, 0xd7d946d8, 0x79c89f6e, 0xd898620c, 0x7a05eead, 0xd957de7a, 
00556   0x7a4210d8, 0xda17ba4a, 
00557   0x7a7d055b, 0xdad7f3a2, 0x7ab6cba4, 0xdb9888a8, 0x7aef6323, 0xdc597781, 
00558   0x7b26cb4f, 0xdd1abe51, 
00559   0x7b5d039e, 0xdddc5b3b, 0x7b920b89, 0xde9e4c60, 0x7bc5e290, 0xdf608fe4, 
00560   0x7bf88830, 0xe02323e5, 
00561   0x7c29fbee, 0xe0e60685, 0x7c5a3d50, 0xe1a935e2, 0x7c894bde, 0xe26cb01b, 
00562   0x7cb72724, 0xe330734d, 
00563   0x7ce3ceb2, 0xe3f47d96, 0x7d0f4218, 0xe4b8cd11, 0x7d3980ec, 0xe57d5fda, 
00564   0x7d628ac6, 0xe642340d, 
00565   0x7d8a5f40, 0xe70747c4, 0x7db0fdf8, 0xe7cc9917, 0x7dd6668f, 0xe8922622, 
00566   0x7dfa98a8, 0xe957ecfb, 
00567   0x7e1d93ea, 0xea1debbb, 0x7e3f57ff, 0xeae4207a, 0x7e5fe493, 0xebaa894f, 
00568   0x7e7f3957, 0xec71244f, 
00569   0x7e9d55fc, 0xed37ef91, 0x7eba3a39, 0xedfee92b, 0x7ed5e5c6, 0xeec60f31, 
00570   0x7ef05860, 0xef8d5fb8, 
00571   0x7f0991c4, 0xf054d8d5, 0x7f2191b4, 0xf11c789a, 0x7f3857f6, 0xf1e43d1c, 
00572   0x7f4de451, 0xf2ac246e, 
00573   0x7f62368f, 0xf3742ca2, 0x7f754e80, 0xf43c53cb, 0x7f872bf3, 0xf50497fb, 
00574   0x7f97cebd, 0xf5ccf743, 
00575   0x7fa736b4, 0xf6956fb7, 0x7fb563b3, 0xf75dff66, 0x7fc25596, 0xf826a462, 
00576   0x7fce0c3e, 0xf8ef5cbb, 
00577   0x7fd8878e, 0xf9b82684, 0x7fe1c76b, 0xfa80ffcb, 0x7fe9cbc0, 0xfb49e6a3, 
00578   0x7ff09478, 0xfc12d91a, 
00579   0x7ff62182, 0xfcdbd541, 0x7ffa72d1, 0xfda4d929, 0x7ffd885a, 0xfe6de2e0, 
00580   0x7fff6216, 0xff36f078 
00581 }; 
00582  
00583 /**  
00584 *  
00585 * @brief  Initialization function for the Q31 CFFT/CIFFT. 
00586 * @param[in,out] *S             points to an instance of the Q31 CFFT/CIFFT structure. 
00587 * @param[in]     fftLen         length of the FFT. 
00588 * @param[in]     ifftFlag       flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. 
00589 * @param[in]     bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. 
00590 * @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. 
00591 *  
00592 * \par Description: 
00593 * \par  
00594 * The parameter <code>ifftFlag</code> controls whether a forward or inverse transform is computed.  
00595 * Set(=1) ifftFlag for calculation of CIFFT otherwise  CFFT is calculated 
00596 * \par  
00597 * The parameter <code>bitReverseFlag</code> controls whether output is in normal order or bit reversed order.  
00598 * Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order.  
00599 * \par  
00600 * The parameter <code>fftLen</code> Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024.  
00601 * \par  
00602 * This Function also initializes Twiddle factor table pointer and Bit reversal table pointer.  
00603 */ 
00604  
00605 arm_status arm_cfft_radix4_init_q31( 
00606   arm_cfft_radix4_instance_q31 * S, 
00607   uint16_t fftLen, 
00608   uint8_t ifftFlag, 
00609   uint8_t bitReverseFlag) 
00610 { 
00611   /*  Initialise the default arm status */ 
00612   arm_status status = ARM_MATH_SUCCESS; 
00613   /*  Initialise the FFT length */ 
00614   S->fftLen = fftLen; 
00615   /*  Initialise the Twiddle coefficient pointer */ 
00616   S->pTwiddle = (q31_t *) twiddleCoefQ31 ; 
00617   /*  Initialise the Flag for selection of CFFT or CIFFT */ 
00618   S->ifftFlag = ifftFlag; 
00619   /*  Initialise the Flag for calculation Bit reversal or not */ 
00620   S->bitReverseFlag = bitReverseFlag; 
00621  
00622   /*  Initializations of Instance structure depending on the FFT length */ 
00623   switch (S->fftLen) 
00624   { 
00625     /*  Initializations of structure parameters for 1024 point FFT */ 
00626   case 1024u: 
00627     /*  Initialise the twiddle coef modifier value */ 
00628     S->twidCoefModifier = 1u; 
00629     /*  Initialise the bit reversal table modifier */ 
00630     S->bitRevFactor = 1u; 
00631     /*  Initialise the bit reversal table pointer */ 
00632     S->pBitRevTable = (uint16_t*)armBitRevTable ; 
00633     break; 
00634  
00635   case 256u: 
00636     /*  Initializations of structure parameters for 256 point FFT */ 
00637     S->twidCoefModifier = 4u; 
00638     S->bitRevFactor = 4u; 
00639     S->pBitRevTable = (uint16_t*)&armBitRevTable [3]; 
00640     break; 
00641  
00642   case 64u: 
00643     /*  Initializations of structure parameters for 64 point FFT */ 
00644     S->twidCoefModifier = 16u; 
00645     S->bitRevFactor = 16u; 
00646     S->pBitRevTable = (uint16_t*)&armBitRevTable [15]; 
00647     break; 
00648  
00649   case 16u: 
00650     /*  Initializations of structure parameters for 16 point FFT */ 
00651     S->twidCoefModifier = 64u; 
00652     S->bitRevFactor = 64u; 
00653     S->pBitRevTable = (uint16_t*)&armBitRevTable [63]; 
00654     break; 
00655  
00656   default: 
00657     /*  Reporting argument error if fftSize is not valid value */ 
00658     status = ARM_MATH_ARGUMENT_ERROR; 
00659     break; 
00660   } 
00661  
00662   return (status); 
00663 } 
00664  
00665 /**  
00666  * @} end of CFFT_CIFFT group  
00667  */