diff --git a/src/mdct.c b/src/mdct.c index 41a4fa1..f598221 100644 --- a/src/mdct.c +++ b/src/mdct.c @@ -267,12 +267,11 @@ LC3_HOT static void mdct_pre_fft(const struct lc3_mdct_rot_def *def, * Post-rotate FFT N/4 points coefficients, resulting MDCT N points * def Size and twiddles factors * x, y Input and output coefficients - * scale Scale on output coefficients * * `x` and y` can be the same buffer */ LC3_HOT static void mdct_post_fft(const struct lc3_mdct_rot_def *def, - const struct lc3_complex *x, float *y, float scale) + const struct lc3_complex *x, float *y) { int n4 = def->n4, n8 = n4 >> 1; @@ -283,11 +282,11 @@ LC3_HOT static void mdct_post_fft(const struct lc3_mdct_rot_def *def, for ( ; y1 > y; x0++, x1--, w0++, w1--) { - float u0 = (x0->im * w0->im + x0->re * w0->re) * scale; - float u1 = (x1->re * w1->im - x1->im * w1->re) * scale; + float u0 = x0->im * w0->im + x0->re * w0->re; + float u1 = x1->re * w1->im - x1->im * w1->re; - float v0 = (x0->re * w0->im - x0->im * w0->re) * scale; - float v1 = (x1->im * w1->im + x1->re * w1->re) * scale; + float v0 = x0->re * w0->im - x0->im * w0->re; + float v1 = x1->im * w1->im + x1->re * w1->re; *(y0++) = u0; *(y0++) = u1; *(--y1) = v0; *(--y1) = v1; @@ -330,14 +329,13 @@ LC3_HOT static void imdct_pre_fft(const struct lc3_mdct_rot_def *def, * Post-rotate FFT N/4 points coefficients, resulting IMDCT N points * def Size and twiddles factors * x, y Input and output coefficients - * scale Scale on output coefficients * * `x` and y` can be the same buffer * The real and imaginary parts of `x` are swapped, * to operate on FFT instead of IFFT */ LC3_HOT static void imdct_post_fft(const struct lc3_mdct_rot_def *def, - const struct lc3_complex *x, float *y, float scale) + const struct lc3_complex *x, float *y) { int n4 = def->n4; @@ -350,11 +348,11 @@ LC3_HOT static void imdct_post_fft(const struct lc3_mdct_rot_def *def, struct lc3_complex uz = *(x0++), vz = *(--x1); struct lc3_complex uw = *(w0++), vw = *(--w1); - *(y0++) = (uz.re * uw.im - uz.im * uw.re) * scale; - *(--y1) = (uz.re * uw.re + uz.im * uw.im) * scale; + *(y0++) = uz.re * uw.im - uz.im * uw.re; + *(--y1) = uz.re * uw.re + uz.im * uw.im; - *(--y1) = (vz.re * vw.im - vz.im * vw.re) * scale; - *(y0++) = (vz.re * vw.re + vz.im * vw.im) * scale; + *(--y1) = vz.re * vw.im - vz.im * vw.re; + *(y0++) = vz.re * vw.re + vz.im * vw.im; } } @@ -409,6 +407,19 @@ LC3_HOT static void imdct_window(enum lc3_dt dt, enum lc3_srate sr, } } +/** + * Rescale samples + * x, n Input and count of samples, scaled as output + * scale Scale factor + */ +LC3_HOT static void rescale(float *x, int n, float f) +{ + for (int i = 0; i < (n >> 2); i++) { + *(x++) *= f; *(x++) *= f; + *(x++) *= f; *(x++) *= f; + } +} + /** * Forward MDCT transformation */ @@ -416,7 +427,7 @@ void lc3_mdct_forward(enum lc3_dt dt, enum lc3_srate sr, enum lc3_srate sr_dst, const float *x, float *d, float *y) { const struct lc3_mdct_rot_def *rot = lc3_mdct_rot[dt][sr]; - int nf = LC3_NS(dt, sr_dst); + int ns_dst = LC3_NS(dt, sr_dst); int ns = LC3_NS(dt, sr); struct lc3_complex buffer[LC3_MAX_NS / 2]; @@ -427,7 +438,10 @@ void lc3_mdct_forward(enum lc3_dt dt, enum lc3_srate sr, mdct_pre_fft(rot, u.f, u.z); u.z = fft(u.z, ns/2, u.z, z); - mdct_post_fft(rot, u.z, y, sqrtf( (2.f*nf) / (ns*ns) )); + mdct_post_fft(rot, u.z, y); + + if (ns != ns_dst) + rescale(y, ns_dst, sqrtf((float)ns_dst / ns)); } /** @@ -437,7 +451,7 @@ void lc3_mdct_inverse(enum lc3_dt dt, enum lc3_srate sr, enum lc3_srate sr_src, const float *x, float *d, float *y) { const struct lc3_mdct_rot_def *rot = lc3_mdct_rot[dt][sr]; - int nf = LC3_NS(dt, sr_src); + int ns_src = LC3_NS(dt, sr_src); int ns = LC3_NS(dt, sr); struct lc3_complex buffer[LC3_MAX_NS / 2]; @@ -446,7 +460,10 @@ void lc3_mdct_inverse(enum lc3_dt dt, enum lc3_srate sr, imdct_pre_fft(rot, x, z); z = fft(z, ns/2, z, u.z); - imdct_post_fft(rot, z, u.f, sqrtf(2.f / nf)); + imdct_post_fft(rot, z, u.f); + + if (ns != ns_src) + rescale(u.f, ns, sqrtf((float)ns / ns_src)); imdct_window(dt, sr, u.f, d, y); } diff --git a/src/tables.c b/src/tables.c index aef6fc1..c498b5e 100644 --- a/src/tables.c +++ b/src/tables.c @@ -435,551 +435,551 @@ const struct lc3_fft_bf2_twiddles *lc3_fft_twiddles_bf2[][3] = { * MDCT Rotation twiddles * * 2Pi (n + 1/8) / N - * W[n] = e , n = [0..N/4-1] + * W[n] = e * sqrt( sqrt( 4/N ) ), n = [0..N/4-1] */ static const struct lc3_mdct_rot_def mdct_rot_120 = { .n4 = 120/4, .w = (const struct lc3_complex []){ - { 9.9997858e-01, 6.5449380e-03 }, { 9.9826561e-01, 5.8870804e-02 }, - { 9.9381646e-01, 1.1103531e-01 }, { 9.8664333e-01, 1.6289547e-01 }, - { 9.7676588e-01, 2.1430915e-01 }, { 9.6421118e-01, 2.6513543e-01 }, - { 9.4901365e-01, 3.1523498e-01 }, { 9.3121493e-01, 3.6447050e-01 }, - { 9.1086382e-01, 4.1270703e-01 }, { 8.8801610e-01, 4.5981236e-01 }, - { 8.6273439e-01, 5.0565737e-01 }, { 8.3508798e-01, 5.5011642e-01 }, - { 8.0515265e-01, 5.9306763e-01 }, { 7.7301045e-01, 6.3439328e-01 }, - { 7.3874949e-01, 6.7398011e-01 }, { 7.0246367e-01, 7.1171961e-01 }, - { 6.6425244e-01, 7.4750833e-01 }, { 6.2422054e-01, 7.8124818e-01 }, - { 5.8247770e-01, 8.1284668e-01 }, { 5.3913832e-01, 8.4221723e-01 }, - { 4.9432121e-01, 8.6927932e-01 }, { 4.4814919e-01, 8.9395878e-01 }, - { 4.0074883e-01, 9.1618796e-01 }, { 3.5225005e-01, 9.3590593e-01 }, - { 3.0278577e-01, 9.5305864e-01 }, { 2.5249158e-01, 9.6759909e-01 }, - { 2.0150532e-01, 9.7948742e-01 }, { 1.4996676e-01, 9.8869104e-01 }, - { 9.8017140e-02, 9.9518473e-01 }, { 4.5798867e-02, 9.9895068e-01 }, + { 4.2727785e-01, 2.7965670e-03 }, { 4.2654592e-01, 2.5154729e-02 }, + { 4.2464486e-01, 4.7443945e-02 }, { 4.2157988e-01, 6.9603119e-02 }, + { 4.1735937e-01, 9.1571516e-02 }, { 4.1199491e-01, 1.1328892e-01 }, + { 4.0550120e-01, 1.3469581e-01 }, { 3.9789604e-01, 1.5573351e-01 }, + { 3.8920028e-01, 1.7634435e-01 }, { 3.7943774e-01, 1.9647185e-01 }, + { 3.6863519e-01, 2.1606083e-01 }, { 3.5682224e-01, 2.3505760e-01 }, + { 3.4403126e-01, 2.5341009e-01 }, { 3.3029732e-01, 2.7106801e-01 }, + { 3.1565806e-01, 2.8798294e-01 }, { 3.0015360e-01, 3.0410854e-01 }, + { 2.8382644e-01, 3.1940060e-01 }, { 2.6672133e-01, 3.3381720e-01 }, + { 2.4888515e-01, 3.4731883e-01 }, { 2.3036680e-01, 3.5986848e-01 }, + { 2.1121703e-01, 3.7143176e-01 }, { 1.9148833e-01, 3.8197697e-01 }, + { 1.7123477e-01, 3.9147521e-01 }, { 1.5051187e-01, 3.9990044e-01 }, + { 1.2937643e-01, 4.0722957e-01 }, { 1.0788637e-01, 4.1344252e-01 }, + { 8.6100606e-02, 4.1852225e-01 }, { 6.4078846e-02, 4.2245483e-01 }, + { 4.1881450e-02, 4.2522950e-01 }, { 1.9569261e-02, 4.2683865e-01 }, } }; static const struct lc3_mdct_rot_def mdct_rot_160 = { .n4 = 160/4, .w = (const struct lc3_complex []){ - { 9.9998795e-01, 4.9087188e-03 }, { 9.9902428e-01, 4.4164277e-02 }, - { 9.9652019e-01, 8.3351737e-02 }, { 9.9247953e-01, 1.2241068e-01 }, - { 9.8690855e-01, 1.6128086e-01 }, { 9.7981582e-01, 1.9990237e-01 }, - { 9.7121229e-01, 2.3821564e-01 }, { 9.6111122e-01, 2.7616160e-01 }, - { 9.4952818e-01, 3.1368174e-01 }, { 9.3648104e-01, 3.5071820e-01 }, - { 9.2198992e-01, 3.8721389e-01 }, { 9.0607715e-01, 4.2311251e-01 }, - { 8.8876728e-01, 4.5835873e-01 }, { 8.7008699e-01, 4.9289819e-01 }, - { 8.5006509e-01, 5.2667764e-01 }, { 8.2873246e-01, 5.5964499e-01 }, - { 8.0612197e-01, 5.9174941e-01 }, { 7.8226851e-01, 6.2294139e-01 }, - { 7.5720885e-01, 6.5317284e-01 }, { 7.3098162e-01, 6.8239715e-01 }, - { 7.0362727e-01, 7.1056925e-01 }, { 6.7518798e-01, 7.3764570e-01 }, - { 6.4570760e-01, 7.6358476e-01 }, { 6.1523159e-01, 7.8834643e-01 }, - { 5.8380693e-01, 8.1189252e-01 }, { 5.5148209e-01, 8.3418673e-01 }, - { 5.1830690e-01, 8.5519469e-01 }, { 4.8433252e-01, 8.7488400e-01 }, - { 4.4961133e-01, 8.9322430e-01 }, { 4.1419687e-01, 9.1018732e-01 }, - { 3.7814376e-01, 9.2574689e-01 }, { 3.4150757e-01, 9.3987902e-01 }, - { 3.0434480e-01, 9.5256194e-01 }, { 2.6671276e-01, 9.6377607e-01 }, - { 2.2866946e-01, 9.7350412e-01 }, { 1.9027357e-01, 9.8173111e-01 }, - { 1.5158430e-01, 9.8844433e-01 }, { 1.1266129e-01, 9.9363345e-01 }, - { 7.3564564e-02, 9.9729046e-01 }, { 3.4354408e-02, 9.9940971e-01 }, + { 3.9763057e-01, 1.9518802e-03 }, { 3.9724738e-01, 1.7561278e-02 }, + { 3.9625167e-01, 3.3143598e-02 }, { 3.9464496e-01, 4.8674813e-02 }, + { 3.9242974e-01, 6.4130975e-02 }, { 3.8960942e-01, 7.9488252e-02 }, + { 3.8618835e-01, 9.4722964e-02 }, { 3.8217181e-01, 1.0981162e-01 }, + { 3.7756598e-01, 1.2473095e-01 }, { 3.7237798e-01, 1.3945796e-01 }, + { 3.6661580e-01, 1.5396993e-01 }, { 3.6028832e-01, 1.6824450e-01 }, + { 3.5340530e-01, 1.8225964e-01 }, { 3.4597736e-01, 1.9599375e-01 }, + { 3.3801594e-01, 2.0942566e-01 }, { 3.2953333e-01, 2.2253464e-01 }, + { 3.2054261e-01, 2.3530049e-01 }, { 3.1105762e-01, 2.4770353e-01 }, + { 3.0109302e-01, 2.5972462e-01 }, { 2.9066414e-01, 2.7134524e-01 }, + { 2.7978709e-01, 2.8254746e-01 }, { 2.6847862e-01, 2.9331402e-01 }, + { 2.5675618e-01, 3.0362831e-01 }, { 2.4463784e-01, 3.1347442e-01 }, + { 2.3214228e-01, 3.2283718e-01 }, { 2.1928878e-01, 3.3170215e-01 }, + { 2.0609715e-01, 3.4005565e-01 }, { 1.9258774e-01, 3.4788482e-01 }, + { 1.7878136e-01, 3.5517757e-01 }, { 1.6469932e-01, 3.6192266e-01 }, + { 1.5036333e-01, 3.6810970e-01 }, { 1.3579549e-01, 3.7372914e-01 }, + { 1.2101826e-01, 3.7877231e-01 }, { 1.0605442e-01, 3.8323145e-01 }, + { 9.0927064e-02, 3.8709967e-01 }, { 7.5659501e-02, 3.9037101e-01 }, + { 6.0275277e-02, 3.9304042e-01 }, { 4.4798112e-02, 3.9510380e-01 }, + { 2.9251872e-02, 3.9655795e-01 }, { 1.3660528e-02, 3.9740065e-01 }, } }; static const struct lc3_mdct_rot_def mdct_rot_240 = { .n4 = 240/4, .w = (const struct lc3_complex []){ - { 9.9999465e-01, 3.2724865e-03 }, { 9.9956631e-01, 2.9448173e-02 }, - { 9.9845292e-01, 5.5603678e-02 }, { 9.9665524e-01, 8.1721074e-02 }, - { 9.9417450e-01, 1.0778246e-01 }, { 9.9101241e-01, 1.3376998e-01 }, - { 9.8717112e-01, 1.5966582e-01 }, { 9.8265328e-01, 1.8545224e-01 }, - { 9.7746197e-01, 2.1111155e-01 }, { 9.7160077e-01, 2.3662618e-01 }, - { 9.6507367e-01, 2.6197864e-01 }, { 9.5788516e-01, 2.8715155e-01 }, - { 9.5004017e-01, 3.1212766e-01 }, { 9.4154407e-01, 3.3688985e-01 }, - { 9.3240267e-01, 3.6142116e-01 }, { 9.2262226e-01, 3.8570477e-01 }, - { 9.1220953e-01, 4.0972403e-01 }, { 9.0117161e-01, 4.3346249e-01 }, - { 8.8951608e-01, 4.5690388e-01 }, { 8.7725091e-01, 4.8003212e-01 }, - { 8.6438452e-01, 5.0283138e-01 }, { 8.5092573e-01, 5.2528602e-01 }, - { 8.3688375e-01, 5.4738066e-01 }, { 8.2226822e-01, 5.6910015e-01 }, - { 8.0708914e-01, 5.9042960e-01 }, { 7.9135693e-01, 6.1135441e-01 }, - { 7.7508236e-01, 6.3186022e-01 }, { 7.5827658e-01, 6.5193299e-01 }, - { 7.4095113e-01, 6.7155895e-01 }, { 7.2311786e-01, 6.9072467e-01 }, - { 7.0478900e-01, 7.0941699e-01 }, { 6.8597711e-01, 7.2762312e-01 }, - { 6.6669509e-01, 7.4533057e-01 }, { 6.4695615e-01, 7.6252720e-01 }, - { 6.2677382e-01, 7.7920124e-01 }, { 6.0616193e-01, 7.9534126e-01 }, - { 5.8513461e-01, 8.1093618e-01 }, { 5.6370626e-01, 8.2597533e-01 }, - { 5.4189158e-01, 8.4044840e-01 }, { 5.1970551e-01, 8.5434547e-01 }, - { 4.9716327e-01, 8.6765701e-01 }, { 4.7428029e-01, 8.8037390e-01 }, - { 4.5107226e-01, 8.9248743e-01 }, { 4.2755509e-01, 9.0398929e-01 }, - { 4.0374490e-01, 9.1487161e-01 }, { 3.7965800e-01, 9.2512691e-01 }, - { 3.5531090e-01, 9.3474818e-01 }, { 3.3072029e-01, 9.4372882e-01 }, - { 3.0590302e-01, 9.5206268e-01 }, { 2.8087610e-01, 9.5974404e-01 }, - { 2.5565668e-01, 9.6676764e-01 }, { 2.3026205e-01, 9.7312866e-01 }, - { 2.0470960e-01, 9.7882275e-01 }, { 1.7901686e-01, 9.8384601e-01 }, - { 1.5320143e-01, 9.8819498e-01 }, { 1.2728100e-01, 9.9186670e-01 }, - { 1.0127334e-01, 9.9485864e-01 }, { 7.5196277e-02, 9.9716875e-01 }, - { 4.9067674e-02, 9.9879546e-01 }, { 2.2905443e-02, 9.9973764e-01 }, + { 3.5930219e-01, 1.1758179e-03 }, { 3.5914828e-01, 1.0580850e-02 }, + { 3.5874824e-01, 1.9978630e-02 }, { 3.5810233e-01, 2.9362718e-02 }, + { 3.5721099e-01, 3.8726682e-02 }, { 3.5607483e-01, 4.8064105e-02 }, + { 3.5469464e-01, 5.7368587e-02 }, { 3.5307136e-01, 6.6633752e-02 }, + { 3.5120611e-01, 7.5853249e-02 }, { 3.4910015e-01, 8.5020760e-02 }, + { 3.4675494e-01, 9.4130002e-02 }, { 3.4417208e-01, 1.0317473e-01 }, + { 3.4135334e-01, 1.1214875e-01 }, { 3.3830065e-01, 1.2104591e-01 }, + { 3.3501611e-01, 1.2986011e-01 }, { 3.3150197e-01, 1.3858531e-01 }, + { 3.2776063e-01, 1.4721553e-01 }, { 3.2379466e-01, 1.5574485e-01 }, + { 3.1960678e-01, 1.6416744e-01 }, { 3.1519986e-01, 1.7247752e-01 }, + { 3.1057691e-01, 1.8066938e-01 }, { 3.0574111e-01, 1.8873743e-01 }, + { 3.0069577e-01, 1.9667612e-01 }, { 2.9544435e-01, 2.0448002e-01 }, + { 2.8999045e-01, 2.1214378e-01 }, { 2.8433780e-01, 2.1966215e-01 }, + { 2.7849028e-01, 2.2702998e-01 }, { 2.7245189e-01, 2.3424220e-01 }, + { 2.6622679e-01, 2.4129389e-01 }, { 2.5981922e-01, 2.4818021e-01 }, + { 2.5323358e-01, 2.5489644e-01 }, { 2.4647440e-01, 2.6143798e-01 }, + { 2.3954629e-01, 2.6780034e-01 }, { 2.3245401e-01, 2.7397916e-01 }, + { 2.2520241e-01, 2.7997021e-01 }, { 2.1779647e-01, 2.8576938e-01 }, + { 2.1024127e-01, 2.9137270e-01 }, { 2.0254198e-01, 2.9677633e-01 }, + { 1.9470387e-01, 3.0197657e-01 }, { 1.8673233e-01, 3.0696984e-01 }, + { 1.7863281e-01, 3.1175273e-01 }, { 1.7041086e-01, 3.1632196e-01 }, + { 1.6207212e-01, 3.2067440e-01 }, { 1.5362230e-01, 3.2480707e-01 }, + { 1.4506720e-01, 3.2871713e-01 }, { 1.3641268e-01, 3.3240190e-01 }, + { 1.2766467e-01, 3.3585887e-01 }, { 1.1882916e-01, 3.3908565e-01 }, + { 1.0991221e-01, 3.4208003e-01 }, { 1.0091994e-01, 3.4483998e-01 }, + { 9.1858496e-02, 3.4736359e-01 }, { 8.2734100e-02, 3.4964913e-01 }, + { 7.3553002e-02, 3.5169504e-01 }, { 6.4321494e-02, 3.5349992e-01 }, + { 5.5045904e-02, 3.5506252e-01 }, { 4.5732588e-02, 3.5638178e-01 }, + { 3.6387929e-02, 3.5745680e-01 }, { 2.7018332e-02, 3.5828683e-01 }, + { 1.7630217e-02, 3.5887131e-01 }, { 8.2300199e-03, 3.5920984e-01 }, } }; static const struct lc3_mdct_rot_def mdct_rot_320 = { .n4 = 320/4, .w = (const struct lc3_complex []){ - { 9.9999699e-01, 2.4543668e-03 }, { 9.9975604e-01, 2.2087527e-02 }, - { 9.9912967e-01, 4.1712172e-02 }, { 9.9811811e-01, 6.1320736e-02 }, - { 9.9672176e-01, 8.0905660e-02 }, { 9.9494116e-01, 1.0045939e-01 }, - { 9.9277699e-01, 1.1997440e-01 }, { 9.9023008e-01, 1.3944315e-01 }, - { 9.8730142e-01, 1.5885814e-01 }, { 9.8399213e-01, 1.7821189e-01 }, - { 9.8030350e-01, 1.9749694e-01 }, { 9.7623695e-01, 2.1670585e-01 }, - { 9.7179403e-01, 2.3583121e-01 }, { 9.6697647e-01, 2.5486566e-01 }, - { 9.6178612e-01, 2.7380185e-01 }, { 9.5622499e-01, 2.9263249e-01 }, - { 9.5029521e-01, 3.1135031e-01 }, { 9.4399908e-01, 3.2994809e-01 }, - { 9.3733901e-01, 3.4841868e-01 }, { 9.3031759e-01, 3.6675495e-01 }, - { 9.2293750e-01, 3.8494982e-01 }, { 9.1520161e-01, 4.0299629e-01 }, - { 9.0711289e-01, 4.2088739e-01 }, { 8.9867447e-01, 4.3861624e-01 }, - { 8.8988958e-01, 4.5617599e-01 }, { 8.8076163e-01, 4.7355988e-01 }, - { 8.7129412e-01, 4.9076120e-01 }, { 8.6149072e-01, 5.0777332e-01 }, - { 8.5135519e-01, 5.2458968e-01 }, { 8.4089145e-01, 5.4120381e-01 }, - { 8.3010353e-01, 5.5760929e-01 }, { 8.1899560e-01, 5.7379980e-01 }, - { 8.0757192e-01, 5.8976911e-01 }, { 7.9583690e-01, 6.0551104e-01 }, - { 7.8379508e-01, 6.2101954e-01 }, { 7.7145109e-01, 6.3628862e-01 }, - { 7.5880969e-01, 6.5131241e-01 }, { 7.4587576e-01, 6.6608510e-01 }, - { 7.3265427e-01, 6.8060100e-01 }, { 7.1915033e-01, 6.9485451e-01 }, - { 7.0536915e-01, 7.0884015e-01 }, { 6.9131604e-01, 7.2255252e-01 }, - { 6.7699640e-01, 7.3598632e-01 }, { 6.6241578e-01, 7.4913639e-01 }, - { 6.4757978e-01, 7.6199766e-01 }, { 6.3249412e-01, 7.7456516e-01 }, - { 6.1716463e-01, 7.8683405e-01 }, { 6.0159721e-01, 7.9879960e-01 }, - { 5.8579786e-01, 8.1045720e-01 }, { 5.6977267e-01, 8.2180235e-01 }, - { 5.5352783e-01, 8.3283068e-01 }, { 5.3706959e-01, 8.4353794e-01 }, - { 5.2040430e-01, 8.5392000e-01 }, { 5.0353838e-01, 8.6397286e-01 }, - { 4.8647834e-01, 8.7369263e-01 }, { 4.6923076e-01, 8.8307559e-01 }, - { 4.5180228e-01, 8.9211810e-01 }, { 4.3419961e-01, 9.0081668e-01 }, - { 4.1642956e-01, 9.0916798e-01 }, { 3.9849896e-01, 9.1716878e-01 }, - { 3.8041474e-01, 9.2481600e-01 }, { 3.6218386e-01, 9.3210667e-01 }, - { 3.4381335e-01, 9.3903801e-01 }, { 3.2531029e-01, 9.4560733e-01 }, - { 3.0668182e-01, 9.5181209e-01 }, { 2.8793512e-01, 9.5764992e-01 }, - { 2.6907741e-01, 9.6311855e-01 }, { 2.5011597e-01, 9.6821588e-01 }, - { 2.3105811e-01, 9.7293995e-01 }, { 2.1191117e-01, 9.7728893e-01 }, - { 1.9268253e-01, 9.8126115e-01 }, { 1.7337961e-01, 9.8485507e-01 }, - { 1.5400984e-01, 9.8806931e-01 }, { 1.3458071e-01, 9.9090264e-01 }, - { 1.1509969e-01, 9.9335395e-01 }, { 9.5574297e-02, 9.9542230e-01 }, - { 7.6012059e-02, 9.9710690e-01 }, { 5.6420516e-02, 9.9840709e-01 }, - { 3.6807223e-02, 9.9932238e-01 }, { 1.7179740e-02, 9.9985242e-01 }, + { 3.3436915e-01, 8.2066700e-04 }, { 3.3428858e-01, 7.3854098e-03 }, + { 3.3407914e-01, 1.3947305e-02 }, { 3.3374091e-01, 2.0503824e-02 }, + { 3.3327401e-01, 2.7052438e-02 }, { 3.3267863e-01, 3.3590623e-02 }, + { 3.3195499e-01, 4.0115858e-02 }, { 3.3110338e-01, 4.6625627e-02 }, + { 3.3012413e-01, 5.3117422e-02 }, { 3.2901760e-01, 5.9588738e-02 }, + { 3.2778423e-01, 6.6037082e-02 }, { 3.2642450e-01, 7.2459968e-02 }, + { 3.2493892e-01, 7.8854919e-02 }, { 3.2332807e-01, 8.5219469e-02 }, + { 3.2159257e-01, 9.1551166e-02 }, { 3.1973310e-01, 9.7847569e-02 }, + { 3.1775035e-01, 1.0410625e-01 }, { 3.1564512e-01, 1.1032479e-01 }, + { 3.1341819e-01, 1.1650081e-01 }, { 3.1107043e-01, 1.2263191e-01 }, + { 3.0860275e-01, 1.2871573e-01 }, { 3.0601610e-01, 1.3474993e-01 }, + { 3.0331148e-01, 1.4073218e-01 }, { 3.0048992e-01, 1.4666018e-01 }, + { 2.9755251e-01, 1.5253164e-01 }, { 2.9450040e-01, 1.5834429e-01 }, + { 2.9133475e-01, 1.6409590e-01 }, { 2.8805678e-01, 1.6978424e-01 }, + { 2.8466777e-01, 1.7540713e-01 }, { 2.8116900e-01, 1.8096240e-01 }, + { 2.7756185e-01, 1.8644790e-01 }, { 2.7384768e-01, 1.9186153e-01 }, + { 2.7002795e-01, 1.9720119e-01 }, { 2.6610411e-01, 2.0246482e-01 }, + { 2.6207768e-01, 2.0765040e-01 }, { 2.5795022e-01, 2.1275592e-01 }, + { 2.5372331e-01, 2.1777943e-01 }, { 2.4939859e-01, 2.2271898e-01 }, + { 2.4497772e-01, 2.2757266e-01 }, { 2.4046241e-01, 2.3233861e-01 }, + { 2.3585439e-01, 2.3701499e-01 }, { 2.3115545e-01, 2.4159999e-01 }, + { 2.2636739e-01, 2.4609186e-01 }, { 2.2149206e-01, 2.5048885e-01 }, + { 2.1653135e-01, 2.5478927e-01 }, { 2.1148716e-01, 2.5899147e-01 }, + { 2.0636143e-01, 2.6309382e-01 }, { 2.0115615e-01, 2.6709474e-01 }, + { 1.9587332e-01, 2.7099270e-01 }, { 1.9051498e-01, 2.7478618e-01 }, + { 1.8508318e-01, 2.7847372e-01 }, { 1.7958004e-01, 2.8205391e-01 }, + { 1.7400766e-01, 2.8552536e-01 }, { 1.6836821e-01, 2.8888674e-01 }, + { 1.6266384e-01, 2.9213674e-01 }, { 1.5689676e-01, 2.9527412e-01 }, + { 1.5106920e-01, 2.9829767e-01 }, { 1.4518339e-01, 3.0120621e-01 }, + { 1.3924162e-01, 3.0399864e-01 }, { 1.3324616e-01, 3.0667387e-01 }, + { 1.2719933e-01, 3.0923087e-01 }, { 1.2110347e-01, 3.1166865e-01 }, + { 1.1496092e-01, 3.1398628e-01 }, { 1.0877405e-01, 3.1618287e-01 }, + { 1.0254525e-01, 3.1825755e-01 }, { 9.6276910e-02, 3.2020955e-01 }, + { 8.9971456e-02, 3.2203810e-01 }, { 8.3631316e-02, 3.2374249e-01 }, + { 7.7258935e-02, 3.2532208e-01 }, { 7.0856769e-02, 3.2677625e-01 }, + { 6.4427286e-02, 3.2810444e-01 }, { 5.7972965e-02, 3.2930614e-01 }, + { 5.1496295e-02, 3.3038089e-01 }, { 4.4999772e-02, 3.3132827e-01 }, + { 3.8485901e-02, 3.3214791e-01 }, { 3.1957192e-02, 3.3283951e-01 }, + { 2.5416164e-02, 3.3340279e-01 }, { 1.8865337e-02, 3.3383753e-01 }, + { 1.2307237e-02, 3.3414358e-01 }, { 5.7443922e-03, 3.3432081e-01 }, } }; static const struct lc3_mdct_rot_def mdct_rot_360 = { .n4 = 360/4, .w = (const struct lc3_complex []){ - { 9.9999762e-01, 2.1816598e-03 }, { 9.9980724e-01, 1.9633692e-02 }, - { 9.9931231e-01, 3.7079744e-02 }, { 9.9851298e-01, 5.4514502e-02 }, - { 9.9740949e-01, 7.1932653e-02 }, { 9.9600218e-01, 8.9328893e-02 }, - { 9.9429148e-01, 1.0669792e-01 }, { 9.9227791e-01, 1.2403445e-01 }, - { 9.8996208e-01, 1.4133320e-01 }, { 9.8734470e-01, 1.5858889e-01 }, - { 9.8442657e-01, 1.7579628e-01 }, { 9.8120857e-01, 1.9295012e-01 }, - { 9.7769168e-01, 2.1004518e-01 }, { 9.7387698e-01, 2.2707626e-01 }, - { 9.6976563e-01, 2.4403818e-01 }, { 9.6535887e-01, 2.6092575e-01 }, - { 9.6065806e-01, 2.7773385e-01 }, { 9.5566462e-01, 2.9445734e-01 }, - { 9.5038008e-01, 3.1109114e-01 }, { 9.4480605e-01, 3.2763018e-01 }, - { 9.3894421e-01, 3.4406942e-01 }, { 9.3279637e-01, 3.6040385e-01 }, - { 9.2636438e-01, 3.7662850e-01 }, { 9.1965022e-01, 3.9273843e-01 }, - { 9.1265592e-01, 4.0872872e-01 }, { 9.0538362e-01, 4.2459451e-01 }, - { 8.9783553e-01, 4.4033097e-01 }, { 8.9001395e-01, 4.5593329e-01 }, - { 8.8192126e-01, 4.7139674e-01 }, { 8.7355994e-01, 4.8671659e-01 }, - { 8.6493251e-01, 5.0188818e-01 }, { 8.5604162e-01, 5.1690690e-01 }, - { 8.4688997e-01, 5.3176816e-01 }, { 8.3748035e-01, 5.4646743e-01 }, - { 8.2781563e-01, 5.6100025e-01 }, { 8.1789875e-01, 5.7536218e-01 }, - { 8.0773272e-01, 5.8954885e-01 }, { 7.9732065e-01, 6.0355594e-01 }, - { 7.8666571e-01, 6.1737918e-01 }, { 7.7577115e-01, 6.3101436e-01 }, - { 7.6464028e-01, 6.4445733e-01 }, { 7.5327649e-01, 6.5770399e-01 }, - { 7.4168324e-01, 6.7075030e-01 }, { 7.2986407e-01, 6.8359230e-01 }, - { 7.1782258e-01, 6.9622607e-01 }, { 7.0556243e-01, 7.0864776e-01 }, - { 6.9308736e-01, 7.2085360e-01 }, { 6.8040117e-01, 7.3283985e-01 }, - { 6.6750772e-01, 7.4460287e-01 }, { 6.5441095e-01, 7.5613908e-01 }, - { 6.4111483e-01, 7.6744496e-01 }, { 6.2762343e-01, 7.7851708e-01 }, - { 6.1394084e-01, 7.8935204e-01 }, { 6.0007124e-01, 7.9994657e-01 }, - { 5.8601885e-01, 8.1029742e-01 }, { 5.7178796e-01, 8.2040144e-01 }, - { 5.5738289e-01, 8.3025557e-01 }, { 5.4280804e-01, 8.3985679e-01 }, - { 5.2806785e-01, 8.4920218e-01 }, { 5.1316680e-01, 8.5828890e-01 }, - { 4.9810944e-01, 8.6711417e-01 }, { 4.8290034e-01, 8.7567532e-01 }, - { 4.6754415e-01, 8.8396972e-01 }, { 4.5204555e-01, 8.9199486e-01 }, - { 4.3640924e-01, 8.9974828e-01 }, { 4.2064000e-01, 9.0722764e-01 }, - { 4.0474263e-01, 9.1443064e-01 }, { 3.8872197e-01, 9.2135511e-01 }, - { 3.7258290e-01, 9.2799891e-01 }, { 3.5633034e-01, 9.3436004e-01 }, - { 3.3996924e-01, 9.4043656e-01 }, { 3.2350458e-01, 9.4622660e-01 }, - { 3.0694138e-01, 9.5172842e-01 }, { 2.9028468e-01, 9.5694034e-01 }, - { 2.7353955e-01, 9.6186076e-01 }, { 2.5671111e-01, 9.6648818e-01 }, - { 2.3980446e-01, 9.7082121e-01 }, { 2.2282477e-01, 9.7485851e-01 }, - { 2.0577721e-01, 9.7859887e-01 }, { 1.8866696e-01, 9.8204113e-01 }, - { 1.7149925e-01, 9.8518425e-01 }, { 1.5427929e-01, 9.8802728e-01 }, - { 1.3701234e-01, 9.9056934e-01 }, { 1.1970366e-01, 9.9280967e-01 }, - { 1.0235851e-01, 9.9474757e-01 }, { 8.4982177e-02, 9.9638247e-01 }, - { 6.7579962e-02, 9.9771386e-01 }, { 5.0157162e-02, 9.9874134e-01 }, - { 3.2719083e-02, 9.9946459e-01 }, { 1.5271037e-02, 9.9988339e-01 }, + { 3.2466714e-01, 7.0831495e-04 }, { 3.2460533e-01, 6.3744300e-03 }, + { 3.2444464e-01, 1.2038603e-02 }, { 3.2418513e-01, 1.7699110e-02 }, + { 3.2382686e-01, 2.3354225e-02 }, { 3.2336995e-01, 2.9002226e-02 }, + { 3.2281454e-01, 3.4641392e-02 }, { 3.2216080e-01, 4.0270007e-02 }, + { 3.2140893e-01, 4.5886355e-02 }, { 3.2055915e-01, 5.1488725e-02 }, + { 3.1961172e-01, 5.7075412e-02 }, { 3.1856694e-01, 6.2644713e-02 }, + { 3.1742512e-01, 6.8194931e-02 }, { 3.1618661e-01, 7.3724377e-02 }, + { 3.1485178e-01, 7.9231366e-02 }, { 3.1342105e-01, 8.4714220e-02 }, + { 3.1189485e-01, 9.0171269e-02 }, { 3.1027364e-01, 9.5600851e-02 }, + { 3.0855792e-01, 1.0100131e-01 }, { 3.0674821e-01, 1.0637101e-01 }, + { 3.0484506e-01, 1.1170830e-01 }, { 3.0284905e-01, 1.1701157e-01 }, + { 3.0076079e-01, 1.2227919e-01 }, { 2.9858092e-01, 1.2750957e-01 }, + { 2.9631010e-01, 1.3270110e-01 }, { 2.9394901e-01, 1.3785221e-01 }, + { 2.9149839e-01, 1.4296134e-01 }, { 2.8895897e-01, 1.4802691e-01 }, + { 2.8633154e-01, 1.5304740e-01 }, { 2.8361688e-01, 1.5802126e-01 }, + { 2.8081584e-01, 1.6294699e-01 }, { 2.7792925e-01, 1.6782308e-01 }, + { 2.7495800e-01, 1.7264806e-01 }, { 2.7190300e-01, 1.7742044e-01 }, + { 2.6876518e-01, 1.8213878e-01 }, { 2.6554548e-01, 1.8680164e-01 }, + { 2.6224490e-01, 1.9140760e-01 }, { 2.5886443e-01, 1.9595525e-01 }, + { 2.5540512e-01, 2.0044321e-01 }, { 2.5186800e-01, 2.0487012e-01 }, + { 2.4825416e-01, 2.0923462e-01 }, { 2.4456471e-01, 2.1353538e-01 }, + { 2.4080075e-01, 2.1777110e-01 }, { 2.3696345e-01, 2.2194049e-01 }, + { 2.3305396e-01, 2.2604227e-01 }, { 2.2907348e-01, 2.3007519e-01 }, + { 2.2502323e-01, 2.3403803e-01 }, { 2.2090443e-01, 2.3792959e-01 }, + { 2.1671834e-01, 2.4174866e-01 }, { 2.1246624e-01, 2.4549410e-01 }, + { 2.0814942e-01, 2.4916476e-01 }, { 2.0376919e-01, 2.5275952e-01 }, + { 1.9932689e-01, 2.5627728e-01 }, { 1.9482388e-01, 2.5971698e-01 }, + { 1.9026152e-01, 2.6307757e-01 }, { 1.8564121e-01, 2.6635803e-01 }, + { 1.8096434e-01, 2.6955734e-01 }, { 1.7623236e-01, 2.7267455e-01 }, + { 1.7144669e-01, 2.7570870e-01 }, { 1.6660880e-01, 2.7865887e-01 }, + { 1.6172015e-01, 2.8152415e-01 }, { 1.5678225e-01, 2.8430368e-01 }, + { 1.5179659e-01, 2.8699661e-01 }, { 1.4676469e-01, 2.8960211e-01 }, + { 1.4168808e-01, 2.9211940e-01 }, { 1.3656831e-01, 2.9454771e-01 }, + { 1.3140695e-01, 2.9688629e-01 }, { 1.2620555e-01, 2.9913444e-01 }, + { 1.2096571e-01, 3.0129147e-01 }, { 1.1568903e-01, 3.0335673e-01 }, + { 1.1037710e-01, 3.0532958e-01 }, { 1.0503156e-01, 3.0720942e-01 }, + { 9.9654017e-02, 3.0899568e-01 }, { 9.4246121e-02, 3.1068782e-01 }, + { 8.8809517e-02, 3.1228533e-01 }, { 8.3345860e-02, 3.1378770e-01 }, + { 7.7856816e-02, 3.1519450e-01 }, { 7.2344055e-02, 3.1650528e-01 }, + { 6.6809258e-02, 3.1771965e-01 }, { 6.1254110e-02, 3.1883725e-01 }, + { 5.5680304e-02, 3.1985772e-01 }, { 5.0089536e-02, 3.2078076e-01 }, + { 4.4483511e-02, 3.2160608e-01 }, { 3.8863936e-02, 3.2233345e-01 }, + { 3.3232523e-02, 3.2296262e-01 }, { 2.7590986e-02, 3.2349342e-01 }, + { 2.1941045e-02, 3.2392568e-01 }, { 1.6284421e-02, 3.2425927e-01 }, + { 1.0622836e-02, 3.2449408e-01 }, { 4.9580159e-03, 3.2463006e-01 }, } }; static const struct lc3_mdct_rot_def mdct_rot_480 = { .n4 = 480/4, .w = (const struct lc3_complex []){ - { 9.9999866e-01, 1.6362454e-03 }, { 9.9989157e-01, 1.4725683e-02 }, - { 9.9961315e-01, 2.7812598e-02 }, { 9.9916346e-01, 4.0894747e-02 }, - { 9.9854256e-01, 5.3969889e-02 }, { 9.9775057e-01, 6.7035784e-02 }, - { 9.9678762e-01, 8.0090192e-02 }, { 9.9565388e-01, 9.3130877e-02 }, - { 9.9434953e-01, 1.0615561e-01 }, { 9.9287481e-01, 1.1916214e-01 }, - { 9.9122996e-01, 1.3214826e-01 }, { 9.8941527e-01, 1.4511174e-01 }, - { 9.8743105e-01, 1.5805036e-01 }, { 9.8527764e-01, 1.7096189e-01 }, - { 9.8295541e-01, 1.8384413e-01 }, { 9.8046475e-01, 1.9669487e-01 }, - { 9.7780610e-01, 2.0951190e-01 }, { 9.7497990e-01, 2.2229304e-01 }, - { 9.7198664e-01, 2.3503609e-01 }, { 9.6882685e-01, 2.4773886e-01 }, - { 9.6550104e-01, 2.6039919e-01 }, { 9.6200980e-01, 2.7301490e-01 }, - { 9.5835373e-01, 2.8558383e-01 }, { 9.5453345e-01, 2.9810383e-01 }, - { 9.5054962e-01, 3.1057274e-01 }, { 9.4640291e-01, 3.2298845e-01 }, - { 9.4209404e-01, 3.3534881e-01 }, { 9.3762375e-01, 3.4765171e-01 }, - { 9.3299280e-01, 3.5989504e-01 }, { 9.2820199e-01, 3.7207670e-01 }, - { 9.2325213e-01, 3.8419461e-01 }, { 9.1814408e-01, 3.9624670e-01 }, - { 9.1287871e-01, 4.0823088e-01 }, { 9.0745693e-01, 4.2014512e-01 }, - { 9.0187965e-01, 4.3198737e-01 }, { 8.9614785e-01, 4.4375560e-01 }, - { 8.9026249e-01, 4.5544780e-01 }, { 8.8422459e-01, 4.6706195e-01 }, - { 8.7803519e-01, 4.7859608e-01 }, { 8.7169533e-01, 4.9004821e-01 }, - { 8.6520612e-01, 5.0141636e-01 }, { 8.5856866e-01, 5.1269860e-01 }, - { 8.5178409e-01, 5.2389299e-01 }, { 8.4485357e-01, 5.3499762e-01 }, - { 8.3777828e-01, 5.4601058e-01 }, { 8.3055945e-01, 5.5692998e-01 }, - { 8.2319831e-01, 5.6775395e-01 }, { 8.1569611e-01, 5.7848064e-01 }, - { 8.0805415e-01, 5.8910822e-01 }, { 8.0027373e-01, 5.9963485e-01 }, - { 7.9235620e-01, 6.1005873e-01 }, { 7.8430289e-01, 6.2037809e-01 }, - { 7.7611520e-01, 6.3059115e-01 }, { 7.6779452e-01, 6.4069616e-01 }, - { 7.5934229e-01, 6.5069139e-01 }, { 7.5075995e-01, 6.6057513e-01 }, - { 7.4204897e-01, 6.7034568e-01 }, { 7.3321084e-01, 6.8000137e-01 }, - { 7.2424708e-01, 6.8954054e-01 }, { 7.1515923e-01, 6.9896157e-01 }, - { 7.0594883e-01, 7.0826283e-01 }, { 6.9661748e-01, 7.1744274e-01 }, - { 6.8716676e-01, 7.2649972e-01 }, { 6.7759830e-01, 7.3543221e-01 }, - { 6.6791374e-01, 7.4423869e-01 }, { 6.5811474e-01, 7.5291765e-01 }, - { 6.4820297e-01, 7.6146760e-01 }, { 6.3818013e-01, 7.6988708e-01 }, - { 6.2804795e-01, 7.7817464e-01 }, { 6.1780815e-01, 7.8632887e-01 }, - { 6.0746249e-01, 7.9434836e-01 }, { 5.9701275e-01, 8.0223175e-01 }, - { 5.8646072e-01, 8.0997767e-01 }, { 5.7580819e-01, 8.1758481e-01 }, - { 5.6505701e-01, 8.2505187e-01 }, { 5.5420900e-01, 8.3237755e-01 }, - { 5.4326604e-01, 8.3956061e-01 }, { 5.3222998e-01, 8.4659981e-01 }, - { 5.2110274e-01, 8.5349396e-01 }, { 5.0988620e-01, 8.6024186e-01 }, - { 4.9858230e-01, 8.6684237e-01 }, { 4.8719297e-01, 8.7329434e-01 }, - { 4.7572016e-01, 8.7959669e-01 }, { 4.6416584e-01, 8.8574831e-01 }, - { 4.5253199e-01, 8.9174817e-01 }, { 4.4082059e-01, 8.9759523e-01 }, - { 4.2903367e-01, 9.0328850e-01 }, { 4.1717323e-01, 9.0882699e-01 }, - { 4.0524131e-01, 9.1420976e-01 }, { 3.9323996e-01, 9.1943588e-01 }, - { 3.8117123e-01, 9.2450446e-01 }, { 3.6903718e-01, 9.2941463e-01 }, - { 3.5683990e-01, 9.3416555e-01 }, { 3.4458148e-01, 9.3875641e-01 }, - { 3.3226402e-01, 9.4318642e-01 }, { 3.1988962e-01, 9.4745482e-01 }, - { 3.0746042e-01, 9.5156087e-01 }, { 2.9497853e-01, 9.5550388e-01 }, - { 2.8244610e-01, 9.5928317e-01 }, { 2.6986527e-01, 9.6289809e-01 }, - { 2.5723821e-01, 9.6634802e-01 }, { 2.4456706e-01, 9.6963238e-01 }, - { 2.3185402e-01, 9.7275059e-01 }, { 2.1910124e-01, 9.7570213e-01 }, - { 2.0631092e-01, 9.7848649e-01 }, { 1.9348526e-01, 9.8110318e-01 }, - { 1.8062644e-01, 9.8355177e-01 }, { 1.6773667e-01, 9.8583184e-01 }, - { 1.5481816e-01, 9.8794298e-01 }, { 1.4187312e-01, 9.8988485e-01 }, - { 1.2890377e-01, 9.9165711e-01 }, { 1.1591234e-01, 9.9325945e-01 }, - { 1.0290104e-01, 9.9469160e-01 }, { 8.9872115e-02, 9.9595331e-01 }, - { 7.6827789e-02, 9.9704438e-01 }, { 6.3770300e-02, 9.9796460e-01 }, - { 5.0701883e-02, 9.9871383e-01 }, { 3.7624779e-02, 9.9929194e-01 }, - { 2.4541229e-02, 9.9969882e-01 }, { 1.1453473e-02, 9.9993441e-01 }, + { 3.0213714e-01, 4.9437117e-04 }, { 3.0210478e-01, 4.4491817e-03 }, + { 3.0202066e-01, 8.4032299e-03 }, { 3.0188479e-01, 1.2355838e-02 }, + { 3.0169719e-01, 1.6306330e-02 }, { 3.0145790e-01, 2.0254027e-02 }, + { 3.0116696e-01, 2.4198254e-02 }, { 3.0082441e-01, 2.8138334e-02 }, + { 3.0043032e-01, 3.2073593e-02 }, { 2.9998475e-01, 3.6003357e-02 }, + { 2.9948778e-01, 3.9926952e-02 }, { 2.9893950e-01, 4.3843705e-02 }, + { 2.9833999e-01, 4.7752946e-02 }, { 2.9768936e-01, 5.1654004e-02 }, + { 2.9698773e-01, 5.5546213e-02 }, { 2.9623521e-01, 5.9428903e-02 }, + { 2.9543193e-01, 6.3301411e-02 }, { 2.9457803e-01, 6.7163072e-02 }, + { 2.9367365e-01, 7.1013225e-02 }, { 2.9271896e-01, 7.4851211e-02 }, + { 2.9171411e-01, 7.8676371e-02 }, { 2.9065928e-01, 8.2488050e-02 }, + { 2.8955464e-01, 8.6285595e-02 }, { 2.8840039e-01, 9.0068356e-02 }, + { 2.8719672e-01, 9.3835684e-02 }, { 2.8594385e-01, 9.7586934e-02 }, + { 2.8464198e-01, 1.0132146e-01 }, { 2.8329133e-01, 1.0503863e-01 }, + { 2.8189215e-01, 1.0873780e-01 }, { 2.8044466e-01, 1.1241834e-01 }, + { 2.7894913e-01, 1.1607962e-01 }, { 2.7740579e-01, 1.1972100e-01 }, + { 2.7581493e-01, 1.2334187e-01 }, { 2.7417680e-01, 1.2694161e-01 }, + { 2.7249170e-01, 1.3051960e-01 }, { 2.7075991e-01, 1.3407523e-01 }, + { 2.6898172e-01, 1.3760788e-01 }, { 2.6715744e-01, 1.4111695e-01 }, + { 2.6528739e-01, 1.4460184e-01 }, { 2.6337188e-01, 1.4806196e-01 }, + { 2.6141125e-01, 1.5149671e-01 }, { 2.5940582e-01, 1.5490549e-01 }, + { 2.5735595e-01, 1.5828774e-01 }, { 2.5526198e-01, 1.6164286e-01 }, + { 2.5312427e-01, 1.6497029e-01 }, { 2.5094319e-01, 1.6826945e-01 }, + { 2.4871911e-01, 1.7153978e-01 }, { 2.4645242e-01, 1.7478072e-01 }, + { 2.4414349e-01, 1.7799171e-01 }, { 2.4179274e-01, 1.8117220e-01 }, + { 2.3940055e-01, 1.8432165e-01 }, { 2.3696735e-01, 1.8743951e-01 }, + { 2.3449354e-01, 1.9052526e-01 }, { 2.3197955e-01, 1.9357836e-01 }, + { 2.2942581e-01, 1.9659830e-01 }, { 2.2683276e-01, 1.9958454e-01 }, + { 2.2420085e-01, 2.0253659e-01 }, { 2.2153052e-01, 2.0545394e-01 }, + { 2.1882223e-01, 2.0833608e-01 }, { 2.1607645e-01, 2.1118253e-01 }, + { 2.1329364e-01, 2.1399279e-01 }, { 2.1047429e-01, 2.1676638e-01 }, + { 2.0761888e-01, 2.1950284e-01 }, { 2.0472788e-01, 2.2220168e-01 }, + { 2.0180182e-01, 2.2486245e-01 }, { 1.9884117e-01, 2.2748469e-01 }, + { 1.9584645e-01, 2.3006795e-01 }, { 1.9281818e-01, 2.3261179e-01 }, + { 1.8975686e-01, 2.3511577e-01 }, { 1.8666303e-01, 2.3757947e-01 }, + { 1.8353722e-01, 2.4000246e-01 }, { 1.8037996e-01, 2.4238433e-01 }, + { 1.7719180e-01, 2.4472466e-01 }, { 1.7397327e-01, 2.4702306e-01 }, + { 1.7072493e-01, 2.4927914e-01 }, { 1.6744734e-01, 2.5149250e-01 }, + { 1.6414106e-01, 2.5366278e-01 }, { 1.6080666e-01, 2.5578958e-01 }, + { 1.5744470e-01, 2.5787256e-01 }, { 1.5405576e-01, 2.5991136e-01 }, + { 1.5064043e-01, 2.6190562e-01 }, { 1.4719929e-01, 2.6385500e-01 }, + { 1.4373292e-01, 2.6575918e-01 }, { 1.4024192e-01, 2.6761782e-01 }, + { 1.3672690e-01, 2.6943060e-01 }, { 1.3318845e-01, 2.7119722e-01 }, + { 1.2962718e-01, 2.7291736e-01 }, { 1.2604369e-01, 2.7459075e-01 }, + { 1.2243861e-01, 2.7621709e-01 }, { 1.1881255e-01, 2.7779609e-01 }, + { 1.1516614e-01, 2.7932750e-01 }, { 1.1149999e-01, 2.8081105e-01 }, + { 1.0781473e-01, 2.8224648e-01 }, { 1.0411100e-01, 2.8363355e-01 }, + { 1.0038943e-01, 2.8497202e-01 }, { 9.6650664e-02, 2.8626167e-01 }, + { 9.2895335e-02, 2.8750226e-01 }, { 8.9124088e-02, 2.8869359e-01 }, + { 8.5337570e-02, 2.8983546e-01 }, { 8.1536430e-02, 2.9092766e-01 }, + { 7.7721319e-02, 2.9197001e-01 }, { 7.3892891e-02, 2.9296234e-01 }, + { 7.0051802e-02, 2.9390447e-01 }, { 6.6198710e-02, 2.9479624e-01 }, + { 6.2334275e-02, 2.9563750e-01 }, { 5.8459159e-02, 2.9642810e-01 }, + { 5.4574027e-02, 2.9716791e-01 }, { 5.0679543e-02, 2.9785681e-01 }, + { 4.6776376e-02, 2.9849466e-01 }, { 4.2865195e-02, 2.9908137e-01 }, + { 3.8946668e-02, 2.9961684e-01 }, { 3.5021468e-02, 3.0010097e-01 }, + { 3.1090267e-02, 3.0053367e-01 }, { 2.7153740e-02, 3.0091488e-01 }, + { 2.3212559e-02, 3.0124454e-01 }, { 1.9267401e-02, 3.0152257e-01 }, + { 1.5318942e-02, 3.0174894e-01 }, { 1.1367858e-02, 3.0192361e-01 }, + { 7.4148264e-03, 3.0204654e-01 }, { 3.4605241e-03, 3.0211772e-01 }, } }; static const struct lc3_mdct_rot_def mdct_rot_640 = { .n4 = 640/4, .w = (const struct lc3_complex []){ - { 9.9999925e-01, 1.2271843e-03 }, { 9.9993901e-01, 1.1044437e-02 }, - { 9.9978239e-01, 2.0860625e-02 }, { 9.9952942e-01, 3.0674803e-02 }, - { 9.9918010e-01, 4.0486024e-02 }, { 9.9873449e-01, 5.0293344e-02 }, - { 9.9819261e-01, 6.0095815e-02 }, { 9.9755453e-01, 6.9892495e-02 }, - { 9.9682030e-01, 7.9682438e-02 }, { 9.9598999e-01, 8.9464701e-02 }, - { 9.9506369e-01, 9.9238342e-02 }, { 9.9404148e-01, 1.0900242e-01 }, - { 9.9292347e-01, 1.1875599e-01 }, { 9.9170975e-01, 1.2849811e-01 }, - { 9.9040046e-01, 1.3822785e-01 }, { 9.8899570e-01, 1.4794427e-01 }, - { 9.8749562e-01, 1.5764642e-01 }, { 9.8590037e-01, 1.6733339e-01 }, - { 9.8421009e-01, 1.7700422e-01 }, { 9.8242496e-01, 1.8665800e-01 }, - { 9.8054513e-01, 1.9629378e-01 }, { 9.7857080e-01, 2.0591064e-01 }, - { 9.7650215e-01, 2.1550766e-01 }, { 9.7433938e-01, 2.2508391e-01 }, - { 9.7208271e-01, 2.3463847e-01 }, { 9.6973234e-01, 2.4417040e-01 }, - { 9.6728851e-01, 2.5367881e-01 }, { 9.6475145e-01, 2.6316276e-01 }, - { 9.6212140e-01, 2.7262136e-01 }, { 9.5939863e-01, 2.8205367e-01 }, - { 9.5658338e-01, 2.9145880e-01 }, { 9.5367594e-01, 3.0083584e-01 }, - { 9.5067658e-01, 3.1018388e-01 }, { 9.4758559e-01, 3.1950203e-01 }, - { 9.4440327e-01, 3.2878938e-01 }, { 9.4112993e-01, 3.3804505e-01 }, - { 9.3776588e-01, 3.4726813e-01 }, { 9.3431145e-01, 3.5645774e-01 }, - { 9.3076696e-01, 3.6561300e-01 }, { 9.2713277e-01, 3.7473302e-01 }, - { 9.2340921e-01, 3.8381691e-01 }, { 9.1959666e-01, 3.9286382e-01 }, - { 9.1569547e-01, 4.0187286e-01 }, { 9.1170603e-01, 4.1084317e-01 }, - { 9.0762872e-01, 4.1977388e-01 }, { 9.0346392e-01, 4.2866413e-01 }, - { 8.9921205e-01, 4.3751307e-01 }, { 8.9487351e-01, 4.4631984e-01 }, - { 8.9044872e-01, 4.5508359e-01 }, { 8.8593811e-01, 4.6380348e-01 }, - { 8.8134211e-01, 4.7247866e-01 }, { 8.7666116e-01, 4.8110831e-01 }, - { 8.7189572e-01, 4.8969159e-01 }, { 8.6704625e-01, 4.9822767e-01 }, - { 8.6211320e-01, 5.0671573e-01 }, { 8.5709707e-01, 5.1515495e-01 }, - { 8.5199832e-01, 5.2354452e-01 }, { 8.4681746e-01, 5.3188363e-01 }, - { 8.4155498e-01, 5.4017147e-01 }, { 8.3621139e-01, 5.4840726e-01 }, - { 8.3078720e-01, 5.5659018e-01 }, { 8.2528294e-01, 5.6471946e-01 }, - { 8.1969914e-01, 5.7279431e-01 }, { 8.1403633e-01, 5.8081396e-01 }, - { 8.0829506e-01, 5.8877762e-01 }, { 8.0247589e-01, 5.9668454e-01 }, - { 7.9657938e-01, 6.0453395e-01 }, { 7.9060609e-01, 6.1232509e-01 }, - { 7.8455660e-01, 6.2005721e-01 }, { 7.7843149e-01, 6.2772957e-01 }, - { 7.7223135e-01, 6.3534143e-01 }, { 7.6595679e-01, 6.4289206e-01 }, - { 7.5960840e-01, 6.5038072e-01 }, { 7.5318680e-01, 6.5780669e-01 }, - { 7.4669260e-01, 6.6516927e-01 }, { 7.4012644e-01, 6.7246773e-01 }, - { 7.3348894e-01, 6.7970138e-01 }, { 7.2678075e-01, 6.8686952e-01 }, - { 7.2000251e-01, 6.9397146e-01 }, { 7.1315487e-01, 7.0100651e-01 }, - { 7.0623850e-01, 7.0797400e-01 }, { 6.9925406e-01, 7.1487325e-01 }, - { 6.9220222e-01, 7.2170360e-01 }, { 6.8508367e-01, 7.2846439e-01 }, - { 6.7789909e-01, 7.3515497e-01 }, { 6.7064917e-01, 7.4177469e-01 }, - { 6.6333461e-01, 7.4832292e-01 }, { 6.5595612e-01, 7.5479903e-01 }, - { 6.4851440e-01, 7.6120239e-01 }, { 6.4101018e-01, 7.6753238e-01 }, - { 6.3344418e-01, 7.7378839e-01 }, { 6.2581713e-01, 7.7996982e-01 }, - { 6.1812975e-01, 7.8607608e-01 }, { 6.1038281e-01, 7.9210658e-01 }, - { 6.0257703e-01, 7.9806073e-01 }, { 5.9471317e-01, 8.0393796e-01 }, - { 5.8679200e-01, 8.0973771e-01 }, { 5.7881426e-01, 8.1545941e-01 }, - { 5.7078075e-01, 8.2110251e-01 }, { 5.6269221e-01, 8.2666648e-01 }, - { 5.5454945e-01, 8.3215077e-01 }, { 5.4635323e-01, 8.3755486e-01 }, - { 5.3810436e-01, 8.4287822e-01 }, { 5.2980362e-01, 8.4812034e-01 }, - { 5.2145182e-01, 8.5328072e-01 }, { 5.1304977e-01, 8.5835886e-01 }, - { 5.0459826e-01, 8.6335427e-01 }, { 4.9609812e-01, 8.6826647e-01 }, - { 4.8755016e-01, 8.7309498e-01 }, { 4.7895521e-01, 8.7783934e-01 }, - { 4.7031410e-01, 8.8249909e-01 }, { 4.6162766e-01, 8.8707379e-01 }, - { 4.5289673e-01, 8.9156298e-01 }, { 4.4412214e-01, 8.9596625e-01 }, - { 4.3530476e-01, 9.0028316e-01 }, { 4.2644541e-01, 9.0451330e-01 }, - { 4.1754496e-01, 9.0865626e-01 }, { 4.0860427e-01, 9.1271165e-01 }, - { 3.9962420e-01, 9.1667906e-01 }, { 3.9060561e-01, 9.2055812e-01 }, - { 3.8154937e-01, 9.2434846e-01 }, { 3.7245636e-01, 9.2804971e-01 }, - { 3.6332745e-01, 9.3166151e-01 }, { 3.5416353e-01, 9.3518351e-01 }, - { 3.4496546e-01, 9.3861538e-01 }, { 3.3573415e-01, 9.4195678e-01 }, - { 3.2647048e-01, 9.4520740e-01 }, { 3.1717535e-01, 9.4836691e-01 }, - { 3.0784964e-01, 9.5143502e-01 }, { 2.9849426e-01, 9.5441143e-01 }, - { 2.8911012e-01, 9.5729585e-01 }, { 2.7969810e-01, 9.6008800e-01 }, - { 2.7025914e-01, 9.6278762e-01 }, { 2.6079412e-01, 9.6539444e-01 }, - { 2.5130396e-01, 9.6790822e-01 }, { 2.4178959e-01, 9.7032870e-01 }, - { 2.3225191e-01, 9.7265567e-01 }, { 2.2269185e-01, 9.7488889e-01 }, - { 2.1311032e-01, 9.7702814e-01 }, { 2.0350825e-01, 9.7907323e-01 }, - { 1.9388657e-01, 9.8102395e-01 }, { 1.8424620e-01, 9.8288012e-01 }, - { 1.7458807e-01, 9.8464156e-01 }, { 1.6491312e-01, 9.8630810e-01 }, - { 1.5522227e-01, 9.8787957e-01 }, { 1.4551646e-01, 9.8935583e-01 }, - { 1.3579663e-01, 9.9073673e-01 }, { 1.2606370e-01, 9.9202215e-01 }, - { 1.1631863e-01, 9.9321195e-01 }, { 1.0656235e-01, 9.9430602e-01 }, - { 9.6795791e-02, 9.9530426e-01 }, { 8.7019907e-02, 9.9620657e-01 }, - { 7.7235635e-02, 9.9701287e-01 }, { 6.7443920e-02, 9.9772307e-01 }, - { 5.7645703e-02, 9.9833710e-01 }, { 4.7841931e-02, 9.9885492e-01 }, - { 3.8033548e-02, 9.9927646e-01 }, { 2.8221499e-02, 9.9960169e-01 }, - { 1.8406730e-02, 9.9983058e-01 }, { 8.5901868e-03, 9.9996310e-01 }, + { 2.8117045e-01, 3.4504823e-04 }, { 2.8115351e-01, 3.1053717e-03 }, + { 2.8110948e-01, 5.8653959e-03 }, { 2.8103835e-01, 8.6248547e-03 }, + { 2.8094013e-01, 1.1383482e-02 }, { 2.8081484e-01, 1.4141013e-02 }, + { 2.8066248e-01, 1.6897180e-02 }, { 2.8048307e-01, 1.9651719e-02 }, + { 2.8027662e-01, 2.2404364e-02 }, { 2.8004317e-01, 2.5154849e-02 }, + { 2.7978272e-01, 2.7902910e-02 }, { 2.7949530e-01, 3.0648282e-02 }, + { 2.7918095e-01, 3.3390700e-02 }, { 2.7883969e-01, 3.6129899e-02 }, + { 2.7847155e-01, 3.8865616e-02 }, { 2.7807658e-01, 4.1597587e-02 }, + { 2.7765480e-01, 4.4325549e-02 }, { 2.7720626e-01, 4.7049239e-02 }, + { 2.7673100e-01, 4.9768394e-02 }, { 2.7622908e-01, 5.2482752e-02 }, + { 2.7570052e-01, 5.5192052e-02 }, { 2.7514540e-01, 5.7896032e-02 }, + { 2.7456376e-01, 6.0594433e-02 }, { 2.7395565e-01, 6.3286992e-02 }, + { 2.7332114e-01, 6.5973453e-02 }, { 2.7266028e-01, 6.8653554e-02 }, + { 2.7197315e-01, 7.1327039e-02 }, { 2.7125980e-01, 7.3993649e-02 }, + { 2.7052031e-01, 7.6653127e-02 }, { 2.6975475e-01, 7.9305217e-02 }, + { 2.6896318e-01, 8.1949664e-02 }, { 2.6814570e-01, 8.4586212e-02 }, + { 2.6730236e-01, 8.7214608e-02 }, { 2.6643327e-01, 8.9834598e-02 }, + { 2.6553849e-01, 9.2445929e-02 }, { 2.6461813e-01, 9.5048350e-02 }, + { 2.6367225e-01, 9.7641610e-02 }, { 2.6270097e-01, 1.0022546e-01 }, + { 2.6170436e-01, 1.0279965e-01 }, { 2.6068253e-01, 1.0536393e-01 }, + { 2.5963558e-01, 1.0791806e-01 }, { 2.5856360e-01, 1.1046178e-01 }, + { 2.5746670e-01, 1.1299486e-01 }, { 2.5634499e-01, 1.1551705e-01 }, + { 2.5519857e-01, 1.1802810e-01 }, { 2.5402755e-01, 1.2052778e-01 }, + { 2.5283205e-01, 1.2301584e-01 }, { 2.5161218e-01, 1.2549204e-01 }, + { 2.5036806e-01, 1.2795615e-01 }, { 2.4909981e-01, 1.3040793e-01 }, + { 2.4780754e-01, 1.3284714e-01 }, { 2.4649140e-01, 1.3527354e-01 }, + { 2.4515150e-01, 1.3768691e-01 }, { 2.4378797e-01, 1.4008700e-01 }, + { 2.4240094e-01, 1.4247360e-01 }, { 2.4099055e-01, 1.4484646e-01 }, + { 2.3955693e-01, 1.4720536e-01 }, { 2.3810023e-01, 1.4955007e-01 }, + { 2.3662057e-01, 1.5188037e-01 }, { 2.3511811e-01, 1.5419603e-01 }, + { 2.3359299e-01, 1.5649683e-01 }, { 2.3204535e-01, 1.5878255e-01 }, + { 2.3047535e-01, 1.6105296e-01 }, { 2.2888313e-01, 1.6330785e-01 }, + { 2.2726886e-01, 1.6554699e-01 }, { 2.2563268e-01, 1.6777019e-01 }, + { 2.2397475e-01, 1.6997721e-01 }, { 2.2229524e-01, 1.7216785e-01 }, + { 2.2059430e-01, 1.7434190e-01 }, { 2.1887210e-01, 1.7649914e-01 }, + { 2.1712880e-01, 1.7863937e-01 }, { 2.1536458e-01, 1.8076239e-01 }, + { 2.1357960e-01, 1.8286798e-01 }, { 2.1177403e-01, 1.8495594e-01 }, + { 2.0994805e-01, 1.8702608e-01 }, { 2.0810184e-01, 1.8907820e-01 }, + { 2.0623557e-01, 1.9111209e-01 }, { 2.0434942e-01, 1.9312756e-01 }, + { 2.0244358e-01, 1.9512442e-01 }, { 2.0051823e-01, 1.9710247e-01 }, + { 1.9857355e-01, 1.9906152e-01 }, { 1.9660973e-01, 2.0100139e-01 }, + { 1.9462696e-01, 2.0292188e-01 }, { 1.9262543e-01, 2.0482282e-01 }, + { 1.9060533e-01, 2.0670401e-01 }, { 1.8856687e-01, 2.0856528e-01 }, + { 1.8651023e-01, 2.1040645e-01 }, { 1.8443562e-01, 2.1222734e-01 }, + { 1.8234322e-01, 2.1402778e-01 }, { 1.8023326e-01, 2.1580759e-01 }, + { 1.7810592e-01, 2.1756659e-01 }, { 1.7596142e-01, 2.1930463e-01 }, + { 1.7379995e-01, 2.2102153e-01 }, { 1.7162174e-01, 2.2271713e-01 }, + { 1.6942698e-01, 2.2439126e-01 }, { 1.6721590e-01, 2.2604377e-01 }, + { 1.6498869e-01, 2.2767449e-01 }, { 1.6274559e-01, 2.2928326e-01 }, + { 1.6048680e-01, 2.3086994e-01 }, { 1.5821254e-01, 2.3243436e-01 }, + { 1.5592304e-01, 2.3397638e-01 }, { 1.5361850e-01, 2.3549585e-01 }, + { 1.5129916e-01, 2.3699263e-01 }, { 1.4896524e-01, 2.3846656e-01 }, + { 1.4661696e-01, 2.3991751e-01 }, { 1.4425454e-01, 2.4134533e-01 }, + { 1.4187823e-01, 2.4274989e-01 }, { 1.3948824e-01, 2.4413106e-01 }, + { 1.3708480e-01, 2.4548869e-01 }, { 1.3466815e-01, 2.4682267e-01 }, + { 1.3223853e-01, 2.4813285e-01 }, { 1.2979616e-01, 2.4941912e-01 }, + { 1.2734127e-01, 2.5068135e-01 }, { 1.2487412e-01, 2.5191942e-01 }, + { 1.2239493e-01, 2.5313321e-01 }, { 1.1990394e-01, 2.5432260e-01 }, + { 1.1740139e-01, 2.5548748e-01 }, { 1.1488753e-01, 2.5662774e-01 }, + { 1.1236260e-01, 2.5774326e-01 }, { 1.0982684e-01, 2.5883394e-01 }, + { 1.0728049e-01, 2.5989967e-01 }, { 1.0472380e-01, 2.6094035e-01 }, + { 1.0215702e-01, 2.6195588e-01 }, { 9.9580393e-02, 2.6294617e-01 }, + { 9.6994168e-02, 2.6391111e-01 }, { 9.4398594e-02, 2.6485061e-01 }, + { 9.1793922e-02, 2.6576459e-01 }, { 8.9180402e-02, 2.6665295e-01 }, + { 8.6558287e-02, 2.6751562e-01 }, { 8.3927830e-02, 2.6835249e-01 }, + { 8.1289283e-02, 2.6916351e-01 }, { 7.8642901e-02, 2.6994858e-01 }, + { 7.5988940e-02, 2.7070763e-01 }, { 7.3327655e-02, 2.7144059e-01 }, + { 7.0659302e-02, 2.7214739e-01 }, { 6.7984139e-02, 2.7282796e-01 }, + { 6.5302424e-02, 2.7348224e-01 }, { 6.2614414e-02, 2.7411015e-01 }, + { 5.9920370e-02, 2.7471165e-01 }, { 5.7220550e-02, 2.7528667e-01 }, + { 5.4515216e-02, 2.7583516e-01 }, { 5.1804627e-02, 2.7635706e-01 }, + { 4.9089045e-02, 2.7685232e-01 }, { 4.6368731e-02, 2.7732090e-01 }, + { 4.3643949e-02, 2.7776275e-01 }, { 4.0914960e-02, 2.7817783e-01 }, + { 3.8182028e-02, 2.7856610e-01 }, { 3.5445415e-02, 2.7892752e-01 }, + { 3.2705387e-02, 2.7926206e-01 }, { 2.9962206e-02, 2.7956968e-01 }, + { 2.7216137e-02, 2.7985036e-01 }, { 2.4467445e-02, 2.8010406e-01 }, + { 2.1716395e-02, 2.8033077e-01 }, { 1.8963252e-02, 2.8053046e-01 }, + { 1.6208281e-02, 2.8070310e-01 }, { 1.3451748e-02, 2.8084870e-01 }, + { 1.0693918e-02, 2.8096723e-01 }, { 7.9350576e-03, 2.8105867e-01 }, + { 5.1754324e-03, 2.8112303e-01 }, { 2.4153085e-03, 2.8116029e-01 }, } }; static const struct lc3_mdct_rot_def mdct_rot_720 = { .n4 = 720/4, .w = (const struct lc3_complex []){ - { 9.9999941e-01, 1.0908306e-03 }, { 9.9995181e-01, 9.8173193e-03 }, - { 9.9982806e-01, 1.8543060e-02 }, { 9.9962818e-01, 2.7267389e-02 }, - { 9.9935216e-01, 3.5989642e-02 }, { 9.9900005e-01, 4.4709154e-02 }, - { 9.9857185e-01, 5.3425261e-02 }, { 9.9806761e-01, 6.2137299e-02 }, - { 9.9748736e-01, 7.0844606e-02 }, { 9.9683116e-01, 7.9546517e-02 }, - { 9.9609903e-01, 8.8242371e-02 }, { 9.9529105e-01, 9.6931504e-02 }, - { 9.9440728e-01, 1.0561326e-01 }, { 9.9344778e-01, 1.1428696e-01 }, - { 9.9241262e-01, 1.2295197e-01 }, { 9.9130189e-01, 1.3160761e-01 }, - { 9.9011567e-01, 1.4025323e-01 }, { 9.8885404e-01, 1.4888817e-01 }, - { 9.8751711e-01, 1.5751177e-01 }, { 9.8610498e-01, 1.6612338e-01 }, - { 9.8461775e-01, 1.7472233e-01 }, { 9.8305553e-01, 1.8330798e-01 }, - { 9.8141846e-01, 1.9187967e-01 }, { 9.7970664e-01, 2.0043675e-01 }, - { 9.7792022e-01, 2.0897856e-01 }, { 9.7605933e-01, 2.1750446e-01 }, - { 9.7412410e-01, 2.2601379e-01 }, { 9.7211469e-01, 2.3450592e-01 }, - { 9.7003125e-01, 2.4298018e-01 }, { 9.6787394e-01, 2.5143594e-01 }, - { 9.6564292e-01, 2.5987255e-01 }, { 9.6333837e-01, 2.6828937e-01 }, - { 9.6096045e-01, 2.7668577e-01 }, { 9.5850935e-01, 2.8506109e-01 }, - { 9.5598526e-01, 2.9341470e-01 }, { 9.5338836e-01, 3.0174596e-01 }, - { 9.5071887e-01, 3.1005425e-01 }, { 9.4797697e-01, 3.1833893e-01 }, - { 9.4516287e-01, 3.2659936e-01 }, { 9.4227680e-01, 3.3483492e-01 }, - { 9.3931898e-01, 3.4304499e-01 }, { 9.3628962e-01, 3.5122892e-01 }, - { 9.3318895e-01, 3.5938611e-01 }, { 9.3001722e-01, 3.6751594e-01 }, - { 9.2677467e-01, 3.7561777e-01 }, { 9.2346154e-01, 3.8369100e-01 }, - { 9.2007808e-01, 3.9173501e-01 }, { 9.1662456e-01, 3.9974919e-01 }, - { 9.1310123e-01, 4.0773292e-01 }, { 9.0950837e-01, 4.1568561e-01 }, - { 9.0584624e-01, 4.2360664e-01 }, { 9.0211513e-01, 4.3149541e-01 }, - { 8.9831532e-01, 4.3935132e-01 }, { 8.9444710e-01, 4.4717377e-01 }, - { 8.9051077e-01, 4.5496217e-01 }, { 8.8650662e-01, 4.6271592e-01 }, - { 8.8243495e-01, 4.7043443e-01 }, { 8.7829609e-01, 4.7811712e-01 }, - { 8.7409034e-01, 4.8576339e-01 }, { 8.6981803e-01, 4.9337268e-01 }, - { 8.6547947e-01, 5.0094439e-01 }, { 8.6107501e-01, 5.0847795e-01 }, - { 8.5660497e-01, 5.1597279e-01 }, { 8.5206970e-01, 5.2342834e-01 }, - { 8.4746954e-01, 5.3084403e-01 }, { 8.4280484e-01, 5.3821929e-01 }, - { 8.3807596e-01, 5.4555356e-01 }, { 8.3328326e-01, 5.5284629e-01 }, - { 8.2842709e-01, 5.6009691e-01 }, { 8.2350785e-01, 5.6730488e-01 }, - { 8.1852588e-01, 5.7446965e-01 }, { 8.1348159e-01, 5.8159067e-01 }, - { 8.0837534e-01, 5.8866740e-01 }, { 8.0320753e-01, 5.9569930e-01 }, - { 7.9797856e-01, 6.0268584e-01 }, { 7.9268881e-01, 6.0962648e-01 }, - { 7.8733870e-01, 6.1652070e-01 }, { 7.8192863e-01, 6.2336796e-01 }, - { 7.7645902e-01, 6.3016775e-01 }, { 7.7093027e-01, 6.3691955e-01 }, - { 7.6534281e-01, 6.4362285e-01 }, { 7.5969708e-01, 6.5027714e-01 }, - { 7.5399348e-01, 6.5688190e-01 }, { 7.4823247e-01, 6.6343664e-01 }, - { 7.4241448e-01, 6.6994085e-01 }, { 7.3653994e-01, 6.7639405e-01 }, - { 7.3060932e-01, 6.8279574e-01 }, { 7.2462306e-01, 6.8914543e-01 }, - { 7.1858162e-01, 6.9544264e-01 }, { 7.1248545e-01, 7.0168688e-01 }, - { 7.0633503e-01, 7.0787769e-01 }, { 7.0013081e-01, 7.1401460e-01 }, - { 6.9387328e-01, 7.2009713e-01 }, { 6.8756291e-01, 7.2612482e-01 }, - { 6.8120017e-01, 7.3209721e-01 }, { 6.7478556e-01, 7.3801385e-01 }, - { 6.6831956e-01, 7.4387429e-01 }, { 6.6180267e-01, 7.4967808e-01 }, - { 6.5523538e-01, 7.5542478e-01 }, { 6.4861819e-01, 7.6111395e-01 }, - { 6.4195160e-01, 7.6674516e-01 }, { 6.3523613e-01, 7.7231798e-01 }, - { 6.2847228e-01, 7.7783198e-01 }, { 6.2166057e-01, 7.8328675e-01 }, - { 6.1480152e-01, 7.8868187e-01 }, { 6.0789565e-01, 7.9401692e-01 }, - { 6.0094349e-01, 7.9929151e-01 }, { 5.9394556e-01, 8.0450523e-01 }, - { 5.8690240e-01, 8.0965769e-01 }, { 5.7981455e-01, 8.1474848e-01 }, - { 5.7268254e-01, 8.1977723e-01 }, { 5.6550692e-01, 8.2474355e-01 }, - { 5.5828823e-01, 8.2964706e-01 }, { 5.5102703e-01, 8.3448740e-01 }, - { 5.4372386e-01, 8.3926418e-01 }, { 5.3637929e-01, 8.4397705e-01 }, - { 5.2899387e-01, 8.4862564e-01 }, { 5.2156817e-01, 8.5320961e-01 }, - { 5.1410274e-01, 8.5772861e-01 }, { 5.0659817e-01, 8.6218229e-01 }, - { 4.9905502e-01, 8.6657030e-01 }, { 4.9147386e-01, 8.7089233e-01 }, - { 4.8385527e-01, 8.7514803e-01 }, { 4.7619984e-01, 8.7933709e-01 }, - { 4.6850814e-01, 8.8345918e-01 }, { 4.6078076e-01, 8.8751399e-01 }, - { 4.5301829e-01, 8.9150122e-01 }, { 4.4522133e-01, 8.9542056e-01 }, - { 4.3739045e-01, 8.9927170e-01 }, { 4.2952627e-01, 9.0305436e-01 }, - { 4.2162938e-01, 9.0676825e-01 }, { 4.1370038e-01, 9.1041309e-01 }, - { 4.0573988e-01, 9.1398859e-01 }, { 3.9774847e-01, 9.1749450e-01 }, - { 3.8972678e-01, 9.2093053e-01 }, { 3.8167541e-01, 9.2429643e-01 }, - { 3.7359497e-01, 9.2759194e-01 }, { 3.6548608e-01, 9.3081681e-01 }, - { 3.5734936e-01, 9.3397079e-01 }, { 3.4918542e-01, 9.3705365e-01 }, - { 3.4099489e-01, 9.4006515e-01 }, { 3.3277840e-01, 9.4300506e-01 }, - { 3.2453656e-01, 9.4587315e-01 }, { 3.1627001e-01, 9.4866922e-01 }, - { 3.0797937e-01, 9.5139304e-01 }, { 2.9966528e-01, 9.5404440e-01 }, - { 2.9132836e-01, 9.5662311e-01 }, { 2.8296927e-01, 9.5912898e-01 }, - { 2.7458862e-01, 9.6156180e-01 }, { 2.6618706e-01, 9.6392139e-01 }, - { 2.5776523e-01, 9.6620758e-01 }, { 2.4932377e-01, 9.6842019e-01 }, - { 2.4086332e-01, 9.7055904e-01 }, { 2.3238453e-01, 9.7262399e-01 }, - { 2.2388805e-01, 9.7461487e-01 }, { 2.1537451e-01, 9.7653153e-01 }, - { 2.0684457e-01, 9.7837382e-01 }, { 1.9829888e-01, 9.8014160e-01 }, - { 1.8973809e-01, 9.8183474e-01 }, { 1.8116285e-01, 9.8345311e-01 }, - { 1.7257382e-01, 9.8499659e-01 }, { 1.6397164e-01, 9.8646505e-01 }, - { 1.5535697e-01, 9.8785840e-01 }, { 1.4673047e-01, 9.8917651e-01 }, - { 1.3809280e-01, 9.9041929e-01 }, { 1.2944462e-01, 9.9158665e-01 }, - { 1.2078657e-01, 9.9267850e-01 }, { 1.1211933e-01, 9.9369475e-01 }, - { 1.0344355e-01, 9.9463533e-01 }, { 9.4759887e-02, 9.9550016e-01 }, - { 8.6069011e-02, 9.9628918e-01 }, { 7.7371581e-02, 9.9700233e-01 }, - { 6.8668259e-02, 9.9763955e-01 }, { 5.9959707e-02, 9.9820080e-01 }, - { 5.1246589e-02, 9.9868603e-01 }, { 4.2529569e-02, 9.9909521e-01 }, - { 3.3809310e-02, 9.9942830e-01 }, { 2.5086476e-02, 9.9968528e-01 }, - { 1.6361732e-02, 9.9986614e-01 }, { 7.6357413e-03, 9.9997085e-01 }, + { 2.7301192e-01, 2.9780993e-04 }, { 2.7299893e-01, 2.6802468e-03 }, + { 2.7296515e-01, 5.0624796e-03 }, { 2.7291057e-01, 7.4443269e-03 }, + { 2.7283522e-01, 9.8256072e-03 }, { 2.7273909e-01, 1.2206139e-02 }, + { 2.7262218e-01, 1.4585742e-02 }, { 2.7248452e-01, 1.6964234e-02 }, + { 2.7232611e-01, 1.9341434e-02 }, { 2.7214695e-01, 2.1717161e-02 }, + { 2.7194708e-01, 2.4091234e-02 }, { 2.7172649e-01, 2.6463472e-02 }, + { 2.7148521e-01, 2.8833695e-02 }, { 2.7122325e-01, 3.1201723e-02 }, + { 2.7094064e-01, 3.3567374e-02 }, { 2.7063740e-01, 3.5930469e-02 }, + { 2.7031354e-01, 3.8290828e-02 }, { 2.6996910e-01, 4.0648270e-02 }, + { 2.6960411e-01, 4.3002618e-02 }, { 2.6921858e-01, 4.5353690e-02 }, + { 2.6881255e-01, 4.7701309e-02 }, { 2.6838604e-01, 5.0045294e-02 }, + { 2.6793910e-01, 5.2385469e-02 }, { 2.6747176e-01, 5.4721655e-02 }, + { 2.6698404e-01, 5.7053673e-02 }, { 2.6647599e-01, 5.9381346e-02 }, + { 2.6594765e-01, 6.1704497e-02 }, { 2.6539906e-01, 6.4022949e-02 }, + { 2.6483026e-01, 6.6336526e-02 }, { 2.6424128e-01, 6.8645051e-02 }, + { 2.6363219e-01, 7.0948348e-02 }, { 2.6300302e-01, 7.3246242e-02 }, + { 2.6235382e-01, 7.5538558e-02 }, { 2.6168464e-01, 7.7825122e-02 }, + { 2.6099553e-01, 8.0105759e-02 }, { 2.6028655e-01, 8.2380295e-02 }, + { 2.5955774e-01, 8.4648558e-02 }, { 2.5880917e-01, 8.6910375e-02 }, + { 2.5804089e-01, 8.9165573e-02 }, { 2.5725296e-01, 9.1413981e-02 }, + { 2.5644543e-01, 9.3655427e-02 }, { 2.5561838e-01, 9.5889741e-02 }, + { 2.5477186e-01, 9.8116753e-02 }, { 2.5390594e-01, 1.0033629e-01 }, + { 2.5302069e-01, 1.0254819e-01 }, { 2.5211616e-01, 1.0475228e-01 }, + { 2.5119244e-01, 1.0694839e-01 }, { 2.5024958e-01, 1.0913636e-01 }, + { 2.4928767e-01, 1.1131602e-01 }, { 2.4830678e-01, 1.1348720e-01 }, + { 2.4730697e-01, 1.1564973e-01 }, { 2.4628833e-01, 1.1780346e-01 }, + { 2.4525094e-01, 1.1994822e-01 }, { 2.4419487e-01, 1.2208384e-01 }, + { 2.4312020e-01, 1.2421017e-01 }, { 2.4202702e-01, 1.2632704e-01 }, + { 2.4091541e-01, 1.2843429e-01 }, { 2.3978545e-01, 1.3053175e-01 }, + { 2.3863723e-01, 1.3261928e-01 }, { 2.3747083e-01, 1.3469670e-01 }, + { 2.3628636e-01, 1.3676387e-01 }, { 2.3508388e-01, 1.3882063e-01 }, + { 2.3386351e-01, 1.4086681e-01 }, { 2.3262533e-01, 1.4290226e-01 }, + { 2.3136943e-01, 1.4492683e-01 }, { 2.3009591e-01, 1.4694037e-01 }, + { 2.2880487e-01, 1.4894272e-01 }, { 2.2749640e-01, 1.5093372e-01 }, + { 2.2617061e-01, 1.5291323e-01 }, { 2.2482759e-01, 1.5488109e-01 }, + { 2.2346746e-01, 1.5683716e-01 }, { 2.2209030e-01, 1.5878128e-01 }, + { 2.2069624e-01, 1.6071332e-01 }, { 2.1928536e-01, 1.6263311e-01 }, + { 2.1785779e-01, 1.6454052e-01 }, { 2.1641363e-01, 1.6643540e-01 }, + { 2.1495298e-01, 1.6831760e-01 }, { 2.1347597e-01, 1.7018699e-01 }, + { 2.1198270e-01, 1.7204341e-01 }, { 2.1047328e-01, 1.7388674e-01 }, + { 2.0894784e-01, 1.7571682e-01 }, { 2.0740648e-01, 1.7753352e-01 }, + { 2.0584933e-01, 1.7933670e-01 }, { 2.0427651e-01, 1.8112622e-01 }, + { 2.0268812e-01, 1.8290195e-01 }, { 2.0108431e-01, 1.8466375e-01 }, + { 1.9946518e-01, 1.8641149e-01 }, { 1.9783085e-01, 1.8814503e-01 }, + { 1.9618147e-01, 1.8986424e-01 }, { 1.9451714e-01, 1.9156900e-01 }, + { 1.9283800e-01, 1.9325917e-01 }, { 1.9114417e-01, 1.9493462e-01 }, + { 1.8943579e-01, 1.9659522e-01 }, { 1.8771298e-01, 1.9824085e-01 }, + { 1.8597588e-01, 1.9987139e-01 }, { 1.8422461e-01, 2.0148670e-01 }, + { 1.8245932e-01, 2.0308667e-01 }, { 1.8068013e-01, 2.0467118e-01 }, + { 1.7888718e-01, 2.0624010e-01 }, { 1.7708060e-01, 2.0779331e-01 }, + { 1.7526055e-01, 2.0933070e-01 }, { 1.7342714e-01, 2.1085214e-01 }, + { 1.7158053e-01, 2.1235753e-01 }, { 1.6972085e-01, 2.1384675e-01 }, + { 1.6784825e-01, 2.1531968e-01 }, { 1.6596286e-01, 2.1677622e-01 }, + { 1.6406484e-01, 2.1821624e-01 }, { 1.6215432e-01, 2.1963965e-01 }, + { 1.6023145e-01, 2.2104633e-01 }, { 1.5829638e-01, 2.2243618e-01 }, + { 1.5634925e-01, 2.2380909e-01 }, { 1.5439022e-01, 2.2516496e-01 }, + { 1.5241943e-01, 2.2650368e-01 }, { 1.5043704e-01, 2.2782514e-01 }, + { 1.4844319e-01, 2.2912926e-01 }, { 1.4643803e-01, 2.3041593e-01 }, + { 1.4442172e-01, 2.3168506e-01 }, { 1.4239441e-01, 2.3293654e-01 }, + { 1.4035626e-01, 2.3417028e-01 }, { 1.3830742e-01, 2.3538618e-01 }, + { 1.3624805e-01, 2.3658417e-01 }, { 1.3417830e-01, 2.3776413e-01 }, + { 1.3209834e-01, 2.3892599e-01 }, { 1.3000831e-01, 2.4006965e-01 }, + { 1.2790838e-01, 2.4119503e-01 }, { 1.2579872e-01, 2.4230205e-01 }, + { 1.2367947e-01, 2.4339061e-01 }, { 1.2155080e-01, 2.4446063e-01 }, + { 1.1941288e-01, 2.4551204e-01 }, { 1.1726586e-01, 2.4654476e-01 }, + { 1.1510992e-01, 2.4755869e-01 }, { 1.1294520e-01, 2.4855378e-01 }, + { 1.1077189e-01, 2.4952993e-01 }, { 1.0859014e-01, 2.5048709e-01 }, + { 1.0640012e-01, 2.5142516e-01 }, { 1.0420200e-01, 2.5234410e-01 }, + { 1.0199594e-01, 2.5324381e-01 }, { 9.9782117e-02, 2.5412424e-01 }, + { 9.7560694e-02, 2.5498531e-01 }, { 9.5331841e-02, 2.5582697e-01 }, + { 9.3095728e-02, 2.5664915e-01 }, { 9.0852525e-02, 2.5745178e-01 }, + { 8.8602403e-02, 2.5823480e-01 }, { 8.6345534e-02, 2.5899816e-01 }, + { 8.4082090e-02, 2.5974180e-01 }, { 8.1812242e-02, 2.6046565e-01 }, + { 7.9536165e-02, 2.6116967e-01 }, { 7.7254030e-02, 2.6185380e-01 }, + { 7.4966012e-02, 2.6251799e-01 }, { 7.2672284e-02, 2.6316219e-01 }, + { 7.0373023e-02, 2.6378635e-01 }, { 6.8068403e-02, 2.6439042e-01 }, + { 6.5758598e-02, 2.6497435e-01 }, { 6.3443786e-02, 2.6553810e-01 }, + { 6.1124143e-02, 2.6608164e-01 }, { 5.8799845e-02, 2.6660491e-01 }, + { 5.6471069e-02, 2.6710788e-01 }, { 5.4137992e-02, 2.6759050e-01 }, + { 5.1800793e-02, 2.6805275e-01 }, { 4.9459648e-02, 2.6849459e-01 }, + { 4.7114738e-02, 2.6891597e-01 }, { 4.4766239e-02, 2.6931688e-01 }, + { 4.2414331e-02, 2.6969728e-01 }, { 4.0059193e-02, 2.7005714e-01 }, + { 3.7701004e-02, 2.7039644e-01 }, { 3.5339945e-02, 2.7071514e-01 }, + { 3.2976194e-02, 2.7101323e-01 }, { 3.0609932e-02, 2.7129068e-01 }, + { 2.8241338e-02, 2.7154747e-01 }, { 2.5870594e-02, 2.7178357e-01 }, + { 2.3497880e-02, 2.7199899e-01 }, { 2.1123377e-02, 2.7219369e-01 }, + { 1.8747265e-02, 2.7236765e-01 }, { 1.6369725e-02, 2.7252088e-01 }, + { 1.3990938e-02, 2.7265336e-01 }, { 1.1611086e-02, 2.7276507e-01 }, + { 9.2303502e-03, 2.7285601e-01 }, { 6.8489111e-03, 2.7292617e-01 }, + { 4.4669505e-03, 2.7297554e-01 }, { 2.0846497e-03, 2.7300413e-01 }, } }; static const struct lc3_mdct_rot_def mdct_rot_960 = { .n4 = 960/4, .w = (const struct lc3_complex []){ - { 9.9999967e-01, 8.1812300e-04 }, { 9.9997289e-01, 7.3630412e-03 }, - { 9.9990328e-01, 1.3907644e-02 }, { 9.9979084e-01, 2.0451651e-02 }, - { 9.9963557e-01, 2.6994782e-02 }, { 9.9943748e-01, 3.3536757e-02 }, - { 9.9919658e-01, 4.0077295e-02 }, { 9.9891288e-01, 4.6616116e-02 }, - { 9.9858638e-01, 5.3152941e-02 }, { 9.9821711e-01, 5.9687488e-02 }, - { 9.9780508e-01, 6.6219479e-02 }, { 9.9735031e-01, 7.2748633e-02 }, - { 9.9685281e-01, 7.9274670e-02 }, { 9.9631261e-01, 8.5797312e-02 }, - { 9.9572973e-01, 9.2316279e-02 }, { 9.9510420e-01, 9.8831291e-02 }, - { 9.9443605e-01, 1.0534207e-01 }, { 9.9372529e-01, 1.1184834e-01 }, - { 9.9297196e-01, 1.1834981e-01 }, { 9.9217610e-01, 1.2484622e-01 }, - { 9.9133774e-01, 1.3133727e-01 }, { 9.9045692e-01, 1.3782270e-01 }, - { 9.8953366e-01, 1.4430223e-01 }, { 9.8856802e-01, 1.5077558e-01 }, - { 9.8756003e-01, 1.5724246e-01 }, { 9.8650973e-01, 1.6370261e-01 }, - { 9.8541718e-01, 1.7015575e-01 }, { 9.8428242e-01, 1.7660160e-01 }, - { 9.8310549e-01, 1.8303989e-01 }, { 9.8188645e-01, 1.8947033e-01 }, - { 9.8062534e-01, 1.9589266e-01 }, { 9.7932224e-01, 2.0230660e-01 }, - { 9.7797718e-01, 2.0871187e-01 }, { 9.7659022e-01, 2.1510820e-01 }, - { 9.7516144e-01, 2.2149531e-01 }, { 9.7369088e-01, 2.2787294e-01 }, - { 9.7217861e-01, 2.3424080e-01 }, { 9.7062469e-01, 2.4059864e-01 }, - { 9.6902920e-01, 2.4694616e-01 }, { 9.6739220e-01, 2.5328311e-01 }, - { 9.6571376e-01, 2.5960920e-01 }, { 9.6399395e-01, 2.6592418e-01 }, - { 9.6223284e-01, 2.7222777e-01 }, { 9.6043052e-01, 2.7851969e-01 }, - { 9.5858705e-01, 2.8479968e-01 }, { 9.5670253e-01, 2.9106748e-01 }, - { 9.5477702e-01, 2.9732280e-01 }, { 9.5281061e-01, 3.0356539e-01 }, - { 9.5080338e-01, 3.0979497e-01 }, { 9.4875543e-01, 3.1601129e-01 }, - { 9.4666684e-01, 3.2221406e-01 }, { 9.4453769e-01, 3.2840304e-01 }, - { 9.4236808e-01, 3.3457794e-01 }, { 9.4015810e-01, 3.4073852e-01 }, - { 9.3790786e-01, 3.4688450e-01 }, { 9.3561743e-01, 3.5301562e-01 }, - { 9.3328693e-01, 3.5913161e-01 }, { 9.3091644e-01, 3.6523223e-01 }, - { 9.2850608e-01, 3.7131719e-01 }, { 9.2605595e-01, 3.7738626e-01 }, - { 9.2356614e-01, 3.8343915e-01 }, { 9.2103677e-01, 3.8947562e-01 }, - { 9.1846795e-01, 3.9549541e-01 }, { 9.1585979e-01, 4.0149825e-01 }, - { 9.1321239e-01, 4.0748390e-01 }, { 9.1052587e-01, 4.1345209e-01 }, - { 9.0780035e-01, 4.1940257e-01 }, { 9.0503595e-01, 4.2533508e-01 }, - { 9.0223277e-01, 4.3124938e-01 }, { 8.9939095e-01, 4.3714520e-01 }, - { 8.9651059e-01, 4.4302229e-01 }, { 8.9359184e-01, 4.4888041e-01 }, - { 8.9063481e-01, 4.5471930e-01 }, { 8.8763962e-01, 4.6053871e-01 }, - { 8.8460641e-01, 4.6633839e-01 }, { 8.8153531e-01, 4.7211810e-01 }, - { 8.7842644e-01, 4.7787758e-01 }, { 8.7527995e-01, 4.8361659e-01 }, - { 8.7209596e-01, 4.8933489e-01 }, { 8.6887462e-01, 4.9503222e-01 }, - { 8.6561605e-01, 5.0070835e-01 }, { 8.6232041e-01, 5.0636303e-01 }, - { 8.5898782e-01, 5.1199602e-01 }, { 8.5561844e-01, 5.1760707e-01 }, - { 8.5221241e-01, 5.2319595e-01 }, { 8.4876987e-01, 5.2876243e-01 }, - { 8.4529098e-01, 5.3430625e-01 }, { 8.4177587e-01, 5.3982718e-01 }, - { 8.3822471e-01, 5.4532499e-01 }, { 8.3463763e-01, 5.5079944e-01 }, - { 8.3101481e-01, 5.5625029e-01 }, { 8.2735639e-01, 5.6167732e-01 }, - { 8.2366252e-01, 5.6708028e-01 }, { 8.1993338e-01, 5.7245896e-01 }, - { 8.1616911e-01, 5.7781311e-01 }, { 8.1236987e-01, 5.8314251e-01 }, - { 8.0853584e-01, 5.8844693e-01 }, { 8.0466718e-01, 5.9372614e-01 }, - { 8.0076404e-01, 5.9897992e-01 }, { 7.9682660e-01, 6.0420805e-01 }, - { 7.9285503e-01, 6.0941029e-01 }, { 7.8884950e-01, 6.1458642e-01 }, - { 7.8481017e-01, 6.1973623e-01 }, { 7.8073723e-01, 6.2485949e-01 }, - { 7.7663084e-01, 6.2995598e-01 }, { 7.7249118e-01, 6.3502549e-01 }, - { 7.6831844e-01, 6.4006780e-01 }, { 7.6411277e-01, 6.4508268e-01 }, - { 7.5987438e-01, 6.5006994e-01 }, { 7.5560344e-01, 6.5502934e-01 }, - { 7.5130013e-01, 6.5996069e-01 }, { 7.4696464e-01, 6.6486377e-01 }, - { 7.4259715e-01, 6.6973837e-01 }, { 7.3819784e-01, 6.7458427e-01 }, - { 7.3376692e-01, 6.7940128e-01 }, { 7.2930457e-01, 6.8418919e-01 }, - { 7.2481097e-01, 6.8894779e-01 }, { 7.2028632e-01, 6.9367688e-01 }, - { 7.1573083e-01, 6.9837625e-01 }, { 7.1114467e-01, 7.0304571e-01 }, - { 7.0652804e-01, 7.0768504e-01 }, { 7.0188116e-01, 7.1229407e-01 }, - { 6.9720420e-01, 7.1687258e-01 }, { 6.9249738e-01, 7.2142039e-01 }, - { 6.8776090e-01, 7.2593729e-01 }, { 6.8299495e-01, 7.3042309e-01 }, - { 6.7819975e-01, 7.3487761e-01 }, { 6.7337550e-01, 7.3930064e-01 }, - { 6.6852240e-01, 7.4369201e-01 }, { 6.6364066e-01, 7.4805152e-01 }, - { 6.5873050e-01, 7.5237898e-01 }, { 6.5379211e-01, 7.5667422e-01 }, - { 6.4882573e-01, 7.6093704e-01 }, { 6.4383154e-01, 7.6516727e-01 }, - { 6.3880978e-01, 7.6936471e-01 }, { 6.3376065e-01, 7.7352921e-01 }, - { 6.2868438e-01, 7.7766056e-01 }, { 6.2358117e-01, 7.8175861e-01 }, - { 6.1845126e-01, 7.8582316e-01 }, { 6.1329485e-01, 7.8985406e-01 }, - { 6.0811216e-01, 7.9385112e-01 }, { 6.0290343e-01, 7.9781417e-01 }, - { 5.9766888e-01, 8.0174305e-01 }, { 5.9240872e-01, 8.0563758e-01 }, - { 5.8712318e-01, 8.0949760e-01 }, { 5.8181249e-01, 8.1332295e-01 }, - { 5.7647688e-01, 8.1711346e-01 }, { 5.7111658e-01, 8.2086896e-01 }, - { 5.6573181e-01, 8.2458930e-01 }, { 5.6032281e-01, 8.2827432e-01 }, - { 5.5488980e-01, 8.3192386e-01 }, { 5.4943303e-01, 8.3553776e-01 }, - { 5.4395272e-01, 8.3911587e-01 }, { 5.3844911e-01, 8.4265803e-01 }, - { 5.3292243e-01, 8.4616410e-01 }, { 5.2737292e-01, 8.4963392e-01 }, - { 5.2180083e-01, 8.5306735e-01 }, { 5.1620638e-01, 8.5646423e-01 }, - { 5.1058981e-01, 8.5982442e-01 }, { 5.0495138e-01, 8.6314779e-01 }, - { 4.9929132e-01, 8.6643418e-01 }, { 4.9360987e-01, 8.6968345e-01 }, - { 4.8790727e-01, 8.7289547e-01 }, { 4.8218377e-01, 8.7607009e-01 }, - { 4.7643962e-01, 8.7920719e-01 }, { 4.7067506e-01, 8.8230663e-01 }, - { 4.6489034e-01, 8.8536827e-01 }, { 4.5908570e-01, 8.8839199e-01 }, - { 4.5326139e-01, 8.9137765e-01 }, { 4.4741768e-01, 8.9432512e-01 }, - { 4.4155479e-01, 8.9723429e-01 }, { 4.3567299e-01, 9.0010502e-01 }, - { 4.2977253e-01, 9.0293719e-01 }, { 4.2385365e-01, 9.0573069e-01 }, - { 4.1791662e-01, 9.0848539e-01 }, { 4.1196169e-01, 9.1120117e-01 }, - { 4.0598911e-01, 9.1387791e-01 }, { 3.9999914e-01, 9.1651551e-01 }, - { 3.9399204e-01, 9.1911385e-01 }, { 3.8796806e-01, 9.2167282e-01 }, - { 3.8192746e-01, 9.2419231e-01 }, { 3.7587050e-01, 9.2667220e-01 }, - { 3.6979743e-01, 9.2911240e-01 }, { 3.6370853e-01, 9.3151280e-01 }, - { 3.5760405e-01, 9.3387330e-01 }, { 3.5148424e-01, 9.3619380e-01 }, - { 3.4534939e-01, 9.3847419e-01 }, { 3.3919973e-01, 9.4071438e-01 }, - { 3.3303555e-01, 9.4291427e-01 }, { 3.2685710e-01, 9.4507377e-01 }, - { 3.2066465e-01, 9.4719279e-01 }, { 3.1445847e-01, 9.4927123e-01 }, - { 3.0823881e-01, 9.5130901e-01 }, { 3.0200595e-01, 9.5330604e-01 }, - { 2.9576015e-01, 9.5526223e-01 }, { 2.8950169e-01, 9.5717750e-01 }, - { 2.8323082e-01, 9.5905177e-01 }, { 2.7694782e-01, 9.6088496e-01 }, - { 2.7065295e-01, 9.6267699e-01 }, { 2.6434649e-01, 9.6442777e-01 }, - { 2.5802871e-01, 9.6613725e-01 }, { 2.5169988e-01, 9.6780534e-01 }, - { 2.4536026e-01, 9.6943197e-01 }, { 2.3901013e-01, 9.7101707e-01 }, - { 2.3264977e-01, 9.7256058e-01 }, { 2.2627944e-01, 9.7406243e-01 }, - { 2.1989941e-01, 9.7552255e-01 }, { 2.1350997e-01, 9.7694089e-01 }, - { 2.0711138e-01, 9.7831737e-01 }, { 2.0070391e-01, 9.7965195e-01 }, - { 1.9428785e-01, 9.8094456e-01 }, { 1.8786347e-01, 9.8219515e-01 }, - { 1.8143104e-01, 9.8340367e-01 }, { 1.7499084e-01, 9.8457006e-01 }, - { 1.6854314e-01, 9.8569428e-01 }, { 1.6208822e-01, 9.8677627e-01 }, - { 1.5562636e-01, 9.8781599e-01 }, { 1.4915783e-01, 9.8881340e-01 }, - { 1.4268292e-01, 9.8976845e-01 }, { 1.3620189e-01, 9.9068110e-01 }, - { 1.2971502e-01, 9.9155132e-01 }, { 1.2322260e-01, 9.9237906e-01 }, - { 1.1672491e-01, 9.9316428e-01 }, { 1.1022221e-01, 9.9390697e-01 }, - { 1.0371479e-01, 9.9460708e-01 }, { 9.7202924e-02, 9.9526458e-01 }, - { 9.0686897e-02, 9.9587945e-01 }, { 8.4166986e-02, 9.9645166e-01 }, - { 7.7643468e-02, 9.9698119e-01 }, { 7.1116625e-02, 9.9746801e-01 }, - { 6.4586736e-02, 9.9791210e-01 }, { 5.8054080e-02, 9.9831344e-01 }, - { 5.1518937e-02, 9.9867202e-01 }, { 4.4981587e-02, 9.9898782e-01 }, - { 3.8442310e-02, 9.9926082e-01 }, { 3.1901387e-02, 9.9949102e-01 }, - { 2.5359097e-02, 9.9967841e-01 }, { 1.8815721e-02, 9.9982297e-01 }, - { 1.2271538e-02, 9.9992470e-01 }, { 5.7268303e-03, 9.9998360e-01 }, + { 2.5406629e-01, 2.0785754e-04 }, { 2.5405949e-01, 1.8707012e-03 }, + { 2.5404180e-01, 3.5334647e-03 }, { 2.5401323e-01, 5.1960769e-03 }, + { 2.5397379e-01, 6.8584664e-03 }, { 2.5392346e-01, 8.5205622e-03 }, + { 2.5386225e-01, 1.0182293e-02 }, { 2.5379017e-01, 1.1843588e-02 }, + { 2.5370722e-01, 1.3504375e-02 }, { 2.5361340e-01, 1.5164584e-02 }, + { 2.5350872e-01, 1.6824143e-02 }, { 2.5339318e-01, 1.8482981e-02 }, + { 2.5326678e-01, 2.0141028e-02 }, { 2.5312953e-01, 2.1798212e-02 }, + { 2.5298144e-01, 2.3454462e-02 }, { 2.5282252e-01, 2.5109708e-02 }, + { 2.5265276e-01, 2.6763878e-02 }, { 2.5247218e-01, 2.8416901e-02 }, + { 2.5228079e-01, 3.0068707e-02 }, { 2.5207859e-01, 3.1719225e-02 }, + { 2.5186559e-01, 3.3368385e-02 }, { 2.5164180e-01, 3.5016115e-02 }, + { 2.5140723e-01, 3.6662344e-02 }, { 2.5116189e-01, 3.8307004e-02 }, + { 2.5090580e-01, 3.9950022e-02 }, { 2.5063895e-01, 4.1591330e-02 }, + { 2.5036137e-01, 4.3230855e-02 }, { 2.5007306e-01, 4.4868529e-02 }, + { 2.4977405e-01, 4.6504281e-02 }, { 2.4946433e-01, 4.8138040e-02 }, + { 2.4914393e-01, 4.9769738e-02 }, { 2.4881285e-01, 5.1399303e-02 }, + { 2.4847112e-01, 5.3026667e-02 }, { 2.4811874e-01, 5.4651759e-02 }, + { 2.4775573e-01, 5.6274511e-02 }, { 2.4738211e-01, 5.7894851e-02 }, + { 2.4699789e-01, 5.9512712e-02 }, { 2.4660310e-01, 6.1128023e-02 }, + { 2.4619774e-01, 6.2740716e-02 }, { 2.4578183e-01, 6.4350721e-02 }, + { 2.4535539e-01, 6.5957969e-02 }, { 2.4491845e-01, 6.7562392e-02 }, + { 2.4447101e-01, 6.9163921e-02 }, { 2.4401310e-01, 7.0762488e-02 }, + { 2.4354474e-01, 7.2358023e-02 }, { 2.4306594e-01, 7.3950458e-02 }, + { 2.4257673e-01, 7.5539726e-02 }, { 2.4207714e-01, 7.7125757e-02 }, + { 2.4156717e-01, 7.8708485e-02 }, { 2.4104685e-01, 8.0287842e-02 }, + { 2.4051621e-01, 8.1863759e-02 }, { 2.3997527e-01, 8.3436169e-02 }, + { 2.3942404e-01, 8.5005005e-02 }, { 2.3886256e-01, 8.6570200e-02 }, + { 2.3829085e-01, 8.8131686e-02 }, { 2.3770893e-01, 8.9689398e-02 }, + { 2.3711683e-01, 9.1243267e-02 }, { 2.3651456e-01, 9.2793227e-02 }, + { 2.3590217e-01, 9.4339213e-02 }, { 2.3527968e-01, 9.5881158e-02 }, + { 2.3464710e-01, 9.7418995e-02 }, { 2.3400447e-01, 9.8952659e-02 }, + { 2.3335182e-01, 1.0048208e-01 }, { 2.3268918e-01, 1.0200721e-01 }, + { 2.3201656e-01, 1.0352796e-01 }, { 2.3133401e-01, 1.0504427e-01 }, + { 2.3064154e-01, 1.0655609e-01 }, { 2.2993920e-01, 1.0806334e-01 }, + { 2.2922701e-01, 1.0956597e-01 }, { 2.2850500e-01, 1.1106390e-01 }, + { 2.2777320e-01, 1.1255707e-01 }, { 2.2703164e-01, 1.1404542e-01 }, + { 2.2628036e-01, 1.1552888e-01 }, { 2.2551938e-01, 1.1700740e-01 }, + { 2.2474874e-01, 1.1848090e-01 }, { 2.2396848e-01, 1.1994933e-01 }, + { 2.2317862e-01, 1.2141262e-01 }, { 2.2237920e-01, 1.2287071e-01 }, + { 2.2157026e-01, 1.2432354e-01 }, { 2.2075182e-01, 1.2577104e-01 }, + { 2.1992393e-01, 1.2721315e-01 }, { 2.1908662e-01, 1.2864982e-01 }, + { 2.1823992e-01, 1.3008097e-01 }, { 2.1738388e-01, 1.3150655e-01 }, + { 2.1651852e-01, 1.3292650e-01 }, { 2.1564388e-01, 1.3434075e-01 }, + { 2.1476001e-01, 1.3574925e-01 }, { 2.1386694e-01, 1.3715193e-01 }, + { 2.1296471e-01, 1.3854874e-01 }, { 2.1205336e-01, 1.3993962e-01 }, + { 2.1113292e-01, 1.4132449e-01 }, { 2.1020344e-01, 1.4270332e-01 }, + { 2.0926495e-01, 1.4407603e-01 }, { 2.0831750e-01, 1.4544257e-01 }, + { 2.0736113e-01, 1.4680288e-01 }, { 2.0639587e-01, 1.4815690e-01 }, + { 2.0542177e-01, 1.4950458e-01 }, { 2.0443887e-01, 1.5084585e-01 }, + { 2.0344722e-01, 1.5218066e-01 }, { 2.0244685e-01, 1.5350895e-01 }, + { 2.0143780e-01, 1.5483066e-01 }, { 2.0042013e-01, 1.5614574e-01 }, + { 1.9939388e-01, 1.5745414e-01 }, { 1.9835908e-01, 1.5875578e-01 }, + { 1.9731578e-01, 1.6005063e-01 }, { 1.9626403e-01, 1.6133862e-01 }, + { 1.9520388e-01, 1.6261970e-01 }, { 1.9413536e-01, 1.6389382e-01 }, + { 1.9305853e-01, 1.6516091e-01 }, { 1.9197343e-01, 1.6642093e-01 }, + { 1.9088010e-01, 1.6767382e-01 }, { 1.8977860e-01, 1.6891953e-01 }, + { 1.8866896e-01, 1.7015800e-01 }, { 1.8755125e-01, 1.7138918e-01 }, + { 1.8642550e-01, 1.7261302e-01 }, { 1.8529177e-01, 1.7382947e-01 }, + { 1.8415009e-01, 1.7503847e-01 }, { 1.8300053e-01, 1.7623997e-01 }, + { 1.8184314e-01, 1.7743392e-01 }, { 1.8067795e-01, 1.7862027e-01 }, + { 1.7950502e-01, 1.7979897e-01 }, { 1.7832440e-01, 1.8096997e-01 }, + { 1.7713614e-01, 1.8213322e-01 }, { 1.7594030e-01, 1.8328866e-01 }, + { 1.7473692e-01, 1.8443625e-01 }, { 1.7352605e-01, 1.8557595e-01 }, + { 1.7230775e-01, 1.8670769e-01 }, { 1.7108207e-01, 1.8783143e-01 }, + { 1.6984906e-01, 1.8894713e-01 }, { 1.6860878e-01, 1.9005474e-01 }, + { 1.6736127e-01, 1.9115420e-01 }, { 1.6610659e-01, 1.9224547e-01 }, + { 1.6484480e-01, 1.9332851e-01 }, { 1.6357595e-01, 1.9440327e-01 }, + { 1.6230008e-01, 1.9546970e-01 }, { 1.6101727e-01, 1.9652776e-01 }, + { 1.5972756e-01, 1.9757740e-01 }, { 1.5843101e-01, 1.9861857e-01 }, + { 1.5712767e-01, 1.9965124e-01 }, { 1.5581760e-01, 2.0067536e-01 }, + { 1.5450085e-01, 2.0169087e-01 }, { 1.5317749e-01, 2.0269775e-01 }, + { 1.5184756e-01, 2.0369595e-01 }, { 1.5051113e-01, 2.0468542e-01 }, + { 1.4916826e-01, 2.0566612e-01 }, { 1.4781899e-01, 2.0663801e-01 }, + { 1.4646339e-01, 2.0760105e-01 }, { 1.4510152e-01, 2.0855520e-01 }, + { 1.4373343e-01, 2.0950041e-01 }, { 1.4235918e-01, 2.1043665e-01 }, + { 1.4097884e-01, 2.1136388e-01 }, { 1.3959246e-01, 2.1228205e-01 }, + { 1.3820009e-01, 2.1319113e-01 }, { 1.3680181e-01, 2.1409107e-01 }, + { 1.3539767e-01, 2.1498185e-01 }, { 1.3398773e-01, 2.1586341e-01 }, + { 1.3257204e-01, 2.1673573e-01 }, { 1.3115068e-01, 2.1759876e-01 }, + { 1.2972370e-01, 2.1845247e-01 }, { 1.2829117e-01, 2.1929683e-01 }, + { 1.2685313e-01, 2.2013179e-01 }, { 1.2540967e-01, 2.2095732e-01 }, + { 1.2396083e-01, 2.2177339e-01 }, { 1.2250668e-01, 2.2257995e-01 }, + { 1.2104729e-01, 2.2337698e-01 }, { 1.1958271e-01, 2.2416445e-01 }, + { 1.1811300e-01, 2.2494231e-01 }, { 1.1663824e-01, 2.2571053e-01 }, + { 1.1515848e-01, 2.2646909e-01 }, { 1.1367379e-01, 2.2721794e-01 }, + { 1.1218422e-01, 2.2795706e-01 }, { 1.1068986e-01, 2.2868642e-01 }, + { 1.0919075e-01, 2.2940598e-01 }, { 1.0768696e-01, 2.3011571e-01 }, + { 1.0617856e-01, 2.3081559e-01 }, { 1.0466561e-01, 2.3150558e-01 }, + { 1.0314818e-01, 2.3218565e-01 }, { 1.0162633e-01, 2.3285577e-01 }, + { 1.0010013e-01, 2.3351592e-01 }, { 9.8569638e-02, 2.3416607e-01 }, + { 9.7034924e-02, 2.3480619e-01 }, { 9.5496054e-02, 2.3543625e-01 }, + { 9.3953093e-02, 2.3605622e-01 }, { 9.2406107e-02, 2.3666608e-01 }, + { 9.0855163e-02, 2.3726580e-01 }, { 8.9300327e-02, 2.3785536e-01 }, + { 8.7741666e-02, 2.3843473e-01 }, { 8.6179246e-02, 2.3900389e-01 }, + { 8.4613135e-02, 2.3956281e-01 }, { 8.3043399e-02, 2.4011147e-01 }, + { 8.1470106e-02, 2.4064984e-01 }, { 7.9893322e-02, 2.4117790e-01 }, + { 7.8313117e-02, 2.4169563e-01 }, { 7.6729556e-02, 2.4220301e-01 }, + { 7.5142709e-02, 2.4270001e-01 }, { 7.3552643e-02, 2.4318662e-01 }, + { 7.1959427e-02, 2.4366281e-01 }, { 7.0363128e-02, 2.4412856e-01 }, + { 6.8763814e-02, 2.4458385e-01 }, { 6.7161555e-02, 2.4502867e-01 }, + { 6.5556419e-02, 2.4546299e-01 }, { 6.3948475e-02, 2.4588679e-01 }, + { 6.2337792e-02, 2.4630007e-01 }, { 6.0724438e-02, 2.4670279e-01 }, + { 5.9108483e-02, 2.4709494e-01 }, { 5.7489996e-02, 2.4747651e-01 }, + { 5.5869046e-02, 2.4784748e-01 }, { 5.4245703e-02, 2.4820783e-01 }, + { 5.2620036e-02, 2.4855755e-01 }, { 5.0992116e-02, 2.4889662e-01 }, + { 4.9362011e-02, 2.4922503e-01 }, { 4.7729791e-02, 2.4954276e-01 }, + { 4.6095527e-02, 2.4984980e-01 }, { 4.4459288e-02, 2.5014615e-01 }, + { 4.2821145e-02, 2.5043177e-01 }, { 4.1181167e-02, 2.5070667e-01 }, + { 3.9539426e-02, 2.5097083e-01 }, { 3.7895990e-02, 2.5122424e-01 }, + { 3.6250931e-02, 2.5146688e-01 }, { 3.4604320e-02, 2.5169876e-01 }, + { 3.2956226e-02, 2.5191985e-01 }, { 3.1306720e-02, 2.5213015e-01 }, + { 2.9655874e-02, 2.5232965e-01 }, { 2.8003757e-02, 2.5251834e-01 }, + { 2.6350440e-02, 2.5269621e-01 }, { 2.4695994e-02, 2.5286326e-01 }, + { 2.3040491e-02, 2.5301948e-01 }, { 2.1384001e-02, 2.5316486e-01 }, + { 1.9726595e-02, 2.5329940e-01 }, { 1.8068343e-02, 2.5342308e-01 }, + { 1.6409318e-02, 2.5353591e-01 }, { 1.4749590e-02, 2.5363788e-01 }, + { 1.3089230e-02, 2.5372898e-01 }, { 1.1428309e-02, 2.5380921e-01 }, + { 9.7668984e-03, 2.5387857e-01 }, { 8.1050697e-03, 2.5393706e-01 }, + { 6.4428938e-03, 2.5398467e-01 }, { 4.7804419e-03, 2.5402140e-01 }, + { 3.1177852e-03, 2.5404724e-01 }, { 1.4549950e-03, 2.5406221e-01 }, } }; diff --git a/tables/mktables.py b/tables/mktables.py index 67d4312..4f6f855 100755 --- a/tables/mktables.py +++ b/tables/mktables.py @@ -125,8 +125,10 @@ def mdct_rot_twiddles(): print('\n--- mdct rot twiddles {:3d} ---'.format(n)) kv = 2 * np.pi * (np.arange(n // 4) + 1/8) / n + scale = np.sqrt( np.sqrt( 4 / n ) ) for (i, k) in enumerate(kv): - print('{{ {:14.7e}, {:14.7e} }},'.format(np.cos(k), np.sin(k)), + print('{{ {:14.7e}, {:14.7e} }},'.format( + np.cos(k) * scale, np.sin(k) * scale), end = '\n' if i%2 == 1 else ' ')