diff --git a/openair1/PHY/INIT/init_top.c b/openair1/PHY/INIT/init_top.c index 6f48f295d2e37adb54e095ab1428a8a01030faa7..e64eda740ca0a9bd8b73335392373e5728c62da4 100644 --- a/openair1/PHY/INIT/init_top.c +++ b/openair1/PHY/INIT/init_top.c @@ -67,15 +67,12 @@ void generate_qpsk_table(void) void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms) { - ccodedot11_init(); - ccodedot11_init_inv(); - ccodelte_init(); ccodelte_init_inv(); + init_dfts(); - phy_generate_viterbi_tables(); phy_generate_viterbi_tables_lte(); load_codinglib(); diff --git a/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c b/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c index e8225aa1fd2b9299875cb17e2287c56ab2b08903..de48a855df6b5814b569cc3d5fcc15f24e28e434 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c @@ -81,7 +81,7 @@ void lte_sync_timefreq(PHY_VARS_UE *ue,int band,unsigned int DL_freq) //compute frequency-domain representation of 6144-sample chunk dft6144((int16_t *)rxp, - sp); + sp,1); /* diff --git a/openair1/PHY/LTE_TRANSPORT/prach.c b/openair1/PHY/LTE_TRANSPORT/prach.c index 5614f67955a813a7db35a0785b0a637a4853f782..10db2bfb66df53fac4ac999e925f25f7cdba5bce 100644 --- a/openair1/PHY/LTE_TRANSPORT/prach.c +++ b/openair1/PHY/LTE_TRANSPORT/prach.c @@ -358,10 +358,10 @@ void rx_prach0(PHY_VARS_eNB *eNB, if (prach_fmt == 4) { dft256(prach2,rxsigF[aa],1); } else { - dft3072(prach2,rxsigF[aa]); + dft3072(prach2,rxsigF[aa],1); if (prach_fmt>1) - dft3072(prach2+6144,rxsigF[aa]+6144); + dft3072(prach2+6144,rxsigF[aa]+6144,1); } break; @@ -372,10 +372,10 @@ void rx_prach0(PHY_VARS_eNB *eNB, dft1024(prach2,rxsigF[aa],1); fft_size = 1024; } else { - dft6144(prach2,rxsigF[aa]); + dft6144(prach2,rxsigF[aa],1); if (prach_fmt>1) - dft6144(prach2+12288,rxsigF[aa]+12288); + dft6144(prach2+12288,rxsigF[aa]+12288,1); fft_size = 6144; } @@ -386,22 +386,22 @@ void rx_prach0(PHY_VARS_eNB *eNB, if (prach_fmt == 4) { dft2048(prach2,rxsigF[aa],1); } else { - dft12288(prach2,rxsigF[aa]); + dft12288(prach2,rxsigF[aa],1); if (prach_fmt>1) - dft12288(prach2+24576,rxsigF[aa]+24576); + dft12288(prach2+24576,rxsigF[aa]+24576,1); } break; case 75: if (prach_fmt == 4) { - dft3072(prach2,rxsigF[aa]); + dft3072(prach2,rxsigF[aa],1); } else { - dft18432(prach2,rxsigF[aa]); + dft18432(prach2,rxsigF[aa],1); if (prach_fmt>1) - dft18432(prach2+36864,rxsigF[aa]+36864); + dft18432(prach2+36864,rxsigF[aa]+36864,1); } break; @@ -411,19 +411,19 @@ void rx_prach0(PHY_VARS_eNB *eNB, if (prach_fmt == 4) { dft4096(prach2,rxsigF[aa],1); } else { - dft24576(prach2,rxsigF[aa]); + dft24576(prach2,rxsigF[aa],1); if (prach_fmt>1) - dft24576(prach2+49152,rxsigF[aa]+49152); + dft24576(prach2+49152,rxsigF[aa]+49152,1); } } else { if (prach_fmt == 4) { - dft3072(prach2,rxsigF[aa]); + dft3072(prach2,rxsigF[aa],1); } else { - dft18432(prach2,rxsigF[aa]); + dft18432(prach2,rxsigF[aa],1); if (prach_fmt>1) - dft18432(prach2+36864,rxsigF[aa]+36864); + dft18432(prach2+36864,rxsigF[aa]+36864,1); } } diff --git a/openair1/PHY/LTE_UE_TRANSPORT/prach_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/prach_ue.c index 6d71f5e36619df0b754340b88bf18563e63aa7ba..f5ab736269657861d2a3ae8710302bdffc7c1d75 100644 --- a/openair1/PHY/LTE_UE_TRANSPORT/prach_ue.c +++ b/openair1/PHY/LTE_UE_TRANSPORT/prach_ue.c @@ -376,7 +376,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 memmove( prach, prach+1024, Ncp<<2 ); prach_len = 512+Ncp; } else { - idft3072(prachF,prach2); + idft3072(prachF,prach2,1); memmove( prach, prach+6144, Ncp<<2 ); prach_len = 3072+Ncp; @@ -395,7 +395,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 memmove( prach, prach+2048, Ncp<<2 ); prach_len = 1024+Ncp; } else { - idft6144(prachF,prach2); + idft6144(prachF,prach2,1); /*for (i=0;i<6144*2;i++) prach2[i]<<=1;*/ memmove( prach, prach+12288, Ncp<<2 ); @@ -415,7 +415,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 memmove( prach, prach+4096, Ncp<<2 ); prach_len = 2048+Ncp; } else { - idft12288(prachF,prach2); + idft12288(prachF,prach2,1); memmove( prach, prach+24576, Ncp<<2 ); prach_len = 12288+Ncp; @@ -429,12 +429,12 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 case 75: if (prach_fmt == 4) { - idft3072(prachF,prach2); + idft3072(prachF,prach2,1); //TODO: account for repeated format in dft output memmove( prach, prach+6144, Ncp<<2 ); prach_len = 3072+Ncp; } else { - idft18432(prachF,prach2); + idft18432(prachF,prach2,1); memmove( prach, prach+36864, Ncp<<2 ); prach_len = 18432+Ncp; @@ -453,7 +453,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 memmove( prach, prach+8192, Ncp<<2 ); prach_len = 4096+Ncp; } else { - idft24576(prachF,prach2); + idft24576(prachF,prach2,1); memmove( prach, prach+49152, Ncp<<2 ); prach_len = 24576+Ncp; @@ -465,12 +465,12 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 } else { if (prach_fmt == 4) { - idft3072(prachF,prach2); + idft3072(prachF,prach2,1); //TODO: account for repeated format in dft output memmove( prach, prach+6144, Ncp<<2 ); prach_len = 3072+Ncp; } else { - idft18432(prachF,prach2); + idft18432(prachF,prach2,1); memmove( prach, prach+36864, Ncp<<2 ); prach_len = 18432+Ncp; printf("Generated prach for 100 PRB, 3/4 sampling\n"); diff --git a/openair1/PHY/TOOLS/Makefile b/openair1/PHY/TOOLS/Makefile index 59b6a1e03beedc51371c2a611964fb3d5a2682b6..017bc7427643cc3f2ecb51da33c579b71f44a724 100644 --- a/openair1/PHY/TOOLS/Makefile +++ b/openair1/PHY/TOOLS/Makefile @@ -1,14 +1,14 @@ lte_dfts_sse4: lte_dfts.c - gcc -O2 -msse4.1 -g -ggdb -o lte_dfts_sse4 lte_dfts.c time_meas.c file_output.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR/COMMON -DMR_MAIN -DNB_ANTENNAS_RX=1 # -DD256STATS #-DD64STATS + gcc -O2 -std=gnu99 -msse4.1 -g -ggdb -o lte_dfts_sse4 lte_dfts.c time_meas.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR_HOME -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR -I$$OPENAIR2_DIR/COMMON -I$$OPENAIR_HOME/common/utils -DMR_MAIN -DNB_ANTENNAS_RX=1 -lm -lpthread # -DD256STATS #-DD64STATS lte_dfts_avx2: lte_dfts.c - gcc -O2 -mavx2 -g -ggdb -o lte_dfts_avx2 lte_dfts.c time_meas.c file_output.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR/COMMON -DMR_MAIN -DNB_ANTENNAS_RX=1 # -DD256STATS #-DD64STATS + gcc -O2 -std=gnu99 -mavx2 -g -ggdb -o lte_dfts_avx2 lte_dfts.c time_meas.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR_HOME -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR -I$$OPENAIR2_DIR/COMMON -I$$OPENAIR_HOME/common/utils -DMR_MAIN -DNB_ANTENNAS_RX=1 -lm -lpthread # -DD256STATS #-DD64STATS lte_dfts_avx2.s: lte_dfts.c - gcc -O2 -mavx2 -S lte_dfts.c time_meas.c file_output.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR/COMMON -DMR_MAIN -DNB_ANTENNAS_RX=1 # -DD256STATS #-DD64STATS + gcc -O2 -std=gnu99 -mavx2 -S lte_dfts.c time_meas.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR_HOME -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR -I$$OPENAIR2_DIR/COMMON -I$$OPENAIR_HOME/common/utils -DMR_MAIN -DNB_ANTENNAS_RX=1 -lm -lpthread # -DD256STATS #-DD64STATS lte_dfts_sse4.s: lte_dfts.c - gcc -O2 -msse4.1 -S lte_dfts.c time_meas.c file_output.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR/COMMON -DMR_MAIN -DNB_ANTENNAS_RX=1 # -DD256STATS #-DD64STATS + gcc -O2 -std=gnu99 -msse4.1 -S lte_dfts.c time_meas.c ../../SIMULATION/TOOLS/taus.c -I$$OPENAIR_HOME -I$$OPENAIR1_DIR -I$$OPENAIR_TARGETS -I$$OPENAIR2_DIR -I$$OPENAIR2_DIR/COMMON -I$$OPENAIR_HOME/common/utils -DMR_MAIN -DNB_ANTENNAS_RX=1 -lm # -DD256STATS #-DD64STATS dft_cycles_avx2: lte_dfts_avx2 ./lte_dfts_avx2 | egrep cycles diff --git a/openair1/PHY/TOOLS/lte_dfts.c b/openair1/PHY/TOOLS/lte_dfts.c index 4bf6afd1fd367d99d1aa06635f93baefd7082454..01c20dbce68bfc7dc4d745c114f7bd6aacf065fb 100644 --- a/openair1/PHY/TOOLS/lte_dfts.c +++ b/openair1/PHY/TOOLS/lte_dfts.c @@ -24,6 +24,13 @@ #include <string.h> #include <stdint.h> +#include <math.h> +#include <pthread.h> +#include <execinfo.h> + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif #ifndef MR_MAIN #include "PHY/defs_common.h" @@ -31,18 +38,19 @@ #include "tools_defs.h" #else #include "time_meas.h" -#include <math.h> - +#include "UTIL/LOG/log.h" #define debug_msg #define ONE_OVER_SQRT2_Q15 23170 - +int oai_exit=0; #endif #define ONE_OVER_SQRT3_Q15 18919 #include "PHY/sse_intrin.h" +#include "assertions.h" + #define print_shorts(s,x) printf("%s %d,%d,%d,%d,%d,%d,%d,%d\n",s,(x)[0],(x)[1],(x)[2],(x)[3],(x)[4],(x)[5],(x)[6],(x)[7]) #define print_shorts256(s,x) printf("%s %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",s,(x)[0],(x)[1],(x)[2],(x)[3],(x)[4],(x)[5],(x)[6],(x)[7],(x)[8],(x)[9],(x)[10],(x)[11],(x)[12],(x)[13],(x)[14],(x)[15]) @@ -54,6 +62,8 @@ const static int16_t conjugatedft[32] __attribute__((aligned(32))) = {-1,1,-1,1, const static int16_t reflip[32] __attribute__((aligned(32))) = {1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1}; + + #if defined(__x86_64__) || defined(__i386__) static inline void cmac(__m128i a,__m128i b, __m128i *re32, __m128i *im32) __attribute__((always_inline)); static inline void cmac(__m128i a,__m128i b, __m128i *re32, __m128i *im32) @@ -4134,10 +4144,8 @@ void idft512(int16_t *x,int16_t *y,int scale) #endif -int16_t tw1024[1536] __attribute__((aligned(32))) = { 32767,0,32766,-202,32764,-403,32761,-604,32757,-805,32751,-1006,32744,-1207,32736,-1407,32727,-1608,32717,-1809,32705,-2010,32692,-2210,32678,-2411,32662,-2611,32646,-2812,32628,-3012,32609,-3212,32588,-3412,32567,-3612,32544,-3812,32520,-4012,32495,-4211,32468,-4410,32441,-4609,32412,-4808,32382,-5007,32350,-5206,32318,-5404,32284,-5602,32249,-5800,32213,-5998,32176,-6196,32137,-6393,32097,-6590,32056,-6787,32014,-6983,31970,-7180,31926,-7376,31880,-7572,31833,-7767,31785,-7962,31735,-8157,31684,-8352,31633,-8546,31580,-8740,31525,-8933,31470,-9127,31413,-9320,31356,-9512,31297,-9704,31236,-9896,31175,-10088,31113,-10279,31049,-10470,30984,-10660,30918,-10850,30851,-11039,30783,-11228,30713,-11417,30643,-11605,30571,-11793,30498,-11981,30424,-12167,30349,-12354,30272,-12540,30195,-12725,30116,-12910,30036,-13095,29955,-13279,29873,-13463,29790,-13646,29706,-13828,29621,-14010,29534,-14192,29446,-14373,29358,-14553,29268,-14733,29177,-14912,29085,-15091,28992,-15269,28897,-15447,28802,-15624,28706,-15800,28608,-15976,28510,-16151,28410,-16326,28309,-16500,28208,-16673,28105,-16846,28001,-17018,27896,-17190,27790,-17361,27683,-17531,27575,-17700,27466,-17869,27355,-18037,27244,-18205,27132,-18372,27019,-18538,26905,-18703,26789,-18868,26673,-19032,26556,-19195,26437,-19358,26318,-19520,26198,-19681,26077,-19841,25954,-20001,25831,-20160,25707,-20318,25582,-20475,25456,-20632,25329,-20788,25201,-20943,25072,-21097,24942,-21250,24811,-21403,24679,-21555,24546,-21706,24413,-21856,24278,-22005,24143,-22154,24006,-22302,23869,-22449,23731,-22595,23592,-22740,23452,-22884,23311,-23028,23169,-23170,23027,-23312,22883,-23453,22739,-23593,22594,-23732,22448,-23870,22301,-24007,22153,-24144,22004,-24279,21855,-24414,21705,-24547,21554,-24680,21402,-24812,21249,-24943,21096,-25073,20942,-25202,20787,-25330,20631,-25457,20474,-25583,20317,-25708,20159,-25832,20000,-25955,19840,-26078,19680,-26199,19519,-26319,19357,-26438,19194,-26557,19031,-26674,18867,-26790,18702,-26906,18537,-27020,18371,-27133,18204,-27245,18036,-27356,17868,-27467,17699,-27576,17530,-27684,17360,-27791,17189,-27897,17017,-28002,16845,-28106,16672,-28209,16499,-28310,16325,-28411,16150,-28511,15975,-28609,15799,-28707,15623,-28803,15446,-28898,15268,-28993,15090,-29086,14911,-29178,14732,-29269,14552,-29359,14372,-29447,14191,-29535,14009,-29622,13827,-29707,13645,-29791,13462,-29874,13278,-29956,13094,-30037,12909,-30117,12724,-30196,12539,-30273,12353,-30350,12166,-30425,11980,-30499,11792,-30572,11604,-30644,11416,-30714,11227,-30784,11038,-30852,10849,-30919,10659,-30985,10469,-31050,10278,-31114,10087,-31176,9895,-31237,9703,-31298,9511,-31357,9319,-31414,9126,-31471,8932,-31526,8739,-31581,8545,-31634,8351,-31685,8156,-31736,7961,-31786,7766,-31834,7571,-31881,7375,-31927,7179,-31971,6982,-32015,6786,-32057,6589,-32098,6392,-32138,6195,-32177,5997,-32214,5799,-32250,5601,-32285,5403,-32319,5205,-32351,5006,-32383,4807,-32413,4608,-32442,4409,-32469,4210,-32496,4011,-32521,3811,-32545,3611,-32568,3411,-32589,3211,-32610,3011,-32629,2811,-32647,2610,-32663,2410,-32679,2209,-32693,2009,-32706,1808,-32718,1607,-32728,1406,-32737,1206,-32745,1005,-32752,804,-32758,603,-32762,402,-32765,201,-32767, - 32767,0,32764,-403,32757,-805,32744,-1207,32727,-1608,32705,-2010,32678,-2411,32646,-2812,32609,-3212,32567,-3612,32520,-4012,32468,-4410,32412,-4808,32350,-5206,32284,-5602,32213,-5998,32137,-6393,32056,-6787,31970,-7180,31880,-7572,31785,-7962,31684,-8352,31580,-8740,31470,-9127,31356,-9512,31236,-9896,31113,-10279,30984,-10660,30851,-11039,30713,-11417,30571,-11793,30424,-12167,30272,-12540,30116,-12910,29955,-13279,29790,-13646,29621,-14010,29446,-14373,29268,-14733,29085,-15091,28897,-15447,28706,-15800,28510,-16151,28309,-16500,28105,-16846,27896,-17190,27683,-17531,27466,-17869,27244,-18205,27019,-18538,26789,-18868,26556,-19195,26318,-19520,26077,-19841,25831,-20160,25582,-20475,25329,-20788,25072,-21097,24811,-21403,24546,-21706,24278,-22005,24006,-22302,23731,-22595,23452,-22884,23169,-23170,22883,-23453,22594,-23732,22301,-24007,22004,-24279,21705,-24547,21402,-24812,21096,-25073,20787,-25330,20474,-25583,20159,-25832,19840,-26078,19519,-26319,19194,-26557,18867,-26790,18537,-27020,18204,-27245,17868,-27467,17530,-27684,17189,-27897,16845,-28106,16499,-28310,16150,-28511,15799,-28707,15446,-28898,15090,-29086,14732,-29269,14372,-29447,14009,-29622,13645,-29791,13278,-29956,12909,-30117,12539,-30273,12166,-30425,11792,-30572,11416,-30714,11038,-30852,10659,-30985,10278,-31114,9895,-31237,9511,-31357,9126,-31471,8739,-31581,8351,-31685,7961,-31786,7571,-31881,7179,-31971,6786,-32057,6392,-32138,5997,-32214,5601,-32285,5205,-32351,4807,-32413,4409,-32469,4011,-32521,3611,-32568,3211,-32610,2811,-32647,2410,-32679,2009,-32706,1607,-32728,1206,-32745,804,-32758,402,-32765,0,-32767,-403,-32765,-805,-32758,-1207,-32745,-1608,-32728,-2010,-32706,-2411,-32679,-2812,-32647,-3212,-32610,-3612,-32568,-4012,-32521,-4410,-32469,-4808,-32413,-5206,-32351,-5602,-32285,-5998,-32214,-6393,-32138,-6787,-32057,-7180,-31971,-7572,-31881,-7962,-31786,-8352,-31685,-8740,-31581,-9127,-31471,-9512,-31357,-9896,-31237,-10279,-31114,-10660,-30985,-11039,-30852,-11417,-30714,-11793,-30572,-12167,-30425,-12540,-30273,-12910,-30117,-13279,-29956,-13646,-29791,-14010,-29622,-14373,-29447,-14733,-29269,-15091,-29086,-15447,-28898,-15800,-28707,-16151,-28511,-16500,-28310,-16846,-28106,-17190,-27897,-17531,-27684,-17869,-27467,-18205,-27245,-18538,-27020,-18868,-26790,-19195,-26557,-19520,-26319,-19841,-26078,-20160,-25832,-20475,-25583,-20788,-25330,-21097,-25073,-21403,-24812,-21706,-24547,-22005,-24279,-22302,-24007,-22595,-23732,-22884,-23453,-23170,-23170,-23453,-22884,-23732,-22595,-24007,-22302,-24279,-22005,-24547,-21706,-24812,-21403,-25073,-21097,-25330,-20788,-25583,-20475,-25832,-20160,-26078,-19841,-26319,-19520,-26557,-19195,-26790,-18868,-27020,-18538,-27245,-18205,-27467,-17869,-27684,-17531,-27897,-17190,-28106,-16846,-28310,-16500,-28511,-16151,-28707,-15800,-28898,-15447,-29086,-15091,-29269,-14733,-29447,-14373,-29622,-14010,-29791,-13646,-29956,-13279,-30117,-12910,-30273,-12540,-30425,-12167,-30572,-11793,-30714,-11417,-30852,-11039,-30985,-10660,-31114,-10279,-31237,-9896,-31357,-9512,-31471,-9127,-31581,-8740,-31685,-8352,-31786,-7962,-31881,-7572,-31971,-7180,-32057,-6787,-32138,-6393,-32214,-5998,-32285,-5602,-32351,-5206,-32413,-4808,-32469,-4410,-32521,-4012,-32568,-3612,-32610,-3212,-32647,-2812,-32679,-2411,-32706,-2010,-32728,-1608,-32745,-1207,-32758,-805,-32765,-403, - 32767,0,32761,-604,32744,-1207,32717,-1809,32678,-2411,32628,-3012,32567,-3612,32495,-4211,32412,-4808,32318,-5404,32213,-5998,32097,-6590,31970,-7180,31833,-7767,31684,-8352,31525,-8933,31356,-9512,31175,-10088,30984,-10660,30783,-11228,30571,-11793,30349,-12354,30116,-12910,29873,-13463,29621,-14010,29358,-14553,29085,-15091,28802,-15624,28510,-16151,28208,-16673,27896,-17190,27575,-17700,27244,-18205,26905,-18703,26556,-19195,26198,-19681,25831,-20160,25456,-20632,25072,-21097,24679,-21555,24278,-22005,23869,-22449,23452,-22884,23027,-23312,22594,-23732,22153,-24144,21705,-24547,21249,-24943,20787,-25330,20317,-25708,19840,-26078,19357,-26438,18867,-26790,18371,-27133,17868,-27467,17360,-27791,16845,-28106,16325,-28411,15799,-28707,15268,-28993,14732,-29269,14191,-29535,13645,-29791,13094,-30037,12539,-30273,11980,-30499,11416,-30714,10849,-30919,10278,-31114,9703,-31298,9126,-31471,8545,-31634,7961,-31786,7375,-31927,6786,-32057,6195,-32177,5601,-32285,5006,-32383,4409,-32469,3811,-32545,3211,-32610,2610,-32663,2009,-32706,1406,-32737,804,-32758,201,-32767,-403,-32765,-1006,-32752,-1608,-32728,-2210,-32693,-2812,-32647,-3412,-32589,-4012,-32521,-4609,-32442,-5206,-32351,-5800,-32250,-6393,-32138,-6983,-32015,-7572,-31881,-8157,-31736,-8740,-31581,-9320,-31414,-9896,-31237,-10470,-31050,-11039,-30852,-11605,-30644,-12167,-30425,-12725,-30196,-13279,-29956,-13828,-29707,-14373,-29447,-14912,-29178,-15447,-28898,-15976,-28609,-16500,-28310,-17018,-28002,-17531,-27684,-18037,-27356,-18538,-27020,-19032,-26674,-19520,-26319,-20001,-25955,-20475,-25583,-20943,-25202,-21403,-24812,-21856,-24414,-22302,-24007,-22740,-23593,-23170,-23170,-23593,-22740,-24007,-22302,-24414,-21856,-24812,-21403,-25202,-20943,-25583,-20475,-25955,-20001,-26319,-19520,-26674,-19032,-27020,-18538,-27356,-18037,-27684,-17531,-28002,-17018,-28310,-16500,-28609,-15976,-28898,-15447,-29178,-14912,-29447,-14373,-29707,-13828,-29956,-13279,-30196,-12725,-30425,-12167,-30644,-11605,-30852,-11039,-31050,-10470,-31237,-9896,-31414,-9320,-31581,-8740,-31736,-8157,-31881,-7572,-32015,-6983,-32138,-6393,-32250,-5800,-32351,-5206,-32442,-4609,-32521,-4012,-32589,-3412,-32647,-2812,-32693,-2210,-32728,-1608,-32752,-1006,-32765,-403,-32767,201,-32758,804,-32737,1406,-32706,2009,-32663,2610,-32610,3211,-32545,3811,-32469,4409,-32383,5006,-32285,5601,-32177,6195,-32057,6786,-31927,7375,-31786,7961,-31634,8545,-31471,9126,-31298,9703,-31114,10278,-30919,10849,-30714,11416,-30499,11980,-30273,12539,-30037,13094,-29791,13645,-29535,14191,-29269,14732,-28993,15268,-28707,15799,-28411,16325,-28106,16845,-27791,17360,-27467,17868,-27133,18371,-26790,18867,-26438,19357,-26078,19840,-25708,20317,-25330,20787,-24943,21249,-24547,21705,-24144,22153,-23732,22594,-23312,23027,-22884,23452,-22449,23869,-22005,24278,-21555,24679,-21097,25072,-20632,25456,-20160,25831,-19681,26198,-19195,26556,-18703,26905,-18205,27244,-17700,27575,-17190,27896,-16673,28208,-16151,28510,-15624,28802,-15091,29085,-14553,29358,-14010,29621,-13463,29873,-12910,30116,-12354,30349,-11793,30571,-11228,30783,-10660,30984,-10088,31175,-9512,31356,-8933,31525,-8352,31684,-7767,31833,-7180,31970,-6590,32097,-5998,32213,-5404,32318,-4808,32412,-4211,32495,-3612,32567,-3012,32628,-2411,32678,-1809,32717,-1207,32744,-604,32761 - }; +int16_t tw1024[1536] __attribute__((aligned(32))); + #ifndef __AVX2__ void dft1024(int16_t *x,int16_t *y,int scale) { @@ -4365,7 +4373,7 @@ void idft1024(int16_t *x,int16_t *y,int scale) } #endif -int16_t tw2048[2048] __attribute__((aligned(32))) = {32767,0,32766,-101,32766,-202,32765,-302,32764,-403,32763,-503,32761,-604,32759,-704,32757,-805,32754,-905,32751,-1006,32748,-1106,32744,-1207,32740,-1307,32736,-1407,32732,-1508,32727,-1608,32722,-1709,32717,-1809,32711,-1909,32705,-2010,32699,-2110,32692,-2210,32685,-2311,32678,-2411,32670,-2511,32662,-2611,32654,-2712,32646,-2812,32637,-2912,32628,-3012,32618,-3112,32609,-3212,32599,-3312,32588,-3412,32578,-3512,32567,-3612,32556,-3712,32544,-3812,32532,-3912,32520,-4012,32508,-4111,32495,-4211,32482,-4311,32468,-4410,32455,-4510,32441,-4609,32426,-4709,32412,-4808,32397,-4908,32382,-5007,32366,-5107,32350,-5206,32334,-5305,32318,-5404,32301,-5503,32284,-5602,32267,-5701,32249,-5800,32231,-5899,32213,-5998,32194,-6097,32176,-6196,32156,-6294,32137,-6393,32117,-6492,32097,-6590,32077,-6689,32056,-6787,32035,-6885,32014,-6983,31992,-7082,31970,-7180,31948,-7278,31926,-7376,31903,-7474,31880,-7572,31856,-7669,31833,-7767,31809,-7865,31785,-7962,31760,-8060,31735,-8157,31710,-8254,31684,-8352,31659,-8449,31633,-8546,31606,-8643,31580,-8740,31553,-8837,31525,-8933,31498,-9030,31470,-9127,31442,-9223,31413,-9320,31385,-9416,31356,-9512,31326,-9608,31297,-9704,31267,-9800,31236,-9896,31206,-9992,31175,-10088,31144,-10183,31113,-10279,31081,-10374,31049,-10470,31017,-10565,30984,-10660,30951,-10755,30918,-10850,30885,-10945,30851,-11039,30817,-11134,30783,-11228,30748,-11323,30713,-11417,30678,-11511,30643,-11605,30607,-11699,30571,-11793,30535,-11887,30498,-11981,30461,-12074,30424,-12167,30386,-12261,30349,-12354,30311,-12447,30272,-12540,30234,-12633,30195,-12725,30156,-12818,30116,-12910,30076,-13003,30036,-13095,29996,-13187,29955,-13279,29915,-13371,29873,-13463,29832,-13554,29790,-13646,29748,-13737,29706,-13828,29663,-13919,29621,-14010,29577,-14101,29534,-14192,29490,-14282,29446,-14373,29402,-14463,29358,-14553,29313,-14643,29268,-14733,29222,-14823,29177,-14912,29131,-15002,29085,-15091,29038,-15180,28992,-15269,28945,-15358,28897,-15447,28850,-15535,28802,-15624,28754,-15712,28706,-15800,28657,-15888,28608,-15976,28559,-16064,28510,-16151,28460,-16239,28410,-16326,28360,-16413,28309,-16500,28259,-16587,28208,-16673,28156,-16760,28105,-16846,28053,-16932,28001,-17018,27948,-17104,27896,-17190,27843,-17275,27790,-17361,27736,-17446,27683,-17531,27629,-17616,27575,-17700,27520,-17785,27466,-17869,27411,-17953,27355,-18037,27300,-18121,27244,-18205,27188,-18288,27132,-18372,27076,-18455,27019,-18538,26962,-18621,26905,-18703,26847,-18786,26789,-18868,26731,-18950,26673,-19032,26615,-19114,26556,-19195,26497,-19277,26437,-19358,26378,-19439,26318,-19520,26258,-19600,26198,-19681,26137,-19761,26077,-19841,26016,-19921,25954,-20001,25893,-20080,25831,-20160,25769,-20239,25707,-20318,25645,-20397,25582,-20475,25519,-20554,25456,-20632,25392,-20710,25329,-20788,25265,-20865,25201,-20943,25136,-21020,25072,-21097,25007,-21174,24942,-21250,24877,-21327,24811,-21403,24745,-21479,24679,-21555,24613,-21630,24546,-21706,24480,-21781,24413,-21856,24346,-21931,24278,-22005,24211,-22080,24143,-22154,24075,-22228,24006,-22302,23938,-22375,23869,-22449,23800,-22522,23731,-22595,23661,-22667,23592,-22740,23522,-22812,23452,-22884,23382,-22956,23311,-23028,23240,-23099,23169,-23170,23098,-23241,23027,-23312,22955,-23383,22883,-23453,22811,-23523,22739,-23593,22666,-23662,22594,-23732,22521,-23801,22448,-23870,22374,-23939,22301,-24007,22227,-24076,22153,-24144,22079,-24212,22004,-24279,21930,-24347,21855,-24414,21780,-24481,21705,-24547,21629,-24614,21554,-24680,21478,-24746,21402,-24812,21326,-24878,21249,-24943,21173,-25008,21096,-25073,21019,-25137,20942,-25202,20864,-25266,20787,-25330,20709,-25393,20631,-25457,20553,-25520,20474,-25583,20396,-25646,20317,-25708,20238,-25770,20159,-25832,20079,-25894,20000,-25955,19920,-26017,19840,-26078,19760,-26138,19680,-26199,19599,-26259,19519,-26319,19438,-26379,19357,-26438,19276,-26498,19194,-26557,19113,-26616,19031,-26674,18949,-26732,18867,-26790,18785,-26848,18702,-26906,18620,-26963,18537,-27020,18454,-27077,18371,-27133,18287,-27189,18204,-27245,18120,-27301,18036,-27356,17952,-27412,17868,-27467,17784,-27521,17699,-27576,17615,-27630,17530,-27684,17445,-27737,17360,-27791,17274,-27844,17189,-27897,17103,-27949,17017,-28002,16931,-28054,16845,-28106,16759,-28157,16672,-28209,16586,-28260,16499,-28310,16412,-28361,16325,-28411,16238,-28461,16150,-28511,16063,-28560,15975,-28609,15887,-28658,15799,-28707,15711,-28755,15623,-28803,15534,-28851,15446,-28898,15357,-28946,15268,-28993,15179,-29039,15090,-29086,15001,-29132,14911,-29178,14822,-29223,14732,-29269,14642,-29314,14552,-29359,14462,-29403,14372,-29447,14281,-29491,14191,-29535,14100,-29578,14009,-29622,13918,-29664,13827,-29707,13736,-29749,13645,-29791,13553,-29833,13462,-29874,13370,-29916,13278,-29956,13186,-29997,13094,-30037,13002,-30077,12909,-30117,12817,-30157,12724,-30196,12632,-30235,12539,-30273,12446,-30312,12353,-30350,12260,-30387,12166,-30425,12073,-30462,11980,-30499,11886,-30536,11792,-30572,11698,-30608,11604,-30644,11510,-30679,11416,-30714,11322,-30749,11227,-30784,11133,-30818,11038,-30852,10944,-30886,10849,-30919,10754,-30952,10659,-30985,10564,-31018,10469,-31050,10373,-31082,10278,-31114,10182,-31145,10087,-31176,9991,-31207,9895,-31237,9799,-31268,9703,-31298,9607,-31327,9511,-31357,9415,-31386,9319,-31414,9222,-31443,9126,-31471,9029,-31499,8932,-31526,8836,-31554,8739,-31581,8642,-31607,8545,-31634,8448,-31660,8351,-31685,8253,-31711,8156,-31736,8059,-31761,7961,-31786,7864,-31810,7766,-31834,7668,-31857,7571,-31881,7473,-31904,7375,-31927,7277,-31949,7179,-31971,7081,-31993,6982,-32015,6884,-32036,6786,-32057,6688,-32078,6589,-32098,6491,-32118,6392,-32138,6293,-32157,6195,-32177,6096,-32195,5997,-32214,5898,-32232,5799,-32250,5700,-32268,5601,-32285,5502,-32302,5403,-32319,5304,-32335,5205,-32351,5106,-32367,5006,-32383,4907,-32398,4807,-32413,4708,-32427,4608,-32442,4509,-32456,4409,-32469,4310,-32483,4210,-32496,4110,-32509,4011,-32521,3911,-32533,3811,-32545,3711,-32557,3611,-32568,3511,-32579,3411,-32589,3311,-32600,3211,-32610,3111,-32619,3011,-32629,2911,-32638,2811,-32647,2711,-32655,2610,-32663,2510,-32671,2410,-32679,2310,-32686,2209,-32693,2109,-32700,2009,-32706,1908,-32712,1808,-32718,1708,-32723,1607,-32728,1507,-32733,1406,-32737,1306,-32741,1206,-32745,1105,-32749,1005,-32752,904,-32755,804,-32758,703,-32760,603,-32762,502,-32764,402,-32765,301,-32766,201,-32767,100,-32767,0,-32767,-101,-32767,-202,-32767,-302,-32766,-403,-32765,-503,-32764,-604,-32762,-704,-32760,-805,-32758,-905,-32755,-1006,-32752,-1106,-32749,-1207,-32745,-1307,-32741,-1407,-32737,-1508,-32733,-1608,-32728,-1709,-32723,-1809,-32718,-1909,-32712,-2010,-32706,-2110,-32700,-2210,-32693,-2311,-32686,-2411,-32679,-2511,-32671,-2611,-32663,-2712,-32655,-2812,-32647,-2912,-32638,-3012,-32629,-3112,-32619,-3212,-32610,-3312,-32600,-3412,-32589,-3512,-32579,-3612,-32568,-3712,-32557,-3812,-32545,-3912,-32533,-4012,-32521,-4111,-32509,-4211,-32496,-4311,-32483,-4410,-32469,-4510,-32456,-4609,-32442,-4709,-32427,-4808,-32413,-4908,-32398,-5007,-32383,-5107,-32367,-5206,-32351,-5305,-32335,-5404,-32319,-5503,-32302,-5602,-32285,-5701,-32268,-5800,-32250,-5899,-32232,-5998,-32214,-6097,-32195,-6196,-32177,-6294,-32157,-6393,-32138,-6492,-32118,-6590,-32098,-6689,-32078,-6787,-32057,-6885,-32036,-6983,-32015,-7082,-31993,-7180,-31971,-7278,-31949,-7376,-31927,-7474,-31904,-7572,-31881,-7669,-31857,-7767,-31834,-7865,-31810,-7962,-31786,-8060,-31761,-8157,-31736,-8254,-31711,-8352,-31685,-8449,-31660,-8546,-31634,-8643,-31607,-8740,-31581,-8837,-31554,-8933,-31526,-9030,-31499,-9127,-31471,-9223,-31443,-9320,-31414,-9416,-31386,-9512,-31357,-9608,-31327,-9704,-31298,-9800,-31268,-9896,-31237,-9992,-31207,-10088,-31176,-10183,-31145,-10279,-31114,-10374,-31082,-10470,-31050,-10565,-31018,-10660,-30985,-10755,-30952,-10850,-30919,-10945,-30886,-11039,-30852,-11134,-30818,-11228,-30784,-11323,-30749,-11417,-30714,-11511,-30679,-11605,-30644,-11699,-30608,-11793,-30572,-11887,-30536,-11981,-30499,-12074,-30462,-12167,-30425,-12261,-30387,-12354,-30350,-12447,-30312,-12540,-30273,-12633,-30235,-12725,-30196,-12818,-30157,-12910,-30117,-13003,-30077,-13095,-30037,-13187,-29997,-13279,-29956,-13371,-29916,-13463,-29874,-13554,-29833,-13646,-29791,-13737,-29749,-13828,-29707,-13919,-29664,-14010,-29622,-14101,-29578,-14192,-29535,-14282,-29491,-14373,-29447,-14463,-29403,-14553,-29359,-14643,-29314,-14733,-29269,-14823,-29223,-14912,-29178,-15002,-29132,-15091,-29086,-15180,-29039,-15269,-28993,-15358,-28946,-15447,-28898,-15535,-28851,-15624,-28803,-15712,-28755,-15800,-28707,-15888,-28658,-15976,-28609,-16064,-28560,-16151,-28511,-16239,-28461,-16326,-28411,-16413,-28361,-16500,-28310,-16587,-28260,-16673,-28209,-16760,-28157,-16846,-28106,-16932,-28054,-17018,-28002,-17104,-27949,-17190,-27897,-17275,-27844,-17361,-27791,-17446,-27737,-17531,-27684,-17616,-27630,-17700,-27576,-17785,-27521,-17869,-27467,-17953,-27412,-18037,-27356,-18121,-27301,-18205,-27245,-18288,-27189,-18372,-27133,-18455,-27077,-18538,-27020,-18621,-26963,-18703,-26906,-18786,-26848,-18868,-26790,-18950,-26732,-19032,-26674,-19114,-26616,-19195,-26557,-19277,-26498,-19358,-26438,-19439,-26379,-19520,-26319,-19600,-26259,-19681,-26199,-19761,-26138,-19841,-26078,-19921,-26017,-20001,-25955,-20080,-25894,-20160,-25832,-20239,-25770,-20318,-25708,-20397,-25646,-20475,-25583,-20554,-25520,-20632,-25457,-20710,-25393,-20788,-25330,-20865,-25266,-20943,-25202,-21020,-25137,-21097,-25073,-21174,-25008,-21250,-24943,-21327,-24878,-21403,-24812,-21479,-24746,-21555,-24680,-21630,-24614,-21706,-24547,-21781,-24481,-21856,-24414,-21931,-24347,-22005,-24279,-22080,-24212,-22154,-24144,-22228,-24076,-22302,-24007,-22375,-23939,-22449,-23870,-22522,-23801,-22595,-23732,-22667,-23662,-22740,-23593,-22812,-23523,-22884,-23453,-22956,-23383,-23028,-23312,-23099,-23241,-23170,-23170,-23241,-23099,-23312,-23028,-23383,-22956,-23453,-22884,-23523,-22812,-23593,-22740,-23662,-22667,-23732,-22595,-23801,-22522,-23870,-22449,-23939,-22375,-24007,-22302,-24076,-22228,-24144,-22154,-24212,-22080,-24279,-22005,-24347,-21931,-24414,-21856,-24481,-21781,-24547,-21706,-24614,-21630,-24680,-21555,-24746,-21479,-24812,-21403,-24878,-21327,-24943,-21250,-25008,-21174,-25073,-21097,-25137,-21020,-25202,-20943,-25266,-20865,-25330,-20788,-25393,-20710,-25457,-20632,-25520,-20554,-25583,-20475,-25646,-20397,-25708,-20318,-25770,-20239,-25832,-20160,-25894,-20080,-25955,-20001,-26017,-19921,-26078,-19841,-26138,-19761,-26199,-19681,-26259,-19600,-26319,-19520,-26379,-19439,-26438,-19358,-26498,-19277,-26557,-19195,-26616,-19114,-26674,-19032,-26732,-18950,-26790,-18868,-26848,-18786,-26906,-18703,-26963,-18621,-27020,-18538,-27077,-18455,-27133,-18372,-27189,-18288,-27245,-18205,-27301,-18121,-27356,-18037,-27412,-17953,-27467,-17869,-27521,-17785,-27576,-17700,-27630,-17616,-27684,-17531,-27737,-17446,-27791,-17361,-27844,-17275,-27897,-17190,-27949,-17104,-28002,-17018,-28054,-16932,-28106,-16846,-28157,-16760,-28209,-16673,-28260,-16587,-28310,-16500,-28361,-16413,-28411,-16326,-28461,-16239,-28511,-16151,-28560,-16064,-28609,-15976,-28658,-15888,-28707,-15800,-28755,-15712,-28803,-15624,-28851,-15535,-28898,-15447,-28946,-15358,-28993,-15269,-29039,-15180,-29086,-15091,-29132,-15002,-29178,-14912,-29223,-14823,-29269,-14733,-29314,-14643,-29359,-14553,-29403,-14463,-29447,-14373,-29491,-14282,-29535,-14192,-29578,-14101,-29622,-14010,-29664,-13919,-29707,-13828,-29749,-13737,-29791,-13646,-29833,-13554,-29874,-13463,-29916,-13371,-29956,-13279,-29997,-13187,-30037,-13095,-30077,-13003,-30117,-12910,-30157,-12818,-30196,-12725,-30235,-12633,-30273,-12540,-30312,-12447,-30350,-12354,-30387,-12261,-30425,-12167,-30462,-12074,-30499,-11981,-30536,-11887,-30572,-11793,-30608,-11699,-30644,-11605,-30679,-11511,-30714,-11417,-30749,-11323,-30784,-11228,-30818,-11134,-30852,-11039,-30886,-10945,-30919,-10850,-30952,-10755,-30985,-10660,-31018,-10565,-31050,-10470,-31082,-10374,-31114,-10279,-31145,-10183,-31176,-10088,-31207,-9992,-31237,-9896,-31268,-9800,-31298,-9704,-31327,-9608,-31357,-9512,-31386,-9416,-31414,-9320,-31443,-9223,-31471,-9127,-31499,-9030,-31526,-8933,-31554,-8837,-31581,-8740,-31607,-8643,-31634,-8546,-31660,-8449,-31685,-8352,-31711,-8254,-31736,-8157,-31761,-8060,-31786,-7962,-31810,-7865,-31834,-7767,-31857,-7669,-31881,-7572,-31904,-7474,-31927,-7376,-31949,-7278,-31971,-7180,-31993,-7082,-32015,-6983,-32036,-6885,-32057,-6787,-32078,-6689,-32098,-6590,-32118,-6492,-32138,-6393,-32157,-6294,-32177,-6196,-32195,-6097,-32214,-5998,-32232,-5899,-32250,-5800,-32268,-5701,-32285,-5602,-32302,-5503,-32319,-5404,-32335,-5305,-32351,-5206,-32367,-5107,-32383,-5007,-32398,-4908,-32413,-4808,-32427,-4709,-32442,-4609,-32456,-4510,-32469,-4410,-32483,-4311,-32496,-4211,-32509,-4111,-32521,-4012,-32533,-3912,-32545,-3812,-32557,-3712,-32568,-3612,-32579,-3512,-32589,-3412,-32600,-3312,-32610,-3212,-32619,-3112,-32629,-3012,-32638,-2912,-32647,-2812,-32655,-2712,-32663,-2611,-32671,-2511,-32679,-2411,-32686,-2311,-32693,-2210,-32700,-2110,-32706,-2010,-32712,-1909,-32718,-1809,-32723,-1709,-32728,-1608,-32733,-1508,-32737,-1407,-32741,-1307,-32745,-1207,-32749,-1106,-32752,-1006,-32755,-905,-32758,-805,-32760,-704,-32762,-604,-32764,-503,-32765,-403,-32766,-302,-32767,-202,-32767,-101}; +int16_t tw2048[2048] __attribute__((aligned(32))); #ifndef __AVX2__ void dft2048(int16_t *x,int16_t *y,int scale) @@ -4732,7 +4740,9 @@ void idft2048(int16_t *x,int16_t *y,int scale) #endif -#include "twiddles4096.h" + + +int16_t tw4096[3*2*1024]; #ifndef __AVX2__ void dft4096(int16_t *x,int16_t *y,int scale) @@ -4965,7 +4975,7 @@ void idft4096(int16_t *x,int16_t *y,int scale) #endif //__AVX2__ -#include "twiddles8192.h" +int16_t tw8192[2*4096] __attribute__((aligned(32))); #ifndef __AVX2__ void dft8192(int16_t *x,int16_t *y,int scale) @@ -5154,6 +5164,7 @@ void dft8192(int16_t *x,int16_t *y,int scale) simd256_q15_t xtmp[1024],*xtmpp,*x256 = (simd256_q15_t *)x; simd256_q15_t ytmp[1024],*tw8192_256p=(simd256_q15_t *)tw8192,*y256=(simd256_q15_t *)y,*y256p=(simd256_q15_t *)y; + simd256_q15_t *ytmpp = &ytmp[0]; int i; simd256_q15_t ONE_OVER_SQRT2_Q15_128 = set1_int16_simd256(ONE_OVER_SQRT2_Q15); @@ -5332,7 +5343,8 @@ void idft8192(int16_t *x,int16_t *y,int scale) #endif -#include "twiddle1536.h" +int16_t twa1536[1024],twb1536[1024]; + // 512 x 3 void idft1536(int16_t *input, int16_t *output, int scale) { @@ -5447,24 +5459,121 @@ void dft1536(int16_t *input, int16_t *output, int scale) } +int16_t twa3072[2048] __attribute__((aligned(32))); +int16_t twb3072[2048] __attribute__((aligned(32))); // 1024 x 3 -void dft3072(int16_t *input, int16_t *output) +void dft3072(int16_t *input, int16_t *output,int scale) { + int i,i2,j; + uint32_t tmp[3][1024] __attribute__((aligned(32))); + uint32_t tmpo[3][1024] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); + + for (i=0,j=0; i<1024; i++) { + tmp[0][i] = ((uint32_t *)input)[j++]; + tmp[1][i] = ((uint32_t *)input)[j++]; + tmp[2][i] = ((uint32_t *)input)[j++]; + } + + dft1024((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),1); + dft1024((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1); + dft1024((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1); + + for (i=0,i2=0; i<2048; i+=8,i2+=4) { + bfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]), + (simd_q15_t*)(output+i),(simd_q15_t*)(output+2048+i),(simd_q15_t*)(output+4096+i), + (simd_q15_t*)(twa3072+i),(simd_q15_t*)(twb3072+i)); + } + + if (scale==1) { + for (i=0; i<48; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } + _mm_empty(); + _m_empty(); } -void idft3072(int16_t *input, int16_t *output) +void idft3072(int16_t *input, int16_t *output,int scale) { + int i,i2,j; + uint32_t tmp[3][1024]__attribute__((aligned(32))); + uint32_t tmpo[3][1024] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); + + for (i=0,j=0; i<1024; i++) { + tmp[0][i] = ((uint32_t *)input)[j++]; + tmp[1][i] = ((uint32_t *)input)[j++]; + tmp[2][i] = ((uint32_t *)input)[j++]; + } + + idft1024((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),1); + idft1024((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1); + idft1024((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1); + + for (i=0,i2=0; i<2048; i+=8,i2+=4) { + ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),((simd_q15_t*)&tmpo[2][i2]), + (simd_q15_t*)(output+i),(simd_q15_t*)(output+2048+i),(simd_q15_t*)(output+4096+i), + (simd_q15_t*)(twa3072+i),(simd_q15_t*)(twb3072+i)); + } + + if (scale==1) { + for (i=0; i<48; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } + + _mm_empty(); + _m_empty(); } -#include "twiddle6144.h" -void idft6144(int16_t *input, int16_t *output) +int16_t twa6144[4096] __attribute__((aligned(32))); +int16_t twb6144[4096] __attribute__((aligned(32))); + +void idft6144(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][2048] __attribute__((aligned(32))); uint32_t tmpo[3][2048] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<2048; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5476,36 +5585,47 @@ void idft6144(int16_t *input, int16_t *output) idft2048((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1); idft2048((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1); - /* - for (i=1; i<2048; i++) { - tmpo[0][i] = tmpo[0][i<<1]; - tmpo[1][i] = tmpo[1][i<<1]; - tmpo[2][i] = tmpo[2][i<<1]; - }*/ - - // LOG_M("in.m","in",input,6144,1,1); - // LOG_M("out0.m","o0",tmpo[0],2048,1,1); - // LOG_M("out1.m","o1",tmpo[1],2048,1,1); - // LOG_M("out2.m","o2",tmpo[2],2048,1,1); - for (i=0,i2=0; i<4096; i+=8,i2+=4) { ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),((simd_q15_t*)&tmpo[2][i2]), (simd_q15_t*)(output+i),(simd_q15_t*)(output+4096+i),(simd_q15_t*)(output+8192+i), (simd_q15_t*)(twa6144+i),(simd_q15_t*)(twb6144+i)); } - // LOG_M("out.m","out",output,6144,1,1); + if (scale==1) { + for (i=0; i<96; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } + _mm_empty(); _m_empty(); } -void dft6144(int16_t *input, int16_t *output) +void dft6144(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][2048] __attribute__((aligned(32))); uint32_t tmpo[3][2048] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<2048; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5533,19 +5653,44 @@ void dft6144(int16_t *input, int16_t *output) (simd_q15_t*)(twa6144+i),(simd_q15_t*)(twb6144+i)); } + if (scale==1) { + for (i=0; i<96; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } + _mm_empty(); _m_empty(); } -#include "twiddle12288.h" +int16_t twa12288[8192] __attribute__((aligned(32))); +int16_t twb12288[8192] __attribute__((aligned(32))); // 4096 x 3 -void dft12288(int16_t *input, int16_t *output) +void dft12288(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][4096] __attribute__((aligned(32))); uint32_t tmpo[3][4096] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<4096; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5553,9 +5698,9 @@ void dft12288(int16_t *input, int16_t *output) tmp[2][i] = ((uint32_t *)input)[j++]; } - dft4096((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),1); - dft4096((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1); - dft4096((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1); + dft4096((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),scale); + dft4096((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),scale); + dft4096((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),scale); /* for (i=1; i<4096; i++) { tmpo[0][i] = tmpo[0][i<<1]; @@ -5572,16 +5717,39 @@ void dft12288(int16_t *input, int16_t *output) (simd_q15_t*)(twa12288+i),(simd_q15_t*)(twb12288+i)); } + if (scale==1) { + for (i=0; i<192; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } _mm_empty(); _m_empty(); } -void idft12288(int16_t *input, int16_t *output) +void idft12288(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][4096] __attribute__((aligned(32))); uint32_t tmpo[3][4096] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<4096; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5590,34 +5758,52 @@ void idft12288(int16_t *input, int16_t *output) } - idft4096((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),1); - idft4096((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1); - idft4096((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1); - /* - LOG_M("in.m","in",input,12288,1,1); - LOG_M("out0.m","o0",tmpo[0],4096,1,1); - LOG_M("out1.m","o1",tmpo[1],4096,1,1); - LOG_M("out2.m","o2",tmpo[2],4096,1,1); - */ + idft4096((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),scale); + idft4096((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),scale); + idft4096((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),scale); for (i=0,i2=0; i<8192; i+=8,i2+=4) { ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),((simd_q15_t*)&tmpo[2][i2]), (simd_q15_t*)(output+i),(simd_q15_t*)(output+8192+i),(simd_q15_t*)(output+16384+i), (simd_q15_t*)(twa12288+i),(simd_q15_t*)(twb12288+i)); } + if (scale==1) { + for (i=0; i<192; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } _mm_empty(); _m_empty(); // LOG_M("out.m","out",output,6144,1,1); } -#include "twiddle18432.h" +int16_t twa18432[12288] __attribute__((aligned(32))); +int16_t twb18432[12288] __attribute__((aligned(32))); // 6144 x 3 -void dft18432(int16_t *input, int16_t *output) { +void dft18432(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][6144] __attribute__((aligned(32))); uint32_t tmpo[3][6144] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<6144; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5625,25 +5811,47 @@ void dft18432(int16_t *input, int16_t *output) { tmp[2][i] = ((uint32_t *)input)[j++]; } - dft6144((int16_t*)(tmp[0]),(int16_t*)(tmpo[0])); - dft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1])); - dft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2])); + dft6144((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),scale); + dft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),scale); + dft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),scale); for (i=0,i2=0; i<12288; i+=8,i2+=4) { bfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]), (simd_q15_t*)(output+i),(simd_q15_t*)(output+12288+i),(simd_q15_t*)(output+24576+i), (simd_q15_t*)(twa18432+i),(simd_q15_t*)(twb18432+i)); } - + if (scale==1) { + for (i=0; i<288; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } _mm_empty(); _m_empty(); } -void idft18432(int16_t *input, int16_t *output) { +void idft18432(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][6144] __attribute__((aligned(32))); uint32_t tmpo[3][6144] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<6144; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5651,27 +5859,51 @@ void idft18432(int16_t *input, int16_t *output) { tmp[2][i] = ((uint32_t *)input)[j++]; } - idft6144((int16_t*)(tmp[0]),(int16_t*)(tmpo[0])); - idft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1])); - idft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2])); + idft6144((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),scale); + idft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),scale); + idft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),scale); for (i=0,i2=0; i<12288; i+=8,i2+=4) { ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]), (simd_q15_t*)(output+i),(simd_q15_t*)(output+12288+i),(simd_q15_t*)(output+24576+i), (simd_q15_t*)(twa18432+i),(simd_q15_t*)(twb18432+i)); } - + if (scale==1) { + for (i=0; i<288; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } _mm_empty(); _m_empty(); } -#include "twiddle24576.h" + +int16_t twa24576[16384] __attribute__((aligned(32))); +int16_t twb24576[16384] __attribute__((aligned(32))); // 8192 x 3 -void dft24576(int16_t *input, int16_t *output) +void dft24576(int16_t *input, int16_t *output,int scale) { int i,i2,j; uint32_t tmp[3][8192] __attribute__((aligned(32))); uint32_t tmpo[3][8192] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<8192; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5698,17 +5930,40 @@ void dft24576(int16_t *input, int16_t *output) (simd_q15_t*)(twa24576+i),(simd_q15_t*)(twb24576+i)); } - _mm_empty(); - _m_empty(); - - // LOG_M("out.m","out",output,24576,1,1); -} - -void idft24576(int16_t *input, int16_t *output) -{ - int i,i2,j; + if (scale==1) { + for (i=0; i<384; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } + _mm_empty(); + _m_empty(); + + // LOG_M("out.m","out",output,24576,1,1); +} + +void idft24576(int16_t *input, int16_t *output,int scale) +{ + int i,i2,j; uint32_t tmp[3][8192] __attribute__((aligned(32))); uint32_t tmpo[3][8192] __attribute__((aligned(32))); + simd_q15_t *y128p=(simd_q15_t*)output; + simd_q15_t ONE_OVER_SQRT3_Q15_128 = set1_int16(ONE_OVER_SQRT3_Q15); for (i=0,j=0; i<8192; i++) { tmp[0][i] = ((uint32_t *)input)[j++]; @@ -5732,7 +5987,27 @@ void idft24576(int16_t *input, int16_t *output) (simd_q15_t*)(output+i),(simd_q15_t*)(output+16384+i),(simd_q15_t*)(output+32768+i), (simd_q15_t*)(twa24576+i),(simd_q15_t*)(twb24576+i)); } - + if (scale==1) { + for (i=0; i<384; i++) { + y128p[0] = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128); + y128p[1] = mulhi_int16(y128p[1],ONE_OVER_SQRT3_Q15_128); + y128p[2] = mulhi_int16(y128p[2],ONE_OVER_SQRT3_Q15_128); + y128p[3] = mulhi_int16(y128p[3],ONE_OVER_SQRT3_Q15_128); + y128p[4] = mulhi_int16(y128p[4],ONE_OVER_SQRT3_Q15_128); + y128p[5] = mulhi_int16(y128p[5],ONE_OVER_SQRT3_Q15_128); + y128p[6] = mulhi_int16(y128p[6],ONE_OVER_SQRT3_Q15_128); + y128p[7] = mulhi_int16(y128p[7],ONE_OVER_SQRT3_Q15_128); + y128p[8] = mulhi_int16(y128p[8],ONE_OVER_SQRT3_Q15_128); + y128p[9] = mulhi_int16(y128p[9],ONE_OVER_SQRT3_Q15_128); + y128p[10] = mulhi_int16(y128p[10],ONE_OVER_SQRT3_Q15_128); + y128p[11] = mulhi_int16(y128p[11],ONE_OVER_SQRT3_Q15_128); + y128p[12] = mulhi_int16(y128p[12],ONE_OVER_SQRT3_Q15_128); + y128p[13] = mulhi_int16(y128p[13],ONE_OVER_SQRT3_Q15_128); + y128p[14] = mulhi_int16(y128p[14],ONE_OVER_SQRT3_Q15_128); + y128p[15] = mulhi_int16(y128p[15],ONE_OVER_SQRT3_Q15_128); + y128p+=16; + } + } _mm_empty(); _m_empty(); @@ -6111,23 +6386,7 @@ void dft12_simd256(int16_t *x,int16_t *y) #endif -static int16_t tw24[88]__attribute__((aligned(32))) = {31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 0,-32767,0,-32767,0,-32767,0,-32767, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480 - }; - -//static simd_q15_t ytmp128array[300]; -//static simd_q15_t ytmp128array2[300]; -//static simd_q15_t ytmp128array3[300]; -//static simd_q15_t x2128array[300]; +static int16_t tw24[88]__attribute__((aligned(32))); void dft24(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -6222,31 +6481,8 @@ void dft24(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa36[88]__attribute__((aligned(32))) = {32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 0,-32767,0,-32767,0,-32767,0,-32767, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790 - }; - -static int16_t twb36[88]__attribute__((aligned(32))) = {30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062, - -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206, - -32767,0,-32767,0,-32767,0,-32767,0, - -30790,11206,-30790,11206,-30790,11206,-30790,11206, - -25100,21062,-25100,21062,-25100,21062,-25100,21062 - }; +static int16_t twa36[88]__attribute__((aligned(32))); +static int16_t twb36[88]__attribute__((aligned(32))); void dft36(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -6368,44 +6604,9 @@ void dft36(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa48[88]__attribute__((aligned(32))) = {32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486 - }; - -static int16_t twb48[88]__attribute__((aligned(32))) = {31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 0,-32767,0,-32767,0,-32767,0,-32767, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480 - }; - -static int16_t twc48[88]__attribute__((aligned(32))) = {30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 0,-32767,0,-32767,0,-32767,0,-32767, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539, - -32767,0,-32767,0,-32767,0,-32767,0, - -30272,12539,-30272,12539,-30272,12539,-30272,12539, - -23169,23169,-23169,23169,-23169,23169,-23169,23169, - -12539,30272,-12539,30272,-12539,30272,-12539,30272 - }; +static int16_t twa48[88]__attribute__((aligned(32))); +static int16_t twb48[88]__attribute__((aligned(32))); +static int16_t twc48[88]__attribute__((aligned(32))); void dft48(int16_t *x, int16_t *y,unsigned char scale_flag) { @@ -6564,54 +6765,10 @@ void dft48(int16_t *x, int16_t *y,unsigned char scale_flag) } -static int16_t twa60[88]__attribute__((aligned(32))) = {32587,-3425,32587,-3425,32587,-3425,32587,-3425, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 24350,-21925,24350,-21925,24350,-21925,24350,-21925, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 13327,-29934,13327,-29934,13327,-29934,13327,-29934 - }; -static int16_t twb60[88]__attribute__((aligned(32))) = {32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 3425,-32587,3425,-32587,3425,-32587,3425,-32587, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -21925,-24350,-21925,-24350,-21925,-24350,-21925,-24350 - }; -static int16_t twc60[88]__attribute__((aligned(32))) = {31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 0,-32767,0,-32767,0,-32767,0,-32767, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -19259,-26509,-19259,-26509,-19259,-26509,-19259,-26509, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -31163,-10125,-31163,-10125,-31163,-10125,-31163,-10125, - -32767,0,-32767,0,-32767,0,-32767,0, - -31163,10125,-31163,10125,-31163,10125,-31163,10125 - }; -static int16_t twd60[88]__attribute__((aligned(32))) = {29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -32050,-6812,-32050,-6812,-32050,-6812,-32050,-6812, - -32050,6812,-32050,6812,-32050,6812,-32050,6812, - -26509,19259,-26509,19259,-26509,19259,-26509,19259, - -16383,28377,-16383,28377,-16383,28377,-16383,28377, - -3425,32587,-3425,32587,-3425,32587,-3425,32587 - }; +static int16_t twa60[88]__attribute__((aligned(32))); +static int16_t twb60[88]__attribute__((aligned(32))); +static int16_t twc60[88]__attribute__((aligned(32))); +static int16_t twd60[88]__attribute__((aligned(32))); void dft60(int16_t *x,int16_t *y,unsigned char scale) { @@ -6793,42 +6950,7 @@ void dft60(int16_t *x,int16_t *y,unsigned char scale) } -static int16_t tw72[280]__attribute__((aligned(32))) = {32642,-2855,32642,-2855,32642,-2855,32642,-2855, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 29696,-13847,29696,-13847,29696,-13847,29696,-13847, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 26841,-18794,26841,-18794,26841,-18794,26841,-18794, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 18794,-26841,18794,-26841,18794,-26841,18794,-26841, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 13847,-29696,13847,-29696,13847,-29696,13847,-29696, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 2855,-32642,2855,-32642,2855,-32642,2855,-32642, - 0,-32767,0,-32767,0,-32767,0,-32767, - -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -18794,-26841,-18794,-26841,-18794,-26841,-18794,-26841, - -21062,-25100,-21062,-25100,-21062,-25100,-21062,-25100, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062, - -26841,-18794,-26841,-18794,-26841,-18794,-26841,-18794, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29696,-13847,-29696,-13847,-29696,-13847,-29696,-13847, - -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480, - -32269,-5689,-32269,-5689,-32269,-5689,-32269,-5689, - -32642,-2855,-32642,-2855,-32642,-2855,-32642,-2855, - }; +static int16_t tw72[280]__attribute__((aligned(32))); void dft72(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -6872,54 +6994,7 @@ void dft72(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t tw96[376]__attribute__((aligned(32))) = {32696,-2143,32696,-2143,32696,-2143,32696,-2143, - 32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 32137,-6392,32137,-6392,32137,-6392,32137,-6392, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31028,-10532,31028,-10532,31028,-10532,31028,-10532, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29387,-14492,29387,-14492,29387,-14492,29387,-14492, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27244,-18204,27244,-18204,27244,-18204,27244,-18204, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 24635,-21604,24635,-21604,24635,-21604,24635,-21604, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 21604,-24635,21604,-24635,21604,-24635,21604,-24635, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 18204,-27244,18204,-27244,18204,-27244,18204,-27244, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 14492,-29387,14492,-29387,14492,-29387,14492,-29387, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 10532,-31028,10532,-31028,10532,-31028,10532,-31028, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 6392,-32137,6392,-32137,6392,-32137,6392,-32137, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486, - 2143,-32696,2143,-32696,2143,-32696,2143,-32696, - 0,-32767,0,-32767,0,-32767,0,-32767, - -2143,-32696,-2143,-32696,-2143,-32696,-2143,-32696, - -4276,-32486,-4276,-32486,-4276,-32486,-4276,-32486, - -6392,-32137,-6392,-32137,-6392,-32137,-6392,-32137, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -10532,-31028,-10532,-31028,-10532,-31028,-10532,-31028, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -14492,-29387,-14492,-29387,-14492,-29387,-14492,-29387, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -18204,-27244,-18204,-27244,-18204,-27244,-18204,-27244, - -19947,-25995,-19947,-25995,-19947,-25995,-19947,-25995, - -21604,-24635,-21604,-24635,-21604,-24635,-21604,-24635, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -24635,-21604,-24635,-21604,-24635,-21604,-24635,-21604, - -25995,-19947,-25995,-19947,-25995,-19947,-25995,-19947, - -27244,-18204,-27244,-18204,-27244,-18204,-27244,-18204, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29387,-14492,-29387,-14492,-29387,-14492,-29387,-14492, - -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539, - -31028,-10532,-31028,-10532,-31028,-10532,-31028,-10532, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480, - -32137,-6392,-32137,-6392,-32137,-6392,-32137,-6392, - -32486,-4276,-32486,-4276,-32486,-4276,-32486,-4276, - -32696,-2143,-32696,-2143,-32696,-2143,-32696,-2143 - }; +static int16_t tw96[376]__attribute__((aligned(32))); void dft96(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -6965,84 +7040,11 @@ void dft96(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa108[280]__attribute__((aligned(32))) = {32711,-1905,32711,-1905,32711,-1905,32711,-1905, - 32545,-3804,32545,-3804,32545,-3804,32545,-3804, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 31883,-7556,31883,-7556,31883,-7556,31883,-7556, - 31390,-9397,31390,-9397,31390,-9397,31390,-9397, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 30087,-12978,30087,-12978,30087,-12978,30087,-12978, - 29281,-14705,29281,-14705,29281,-14705,29281,-14705, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27376,-18005,27376,-18005,27376,-18005,27376,-18005, - 26283,-19567,26283,-19567,26283,-19567,26283,-19567, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 23833,-22486,23833,-22486,23833,-22486,23833,-22486, - 22486,-23833,22486,-23833,22486,-23833,22486,-23833, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 19567,-26283,19567,-26283,19567,-26283,19567,-26283, - 18005,-27376,18005,-27376,18005,-27376,18005,-27376, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 14705,-29281,14705,-29281,14705,-29281,14705,-29281, - 12978,-30087,12978,-30087,12978,-30087,12978,-30087, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 9397,-31390,9397,-31390,9397,-31390,9397,-31390, - 7556,-31883,7556,-31883,7556,-31883,7556,-31883, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 3804,-32545,3804,-32545,3804,-32545,3804,-32545, - 1905,-32711,1905,-32711,1905,-32711,1905,-32711, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1905,-32711,-1905,-32711,-1905,-32711,-1905,-32711, - -3804,-32545,-3804,-32545,-3804,-32545,-3804,-32545, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -7556,-31883,-7556,-31883,-7556,-31883,-7556,-31883, - -9397,-31390,-9397,-31390,-9397,-31390,-9397,-31390, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -12978,-30087,-12978,-30087,-12978,-30087,-12978,-30087, - -14705,-29281,-14705,-29281,-14705,-29281,-14705,-29281 - }; - -static int16_t twb108[280]__attribute__((aligned(32))) = {32545,-3804,32545,-3804,32545,-3804,32545,-3804, - 31883,-7556,31883,-7556,31883,-7556,31883,-7556, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 29281,-14705,29281,-14705,29281,-14705,29281,-14705, - 27376,-18005,27376,-18005,27376,-18005,27376,-18005, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 22486,-23833,22486,-23833,22486,-23833,22486,-23833, - 19567,-26283,19567,-26283,19567,-26283,19567,-26283, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 12978,-30087,12978,-30087,12978,-30087,12978,-30087, - 9397,-31390,9397,-31390,9397,-31390,9397,-31390, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 1905,-32711,1905,-32711,1905,-32711,1905,-32711, - -1905,-32711,-1905,-32711,-1905,-32711,-1905,-32711, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -9397,-31390,-9397,-31390,-9397,-31390,-9397,-31390, - -12978,-30087,-12978,-30087,-12978,-30087,-12978,-30087, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -19567,-26283,-19567,-26283,-19567,-26283,-19567,-26283, - -22486,-23833,-22486,-23833,-22486,-23833,-22486,-23833, - -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062, - -27376,-18005,-27376,-18005,-27376,-18005,-27376,-18005, - -29281,-14705,-29281,-14705,-29281,-14705,-29281,-14705, - -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206, - -31883,-7556,-31883,-7556,-31883,-7556,-31883,-7556, - -32545,-3804,-32545,-3804,-32545,-3804,-32545,-3804, - -32767,0,-32767,0,-32767,0,-32767,0, - -32545,3804,-32545,3804,-32545,3804,-32545,3804, - -31883,7556,-31883,7556,-31883,7556,-31883,7556, - -30790,11206,-30790,11206,-30790,11206,-30790,11206, - -29281,14705,-29281,14705,-29281,14705,-29281,14705, - -27376,18005,-27376,18005,-27376,18005,-27376,18005, - -25100,21062,-25100,21062,-25100,21062,-25100,21062, - -22486,23833,-22486,23833,-22486,23833,-22486,23833, - -19567,26283,-19567,26283,-19567,26283,-19567,26283 - }; +static int16_t twa108[280]__attribute__((aligned(32))); +static int16_t twb108[280]__attribute__((aligned(32))); void dft108(int16_t *x,int16_t *y,unsigned char scale_flag) { - - int i,j; simd_q15_t *x128=(simd_q15_t *)x; simd_q15_t *y128=(simd_q15_t *)y; @@ -7089,71 +7091,9 @@ void dft108(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t tw120[472]__attribute__((aligned(32))) = {32722,-1714,32722,-1714,32722,-1714,32722,-1714, - 32587,-3425,32587,-3425,32587,-3425,32587,-3425, - 32363,-5125,32363,-5125,32363,-5125,32363,-5125, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 30590,-11742,30590,-11742,30590,-11742,30590,-11742, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 29195,-14875,29195,-14875,29195,-14875,29195,-14875, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27480,-17846,27480,-17846,27480,-17846,27480,-17846, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 25464,-20620,25464,-20620,25464,-20620,25464,-20620, - 24350,-21925,24350,-21925,24350,-21925,24350,-21925, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 20620,-25464,20620,-25464,20620,-25464,20620,-25464, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 17846,-27480,17846,-27480,17846,-27480,17846,-27480, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 14875,-29195,14875,-29195,14875,-29195,14875,-29195, - 13327,-29934,13327,-29934,13327,-29934,13327,-29934, - 11742,-30590,11742,-30590,11742,-30590,11742,-30590, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 6812,-32050,6812,-32050,6812,-32050,6812,-32050, - 5125,-32363,5125,-32363,5125,-32363,5125,-32363, - 3425,-32587,3425,-32587,3425,-32587,3425,-32587, - 1714,-32722,1714,-32722,1714,-32722,1714,-32722, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1714,-32722,-1714,-32722,-1714,-32722,-1714,-32722, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -5125,-32363,-5125,-32363,-5125,-32363,-5125,-32363, - -6812,-32050,-6812,-32050,-6812,-32050,-6812,-32050, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -11742,-30590,-11742,-30590,-11742,-30590,-11742,-30590, - -13327,-29934,-13327,-29934,-13327,-29934,-13327,-29934, - -14875,-29195,-14875,-29195,-14875,-29195,-14875,-29195, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -17846,-27480,-17846,-27480,-17846,-27480,-17846,-27480, - -19259,-26509,-19259,-26509,-19259,-26509,-19259,-26509, - -20620,-25464,-20620,-25464,-20620,-25464,-20620,-25464, - -21925,-24350,-21925,-24350,-21925,-24350,-21925,-24350, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -24350,-21925,-24350,-21925,-24350,-21925,-24350,-21925, - -25464,-20620,-25464,-20620,-25464,-20620,-25464,-20620, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -27480,-17846,-27480,-17846,-27480,-17846,-27480,-17846, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29195,-14875,-29195,-14875,-29195,-14875,-29195,-14875, - -29934,-13327,-29934,-13327,-29934,-13327,-29934,-13327, - -30590,-11742,-30590,-11742,-30590,-11742,-30590,-11742, - -31163,-10125,-31163,-10125,-31163,-10125,-31163,-10125, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480, - -32050,-6812,-32050,-6812,-32050,-6812,-32050,-6812, - -32363,-5125,-32363,-5125,-32363,-5125,-32363,-5125, - -32587,-3425,-32587,-3425,-32587,-3425,-32587,-3425, - -32722,-1714,-32722,-1714,-32722,-1714,-32722,-1714 - }; - +static int16_t tw120[472]__attribute__((aligned(32))); void dft120(int16_t *x,int16_t *y, unsigned char scale_flag) { - - int i,j; simd_q15_t *x128=(simd_q15_t *)x; simd_q15_t *y128=(simd_q15_t *)y; @@ -7161,7 +7101,6 @@ void dft120(int16_t *x,int16_t *y, unsigned char scale_flag) simd_q15_t x2128[120];// = (simd_q15_t *)&x2128array[0]; simd_q15_t ytmp128[120];//=&ytmp128array2[0]; - for (i=0,j=0; i<60; i++,j+=2) { x2128[i] = x128[j]; x2128[i+60] = x128[j+1]; @@ -7194,107 +7133,11 @@ void dft120(int16_t *x,int16_t *y, unsigned char scale_flag) } -static int16_t twa144[376]__attribute__((aligned(32))) = {32735,-1429,32735,-1429,32735,-1429,32735,-1429, - 32642,-2855,32642,-2855,32642,-2855,32642,-2855, - 32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 31990,-7092,31990,-7092,31990,-7092,31990,-7092, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31250,-9853,31250,-9853,31250,-9853,31250,-9853, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29696,-13847,29696,-13847,29696,-13847,29696,-13847, - 29064,-15130,29064,-15130,29064,-15130,29064,-15130, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27635,-17605,27635,-17605,27635,-17605,27635,-17605, - 26841,-18794,26841,-18794,26841,-18794,26841,-18794, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 24158,-22137,24158,-22137,24158,-22137,24158,-22137, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 22137,-24158,22137,-24158,22137,-24158,22137,-24158, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 18794,-26841,18794,-26841,18794,-26841,18794,-26841, - 17605,-27635,17605,-27635,17605,-27635,17605,-27635, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15130,-29064,15130,-29064,15130,-29064,15130,-29064, - 13847,-29696,13847,-29696,13847,-29696,13847,-29696, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 9853,-31250,9853,-31250,9853,-31250,9853,-31250, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 7092,-31990,7092,-31990,7092,-31990,7092,-31990, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486, - 2855,-32642,2855,-32642,2855,-32642,2855,-32642, - 1429,-32735,1429,-32735,1429,-32735,1429,-32735, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1429,-32735,-1429,-32735,-1429,-32735,-1429,-32735, - -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642, - -4276,-32486,-4276,-32486,-4276,-32486,-4276,-32486, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -7092,-31990,-7092,-31990,-7092,-31990,-7092,-31990, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -9853,-31250,-9853,-31250,-9853,-31250,-9853,-31250, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696, - -15130,-29064,-15130,-29064,-15130,-29064,-15130,-29064 - }; - -static int16_t twb144[376]__attribute__((aligned(32))) = {32642,-2855,32642,-2855,32642,-2855,32642,-2855, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 29696,-13847,29696,-13847,29696,-13847,29696,-13847, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 26841,-18794,26841,-18794,26841,-18794,26841,-18794, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 18794,-26841,18794,-26841,18794,-26841,18794,-26841, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 13847,-29696,13847,-29696,13847,-29696,13847,-29696, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 2855,-32642,2855,-32642,2855,-32642,2855,-32642, - 0,-32767,0,-32767,0,-32767,0,-32767, - -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -18794,-26841,-18794,-26841,-18794,-26841,-18794,-26841, - -21062,-25100,-21062,-25100,-21062,-25100,-21062,-25100, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062, - -26841,-18794,-26841,-18794,-26841,-18794,-26841,-18794, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29696,-13847,-29696,-13847,-29696,-13847,-29696,-13847, - -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480, - -32269,-5689,-32269,-5689,-32269,-5689,-32269,-5689, - -32642,-2855,-32642,-2855,-32642,-2855,-32642,-2855, - -32767,0,-32767,0,-32767,0,-32767,0, - -32642,2855,-32642,2855,-32642,2855,-32642,2855, - -32269,5689,-32269,5689,-32269,5689,-32269,5689, - -31650,8480,-31650,8480,-31650,8480,-31650,8480, - -30790,11206,-30790,11206,-30790,11206,-30790,11206, - -29696,13847,-29696,13847,-29696,13847,-29696,13847, - -28377,16383,-28377,16383,-28377,16383,-28377,16383, - -26841,18794,-26841,18794,-26841,18794,-26841,18794, - -25100,21062,-25100,21062,-25100,21062,-25100,21062, - -23169,23169,-23169,23169,-23169,23169,-23169,23169, - -21062,25100,-21062,25100,-21062,25100,-21062,25100, - -18794,26841,-18794,26841,-18794,26841,-18794,26841 - }; +static int16_t twa144[376]__attribute__((aligned(32))); +static int16_t twb144[376]__attribute__((aligned(32))); void dft144(int16_t *x,int16_t *y,unsigned char scale_flag) { - int i,j; simd_q15_t *x128=(simd_q15_t *)x; simd_q15_t *y128=(simd_q15_t *)y; @@ -7341,127 +7184,8 @@ void dft144(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa180[472]__attribute__((aligned(32))) = {32747,-1143,32747,-1143,32747,-1143,32747,-1143, - 32687,-2285,32687,-2285,32687,-2285,32687,-2285, - 32587,-3425,32587,-3425,32587,-3425,32587,-3425, - 32448,-4560,32448,-4560,32448,-4560,32448,-4560, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31793,-7927,31793,-7927,31793,-7927,31793,-7927, - 31497,-9031,31497,-9031,31497,-9031,31497,-9031, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 30381,-12274,30381,-12274,30381,-12274,30381,-12274, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 29450,-14364,29450,-14364,29450,-14364,29450,-14364, - 28931,-15383,28931,-15383,28931,-15383,28931,-15383, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27787,-17363,27787,-17363,27787,-17363,27787,-17363, - 27165,-18323,27165,-18323,27165,-18323,27165,-18323, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 25820,-20173,25820,-20173,25820,-20173,25820,-20173, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 24350,-21925,24350,-21925,24350,-21925,24350,-21925, - 23570,-22761,23570,-22761,23570,-22761,23570,-22761, - 22761,-23570,22761,-23570,22761,-23570,22761,-23570, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 20173,-25820,20173,-25820,20173,-25820,20173,-25820, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 18323,-27165,18323,-27165,18323,-27165,18323,-27165, - 17363,-27787,17363,-27787,17363,-27787,17363,-27787, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15383,-28931,15383,-28931,15383,-28931,15383,-28931, - 14364,-29450,14364,-29450,14364,-29450,14364,-29450, - 13327,-29934,13327,-29934,13327,-29934,13327,-29934, - 12274,-30381,12274,-30381,12274,-30381,12274,-30381, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 9031,-31497,9031,-31497,9031,-31497,9031,-31497, - 7927,-31793,7927,-31793,7927,-31793,7927,-31793, - 6812,-32050,6812,-32050,6812,-32050,6812,-32050, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 4560,-32448,4560,-32448,4560,-32448,4560,-32448, - 3425,-32587,3425,-32587,3425,-32587,3425,-32587, - 2285,-32687,2285,-32687,2285,-32687,2285,-32687, - 1143,-32747,1143,-32747,1143,-32747,1143,-32747, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1143,-32747,-1143,-32747,-1143,-32747,-1143,-32747, - -2285,-32687,-2285,-32687,-2285,-32687,-2285,-32687, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -4560,-32448,-4560,-32448,-4560,-32448,-4560,-32448, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -6812,-32050,-6812,-32050,-6812,-32050,-6812,-32050, - -7927,-31793,-7927,-31793,-7927,-31793,-7927,-31793, - -9031,-31497,-9031,-31497,-9031,-31497,-9031,-31497, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -12274,-30381,-12274,-30381,-12274,-30381,-12274,-30381, - -13327,-29934,-13327,-29934,-13327,-29934,-13327,-29934, - -14364,-29450,-14364,-29450,-14364,-29450,-14364,-29450, - -15383,-28931,-15383,-28931,-15383,-28931,-15383,-28931 - }; - -static int16_t twb180[472]__attribute__((aligned(32))) = {32687,-2285,32687,-2285,32687,-2285,32687,-2285, - 32448,-4560,32448,-4560,32448,-4560,32448,-4560, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31497,-9031,31497,-9031,31497,-9031,31497,-9031, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 28931,-15383,28931,-15383,28931,-15383,28931,-15383, - 27787,-17363,27787,-17363,27787,-17363,27787,-17363, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 23570,-22761,23570,-22761,23570,-22761,23570,-22761, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 20173,-25820,20173,-25820,20173,-25820,20173,-25820, - 18323,-27165,18323,-27165,18323,-27165,18323,-27165, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 14364,-29450,14364,-29450,14364,-29450,14364,-29450, - 12274,-30381,12274,-30381,12274,-30381,12274,-30381, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 7927,-31793,7927,-31793,7927,-31793,7927,-31793, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 3425,-32587,3425,-32587,3425,-32587,3425,-32587, - 1143,-32747,1143,-32747,1143,-32747,1143,-32747, - -1143,-32747,-1143,-32747,-1143,-32747,-1143,-32747, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -7927,-31793,-7927,-31793,-7927,-31793,-7927,-31793, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -12274,-30381,-12274,-30381,-12274,-30381,-12274,-30381, - -14364,-29450,-14364,-29450,-14364,-29450,-14364,-29450, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -18323,-27165,-18323,-27165,-18323,-27165,-18323,-27165, - -20173,-25820,-20173,-25820,-20173,-25820,-20173,-25820, - -21925,-24350,-21925,-24350,-21925,-24350,-21925,-24350, - -23570,-22761,-23570,-22761,-23570,-22761,-23570,-22761, - -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -27787,-17363,-27787,-17363,-27787,-17363,-27787,-17363, - -28931,-15383,-28931,-15383,-28931,-15383,-28931,-15383, - -29934,-13327,-29934,-13327,-29934,-13327,-29934,-13327, - -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206, - -31497,-9031,-31497,-9031,-31497,-9031,-31497,-9031, - -32050,-6812,-32050,-6812,-32050,-6812,-32050,-6812, - -32448,-4560,-32448,-4560,-32448,-4560,-32448,-4560, - -32687,-2285,-32687,-2285,-32687,-2285,-32687,-2285, - -32767,0,-32767,0,-32767,0,-32767,0, - -32687,2285,-32687,2285,-32687,2285,-32687,2285, - -32448,4560,-32448,4560,-32448,4560,-32448,4560, - -32050,6812,-32050,6812,-32050,6812,-32050,6812, - -31497,9031,-31497,9031,-31497,9031,-31497,9031, - -30790,11206,-30790,11206,-30790,11206,-30790,11206, - -29934,13327,-29934,13327,-29934,13327,-29934,13327, - -28931,15383,-28931,15383,-28931,15383,-28931,15383, - -27787,17363,-27787,17363,-27787,17363,-27787,17363, - -26509,19259,-26509,19259,-26509,19259,-26509,19259, - -25100,21062,-25100,21062,-25100,21062,-25100,21062, - -23570,22761,-23570,22761,-23570,22761,-23570,22761, - -21925,24350,-21925,24350,-21925,24350,-21925,24350, - -20173,25820,-20173,25820,-20173,25820,-20173,25820, - -18323,27165,-18323,27165,-18323,27165,-18323,27165 - }; +static int16_t twa180[472]__attribute__((aligned(32))); +static int16_t twb180[472]__attribute__((aligned(32))); void dft180(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -7512,152 +7236,9 @@ void dft180(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa192[376]__attribute__((aligned(32))) = {32749,-1072,32749,-1072,32749,-1072,32749,-1072, - 32696,-2143,32696,-2143,32696,-2143,32696,-2143, - 32609,-3211,32609,-3211,32609,-3211,32609,-3211, - 32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 32329,-5337,32329,-5337,32329,-5337,32329,-5337, - 32137,-6392,32137,-6392,32137,-6392,32137,-6392, - 31911,-7440,31911,-7440,31911,-7440,31911,-7440, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31356,-9511,31356,-9511,31356,-9511,31356,-9511, - 31028,-10532,31028,-10532,31028,-10532,31028,-10532, - 30666,-11542,30666,-11542,30666,-11542,30666,-11542, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29846,-13523,29846,-13523,29846,-13523,29846,-13523, - 29387,-14492,29387,-14492,29387,-14492,29387,-14492, - 28897,-15446,28897,-15446,28897,-15446,28897,-15446, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27825,-17303,27825,-17303,27825,-17303,27825,-17303, - 27244,-18204,27244,-18204,27244,-18204,27244,-18204, - 26634,-19086,26634,-19086,26634,-19086,26634,-19086, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 25329,-20787,25329,-20787,25329,-20787,25329,-20787, - 24635,-21604,24635,-21604,24635,-21604,24635,-21604, - 23915,-22399,23915,-22399,23915,-22399,23915,-22399, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 22399,-23915,22399,-23915,22399,-23915,22399,-23915, - 21604,-24635,21604,-24635,21604,-24635,21604,-24635, - 20787,-25329,20787,-25329,20787,-25329,20787,-25329, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 19086,-26634,19086,-26634,19086,-26634,19086,-26634, - 18204,-27244,18204,-27244,18204,-27244,18204,-27244, - 17303,-27825,17303,-27825,17303,-27825,17303,-27825, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15446,-28897,15446,-28897,15446,-28897,15446,-28897, - 14492,-29387,14492,-29387,14492,-29387,14492,-29387, - 13523,-29846,13523,-29846,13523,-29846,13523,-29846, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 11542,-30666,11542,-30666,11542,-30666,11542,-30666, - 10532,-31028,10532,-31028,10532,-31028,10532,-31028, - 9511,-31356,9511,-31356,9511,-31356,9511,-31356, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 7440,-31911,7440,-31911,7440,-31911,7440,-31911, - 6392,-32137,6392,-32137,6392,-32137,6392,-32137, - 5337,-32329,5337,-32329,5337,-32329,5337,-32329, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486, - 3211,-32609,3211,-32609,3211,-32609,3211,-32609, - 2143,-32696,2143,-32696,2143,-32696,2143,-32696, - 1072,-32749,1072,-32749,1072,-32749,1072,-32749 - }; - -static int16_t twb192[376]__attribute__((aligned(32))) = {32696,-2143,32696,-2143,32696,-2143,32696,-2143, - 32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 32137,-6392,32137,-6392,32137,-6392,32137,-6392, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31028,-10532,31028,-10532,31028,-10532,31028,-10532, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29387,-14492,29387,-14492,29387,-14492,29387,-14492, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27244,-18204,27244,-18204,27244,-18204,27244,-18204, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 24635,-21604,24635,-21604,24635,-21604,24635,-21604, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 21604,-24635,21604,-24635,21604,-24635,21604,-24635, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 18204,-27244,18204,-27244,18204,-27244,18204,-27244, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 14492,-29387,14492,-29387,14492,-29387,14492,-29387, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 10532,-31028,10532,-31028,10532,-31028,10532,-31028, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 6392,-32137,6392,-32137,6392,-32137,6392,-32137, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486, - 2143,-32696,2143,-32696,2143,-32696,2143,-32696, - 0,-32767,0,-32767,0,-32767,0,-32767, - -2143,-32696,-2143,-32696,-2143,-32696,-2143,-32696, - -4276,-32486,-4276,-32486,-4276,-32486,-4276,-32486, - -6392,-32137,-6392,-32137,-6392,-32137,-6392,-32137, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -10532,-31028,-10532,-31028,-10532,-31028,-10532,-31028, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -14492,-29387,-14492,-29387,-14492,-29387,-14492,-29387, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -18204,-27244,-18204,-27244,-18204,-27244,-18204,-27244, - -19947,-25995,-19947,-25995,-19947,-25995,-19947,-25995, - -21604,-24635,-21604,-24635,-21604,-24635,-21604,-24635, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -24635,-21604,-24635,-21604,-24635,-21604,-24635,-21604, - -25995,-19947,-25995,-19947,-25995,-19947,-25995,-19947, - -27244,-18204,-27244,-18204,-27244,-18204,-27244,-18204, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29387,-14492,-29387,-14492,-29387,-14492,-29387,-14492, - -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539, - -31028,-10532,-31028,-10532,-31028,-10532,-31028,-10532, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480, - -32137,-6392,-32137,-6392,-32137,-6392,-32137,-6392, - -32486,-4276,-32486,-4276,-32486,-4276,-32486,-4276, - -32696,-2143,-32696,-2143,-32696,-2143,-32696,-2143 - }; - -static int16_t twc192[376]__attribute__((aligned(32))) = {32609,-3211,32609,-3211,32609,-3211,32609,-3211, - 32137,-6392,32137,-6392,32137,-6392,32137,-6392, - 31356,-9511,31356,-9511,31356,-9511,31356,-9511, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 28897,-15446,28897,-15446,28897,-15446,28897,-15446, - 27244,-18204,27244,-18204,27244,-18204,27244,-18204, - 25329,-20787,25329,-20787,25329,-20787,25329,-20787, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 20787,-25329,20787,-25329,20787,-25329,20787,-25329, - 18204,-27244,18204,-27244,18204,-27244,18204,-27244, - 15446,-28897,15446,-28897,15446,-28897,15446,-28897, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 9511,-31356,9511,-31356,9511,-31356,9511,-31356, - 6392,-32137,6392,-32137,6392,-32137,6392,-32137, - 3211,-32609,3211,-32609,3211,-32609,3211,-32609, - 0,-32767,0,-32767,0,-32767,0,-32767, - -3211,-32609,-3211,-32609,-3211,-32609,-3211,-32609, - -6392,-32137,-6392,-32137,-6392,-32137,-6392,-32137, - -9511,-31356,-9511,-31356,-9511,-31356,-9511,-31356, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -15446,-28897,-15446,-28897,-15446,-28897,-15446,-28897, - -18204,-27244,-18204,-27244,-18204,-27244,-18204,-27244, - -20787,-25329,-20787,-25329,-20787,-25329,-20787,-25329, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -25329,-20787,-25329,-20787,-25329,-20787,-25329,-20787, - -27244,-18204,-27244,-18204,-27244,-18204,-27244,-18204, - -28897,-15446,-28897,-15446,-28897,-15446,-28897,-15446, - -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539, - -31356,-9511,-31356,-9511,-31356,-9511,-31356,-9511, - -32137,-6392,-32137,-6392,-32137,-6392,-32137,-6392, - -32609,-3211,-32609,-3211,-32609,-3211,-32609,-3211, - -32767,0,-32767,0,-32767,0,-32767,0, - -32609,3211,-32609,3211,-32609,3211,-32609,3211, - -32137,6392,-32137,6392,-32137,6392,-32137,6392, - -31356,9511,-31356,9511,-31356,9511,-31356,9511, - -30272,12539,-30272,12539,-30272,12539,-30272,12539, - -28897,15446,-28897,15446,-28897,15446,-28897,15446, - -27244,18204,-27244,18204,-27244,18204,-27244,18204, - -25329,20787,-25329,20787,-25329,20787,-25329,20787, - -23169,23169,-23169,23169,-23169,23169,-23169,23169, - -20787,25329,-20787,25329,-20787,25329,-20787,25329, - -18204,27244,-18204,27244,-18204,27244,-18204,27244, - -15446,28897,-15446,28897,-15446,28897,-15446,28897, - -12539,30272,-12539,30272,-12539,30272,-12539,30272, - -9511,31356,-9511,31356,-9511,31356,-9511,31356, - -6392,32137,-6392,32137,-6392,32137,-6392,32137, - -3211,32609,-3211,32609,-3211,32609,-3211,32609 - }; +static int16_t twa192[376]__attribute__((aligned(32))); +static int16_t twb192[376]__attribute__((aligned(32))); +static int16_t twc192[376]__attribute__((aligned(32))); void dft192(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -7714,151 +7295,8 @@ void dft192(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa216[568]__attribute__((aligned(32))) = {32753,-953,32753,-953,32753,-953,32753,-953, - 32711,-1905,32711,-1905,32711,-1905,32711,-1905, - 32642,-2855,32642,-2855,32642,-2855,32642,-2855, - 32545,-3804,32545,-3804,32545,-3804,32545,-3804, - 32421,-4748,32421,-4748,32421,-4748,32421,-4748, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 32090,-6626,32090,-6626,32090,-6626,32090,-6626, - 31883,-7556,31883,-7556,31883,-7556,31883,-7556, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31390,-9397,31390,-9397,31390,-9397,31390,-9397, - 31103,-10306,31103,-10306,31103,-10306,31103,-10306, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 30451,-12097,30451,-12097,30451,-12097,30451,-12097, - 30087,-12978,30087,-12978,30087,-12978,30087,-12978, - 29696,-13847,29696,-13847,29696,-13847,29696,-13847, - 29281,-14705,29281,-14705,29281,-14705,29281,-14705, - 28841,-15551,28841,-15551,28841,-15551,28841,-15551, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27888,-17201,27888,-17201,27888,-17201,27888,-17201, - 27376,-18005,27376,-18005,27376,-18005,27376,-18005, - 26841,-18794,26841,-18794,26841,-18794,26841,-18794, - 26283,-19567,26283,-19567,26283,-19567,26283,-19567, - 25702,-20323,25702,-20323,25702,-20323,25702,-20323, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 24477,-21783,24477,-21783,24477,-21783,24477,-21783, - 23833,-22486,23833,-22486,23833,-22486,23833,-22486, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 22486,-23833,22486,-23833,22486,-23833,22486,-23833, - 21783,-24477,21783,-24477,21783,-24477,21783,-24477, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 20323,-25702,20323,-25702,20323,-25702,20323,-25702, - 19567,-26283,19567,-26283,19567,-26283,19567,-26283, - 18794,-26841,18794,-26841,18794,-26841,18794,-26841, - 18005,-27376,18005,-27376,18005,-27376,18005,-27376, - 17201,-27888,17201,-27888,17201,-27888,17201,-27888, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15551,-28841,15551,-28841,15551,-28841,15551,-28841, - 14705,-29281,14705,-29281,14705,-29281,14705,-29281, - 13847,-29696,13847,-29696,13847,-29696,13847,-29696, - 12978,-30087,12978,-30087,12978,-30087,12978,-30087, - 12097,-30451,12097,-30451,12097,-30451,12097,-30451, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 10306,-31103,10306,-31103,10306,-31103,10306,-31103, - 9397,-31390,9397,-31390,9397,-31390,9397,-31390, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 7556,-31883,7556,-31883,7556,-31883,7556,-31883, - 6626,-32090,6626,-32090,6626,-32090,6626,-32090, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 4748,-32421,4748,-32421,4748,-32421,4748,-32421, - 3804,-32545,3804,-32545,3804,-32545,3804,-32545, - 2855,-32642,2855,-32642,2855,-32642,2855,-32642, - 1905,-32711,1905,-32711,1905,-32711,1905,-32711, - 953,-32753,953,-32753,953,-32753,953,-32753, - 0,-32767,0,-32767,0,-32767,0,-32767, - -953,-32753,-953,-32753,-953,-32753,-953,-32753, - -1905,-32711,-1905,-32711,-1905,-32711,-1905,-32711, - -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642, - -3804,-32545,-3804,-32545,-3804,-32545,-3804,-32545, - -4748,-32421,-4748,-32421,-4748,-32421,-4748,-32421, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -6626,-32090,-6626,-32090,-6626,-32090,-6626,-32090, - -7556,-31883,-7556,-31883,-7556,-31883,-7556,-31883, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -9397,-31390,-9397,-31390,-9397,-31390,-9397,-31390, - -10306,-31103,-10306,-31103,-10306,-31103,-10306,-31103, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -12097,-30451,-12097,-30451,-12097,-30451,-12097,-30451, - -12978,-30087,-12978,-30087,-12978,-30087,-12978,-30087, - -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696, - -14705,-29281,-14705,-29281,-14705,-29281,-14705,-29281, - -15551,-28841,-15551,-28841,-15551,-28841,-15551,-28841 - }; - -static int16_t twb216[568]__attribute__((aligned(32))) = {32711,-1905,32711,-1905,32711,-1905,32711,-1905, - 32545,-3804,32545,-3804,32545,-3804,32545,-3804, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 31883,-7556,31883,-7556,31883,-7556,31883,-7556, - 31390,-9397,31390,-9397,31390,-9397,31390,-9397, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 30087,-12978,30087,-12978,30087,-12978,30087,-12978, - 29281,-14705,29281,-14705,29281,-14705,29281,-14705, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27376,-18005,27376,-18005,27376,-18005,27376,-18005, - 26283,-19567,26283,-19567,26283,-19567,26283,-19567, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 23833,-22486,23833,-22486,23833,-22486,23833,-22486, - 22486,-23833,22486,-23833,22486,-23833,22486,-23833, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 19567,-26283,19567,-26283,19567,-26283,19567,-26283, - 18005,-27376,18005,-27376,18005,-27376,18005,-27376, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 14705,-29281,14705,-29281,14705,-29281,14705,-29281, - 12978,-30087,12978,-30087,12978,-30087,12978,-30087, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 9397,-31390,9397,-31390,9397,-31390,9397,-31390, - 7556,-31883,7556,-31883,7556,-31883,7556,-31883, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 3804,-32545,3804,-32545,3804,-32545,3804,-32545, - 1905,-32711,1905,-32711,1905,-32711,1905,-32711, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1905,-32711,-1905,-32711,-1905,-32711,-1905,-32711, - -3804,-32545,-3804,-32545,-3804,-32545,-3804,-32545, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -7556,-31883,-7556,-31883,-7556,-31883,-7556,-31883, - -9397,-31390,-9397,-31390,-9397,-31390,-9397,-31390, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -12978,-30087,-12978,-30087,-12978,-30087,-12978,-30087, - -14705,-29281,-14705,-29281,-14705,-29281,-14705,-29281, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -18005,-27376,-18005,-27376,-18005,-27376,-18005,-27376, - -19567,-26283,-19567,-26283,-19567,-26283,-19567,-26283, - -21062,-25100,-21062,-25100,-21062,-25100,-21062,-25100, - -22486,-23833,-22486,-23833,-22486,-23833,-22486,-23833, - -23833,-22486,-23833,-22486,-23833,-22486,-23833,-22486, - -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062, - -26283,-19567,-26283,-19567,-26283,-19567,-26283,-19567, - -27376,-18005,-27376,-18005,-27376,-18005,-27376,-18005, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29281,-14705,-29281,-14705,-29281,-14705,-29281,-14705, - -30087,-12978,-30087,-12978,-30087,-12978,-30087,-12978, - -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206, - -31390,-9397,-31390,-9397,-31390,-9397,-31390,-9397, - -31883,-7556,-31883,-7556,-31883,-7556,-31883,-7556, - -32269,-5689,-32269,-5689,-32269,-5689,-32269,-5689, - -32545,-3804,-32545,-3804,-32545,-3804,-32545,-3804, - -32711,-1905,-32711,-1905,-32711,-1905,-32711,-1905, - -32767,0,-32767,0,-32767,0,-32767,0, - -32711,1905,-32711,1905,-32711,1905,-32711,1905, - -32545,3804,-32545,3804,-32545,3804,-32545,3804, - -32269,5689,-32269,5689,-32269,5689,-32269,5689, - -31883,7556,-31883,7556,-31883,7556,-31883,7556, - -31390,9397,-31390,9397,-31390,9397,-31390,9397, - -30790,11206,-30790,11206,-30790,11206,-30790,11206, - -30087,12978,-30087,12978,-30087,12978,-30087,12978, - -29281,14705,-29281,14705,-29281,14705,-29281,14705, - -28377,16383,-28377,16383,-28377,16383,-28377,16383, - -27376,18005,-27376,18005,-27376,18005,-27376,18005, - -26283,19567,-26283,19567,-26283,19567,-26283,19567, - -25100,21062,-25100,21062,-25100,21062,-25100,21062, - -23833,22486,-23833,22486,-23833,22486,-23833,22486, - -22486,23833,-22486,23833,-22486,23833,-22486,23833, - -21062,25100,-21062,25100,-21062,25100,-21062,25100, - -19567,26283,-19567,26283,-19567,26283,-19567,26283, - -18005,27376,-18005,27376,-18005,27376,-18005,27376 - }; +static int16_t twa216[568]__attribute__((aligned(32))); +static int16_t twb216[568]__attribute__((aligned(32))); void dft216(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -7909,188 +7347,9 @@ void dft216(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa240[472]__attribute__((aligned(32))) = {32755,-857,32755,-857,32755,-857,32755,-857, - 32722,-1714,32722,-1714,32722,-1714,32722,-1714, - 32665,-2570,32665,-2570,32665,-2570,32665,-2570, - 32587,-3425,32587,-3425,32587,-3425,32587,-3425, - 32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 32363,-5125,32363,-5125,32363,-5125,32363,-5125, - 32218,-5971,32218,-5971,32218,-5971,32218,-5971, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31861,-7649,31861,-7649,31861,-7649,31861,-7649, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31417,-9306,31417,-9306,31417,-9306,31417,-9306, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 30887,-10937,30887,-10937,30887,-10937,30887,-10937, - 30590,-11742,30590,-11742,30590,-11742,30590,-11742, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 29575,-14106,29575,-14106,29575,-14106,29575,-14106, - 29195,-14875,29195,-14875,29195,-14875,29195,-14875, - 28796,-15635,28796,-15635,28796,-15635,28796,-15635, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27938,-17120,27938,-17120,27938,-17120,27938,-17120, - 27480,-17846,27480,-17846,27480,-17846,27480,-17846, - 27004,-18559,27004,-18559,27004,-18559,27004,-18559, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 25464,-20620,25464,-20620,25464,-20620,25464,-20620, - 24916,-21280,24916,-21280,24916,-21280,24916,-21280, - 24350,-21925,24350,-21925,24350,-21925,24350,-21925, - 23768,-22555,23768,-22555,23768,-22555,23768,-22555, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 22555,-23768,22555,-23768,22555,-23768,22555,-23768, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 21280,-24916,21280,-24916,21280,-24916,21280,-24916, - 20620,-25464,20620,-25464,20620,-25464,20620,-25464, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 18559,-27004,18559,-27004,18559,-27004,18559,-27004, - 17846,-27480,17846,-27480,17846,-27480,17846,-27480, - 17120,-27938,17120,-27938,17120,-27938,17120,-27938, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15635,-28796,15635,-28796,15635,-28796,15635,-28796, - 14875,-29195,14875,-29195,14875,-29195,14875,-29195, - 14106,-29575,14106,-29575,14106,-29575,14106,-29575, - 13327,-29934,13327,-29934,13327,-29934,13327,-29934, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 11742,-30590,11742,-30590,11742,-30590,11742,-30590, - 10937,-30887,10937,-30887,10937,-30887,10937,-30887, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 9306,-31417,9306,-31417,9306,-31417,9306,-31417, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 7649,-31861,7649,-31861,7649,-31861,7649,-31861, - 6812,-32050,6812,-32050,6812,-32050,6812,-32050, - 5971,-32218,5971,-32218,5971,-32218,5971,-32218, - 5125,-32363,5125,-32363,5125,-32363,5125,-32363, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486, - 3425,-32587,3425,-32587,3425,-32587,3425,-32587, - 2570,-32665,2570,-32665,2570,-32665,2570,-32665, - 1714,-32722,1714,-32722,1714,-32722,1714,-32722, - 857,-32755,857,-32755,857,-32755,857,-32755 - }; - -static int16_t twb240[472]__attribute__((aligned(32))) = {32722,-1714,32722,-1714,32722,-1714,32722,-1714, - 32587,-3425,32587,-3425,32587,-3425,32587,-3425, - 32363,-5125,32363,-5125,32363,-5125,32363,-5125, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 30590,-11742,30590,-11742,30590,-11742,30590,-11742, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 29195,-14875,29195,-14875,29195,-14875,29195,-14875, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27480,-17846,27480,-17846,27480,-17846,27480,-17846, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 25464,-20620,25464,-20620,25464,-20620,25464,-20620, - 24350,-21925,24350,-21925,24350,-21925,24350,-21925, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 20620,-25464,20620,-25464,20620,-25464,20620,-25464, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 17846,-27480,17846,-27480,17846,-27480,17846,-27480, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 14875,-29195,14875,-29195,14875,-29195,14875,-29195, - 13327,-29934,13327,-29934,13327,-29934,13327,-29934, - 11742,-30590,11742,-30590,11742,-30590,11742,-30590, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 6812,-32050,6812,-32050,6812,-32050,6812,-32050, - 5125,-32363,5125,-32363,5125,-32363,5125,-32363, - 3425,-32587,3425,-32587,3425,-32587,3425,-32587, - 1714,-32722,1714,-32722,1714,-32722,1714,-32722, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1714,-32722,-1714,-32722,-1714,-32722,-1714,-32722, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -5125,-32363,-5125,-32363,-5125,-32363,-5125,-32363, - -6812,-32050,-6812,-32050,-6812,-32050,-6812,-32050, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -11742,-30590,-11742,-30590,-11742,-30590,-11742,-30590, - -13327,-29934,-13327,-29934,-13327,-29934,-13327,-29934, - -14875,-29195,-14875,-29195,-14875,-29195,-14875,-29195, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -17846,-27480,-17846,-27480,-17846,-27480,-17846,-27480, - -19259,-26509,-19259,-26509,-19259,-26509,-19259,-26509, - -20620,-25464,-20620,-25464,-20620,-25464,-20620,-25464, - -21925,-24350,-21925,-24350,-21925,-24350,-21925,-24350, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -24350,-21925,-24350,-21925,-24350,-21925,-24350,-21925, - -25464,-20620,-25464,-20620,-25464,-20620,-25464,-20620, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -27480,-17846,-27480,-17846,-27480,-17846,-27480,-17846, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29195,-14875,-29195,-14875,-29195,-14875,-29195,-14875, - -29934,-13327,-29934,-13327,-29934,-13327,-29934,-13327, - -30590,-11742,-30590,-11742,-30590,-11742,-30590,-11742, - -31163,-10125,-31163,-10125,-31163,-10125,-31163,-10125, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480, - -32050,-6812,-32050,-6812,-32050,-6812,-32050,-6812, - -32363,-5125,-32363,-5125,-32363,-5125,-32363,-5125, - -32587,-3425,-32587,-3425,-32587,-3425,-32587,-3425, - -32722,-1714,-32722,-1714,-32722,-1714,-32722,-1714 - }; - -static int16_t twc240[472]__attribute__((aligned(32))) = {32665,-2570,32665,-2570,32665,-2570,32665,-2570, - 32363,-5125,32363,-5125,32363,-5125,32363,-5125, - 31861,-7649,31861,-7649,31861,-7649,31861,-7649, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29195,-14875,29195,-14875,29195,-14875,29195,-14875, - 27938,-17120,27938,-17120,27938,-17120,27938,-17120, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 24916,-21280,24916,-21280,24916,-21280,24916,-21280, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 21280,-24916,21280,-24916,21280,-24916,21280,-24916, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 17120,-27938,17120,-27938,17120,-27938,17120,-27938, - 14875,-29195,14875,-29195,14875,-29195,14875,-29195, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 7649,-31861,7649,-31861,7649,-31861,7649,-31861, - 5125,-32363,5125,-32363,5125,-32363,5125,-32363, - 2570,-32665,2570,-32665,2570,-32665,2570,-32665, - 0,-32767,0,-32767,0,-32767,0,-32767, - -2570,-32665,-2570,-32665,-2570,-32665,-2570,-32665, - -5125,-32363,-5125,-32363,-5125,-32363,-5125,-32363, - -7649,-31861,-7649,-31861,-7649,-31861,-7649,-31861, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -14875,-29195,-14875,-29195,-14875,-29195,-14875,-29195, - -17120,-27938,-17120,-27938,-17120,-27938,-17120,-27938, - -19259,-26509,-19259,-26509,-19259,-26509,-19259,-26509, - -21280,-24916,-21280,-24916,-21280,-24916,-21280,-24916, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -24916,-21280,-24916,-21280,-24916,-21280,-24916,-21280, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -27938,-17120,-27938,-17120,-27938,-17120,-27938,-17120, - -29195,-14875,-29195,-14875,-29195,-14875,-29195,-14875, - -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539, - -31163,-10125,-31163,-10125,-31163,-10125,-31163,-10125, - -31861,-7649,-31861,-7649,-31861,-7649,-31861,-7649, - -32363,-5125,-32363,-5125,-32363,-5125,-32363,-5125, - -32665,-2570,-32665,-2570,-32665,-2570,-32665,-2570, - -32767,0,-32767,0,-32767,0,-32767,0, - -32665,2570,-32665,2570,-32665,2570,-32665,2570, - -32363,5125,-32363,5125,-32363,5125,-32363,5125, - -31861,7649,-31861,7649,-31861,7649,-31861,7649, - -31163,10125,-31163,10125,-31163,10125,-31163,10125, - -30272,12539,-30272,12539,-30272,12539,-30272,12539, - -29195,14875,-29195,14875,-29195,14875,-29195,14875, - -27938,17120,-27938,17120,-27938,17120,-27938,17120, - -26509,19259,-26509,19259,-26509,19259,-26509,19259, - -24916,21280,-24916,21280,-24916,21280,-24916,21280, - -23169,23169,-23169,23169,-23169,23169,-23169,23169, - -21280,24916,-21280,24916,-21280,24916,-21280,24916, - -19259,26509,-19259,26509,-19259,26509,-19259,26509, - -17120,27938,-17120,27938,-17120,27938,-17120,27938, - -14875,29195,-14875,29195,-14875,29195,-14875,29195, - -12539,30272,-12539,30272,-12539,30272,-12539,30272, - -10125,31163,-10125,31163,-10125,31163,-10125,31163, - -7649,31861,-7649,31861,-7649,31861,-7649,31861, - -5125,32363,-5125,32363,-5125,32363,-5125,32363, - -2570,32665,-2570,32665,-2570,32665,-2570,32665 - }; +static int16_t twa240[472]__attribute__((aligned(32))); +static int16_t twb240[472]__attribute__((aligned(32))); +static int16_t twc240[472]__attribute__((aligned(32))); void dft240(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -8147,211 +7406,8 @@ void dft240(int16_t *x,int16_t *y,unsigned char scale_flag) } -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:95)/288)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*(2:2:190)/288)); -twa2 = zeros(1,191); -twb2 = zeros(1,191); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); - - - */ -static int16_t twa288[760]__attribute__((aligned(32))) = {32759,-714,32759,-714,32759,-714,32759,-714, - 32735,-1429,32735,-1429,32735,-1429,32735,-1429, - 32696,-2143,32696,-2143,32696,-2143,32696,-2143, - 32642,-2855,32642,-2855,32642,-2855,32642,-2855, - 32572,-3567,32572,-3567,32572,-3567,32572,-3567, - 32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 32385,-4984,32385,-4984,32385,-4984,32385,-4984, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 32137,-6392,32137,-6392,32137,-6392,32137,-6392, - 31990,-7092,31990,-7092,31990,-7092,31990,-7092, - 31827,-7788,31827,-7788,31827,-7788,31827,-7788, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31457,-9169,31457,-9169,31457,-9169,31457,-9169, - 31250,-9853,31250,-9853,31250,-9853,31250,-9853, - 31028,-10532,31028,-10532,31028,-10532,31028,-10532, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 30539,-11876,30539,-11876,30539,-11876,30539,-11876, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29992,-13196,29992,-13196,29992,-13196,29992,-13196, - 29696,-13847,29696,-13847,29696,-13847,29696,-13847, - 29387,-14492,29387,-14492,29387,-14492,29387,-14492, - 29064,-15130,29064,-15130,29064,-15130,29064,-15130, - 28727,-15760,28727,-15760,28727,-15760,28727,-15760, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 28012,-16998,28012,-16998,28012,-16998,28012,-16998, - 27635,-17605,27635,-17605,27635,-17605,27635,-17605, - 27244,-18204,27244,-18204,27244,-18204,27244,-18204, - 26841,-18794,26841,-18794,26841,-18794,26841,-18794, - 26424,-19375,26424,-19375,26424,-19375,26424,-19375, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 25554,-20509,25554,-20509,25554,-20509,25554,-20509, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 24635,-21604,24635,-21604,24635,-21604,24635,-21604, - 24158,-22137,24158,-22137,24158,-22137,24158,-22137, - 23669,-22658,23669,-22658,23669,-22658,23669,-22658, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 22658,-23669,22658,-23669,22658,-23669,22658,-23669, - 22137,-24158,22137,-24158,22137,-24158,22137,-24158, - 21604,-24635,21604,-24635,21604,-24635,21604,-24635, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 20509,-25554,20509,-25554,20509,-25554,20509,-25554, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 19375,-26424,19375,-26424,19375,-26424,19375,-26424, - 18794,-26841,18794,-26841,18794,-26841,18794,-26841, - 18204,-27244,18204,-27244,18204,-27244,18204,-27244, - 17605,-27635,17605,-27635,17605,-27635,17605,-27635, - 16998,-28012,16998,-28012,16998,-28012,16998,-28012, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15760,-28727,15760,-28727,15760,-28727,15760,-28727, - 15130,-29064,15130,-29064,15130,-29064,15130,-29064, - 14492,-29387,14492,-29387,14492,-29387,14492,-29387, - 13847,-29696,13847,-29696,13847,-29696,13847,-29696, - 13196,-29992,13196,-29992,13196,-29992,13196,-29992, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 11876,-30539,11876,-30539,11876,-30539,11876,-30539, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 10532,-31028,10532,-31028,10532,-31028,10532,-31028, - 9853,-31250,9853,-31250,9853,-31250,9853,-31250, - 9169,-31457,9169,-31457,9169,-31457,9169,-31457, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 7788,-31827,7788,-31827,7788,-31827,7788,-31827, - 7092,-31990,7092,-31990,7092,-31990,7092,-31990, - 6392,-32137,6392,-32137,6392,-32137,6392,-32137, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 4984,-32385,4984,-32385,4984,-32385,4984,-32385, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486, - 3567,-32572,3567,-32572,3567,-32572,3567,-32572, - 2855,-32642,2855,-32642,2855,-32642,2855,-32642, - 2143,-32696,2143,-32696,2143,-32696,2143,-32696, - 1429,-32735,1429,-32735,1429,-32735,1429,-32735, - 714,-32759,714,-32759,714,-32759,714,-32759, - 0,-32767,0,-32767,0,-32767,0,-32767, - -714,-32759,-714,-32759,-714,-32759,-714,-32759, - -1429,-32735,-1429,-32735,-1429,-32735,-1429,-32735, - -2143,-32696,-2143,-32696,-2143,-32696,-2143,-32696, - -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642, - -3567,-32572,-3567,-32572,-3567,-32572,-3567,-32572, - -4276,-32486,-4276,-32486,-4276,-32486,-4276,-32486, - -4984,-32385,-4984,-32385,-4984,-32385,-4984,-32385, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -6392,-32137,-6392,-32137,-6392,-32137,-6392,-32137, - -7092,-31990,-7092,-31990,-7092,-31990,-7092,-31990, - -7788,-31827,-7788,-31827,-7788,-31827,-7788,-31827, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -9169,-31457,-9169,-31457,-9169,-31457,-9169,-31457, - -9853,-31250,-9853,-31250,-9853,-31250,-9853,-31250, - -10532,-31028,-10532,-31028,-10532,-31028,-10532,-31028, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -11876,-30539,-11876,-30539,-11876,-30539,-11876,-30539, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -13196,-29992,-13196,-29992,-13196,-29992,-13196,-29992, - -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696, - -14492,-29387,-14492,-29387,-14492,-29387,-14492,-29387, - -15130,-29064,-15130,-29064,-15130,-29064,-15130,-29064, - -15760,-28727,-15760,-28727,-15760,-28727,-15760,-28727 - }; - -static int16_t twb288[760]__attribute__((aligned(32))) = {32735,-1429,32735,-1429,32735,-1429,32735,-1429, - 32642,-2855,32642,-2855,32642,-2855,32642,-2855, - 32486,-4276,32486,-4276,32486,-4276,32486,-4276, - 32269,-5689,32269,-5689,32269,-5689,32269,-5689, - 31990,-7092,31990,-7092,31990,-7092,31990,-7092, - 31650,-8480,31650,-8480,31650,-8480,31650,-8480, - 31250,-9853,31250,-9853,31250,-9853,31250,-9853, - 30790,-11206,30790,-11206,30790,-11206,30790,-11206, - 30272,-12539,30272,-12539,30272,-12539,30272,-12539, - 29696,-13847,29696,-13847,29696,-13847,29696,-13847, - 29064,-15130,29064,-15130,29064,-15130,29064,-15130, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 27635,-17605,27635,-17605,27635,-17605,27635,-17605, - 26841,-18794,26841,-18794,26841,-18794,26841,-18794, - 25995,-19947,25995,-19947,25995,-19947,25995,-19947, - 25100,-21062,25100,-21062,25100,-21062,25100,-21062, - 24158,-22137,24158,-22137,24158,-22137,24158,-22137, - 23169,-23169,23169,-23169,23169,-23169,23169,-23169, - 22137,-24158,22137,-24158,22137,-24158,22137,-24158, - 21062,-25100,21062,-25100,21062,-25100,21062,-25100, - 19947,-25995,19947,-25995,19947,-25995,19947,-25995, - 18794,-26841,18794,-26841,18794,-26841,18794,-26841, - 17605,-27635,17605,-27635,17605,-27635,17605,-27635, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15130,-29064,15130,-29064,15130,-29064,15130,-29064, - 13847,-29696,13847,-29696,13847,-29696,13847,-29696, - 12539,-30272,12539,-30272,12539,-30272,12539,-30272, - 11206,-30790,11206,-30790,11206,-30790,11206,-30790, - 9853,-31250,9853,-31250,9853,-31250,9853,-31250, - 8480,-31650,8480,-31650,8480,-31650,8480,-31650, - 7092,-31990,7092,-31990,7092,-31990,7092,-31990, - 5689,-32269,5689,-32269,5689,-32269,5689,-32269, - 4276,-32486,4276,-32486,4276,-32486,4276,-32486, - 2855,-32642,2855,-32642,2855,-32642,2855,-32642, - 1429,-32735,1429,-32735,1429,-32735,1429,-32735, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1429,-32735,-1429,-32735,-1429,-32735,-1429,-32735, - -2855,-32642,-2855,-32642,-2855,-32642,-2855,-32642, - -4276,-32486,-4276,-32486,-4276,-32486,-4276,-32486, - -5689,-32269,-5689,-32269,-5689,-32269,-5689,-32269, - -7092,-31990,-7092,-31990,-7092,-31990,-7092,-31990, - -8480,-31650,-8480,-31650,-8480,-31650,-8480,-31650, - -9853,-31250,-9853,-31250,-9853,-31250,-9853,-31250, - -11206,-30790,-11206,-30790,-11206,-30790,-11206,-30790, - -12539,-30272,-12539,-30272,-12539,-30272,-12539,-30272, - -13847,-29696,-13847,-29696,-13847,-29696,-13847,-29696, - -15130,-29064,-15130,-29064,-15130,-29064,-15130,-29064, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -17605,-27635,-17605,-27635,-17605,-27635,-17605,-27635, - -18794,-26841,-18794,-26841,-18794,-26841,-18794,-26841, - -19947,-25995,-19947,-25995,-19947,-25995,-19947,-25995, - -21062,-25100,-21062,-25100,-21062,-25100,-21062,-25100, - -22137,-24158,-22137,-24158,-22137,-24158,-22137,-24158, - -23169,-23169,-23169,-23169,-23169,-23169,-23169,-23169, - -24158,-22137,-24158,-22137,-24158,-22137,-24158,-22137, - -25100,-21062,-25100,-21062,-25100,-21062,-25100,-21062, - -25995,-19947,-25995,-19947,-25995,-19947,-25995,-19947, - -26841,-18794,-26841,-18794,-26841,-18794,-26841,-18794, - -27635,-17605,-27635,-17605,-27635,-17605,-27635,-17605, - -28377,-16383,-28377,-16383,-28377,-16383,-28377,-16383, - -29064,-15130,-29064,-15130,-29064,-15130,-29064,-15130, - -29696,-13847,-29696,-13847,-29696,-13847,-29696,-13847, - -30272,-12539,-30272,-12539,-30272,-12539,-30272,-12539, - -30790,-11206,-30790,-11206,-30790,-11206,-30790,-11206, - -31250,-9853,-31250,-9853,-31250,-9853,-31250,-9853, - -31650,-8480,-31650,-8480,-31650,-8480,-31650,-8480, - -31990,-7092,-31990,-7092,-31990,-7092,-31990,-7092, - -32269,-5689,-32269,-5689,-32269,-5689,-32269,-5689, - -32486,-4276,-32486,-4276,-32486,-4276,-32486,-4276, - -32642,-2855,-32642,-2855,-32642,-2855,-32642,-2855, - -32735,-1429,-32735,-1429,-32735,-1429,-32735,-1429, - -32767,0,-32767,0,-32767,0,-32767,0, - -32735,1429,-32735,1429,-32735,1429,-32735,1429, - -32642,2855,-32642,2855,-32642,2855,-32642,2855, - -32486,4276,-32486,4276,-32486,4276,-32486,4276, - -32269,5689,-32269,5689,-32269,5689,-32269,5689, - -31990,7092,-31990,7092,-31990,7092,-31990,7092, - -31650,8480,-31650,8480,-31650,8480,-31650,8480, - -31250,9853,-31250,9853,-31250,9853,-31250,9853, - -30790,11206,-30790,11206,-30790,11206,-30790,11206, - -30272,12539,-30272,12539,-30272,12539,-30272,12539, - -29696,13847,-29696,13847,-29696,13847,-29696,13847, - -29064,15130,-29064,15130,-29064,15130,-29064,15130, - -28377,16383,-28377,16383,-28377,16383,-28377,16383, - -27635,17605,-27635,17605,-27635,17605,-27635,17605, - -26841,18794,-26841,18794,-26841,18794,-26841,18794, - -25995,19947,-25995,19947,-25995,19947,-25995,19947, - -25100,21062,-25100,21062,-25100,21062,-25100,21062, - -24158,22137,-24158,22137,-24158,22137,-24158,22137, - -23169,23169,-23169,23169,-23169,23169,-23169,23169, - -22137,24158,-22137,24158,-22137,24158,-22137,24158, - -21062,25100,-21062,25100,-21062,25100,-21062,25100, - -19947,25995,-19947,25995,-19947,25995,-19947,25995, - -18794,26841,-18794,26841,-18794,26841,-18794,26841, - -17605,27635,-17605,27635,-17605,27635,-17605,27635 - }; +static int16_t twa288[760]__attribute__((aligned(32))); +static int16_t twb288[760]__attribute__((aligned(32))); void dft288(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -8402,249 +7458,10 @@ void dft288(int16_t *x,int16_t *y,unsigned char scale_flag) } -static int16_t twa300[472]__attribute__((aligned(32))) = {32759,-686,32759,-686,32759,-686,32759,-686, - 32738,-1372,32738,-1372,32738,-1372,32738,-1372, - 32702,-2057,32702,-2057,32702,-2057,32702,-2057, - 32652,-2741,32652,-2741,32652,-2741,32652,-2741, - 32587,-3425,32587,-3425,32587,-3425,32587,-3425, - 32508,-4106,32508,-4106,32508,-4106,32508,-4106, - 32415,-4786,32415,-4786,32415,-4786,32415,-4786, - 32308,-5464,32308,-5464,32308,-5464,32308,-5464, - 32186,-6139,32186,-6139,32186,-6139,32186,-6139, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31901,-7482,31901,-7482,31901,-7482,31901,-7482, - 31737,-8148,31737,-8148,31737,-8148,31737,-8148, - 31559,-8811,31559,-8811,31559,-8811,31559,-8811, - 31368,-9470,31368,-9470,31368,-9470,31368,-9470, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 30944,-10775,30944,-10775,30944,-10775,30944,-10775, - 30711,-11421,30711,-11421,30711,-11421,30711,-11421, - 30465,-12062,30465,-12062,30465,-12062,30465,-12062, - 30206,-12697,30206,-12697,30206,-12697,30206,-12697, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 29648,-13951,29648,-13951,29648,-13951,29648,-13951, - 29349,-14569,29349,-14569,29349,-14569,29349,-14569, - 29038,-15180,29038,-15180,29038,-15180,29038,-15180, - 28713,-15785,28713,-15785,28713,-15785,28713,-15785, - 28377,-16383,28377,-16383,28377,-16383,28377,-16383, - 28027,-16974,28027,-16974,28027,-16974,28027,-16974, - 27666,-17557,27666,-17557,27666,-17557,27666,-17557, - 27292,-18132,27292,-18132,27292,-18132,27292,-18132, - 26906,-18700,26906,-18700,26906,-18700,26906,-18700, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 26099,-19810,26099,-19810,26099,-19810,26099,-19810, - 25679,-20353,25679,-20353,25679,-20353,25679,-20353, - 25247,-20886,25247,-20886,25247,-20886,25247,-20886, - 24804,-21410,24804,-21410,24804,-21410,24804,-21410, - 24350,-21925,24350,-21925,24350,-21925,24350,-21925, - 23886,-22430,23886,-22430,23886,-22430,23886,-22430, - 23411,-22925,23411,-22925,23411,-22925,23411,-22925, - 22925,-23411,22925,-23411,22925,-23411,22925,-23411, - 22430,-23886,22430,-23886,22430,-23886,22430,-23886, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 21410,-24804,21410,-24804,21410,-24804,21410,-24804, - 20886,-25247,20886,-25247,20886,-25247,20886,-25247, - 20353,-25679,20353,-25679,20353,-25679,20353,-25679, - 19810,-26099,19810,-26099,19810,-26099,19810,-26099, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 18700,-26906,18700,-26906,18700,-26906,18700,-26906, - 18132,-27292,18132,-27292,18132,-27292,18132,-27292, - 17557,-27666,17557,-27666,17557,-27666,17557,-27666, - 16974,-28027,16974,-28027,16974,-28027,16974,-28027, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15785,-28713,15785,-28713,15785,-28713,15785,-28713, - 15180,-29038,15180,-29038,15180,-29038,15180,-29038, - 14569,-29349,14569,-29349,14569,-29349,14569,-29349, - 13951,-29648,13951,-29648,13951,-29648,13951,-29648, - 13327,-29934,13327,-29934,13327,-29934,13327,-29934, - 12697,-30206,12697,-30206,12697,-30206,12697,-30206, - 12062,-30465,12062,-30465,12062,-30465,12062,-30465, - 11421,-30711,11421,-30711,11421,-30711,11421,-30711, - 10775,-30944,10775,-30944,10775,-30944,10775,-30944 - }; - -static int16_t twb300[472]__attribute__((aligned(32))) = {32738,-1372,32738,-1372,32738,-1372,32738,-1372, - 32652,-2741,32652,-2741,32652,-2741,32652,-2741, - 32508,-4106,32508,-4106,32508,-4106,32508,-4106, - 32308,-5464,32308,-5464,32308,-5464,32308,-5464, - 32050,-6812,32050,-6812,32050,-6812,32050,-6812, - 31737,-8148,31737,-8148,31737,-8148,31737,-8148, - 31368,-9470,31368,-9470,31368,-9470,31368,-9470, - 30944,-10775,30944,-10775,30944,-10775,30944,-10775, - 30465,-12062,30465,-12062,30465,-12062,30465,-12062, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 29349,-14569,29349,-14569,29349,-14569,29349,-14569, - 28713,-15785,28713,-15785,28713,-15785,28713,-15785, - 28027,-16974,28027,-16974,28027,-16974,28027,-16974, - 27292,-18132,27292,-18132,27292,-18132,27292,-18132, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 25679,-20353,25679,-20353,25679,-20353,25679,-20353, - 24804,-21410,24804,-21410,24804,-21410,24804,-21410, - 23886,-22430,23886,-22430,23886,-22430,23886,-22430, - 22925,-23411,22925,-23411,22925,-23411,22925,-23411, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 20886,-25247,20886,-25247,20886,-25247,20886,-25247, - 19810,-26099,19810,-26099,19810,-26099,19810,-26099, - 18700,-26906,18700,-26906,18700,-26906,18700,-26906, - 17557,-27666,17557,-27666,17557,-27666,17557,-27666, - 16383,-28377,16383,-28377,16383,-28377,16383,-28377, - 15180,-29038,15180,-29038,15180,-29038,15180,-29038, - 13951,-29648,13951,-29648,13951,-29648,13951,-29648, - 12697,-30206,12697,-30206,12697,-30206,12697,-30206, - 11421,-30711,11421,-30711,11421,-30711,11421,-30711, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 8811,-31559,8811,-31559,8811,-31559,8811,-31559, - 7482,-31901,7482,-31901,7482,-31901,7482,-31901, - 6139,-32186,6139,-32186,6139,-32186,6139,-32186, - 4786,-32415,4786,-32415,4786,-32415,4786,-32415, - 3425,-32587,3425,-32587,3425,-32587,3425,-32587, - 2057,-32702,2057,-32702,2057,-32702,2057,-32702, - 686,-32759,686,-32759,686,-32759,686,-32759, - -686,-32759,-686,-32759,-686,-32759,-686,-32759, - -2057,-32702,-2057,-32702,-2057,-32702,-2057,-32702, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -4786,-32415,-4786,-32415,-4786,-32415,-4786,-32415, - -6139,-32186,-6139,-32186,-6139,-32186,-6139,-32186, - -7482,-31901,-7482,-31901,-7482,-31901,-7482,-31901, - -8811,-31559,-8811,-31559,-8811,-31559,-8811,-31559, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -11421,-30711,-11421,-30711,-11421,-30711,-11421,-30711, - -12697,-30206,-12697,-30206,-12697,-30206,-12697,-30206, - -13951,-29648,-13951,-29648,-13951,-29648,-13951,-29648, - -15180,-29038,-15180,-29038,-15180,-29038,-15180,-29038, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -17557,-27666,-17557,-27666,-17557,-27666,-17557,-27666, - -18700,-26906,-18700,-26906,-18700,-26906,-18700,-26906, - -19810,-26099,-19810,-26099,-19810,-26099,-19810,-26099, - -20886,-25247,-20886,-25247,-20886,-25247,-20886,-25247, - -21925,-24350,-21925,-24350,-21925,-24350,-21925,-24350, - -22925,-23411,-22925,-23411,-22925,-23411,-22925,-23411, - -23886,-22430,-23886,-22430,-23886,-22430,-23886,-22430, - -24804,-21410,-24804,-21410,-24804,-21410,-24804,-21410, - -25679,-20353,-25679,-20353,-25679,-20353,-25679,-20353 - }; - -static int16_t twc300[472]__attribute__((aligned(32))) = {32702,-2057,32702,-2057,32702,-2057,32702,-2057, - 32508,-4106,32508,-4106,32508,-4106,32508,-4106, - 32186,-6139,32186,-6139,32186,-6139,32186,-6139, - 31737,-8148,31737,-8148,31737,-8148,31737,-8148, - 31163,-10125,31163,-10125,31163,-10125,31163,-10125, - 30465,-12062,30465,-12062,30465,-12062,30465,-12062, - 29648,-13951,29648,-13951,29648,-13951,29648,-13951, - 28713,-15785,28713,-15785,28713,-15785,28713,-15785, - 27666,-17557,27666,-17557,27666,-17557,27666,-17557, - 26509,-19259,26509,-19259,26509,-19259,26509,-19259, - 25247,-20886,25247,-20886,25247,-20886,25247,-20886, - 23886,-22430,23886,-22430,23886,-22430,23886,-22430, - 22430,-23886,22430,-23886,22430,-23886,22430,-23886, - 20886,-25247,20886,-25247,20886,-25247,20886,-25247, - 19259,-26509,19259,-26509,19259,-26509,19259,-26509, - 17557,-27666,17557,-27666,17557,-27666,17557,-27666, - 15785,-28713,15785,-28713,15785,-28713,15785,-28713, - 13951,-29648,13951,-29648,13951,-29648,13951,-29648, - 12062,-30465,12062,-30465,12062,-30465,12062,-30465, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 8148,-31737,8148,-31737,8148,-31737,8148,-31737, - 6139,-32186,6139,-32186,6139,-32186,6139,-32186, - 4106,-32508,4106,-32508,4106,-32508,4106,-32508, - 2057,-32702,2057,-32702,2057,-32702,2057,-32702, - 0,-32767,0,-32767,0,-32767,0,-32767, - -2057,-32702,-2057,-32702,-2057,-32702,-2057,-32702, - -4106,-32508,-4106,-32508,-4106,-32508,-4106,-32508, - -6139,-32186,-6139,-32186,-6139,-32186,-6139,-32186, - -8148,-31737,-8148,-31737,-8148,-31737,-8148,-31737, - -10125,-31163,-10125,-31163,-10125,-31163,-10125,-31163, - -12062,-30465,-12062,-30465,-12062,-30465,-12062,-30465, - -13951,-29648,-13951,-29648,-13951,-29648,-13951,-29648, - -15785,-28713,-15785,-28713,-15785,-28713,-15785,-28713, - -17557,-27666,-17557,-27666,-17557,-27666,-17557,-27666, - -19259,-26509,-19259,-26509,-19259,-26509,-19259,-26509, - -20886,-25247,-20886,-25247,-20886,-25247,-20886,-25247, - -22430,-23886,-22430,-23886,-22430,-23886,-22430,-23886, - -23886,-22430,-23886,-22430,-23886,-22430,-23886,-22430, - -25247,-20886,-25247,-20886,-25247,-20886,-25247,-20886, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -27666,-17557,-27666,-17557,-27666,-17557,-27666,-17557, - -28713,-15785,-28713,-15785,-28713,-15785,-28713,-15785, - -29648,-13951,-29648,-13951,-29648,-13951,-29648,-13951, - -30465,-12062,-30465,-12062,-30465,-12062,-30465,-12062, - -31163,-10125,-31163,-10125,-31163,-10125,-31163,-10125, - -31737,-8148,-31737,-8148,-31737,-8148,-31737,-8148, - -32186,-6139,-32186,-6139,-32186,-6139,-32186,-6139, - -32508,-4106,-32508,-4106,-32508,-4106,-32508,-4106, - -32702,-2057,-32702,-2057,-32702,-2057,-32702,-2057, - -32767,0,-32767,0,-32767,0,-32767,0, - -32702,2057,-32702,2057,-32702,2057,-32702,2057, - -32508,4106,-32508,4106,-32508,4106,-32508,4106, - -32186,6139,-32186,6139,-32186,6139,-32186,6139, - -31737,8148,-31737,8148,-31737,8148,-31737,8148, - -31163,10125,-31163,10125,-31163,10125,-31163,10125, - -30465,12062,-30465,12062,-30465,12062,-30465,12062, - -29648,13951,-29648,13951,-29648,13951,-29648,13951, - -28713,15785,-28713,15785,-28713,15785,-28713,15785, - -27666,17557,-27666,17557,-27666,17557,-27666,17557 - }; - -static int16_t twd300[472]__attribute__((aligned(32))) = {32652,-2741,32652,-2741,32652,-2741,32652,-2741, - 32308,-5464,32308,-5464,32308,-5464,32308,-5464, - 31737,-8148,31737,-8148,31737,-8148,31737,-8148, - 30944,-10775,30944,-10775,30944,-10775,30944,-10775, - 29934,-13327,29934,-13327,29934,-13327,29934,-13327, - 28713,-15785,28713,-15785,28713,-15785,28713,-15785, - 27292,-18132,27292,-18132,27292,-18132,27292,-18132, - 25679,-20353,25679,-20353,25679,-20353,25679,-20353, - 23886,-22430,23886,-22430,23886,-22430,23886,-22430, - 21925,-24350,21925,-24350,21925,-24350,21925,-24350, - 19810,-26099,19810,-26099,19810,-26099,19810,-26099, - 17557,-27666,17557,-27666,17557,-27666,17557,-27666, - 15180,-29038,15180,-29038,15180,-29038,15180,-29038, - 12697,-30206,12697,-30206,12697,-30206,12697,-30206, - 10125,-31163,10125,-31163,10125,-31163,10125,-31163, - 7482,-31901,7482,-31901,7482,-31901,7482,-31901, - 4786,-32415,4786,-32415,4786,-32415,4786,-32415, - 2057,-32702,2057,-32702,2057,-32702,2057,-32702, - -686,-32759,-686,-32759,-686,-32759,-686,-32759, - -3425,-32587,-3425,-32587,-3425,-32587,-3425,-32587, - -6139,-32186,-6139,-32186,-6139,-32186,-6139,-32186, - -8811,-31559,-8811,-31559,-8811,-31559,-8811,-31559, - -11421,-30711,-11421,-30711,-11421,-30711,-11421,-30711, - -13951,-29648,-13951,-29648,-13951,-29648,-13951,-29648, - -16383,-28377,-16383,-28377,-16383,-28377,-16383,-28377, - -18700,-26906,-18700,-26906,-18700,-26906,-18700,-26906, - -20886,-25247,-20886,-25247,-20886,-25247,-20886,-25247, - -22925,-23411,-22925,-23411,-22925,-23411,-22925,-23411, - -24804,-21410,-24804,-21410,-24804,-21410,-24804,-21410, - -26509,-19259,-26509,-19259,-26509,-19259,-26509,-19259, - -28027,-16974,-28027,-16974,-28027,-16974,-28027,-16974, - -29349,-14569,-29349,-14569,-29349,-14569,-29349,-14569, - -30465,-12062,-30465,-12062,-30465,-12062,-30465,-12062, - -31368,-9470,-31368,-9470,-31368,-9470,-31368,-9470, - -32050,-6812,-32050,-6812,-32050,-6812,-32050,-6812, - -32508,-4106,-32508,-4106,-32508,-4106,-32508,-4106, - -32738,-1372,-32738,-1372,-32738,-1372,-32738,-1372, - -32738,1372,-32738,1372,-32738,1372,-32738,1372, - -32508,4106,-32508,4106,-32508,4106,-32508,4106, - -32050,6812,-32050,6812,-32050,6812,-32050,6812, - -31368,9470,-31368,9470,-31368,9470,-31368,9470, - -30465,12062,-30465,12062,-30465,12062,-30465,12062, - -29349,14569,-29349,14569,-29349,14569,-29349,14569, - -28027,16974,-28027,16974,-28027,16974,-28027,16974, - -26509,19259,-26509,19259,-26509,19259,-26509,19259, - -24804,21410,-24804,21410,-24804,21410,-24804,21410, - -22925,23411,-22925,23411,-22925,23411,-22925,23411, - -20886,25247,-20886,25247,-20886,25247,-20886,25247, - -18700,26906,-18700,26906,-18700,26906,-18700,26906, - -16383,28377,-16383,28377,-16383,28377,-16383,28377, - -13951,29648,-13951,29648,-13951,29648,-13951,29648, - -11421,30711,-11421,30711,-11421,30711,-11421,30711, - -8811,31559,-8811,31559,-8811,31559,-8811,31559, - -6139,32186,-6139,32186,-6139,32186,-6139,32186, - -3425,32587,-3425,32587,-3425,32587,-3425,32587, - -686,32759,-686,32759,-686,32759,-686,32759, - 2057,32702,2057,32702,2057,32702,2057,32702, - 4786,32415,4786,32415,4786,32415,4786,32415, - 7482,31901,7482,31901,7482,31901,7482,31901 - }; +static int16_t twa300[472]__attribute__((aligned(32))); +static int16_t twb300[472]__attribute__((aligned(32))); +static int16_t twc300[472]__attribute__((aligned(32))); +static int16_t twd300[472]__attribute__((aligned(32))); void dft300(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -8707,246 +7524,8 @@ void dft300(int16_t *x,int16_t *y,unsigned char scale_flag) } -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:107)/324)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:107)/324)); -twa2 = zeros(1,2*107); -twb2 = zeros(1,2*107); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa324[107*2*4] = {"); -for i=1:2:(2*106) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb324[107*2*4] = {"); -for i=1:2:(2*106) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); - */ -static int16_t twa324[107*2*4] = {32760,-636,32760,-636,32760,-636,32760,-636, - 32742,-1271,32742,-1271,32742,-1271,32742,-1271, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32668,-2540,32668,-2540,32668,-2540,32668,-2540, - 32613,-3173,32613,-3173,32613,-3173,32613,-3173, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32465,-4435,32465,-4435,32465,-4435,32465,-4435, - 32373,-5064,32373,-5064,32373,-5064,32373,-5064, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32152,-6315,32152,-6315,32152,-6315,32152,-6315, - 32024,-6937,32024,-6937,32024,-6937,32024,-6937, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31731,-8174,31731,-8174,31731,-8174,31731,-8174, - 31566,-8788,31566,-8788,31566,-8788,31566,-8788, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31202,-10005,31202,-10005,31202,-10005,31202,-10005, - 31002,-10608,31002,-10608,31002,-10608,31002,-10608, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30567,-11802,30567,-11802,30567,-11802,30567,-11802, - 30333,-12393,30333,-12393,30333,-12393,30333,-12393, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29829,-13560,29829,-13560,29829,-13560,29829,-13560, - 29561,-14136,29561,-14136,29561,-14136,29561,-14136, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 28990,-15271,28990,-15271,28990,-15271,28990,-15271, - 28689,-15831,28689,-15831,28689,-15831,28689,-15831, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28054,-16931,28054,-16931,28054,-16931,28054,-16931, - 27720,-17472,27720,-17472,27720,-17472,27720,-17472, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27022,-18534,27022,-18534,27022,-18534,27022,-18534, - 26657,-19054,26657,-19054,26657,-19054,26657,-19054, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 25898,-20074,25898,-20074,25898,-20074,25898,-20074, - 25504,-20572,25504,-20572,25504,-20572,25504,-20572, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24687,-21546,24687,-21546,24687,-21546,24687,-21546, - 24265,-22020,24265,-22020,24265,-22020,24265,-22020, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23393,-22945,23393,-22945,23393,-22945,23393,-22945, - 22944,-23394,22944,-23394,22944,-23394,22944,-23394, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22019,-24266,22019,-24266,22019,-24266,22019,-24266, - 21545,-24688,21545,-24688,21545,-24688,21545,-24688, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20571,-25505,20571,-25505,20571,-25505,20571,-25505, - 20073,-25899,20073,-25899,20073,-25899,20073,-25899, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19053,-26658,19053,-26658,19053,-26658,19053,-26658, - 18533,-27023,18533,-27023,18533,-27023,18533,-27023, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17471,-27721,17471,-27721,17471,-27721,17471,-27721, - 16930,-28055,16930,-28055,16930,-28055,16930,-28055, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15830,-28690,15830,-28690,15830,-28690,15830,-28690, - 15270,-28991,15270,-28991,15270,-28991,15270,-28991, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14135,-29562,14135,-29562,14135,-29562,14135,-29562, - 13559,-29830,13559,-29830,13559,-29830,13559,-29830, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12392,-30334,12392,-30334,12392,-30334,12392,-30334, - 11801,-30568,11801,-30568,11801,-30568,11801,-30568, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10607,-31003,10607,-31003,10607,-31003,10607,-31003, - 10004,-31203,10004,-31203,10004,-31203,10004,-31203, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8787,-31567,8787,-31567,8787,-31567,8787,-31567, - 8173,-31732,8173,-31732,8173,-31732,8173,-31732, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 6936,-32025,6936,-32025,6936,-32025,6936,-32025, - 6314,-32153,6314,-32153,6314,-32153,6314,-32153, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5063,-32374,5063,-32374,5063,-32374,5063,-32374, - 4434,-32466,4434,-32466,4434,-32466,4434,-32466, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3172,-32614,3172,-32614,3172,-32614,3172,-32614, - 2539,-32669,2539,-32669,2539,-32669,2539,-32669, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1270,-32743,1270,-32743,1270,-32743,1270,-32743, - 635,-32761,635,-32761,635,-32761,635,-32761, - 0,-32767,0,-32767,0,-32767,0,-32767, - -636,-32761,-636,-32761,-636,-32761,-636,-32761, - -1271,-32743,-1271,-32743,-1271,-32743,-1271,-32743, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2540,-32669,-2540,-32669,-2540,-32669,-2540,-32669, - -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466, - -5064,-32374,-5064,-32374,-5064,-32374,-5064,-32374, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6315,-32153,-6315,-32153,-6315,-32153,-6315,-32153, - -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732, - -8788,-31567,-8788,-31567,-8788,-31567,-8788,-31567, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -10005,-31203,-10005,-31203,-10005,-31203,-10005,-31203, - -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568, - -12393,-30334,-12393,-30334,-12393,-30334,-12393,-30334, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13560,-29830,-13560,-29830,-13560,-29830,-13560,-29830, - -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991, - -15831,-28690,-15831,-28690,-15831,-28690,-15831,-28690 - }; -static int16_t twb324[107*2*4] = {32742,-1271,32742,-1271,32742,-1271,32742,-1271, - 32668,-2540,32668,-2540,32668,-2540,32668,-2540, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32373,-5064,32373,-5064,32373,-5064,32373,-5064, - 32152,-6315,32152,-6315,32152,-6315,32152,-6315, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31566,-8788,31566,-8788,31566,-8788,31566,-8788, - 31202,-10005,31202,-10005,31202,-10005,31202,-10005, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30333,-12393,30333,-12393,30333,-12393,30333,-12393, - 29829,-13560,29829,-13560,29829,-13560,29829,-13560, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 28689,-15831,28689,-15831,28689,-15831,28689,-15831, - 28054,-16931,28054,-16931,28054,-16931,28054,-16931, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 26657,-19054,26657,-19054,26657,-19054,26657,-19054, - 25898,-20074,25898,-20074,25898,-20074,25898,-20074, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24265,-22020,24265,-22020,24265,-22020,24265,-22020, - 23393,-22945,23393,-22945,23393,-22945,23393,-22945, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 21545,-24688,21545,-24688,21545,-24688,21545,-24688, - 20571,-25505,20571,-25505,20571,-25505,20571,-25505, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 18533,-27023,18533,-27023,18533,-27023,18533,-27023, - 17471,-27721,17471,-27721,17471,-27721,17471,-27721, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15270,-28991,15270,-28991,15270,-28991,15270,-28991, - 14135,-29562,14135,-29562,14135,-29562,14135,-29562, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 11801,-30568,11801,-30568,11801,-30568,11801,-30568, - 10607,-31003,10607,-31003,10607,-31003,10607,-31003, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8173,-31732,8173,-31732,8173,-31732,8173,-31732, - 6936,-32025,6936,-32025,6936,-32025,6936,-32025, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 4434,-32466,4434,-32466,4434,-32466,4434,-32466, - 3172,-32614,3172,-32614,3172,-32614,3172,-32614, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 635,-32761,635,-32761,635,-32761,635,-32761, - -636,-32761,-636,-32761,-636,-32761,-636,-32761, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614, - -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025, - -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003, - -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562, - -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17472,-27721,-17472,-27721,-17472,-27721,-17472,-27721, - -18534,-27023,-18534,-27023,-18534,-27023,-18534,-27023, - -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284, - -20572,-25505,-20572,-25505,-20572,-25505,-20572,-25505, - -21546,-24688,-21546,-24688,-21546,-24688,-21546,-24688, - -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834, - -23394,-22945,-23394,-22945,-23394,-22945,-23394,-22945, - -24266,-22020,-24266,-22020,-24266,-22020,-24266,-22020, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25899,-20074,-25899,-20074,-25899,-20074,-25899,-20074, - -26658,-19054,-26658,-19054,-26658,-19054,-26658,-19054, - -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006, - -28055,-16931,-28055,-16931,-28055,-16931,-28055,-16931, - -28690,-15831,-28690,-15831,-28690,-15831,-28690,-15831, - -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706, - -29830,-13560,-29830,-13560,-29830,-13560,-29830,-13560, - -30334,-12393,-30334,-12393,-30334,-12393,-30334,-12393, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -31203,-10005,-31203,-10005,-31203,-10005,-31203,-10005, - -31567,-8788,-31567,-8788,-31567,-8788,-31567,-8788, - -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557, - -32153,-6315,-32153,-6315,-32153,-6315,-32153,-6315, - -32374,-5064,-32374,-5064,-32374,-5064,-32374,-5064, - -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805, - -32669,-2540,-32669,-2540,-32669,-2540,-32669,-2540, - -32743,-1271,-32743,-1271,-32743,-1271,-32743,-1271, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32743,1270,-32743,1270,-32743,1270,-32743,1270, - -32669,2539,-32669,2539,-32669,2539,-32669,2539, - -32546,3804,-32546,3804,-32546,3804,-32546,3804, - -32374,5063,-32374,5063,-32374,5063,-32374,5063, - -32153,6314,-32153,6314,-32153,6314,-32153,6314, - -31884,7556,-31884,7556,-31884,7556,-31884,7556, - -31567,8787,-31567,8787,-31567,8787,-31567,8787, - -31203,10004,-31203,10004,-31203,10004,-31203,10004, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30334,12392,-30334,12392,-30334,12392,-30334,12392, - -29830,13559,-29830,13559,-29830,13559,-29830,13559, - -29282,14705,-29282,14705,-29282,14705,-29282,14705, - -28690,15830,-28690,15830,-28690,15830,-28690,15830, - -28055,16930,-28055,16930,-28055,16930,-28055,16930, - -27377,18005,-27377,18005,-27377,18005,-27377,18005, - -26658,19053,-26658,19053,-26658,19053,-26658,19053, - -25899,20073,-25899,20073,-25899,20073,-25899,20073, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24266,22019,-24266,22019,-24266,22019,-24266,22019, - -23394,22944,-23394,22944,-23394,22944,-23394,22944, - -22487,23833,-22487,23833,-22487,23833,-22487,23833, - -21546,24687,-21546,24687,-21546,24687,-21546,24687, - -20572,25504,-20572,25504,-20572,25504,-20572,25504, - -19568,26283,-19568,26283,-19568,26283,-19568,26283, - -18534,27022,-18534,27022,-18534,27022,-18534,27022, - -17472,27720,-17472,27720,-17472,27720,-17472,27720 - }; +static int16_t twa324[107*2*4]; +static int16_t twb324[107*2*4]; void dft324(int16_t *x,int16_t *y,unsigned char scale_flag) // 108 x 3 { @@ -8996,271 +7575,8 @@ void dft324(int16_t *x,int16_t *y,unsigned char scale_flag) // 108 x 3 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:119)/360)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:119)/360)); -twa2 = zeros(1,2*119); -twb2 = zeros(1,2*119); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa360[119*2*4] = {"); -for i=1:2:(2*118) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb360[119*2*4] = {"); -for i=1:2:(2*118) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); - */ -static int16_t twa360[119*2*4] = {32762,-572,32762,-572,32762,-572,32762,-572, - 32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32522,-3994,32522,-3994,32522,-3994,32522,-3994, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32164,-6253,32164,-6253,32164,-6253,32164,-6253, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31927,-7371,31927,-7371,31927,-7371,31927,-7371, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31335,-9581,31335,-9581,31335,-9581,31335,-9581, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 30981,-10668,30981,-10668,30981,-10668,30981,-10668, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 30162,-12804,30162,-12804,30162,-12804,30162,-12804, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28658,-15886,28658,-15886,28658,-15886,28658,-15886, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28086,-16877,28086,-16877,28086,-16877,28086,-16877, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26168,-19720,26168,-19720,26168,-19720,26168,-19720, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24729,-21498,24729,-21498,24729,-21498,24729,-21498, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 23964,-22348,23964,-22348,23964,-22348,23964,-22348, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 22347,-23965,22347,-23965,22347,-23965,22347,-23965, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21497,-24730,21497,-24730,21497,-24730,21497,-24730, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19719,-26169,19719,-26169,19719,-26169,19719,-26169, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 16876,-28087,16876,-28087,16876,-28087,16876,-28087, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15885,-28659,15885,-28659,15885,-28659,15885,-28659, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12803,-30163,12803,-30163,12803,-30163,12803,-30163, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10667,-30982,10667,-30982,10667,-30982,10667,-30982, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9580,-31336,9580,-31336,9580,-31336,9580,-31336, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7370,-31928,7370,-31928,7370,-31928,7370,-31928, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6252,-32165,6252,-32165,6252,-32165,6252,-32165, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 3993,-32523,3993,-32523,3993,-32523,3993,-32523, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 571,-32763,571,-32763,571,-32763,571,-32763, - 0,-32767,0,-32767,0,-32767,0,-32767, - -572,-32763,-572,-32763,-572,-32763,-572,-32763, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3994,-32523,-3994,-32523,-3994,-32523,-3994,-32523, - -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6253,-32165,-6253,-32165,-6253,-32165,-6253,-32165, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7371,-31928,-7371,-31928,-7371,-31928,-7371,-31928, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498, - -9581,-31336,-9581,-31336,-9581,-31336,-9581,-31336, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10668,-30982,-10668,-30982,-10668,-30982,-10668,-30982, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12804,-30163,-12804,-30163,-12804,-30163,-12804,-30163, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932, - -15886,-28659,-15886,-28659,-15886,-28659,-15886,-28659 - }; -static int16_t twb360[119*2*4] = {32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17364,-27788,-17364,-27788,-17364,-27788,-17364,-27788, - -18324,-27166,-18324,-27166,-18324,-27166,-18324,-27166, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -20174,-25821,-20174,-25821,-20174,-25821,-20174,-25821, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22762,-23571,-22762,-23571,-22762,-23571,-22762,-23571, - -23571,-22762,-23571,-22762,-23571,-22762,-23571,-22762, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25821,-20174,-25821,-20174,-25821,-20174,-25821,-20174, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -27166,-18324,-27166,-18324,-27166,-18324,-27166,-18324, - -27788,-17364,-27788,-17364,-27788,-17364,-27788,-17364, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28932,-15384,-28932,-15384,-28932,-15384,-28932,-15384, - -29451,-14365,-29451,-14365,-29451,-14365,-29451,-14365, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30382,-12275,-30382,-12275,-30382,-12275,-30382,-12275, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31498,-9032,-31498,-9032,-31498,-9032,-31498,-9032, - -31794,-7928,-31794,-7928,-31794,-7928,-31794,-7928, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32449,-4561,-32449,-4561,-32449,-4561,-32449,-4561, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32688,-2286,-32688,-2286,-32688,-2286,-32688,-2286, - -32748,-1144,-32748,-1144,-32748,-1144,-32748,-1144, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32748,1143,-32748,1143,-32748,1143,-32748,1143, - -32688,2285,-32688,2285,-32688,2285,-32688,2285, - -32588,3425,-32588,3425,-32588,3425,-32588,3425, - -32449,4560,-32449,4560,-32449,4560,-32449,4560, - -32270,5689,-32270,5689,-32270,5689,-32270,5689, - -32051,6812,-32051,6812,-32051,6812,-32051,6812, - -31794,7927,-31794,7927,-31794,7927,-31794,7927, - -31498,9031,-31498,9031,-31498,9031,-31498,9031, - -31164,10125,-31164,10125,-31164,10125,-31164,10125, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30382,12274,-30382,12274,-30382,12274,-30382,12274, - -29935,13327,-29935,13327,-29935,13327,-29935,13327, - -29451,14364,-29451,14364,-29451,14364,-29451,14364, - -28932,15383,-28932,15383,-28932,15383,-28932,15383, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -27788,17363,-27788,17363,-27788,17363,-27788,17363, - -27166,18323,-27166,18323,-27166,18323,-27166,18323, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -25821,20173,-25821,20173,-25821,20173,-25821,20173, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24351,21925,-24351,21925,-24351,21925,-24351,21925, - -23571,22761,-23571,22761,-23571,22761,-23571,22761, - -22762,23570,-22762,23570,-22762,23570,-22762,23570, - -21926,24350,-21926,24350,-21926,24350,-21926,24350, - -21063,25100,-21063,25100,-21063,25100,-21063,25100, - -20174,25820,-20174,25820,-20174,25820,-20174,25820, - -19260,26509,-19260,26509,-19260,26509,-19260,26509, - -18324,27165,-18324,27165,-18324,27165,-18324,27165, - -17364,27787,-17364,27787,-17364,27787,-17364,27787 - }; - +static int16_t twa360[119*2*4]; +static int16_t twb360[119*2*4]; void dft360(int16_t *x,int16_t *y,unsigned char scale_flag) // 120 x 3 { @@ -9310,329 +7626,9 @@ void dft360(int16_t *x,int16_t *y,unsigned char scale_flag) // 120 x 3 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:95)/384)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:95)/384)); -twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:95)/384)); -twa2 = zeros(1,2*95); -twb2 = zeros(1,2*95); -twc2 = zeros(1,2*95); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -twc2(1:2:end) = real(twc); -twc2(2:2:end) = imag(twc); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa384[95*2*4] = {"); -for i=1:2:(2*94) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb384[95*2*4] = {"); -for i=1:2:(2*94) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fprintf(fd,"static int16_t twc384[95*2*4] = {"); -for i=1:2:(2*94) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -fclose(fd); - */ - -static int16_t twa384[95*2*4] = {32762,-537,32762,-537,32762,-537,32762,-537, - 32749,-1073,32749,-1073,32749,-1073,32749,-1073, - 32727,-1608,32727,-1608,32727,-1608,32727,-1608, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32657,-2678,32657,-2678,32657,-2678,32657,-2678, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32552,-3745,32552,-3745,32552,-3745,32552,-3745, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32412,-4808,32412,-4808,32412,-4808,32412,-4808, - 32329,-5338,32329,-5338,32329,-5338,32329,-5338, - 32237,-5866,32237,-5866,32237,-5866,32237,-5866, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32028,-6918,32028,-6918,32028,-6918,32028,-6918, - 31911,-7441,31911,-7441,31911,-7441,31911,-7441, - 31785,-7962,31785,-7962,31785,-7962,31785,-7962, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31507,-8998,31507,-8998,31507,-8998,31507,-8998, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31196,-10024,31196,-10024,31196,-10024,31196,-10024, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30851,-11039,30851,-11039,30851,-11039,30851,-11039, - 30666,-11543,30666,-11543,30666,-11543,30666,-11543, - 30473,-12043,30473,-12043,30473,-12043,30473,-12043, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30063,-13034,30063,-13034,30063,-13034,30063,-13034, - 29846,-13524,29846,-13524,29846,-13524,29846,-13524, - 29621,-14010,29621,-14010,29621,-14010,29621,-14010, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29146,-14972,29146,-14972,29146,-14972,29146,-14972, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28641,-15918,28641,-15918,28641,-15918,28641,-15918, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28105,-16846,28105,-16846,28105,-16846,28105,-16846, - 27825,-17304,27825,-17304,27825,-17304,27825,-17304, - 27538,-17757,27538,-17757,27538,-17757,27538,-17757, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 26943,-18648,26943,-18648,26943,-18648,26943,-18648, - 26634,-19087,26634,-19087,26634,-19087,26634,-19087, - 26318,-19520,26318,-19520,26318,-19520,26318,-19520, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25665,-20370,25665,-20370,25665,-20370,25665,-20370, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 24985,-21199,24985,-21199,24985,-21199,24985,-21199, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24278,-22005,24278,-22005,24278,-22005,24278,-22005, - 23915,-22400,23915,-22400,23915,-22400,23915,-22400, - 23545,-22788,23545,-22788,23545,-22788,23545,-22788, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22787,-23546,22787,-23546,22787,-23546,22787,-23546, - 22399,-23916,22399,-23916,22399,-23916,22399,-23916, - 22004,-24279,22004,-24279,22004,-24279,22004,-24279, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21198,-24986,21198,-24986,21198,-24986,21198,-24986, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 20369,-25666,20369,-25666,20369,-25666,20369,-25666, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19519,-26319,19519,-26319,19519,-26319,19519,-26319, - 19086,-26635,19086,-26635,19086,-26635,19086,-26635, - 18647,-26944,18647,-26944,18647,-26944,18647,-26944, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17756,-27539,17756,-27539,17756,-27539,17756,-27539, - 17303,-27826,17303,-27826,17303,-27826,17303,-27826, - 16845,-28106,16845,-28106,16845,-28106,16845,-28106, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15917,-28642,15917,-28642,15917,-28642,15917,-28642, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 14971,-29147,14971,-29147,14971,-29147,14971,-29147, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14009,-29622,14009,-29622,14009,-29622,14009,-29622, - 13523,-29847,13523,-29847,13523,-29847,13523,-29847, - 13033,-30064,13033,-30064,13033,-30064,13033,-30064, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12042,-30474,12042,-30474,12042,-30474,12042,-30474, - 11542,-30667,11542,-30667,11542,-30667,11542,-30667, - 11038,-30852,11038,-30852,11038,-30852,11038,-30852, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10023,-31197,10023,-31197,10023,-31197,10023,-31197, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 8997,-31508,8997,-31508,8997,-31508,8997,-31508, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7961,-31786,7961,-31786,7961,-31786,7961,-31786, - 7440,-31912,7440,-31912,7440,-31912,7440,-31912, - 6917,-32029,6917,-32029,6917,-32029,6917,-32029, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5865,-32238,5865,-32238,5865,-32238,5865,-32238, - 5337,-32330,5337,-32330,5337,-32330,5337,-32330, - 4807,-32413,4807,-32413,4807,-32413,4807,-32413, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3744,-32553,3744,-32553,3744,-32553,3744,-32553, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 2677,-32658,2677,-32658,2677,-32658,2677,-32658, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1607,-32728,1607,-32728,1607,-32728,1607,-32728, - 1072,-32750,1072,-32750,1072,-32750,1072,-32750, - 536,-32763,536,-32763,536,-32763,536,-32763 - }; -static int16_t twb384[95*2*4] = {32749,-1073,32749,-1073,32749,-1073,32749,-1073, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32329,-5338,32329,-5338,32329,-5338,32329,-5338, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 31911,-7441,31911,-7441,31911,-7441,31911,-7441, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30666,-11543,30666,-11543,30666,-11543,30666,-11543, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 29846,-13524,29846,-13524,29846,-13524,29846,-13524, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 27825,-17304,27825,-17304,27825,-17304,27825,-17304, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 26634,-19087,26634,-19087,26634,-19087,26634,-19087, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 23915,-22400,23915,-22400,23915,-22400,23915,-22400, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22399,-23916,22399,-23916,22399,-23916,22399,-23916, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19086,-26635,19086,-26635,19086,-26635,19086,-26635, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17303,-27826,17303,-27826,17303,-27826,17303,-27826, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 13523,-29847,13523,-29847,13523,-29847,13523,-29847, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11542,-30667,11542,-30667,11542,-30667,11542,-30667, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7440,-31912,7440,-31912,7440,-31912,7440,-31912, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5337,-32330,5337,-32330,5337,-32330,5337,-32330, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1072,-32750,1072,-32750,1072,-32750,1072,-32750, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1073,-32750,-1073,-32750,-1073,-32750,-1073,-32750, - -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697, - -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -5338,-32330,-5338,-32330,-5338,-32330,-5338,-32330, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -7441,-31912,-7441,-31912,-7441,-31912,-7441,-31912, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357, - -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029, - -11543,-30667,-11543,-30667,-11543,-30667,-11543,-30667, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13524,-29847,-13524,-29847,-13524,-29847,-13524,-29847, - -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388, - -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17304,-27826,-17304,-27826,-17304,-27826,-17304,-27826, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -19087,-26635,-19087,-26635,-19087,-26635,-19087,-26635, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20788,-25330,-20788,-25330,-20788,-25330,-20788,-25330, - -21605,-24636,-21605,-24636,-21605,-24636,-21605,-24636, - -22400,-23916,-22400,-23916,-22400,-23916,-22400,-23916, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23916,-22400,-23916,-22400,-23916,-22400,-23916,-22400, - -24636,-21605,-24636,-21605,-24636,-21605,-24636,-21605, - -25330,-20788,-25330,-20788,-25330,-20788,-25330,-20788, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26635,-19087,-26635,-19087,-26635,-19087,-26635,-19087, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -27826,-17304,-27826,-17304,-27826,-17304,-27826,-17304, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28898,-15447,-28898,-15447,-28898,-15447,-28898,-15447, - -29388,-14493,-29388,-14493,-29388,-14493,-29388,-14493, - -29847,-13524,-29847,-13524,-29847,-13524,-29847,-13524, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30667,-11543,-30667,-11543,-30667,-11543,-30667,-11543, - -31029,-10533,-31029,-10533,-31029,-10533,-31029,-10533, - -31357,-9512,-31357,-9512,-31357,-9512,-31357,-9512, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31912,-7441,-31912,-7441,-31912,-7441,-31912,-7441, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32330,-5338,-32330,-5338,-32330,-5338,-32330,-5338, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32610,-3212,-32610,-3212,-32610,-3212,-32610,-3212, - -32697,-2144,-32697,-2144,-32697,-2144,-32697,-2144, - -32750,-1073,-32750,-1073,-32750,-1073,-32750,-1073 - }; -static int16_t twc384[95*2*4] = {32727,-1608,32727,-1608,32727,-1608,32727,-1608, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32412,-4808,32412,-4808,32412,-4808,32412,-4808, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 31785,-7962,31785,-7962,31785,-7962,31785,-7962, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 30851,-11039,30851,-11039,30851,-11039,30851,-11039, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 29621,-14010,29621,-14010,29621,-14010,29621,-14010, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28105,-16846,28105,-16846,28105,-16846,28105,-16846, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 26318,-19520,26318,-19520,26318,-19520,26318,-19520, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 24278,-22005,24278,-22005,24278,-22005,24278,-22005, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22004,-24279,22004,-24279,22004,-24279,22004,-24279, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 19519,-26319,19519,-26319,19519,-26319,19519,-26319, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 16845,-28106,16845,-28106,16845,-28106,16845,-28106, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 14009,-29622,14009,-29622,14009,-29622,14009,-29622, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11038,-30852,11038,-30852,11038,-30852,11038,-30852, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 7961,-31786,7961,-31786,7961,-31786,7961,-31786, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 4807,-32413,4807,-32413,4807,-32413,4807,-32413, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 1607,-32728,1607,-32728,1607,-32728,1607,-32728, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1608,-32728,-1608,-32728,-1608,-32728,-1608,-32728, - -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610, - -4808,-32413,-4808,-32413,-4808,-32413,-4808,-32413, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -7962,-31786,-7962,-31786,-7962,-31786,-7962,-31786, - -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357, - -11039,-30852,-11039,-30852,-11039,-30852,-11039,-30852, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -14010,-29622,-14010,-29622,-14010,-29622,-14010,-29622, - -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898, - -16846,-28106,-16846,-28106,-16846,-28106,-16846,-28106, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -19520,-26319,-19520,-26319,-19520,-26319,-19520,-26319, - -20788,-25330,-20788,-25330,-20788,-25330,-20788,-25330, - -22005,-24279,-22005,-24279,-22005,-24279,-22005,-24279, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -24279,-22005,-24279,-22005,-24279,-22005,-24279,-22005, - -25330,-20788,-25330,-20788,-25330,-20788,-25330,-20788, - -26319,-19520,-26319,-19520,-26319,-19520,-26319,-19520, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -28106,-16846,-28106,-16846,-28106,-16846,-28106,-16846, - -28898,-15447,-28898,-15447,-28898,-15447,-28898,-15447, - -29622,-14010,-29622,-14010,-29622,-14010,-29622,-14010, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30852,-11039,-30852,-11039,-30852,-11039,-30852,-11039, - -31357,-9512,-31357,-9512,-31357,-9512,-31357,-9512, - -31786,-7962,-31786,-7962,-31786,-7962,-31786,-7962, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32413,-4808,-32413,-4808,-32413,-4808,-32413,-4808, - -32610,-3212,-32610,-3212,-32610,-3212,-32610,-3212, - -32728,-1608,-32728,-1608,-32728,-1608,-32728,-1608, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32728,1607,-32728,1607,-32728,1607,-32728,1607, - -32610,3211,-32610,3211,-32610,3211,-32610,3211, - -32413,4807,-32413,4807,-32413,4807,-32413,4807, - -32138,6392,-32138,6392,-32138,6392,-32138,6392, - -31786,7961,-31786,7961,-31786,7961,-31786,7961, - -31357,9511,-31357,9511,-31357,9511,-31357,9511, - -30852,11038,-30852,11038,-30852,11038,-30852,11038, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -29622,14009,-29622,14009,-29622,14009,-29622,14009, - -28898,15446,-28898,15446,-28898,15446,-28898,15446, - -28106,16845,-28106,16845,-28106,16845,-28106,16845, - -27245,18204,-27245,18204,-27245,18204,-27245,18204, - -26319,19519,-26319,19519,-26319,19519,-26319,19519, - -25330,20787,-25330,20787,-25330,20787,-25330,20787, - -24279,22004,-24279,22004,-24279,22004,-24279,22004, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22005,24278,-22005,24278,-22005,24278,-22005,24278, - -20788,25329,-20788,25329,-20788,25329,-20788,25329, - -19520,26318,-19520,26318,-19520,26318,-19520,26318, - -18205,27244,-18205,27244,-18205,27244,-18205,27244, - -16846,28105,-16846,28105,-16846,28105,-16846,28105, - -15447,28897,-15447,28897,-15447,28897,-15447,28897, - -14010,29621,-14010,29621,-14010,29621,-14010,29621, - -12540,30272,-12540,30272,-12540,30272,-12540,30272, - -11039,30851,-11039,30851,-11039,30851,-11039,30851, - -9512,31356,-9512,31356,-9512,31356,-9512,31356, - -7962,31785,-7962,31785,-7962,31785,-7962,31785, - -6393,32137,-6393,32137,-6393,32137,-6393,32137, - -4808,32412,-4808,32412,-4808,32412,-4808,32412, - -3212,32609,-3212,32609,-3212,32609,-3212,32609, - -1608,32727,-1608,32727,-1608,32727,-1608,32727 - }; +static int16_t twa384[95*2*4]; +static int16_t twb384[95*2*4]; +static int16_t twc384[95*2*4]; void dft384(int16_t *x,int16_t *y,unsigned char scale_flag) // 96 x 4 { @@ -9688,366 +7684,9 @@ void dft384(int16_t *x,int16_t *y,unsigned char scale_flag) // 96 x 4 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:107)/432)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:107)/432)); -twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:107)/432)); -twa2 = zeros(1,2*107); -twb2 = zeros(1,2*107); -twc2 = zeros(1,2*107); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -twc2(1:2:end) = real(twc); -twc2(2:2:end) = imag(twc); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa432[107*2*4] = {"); -for i=1:2:(2*106) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb432[107*2*4] = {"); -for i=1:2:(2*106) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fprintf(fd,"static int16_t twc432[107*2*4] = {"); -for i=1:2:(2*106) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -fclose(fd); - */ - -static int16_t twa432[107*2*4] = {32763,-477,32763,-477,32763,-477,32763,-477, - 32753,-954,32753,-954,32753,-954,32753,-954, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32680,-2381,32680,-2381,32680,-2381,32680,-2381, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32597,-3331,32597,-3331,32597,-3331,32597,-3331, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32421,-4749,32421,-4749,32421,-4749,32421,-4749, - 32348,-5221,32348,-5221,32348,-5221,32348,-5221, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32183,-6159,32183,-6159,32183,-6159,32183,-6159, - 32090,-6627,32090,-6627,32090,-6627,32090,-6627, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31770,-8020,31770,-8020,31770,-8020,31770,-8020, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31523,-8941,31523,-8941,31523,-8941,31523,-8941, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31103,-10307,31103,-10307,31103,-10307,31103,-10307, - 30950,-10758,30950,-10758,30950,-10758,30950,-10758, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30624,-11654,30624,-11654,30624,-11654,30624,-11654, - 30451,-12098,30451,-12098,30451,-12098,30451,-12098, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29895,-13415,29895,-13415,29895,-13415,29895,-13415, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29492,-14279,29492,-14279,29492,-14279,29492,-14279, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28841,-15552,28841,-15552,28841,-15552,28841,-15552, - 28612,-15970,28612,-15970,28612,-15970,28612,-15970, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28135,-16795,28135,-16795,28135,-16795,28135,-16795, - 27888,-17202,27888,-17202,27888,-17202,27888,-17202, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27111,-18403,27111,-18403,27111,-18403,27111,-18403, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26564,-19183,26564,-19183,26564,-19183,26564,-19183, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25702,-20324,25702,-20324,25702,-20324,25702,-20324, - 25404,-20695,25404,-20695,25404,-20695,25404,-20695, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24791,-21426,24791,-21426,24791,-21426,24791,-21426, - 24477,-21784,24477,-21784,24477,-21784,24477,-21784, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23504,-22831,23504,-22831,23504,-22831,23504,-22831, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22830,-23505,22830,-23505,22830,-23505,22830,-23505, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21783,-24478,21783,-24478,21783,-24478,21783,-24478, - 21425,-24792,21425,-24792,21425,-24792,21425,-24792, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20694,-25405,20694,-25405,20694,-25405,20694,-25405, - 20323,-25703,20323,-25703,20323,-25703,20323,-25703, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19182,-26565,19182,-26565,19182,-26565,19182,-26565, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18402,-27112,18402,-27112,18402,-27112,18402,-27112, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 17201,-27889,17201,-27889,17201,-27889,17201,-27889, - 16794,-28136,16794,-28136,16794,-28136,16794,-28136, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15969,-28613,15969,-28613,15969,-28613,15969,-28613, - 15551,-28842,15551,-28842,15551,-28842,15551,-28842, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14278,-29493,14278,-29493,14278,-29493,14278,-29493, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13414,-29896,13414,-29896,13414,-29896,13414,-29896, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12097,-30452,12097,-30452,12097,-30452,12097,-30452, - 11653,-30625,11653,-30625,11653,-30625,11653,-30625, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10757,-30951,10757,-30951,10757,-30951,10757,-30951, - 10306,-31104,10306,-31104,10306,-31104,10306,-31104, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8940,-31524,8940,-31524,8940,-31524,8940,-31524, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8019,-31771,8019,-31771,8019,-31771,8019,-31771, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6626,-32091,6626,-32091,6626,-32091,6626,-32091, - 6158,-32184,6158,-32184,6158,-32184,6158,-32184, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5220,-32349,5220,-32349,5220,-32349,5220,-32349, - 4748,-32422,4748,-32422,4748,-32422,4748,-32422, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3330,-32598,3330,-32598,3330,-32598,3330,-32598, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2380,-32681,2380,-32681,2380,-32681,2380,-32681, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 953,-32754,953,-32754,953,-32754,953,-32754, - 476,-32764,476,-32764,476,-32764,476,-32764 - }; -static int16_t twb432[107*2*4] = {32753,-954,32753,-954,32753,-954,32753,-954, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32421,-4749,32421,-4749,32421,-4749,32421,-4749, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32090,-6627,32090,-6627,32090,-6627,32090,-6627, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31103,-10307,31103,-10307,31103,-10307,31103,-10307, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30451,-12098,30451,-12098,30451,-12098,30451,-12098, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 28841,-15552,28841,-15552,28841,-15552,28841,-15552, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 27888,-17202,27888,-17202,27888,-17202,27888,-17202, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 25702,-20324,25702,-20324,25702,-20324,25702,-20324, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24477,-21784,24477,-21784,24477,-21784,24477,-21784, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 21783,-24478,21783,-24478,21783,-24478,21783,-24478, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20323,-25703,20323,-25703,20323,-25703,20323,-25703, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17201,-27889,17201,-27889,17201,-27889,17201,-27889, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15551,-28842,15551,-28842,15551,-28842,15551,-28842, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12097,-30452,12097,-30452,12097,-30452,12097,-30452, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10306,-31104,10306,-31104,10306,-31104,10306,-31104, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 6626,-32091,6626,-32091,6626,-32091,6626,-32091, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 4748,-32422,4748,-32422,4748,-32422,4748,-32422, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 953,-32754,953,-32754,953,-32754,953,-32754, - 0,-32767,0,-32767,0,-32767,0,-32767, - -954,-32754,-954,-32754,-954,-32754,-954,-32754, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4749,-32422,-4749,-32422,-4749,-32422,-4749,-32422, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6627,-32091,-6627,-32091,-6627,-32091,-6627,-32091, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -10307,-31104,-10307,-31104,-10307,-31104,-10307,-31104, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -12098,-30452,-12098,-30452,-12098,-30452,-12098,-30452, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -15552,-28842,-15552,-28842,-15552,-28842,-15552,-28842, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17202,-27889,-17202,-27889,-17202,-27889,-17202,-27889, - -18006,-27377,-18006,-27377,-18006,-27377,-18006,-27377, - -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842, - -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284, - -20324,-25703,-20324,-25703,-20324,-25703,-20324,-25703, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21784,-24478,-21784,-24478,-21784,-24478,-21784,-24478, - -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23834,-22487,-23834,-22487,-23834,-22487,-23834,-22487, - -24478,-21784,-24478,-21784,-24478,-21784,-24478,-21784, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25703,-20324,-25703,-20324,-25703,-20324,-25703,-20324, - -26284,-19568,-26284,-19568,-26284,-19568,-26284,-19568, - -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795, - -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006, - -27889,-17202,-27889,-17202,-27889,-17202,-27889,-17202, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28842,-15552,-28842,-15552,-28842,-15552,-28842,-15552, - -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706, - -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848, - -30088,-12979,-30088,-12979,-30088,-12979,-30088,-12979, - -30452,-12098,-30452,-12098,-30452,-12098,-30452,-12098, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -31104,-10307,-31104,-10307,-31104,-10307,-31104,-10307, - -31391,-9398,-31391,-9398,-31391,-9398,-31391,-9398, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557, - -32091,-6627,-32091,-6627,-32091,-6627,-32091,-6627, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32422,-4749,-32422,-4749,-32422,-4749,-32422,-4749, - -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805, - -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856, - -32712,-1906,-32712,-1906,-32712,-1906,-32712,-1906, - -32754,-954,-32754,-954,-32754,-954,-32754,-954 - }; -static int16_t twc432[107*2*4] = {32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17606,-27636,-17606,-27636,-17606,-27636,-17606,-27636, - -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -22138,-24159,-22138,-24159,-22138,-24159,-22138,-24159, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -24159,-22138,-24159,-22138,-24159,-22138,-24159,-22138, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795, - -27636,-17606,-27636,-17606,-27636,-17606,-27636,-17606, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -29065,-15131,-29065,-15131,-29065,-15131,-29065,-15131, - -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -31251,-9854,-31251,-9854,-31251,-9854,-31251,-9854, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31991,-7093,-31991,-7093,-31991,-7093,-31991,-7093, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856, - -32736,-1430,-32736,-1430,-32736,-1430,-32736,-1430, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32736,1429,-32736,1429,-32736,1429,-32736,1429, - -32643,2855,-32643,2855,-32643,2855,-32643,2855, - -32487,4276,-32487,4276,-32487,4276,-32487,4276, - -32270,5689,-32270,5689,-32270,5689,-32270,5689, - -31991,7092,-31991,7092,-31991,7092,-31991,7092, - -31651,8480,-31651,8480,-31651,8480,-31651,8480, - -31251,9853,-31251,9853,-31251,9853,-31251,9853, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -29697,13847,-29697,13847,-29697,13847,-29697,13847, - -29065,15130,-29065,15130,-29065,15130,-29065,15130, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -27636,17605,-27636,17605,-27636,17605,-27636,17605, - -26842,18794,-26842,18794,-26842,18794,-26842,18794, - -25996,19947,-25996,19947,-25996,19947,-25996,19947, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24159,22137,-24159,22137,-24159,22137,-24159,22137, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22138,24158,-22138,24158,-22138,24158,-22138,24158, - -21063,25100,-21063,25100,-21063,25100,-21063,25100, - -19948,25995,-19948,25995,-19948,25995,-19948,25995, - -18795,26841,-18795,26841,-18795,26841,-18795,26841, - -17606,27635,-17606,27635,-17606,27635,-17606,27635, - -16384,28377,-16384,28377,-16384,28377,-16384,28377, - -15131,29064,-15131,29064,-15131,29064,-15131,29064, - -13848,29696,-13848,29696,-13848,29696,-13848,29696, - -12540,30272,-12540,30272,-12540,30272,-12540,30272, - -11207,30790,-11207,30790,-11207,30790,-11207,30790, - -9854,31250,-9854,31250,-9854,31250,-9854,31250, - -8481,31650,-8481,31650,-8481,31650,-8481,31650, - -7093,31990,-7093,31990,-7093,31990,-7093,31990, - -5690,32269,-5690,32269,-5690,32269,-5690,32269, - -4277,32486,-4277,32486,-4277,32486,-4277,32486, - -2856,32642,-2856,32642,-2856,32642,-2856,32642, - -1430,32735,-1430,32735,-1430,32735,-1430,32735 - }; - +static int16_t twa432[107*2*4]; +static int16_t twb432[107*2*4]; +static int16_t twc432[107*2*4]; void dft432(int16_t *x,int16_t *y,unsigned char scale_flag) // 108 x 4 { @@ -10101,402 +7740,9 @@ void dft432(int16_t *x,int16_t *y,unsigned char scale_flag) // 108 x 4 _m_empty(); }; -/* -Twiddles generated with - -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:119)/480)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:119)/480)); -twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:119)/480)); -twa2 = zeros(1,2*119); -twb2 = zeros(1,2*119); -twc2 = zeros(1,2*119); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -twc2(1:2:end) = real(twc); -twc2(2:2:end) = imag(twc); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa480[119*2*4] = {"); -for i=1:2:(2*118) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb480[119*2*4] = {"); -for i=1:2:(2*118) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fprintf(fd,"static int16_t twc480[119*2*4] = {"); -for i=1:2:(2*118) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -fclose(fd); -*/ -static int16_t twa480[119*2*4] = {32764,-429,32764,-429,32764,-429,32764,-429, - 32755,-858,32755,-858,32755,-858,32755,-858, - 32741,-1287,32741,-1287,32741,-1287,32741,-1287, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32629,-2999,32629,-2999,32629,-2999,32629,-2999, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32539,-3852,32539,-3852,32539,-3852,32539,-3852, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32427,-4702,32427,-4702,32427,-4702,32427,-4702, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32293,-5550,32293,-5550,32293,-5550,32293,-5550, - 32218,-5972,32218,-5972,32218,-5972,32218,-5972, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31959,-7232,31959,-7232,31959,-7232,31959,-7232, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31758,-8066,31758,-8066,31758,-8066,31758,-8066, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31536,-8895,31536,-8895,31536,-8895,31536,-8895, - 31417,-9307,31417,-9307,31417,-9307,31417,-9307, - 31293,-9717,31293,-9717,31293,-9717,31293,-9717, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30887,-10938,30887,-10938,30887,-10938,30887,-10938, - 30741,-11342,30741,-11342,30741,-11342,30741,-11342, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30434,-12143,30434,-12143,30434,-12143,30434,-12143, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30106,-12935,30106,-12935,30106,-12935,30106,-12935, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29757,-13719,29757,-13719,29757,-13719,29757,-13719, - 29575,-14107,29575,-14107,29575,-14107,29575,-14107, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28998,-15257,28998,-15257,28998,-15257,28998,-15257, - 28796,-15636,28796,-15636,28796,-15636,28796,-15636, - 28589,-16011,28589,-16011,28589,-16011,28589,-16011, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28160,-16754,28160,-16754,28160,-16754,28160,-16754, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27711,-17485,27711,-17485,27711,-17485,27711,-17485, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 27004,-18560,27004,-18560,27004,-18560,27004,-18560, - 26758,-18912,26758,-18912,26758,-18912,26758,-18912, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26254,-19606,26254,-19606,26254,-19606,26254,-19606, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25732,-20286,25732,-20286,25732,-20286,25732,-20286, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25192,-20953,25192,-20953,25192,-20953,25192,-20953, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24061,-22243,24061,-22243,24061,-22243,24061,-22243, - 23768,-22556,23768,-22556,23768,-22556,23768,-22556, - 23471,-22865,23471,-22865,23471,-22865,23471,-22865, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22864,-23472,22864,-23472,22864,-23472,22864,-23472, - 22555,-23769,22555,-23769,22555,-23769,22555,-23769, - 22242,-24062,22242,-24062,22242,-24062,22242,-24062, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 20952,-25193,20952,-25193,20952,-25193,20952,-25193, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20285,-25733,20285,-25733,20285,-25733,20285,-25733, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19605,-26255,19605,-26255,19605,-26255,19605,-26255, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18911,-26759,18911,-26759,18911,-26759,18911,-26759, - 18559,-27005,18559,-27005,18559,-27005,18559,-27005, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17484,-27712,17484,-27712,17484,-27712,17484,-27712, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16753,-28161,16753,-28161,16753,-28161,16753,-28161, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16010,-28590,16010,-28590,16010,-28590,16010,-28590, - 15635,-28797,15635,-28797,15635,-28797,15635,-28797, - 15256,-28999,15256,-28999,15256,-28999,15256,-28999, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14106,-29576,14106,-29576,14106,-29576,14106,-29576, - 13718,-29758,13718,-29758,13718,-29758,13718,-29758, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12934,-30107,12934,-30107,12934,-30107,12934,-30107, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12142,-30435,12142,-30435,12142,-30435,12142,-30435, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11341,-30742,11341,-30742,11341,-30742,11341,-30742, - 10937,-30888,10937,-30888,10937,-30888,10937,-30888, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9716,-31294,9716,-31294,9716,-31294,9716,-31294, - 9306,-31418,9306,-31418,9306,-31418,9306,-31418, - 8894,-31537,8894,-31537,8894,-31537,8894,-31537, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8065,-31759,8065,-31759,8065,-31759,8065,-31759, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 7231,-31960,7231,-31960,7231,-31960,7231,-31960, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5971,-32219,5971,-32219,5971,-32219,5971,-32219, - 5549,-32294,5549,-32294,5549,-32294,5549,-32294, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4701,-32428,4701,-32428,4701,-32428,4701,-32428, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3851,-32540,3851,-32540,3851,-32540,3851,-32540, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2998,-32630,2998,-32630,2998,-32630,2998,-32630, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1286,-32742,1286,-32742,1286,-32742,1286,-32742, - 857,-32756,857,-32756,857,-32756,857,-32756, - 428,-32765,428,-32765,428,-32765,428,-32765 - }; -static int16_t twb480[119*2*4] = {32755,-858,32755,-858,32755,-858,32755,-858, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32218,-5972,32218,-5972,32218,-5972,32218,-5972, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31417,-9307,31417,-9307,31417,-9307,31417,-9307, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 30887,-10938,30887,-10938,30887,-10938,30887,-10938, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29575,-14107,29575,-14107,29575,-14107,29575,-14107, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28796,-15636,28796,-15636,28796,-15636,28796,-15636, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27004,-18560,27004,-18560,27004,-18560,27004,-18560, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 23768,-22556,23768,-22556,23768,-22556,23768,-22556, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22555,-23769,22555,-23769,22555,-23769,22555,-23769, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18559,-27005,18559,-27005,18559,-27005,18559,-27005, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15635,-28797,15635,-28797,15635,-28797,15635,-28797, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14106,-29576,14106,-29576,14106,-29576,14106,-29576, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 10937,-30888,10937,-30888,10937,-30888,10937,-30888, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9306,-31418,9306,-31418,9306,-31418,9306,-31418, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 5971,-32219,5971,-32219,5971,-32219,5971,-32219, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 857,-32756,857,-32756,857,-32756,857,-32756, - 0,-32767,0,-32767,0,-32767,0,-32767, - -858,-32756,-858,-32756,-858,-32756,-858,-32756, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5972,-32219,-5972,-32219,-5972,-32219,-5972,-32219, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9307,-31418,-9307,-31418,-9307,-31418,-9307,-31418, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10938,-30888,-10938,-30888,-10938,-30888,-10938,-30888, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -14107,-29576,-14107,-29576,-14107,-29576,-14107,-29576, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15636,-28797,-15636,-28797,-15636,-28797,-15636,-28797, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939, - -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481, - -18560,-27005,-18560,-27005,-18560,-27005,-18560,-27005, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465, - -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22556,-23769,-22556,-23769,-22556,-23769,-22556,-23769, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23769,-22556,-23769,-22556,-23769,-22556,-23769,-22556, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281, - -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -27005,-18560,-27005,-18560,-27005,-18560,-27005,-18560, - -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847, - -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28797,-15636,-28797,-15636,-28797,-15636,-28797,-15636, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29576,-14107,-29576,-14107,-29576,-14107,-29576,-14107, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743, - -30888,-10938,-30888,-10938,-30888,-10938,-30888,-10938, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31418,-9307,-31418,-9307,-31418,-9307,-31418,-9307, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32219,-5972,-32219,-5972,-32219,-5972,-32219,-5972, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571, - -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715, - -32756,-858,-32756,-858,-32756,-858,-32756,-858 - }; -static int16_t twc480[119*2*4] = {32741,-1287,32741,-1287,32741,-1287,32741,-1287, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32539,-3852,32539,-3852,32539,-3852,32539,-3852, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31536,-8895,31536,-8895,31536,-8895,31536,-8895, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 30741,-11342,30741,-11342,30741,-11342,30741,-11342, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 29757,-13719,29757,-13719,29757,-13719,29757,-13719, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28589,-16011,28589,-16011,28589,-16011,28589,-16011, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 25732,-20286,25732,-20286,25732,-20286,25732,-20286, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24061,-22243,24061,-22243,24061,-22243,24061,-22243, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22242,-24062,22242,-24062,22242,-24062,22242,-24062, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 20285,-25733,20285,-25733,20285,-25733,20285,-25733, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16010,-28590,16010,-28590,16010,-28590,16010,-28590, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 13718,-29758,13718,-29758,13718,-29758,13718,-29758, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11341,-30742,11341,-30742,11341,-30742,11341,-30742, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 8894,-31537,8894,-31537,8894,-31537,8894,-31537, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 3851,-32540,3851,-32540,3851,-32540,3851,-32540, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 1286,-32742,1286,-32742,1286,-32742,1286,-32742, - 0,-32767,0,-32767,0,-32767,0,-32767, - -1287,-32742,-1287,-32742,-1287,-32742,-1287,-32742, - -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666, - -3852,-32540,-3852,-32540,-3852,-32540,-3852,-32540, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862, - -8895,-31537,-8895,-31537,-8895,-31537,-8895,-31537, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -11342,-30742,-11342,-30742,-11342,-30742,-11342,-30742, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13719,-29758,-13719,-29758,-13719,-29758,-13719,-29758, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -16011,-28590,-16011,-28590,-16011,-28590,-16011,-28590, - -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -20286,-25733,-20286,-25733,-20286,-25733,-20286,-25733, - -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917, - -22243,-24062,-22243,-24062,-22243,-24062,-22243,-24062, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -24062,-22243,-24062,-22243,-24062,-22243,-24062,-22243, - -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281, - -25733,-20286,-25733,-20286,-25733,-20286,-25733,-20286, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121, - -28590,-16011,-28590,-16011,-28590,-16011,-28590,-16011, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29758,-13719,-29758,-13719,-29758,-13719,-29758,-13719, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30742,-11342,-30742,-11342,-30742,-11342,-30742,-11342, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31537,-8895,-31537,-8895,-31537,-8895,-31537,-8895, - -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32540,-3852,-32540,-3852,-32540,-3852,-32540,-3852, - -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571, - -32742,-1287,-32742,-1287,-32742,-1287,-32742,-1287, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32742,1286,-32742,1286,-32742,1286,-32742,1286, - -32666,2570,-32666,2570,-32666,2570,-32666,2570, - -32540,3851,-32540,3851,-32540,3851,-32540,3851, - -32364,5125,-32364,5125,-32364,5125,-32364,5125, - -32138,6392,-32138,6392,-32138,6392,-32138,6392, - -31862,7649,-31862,7649,-31862,7649,-31862,7649, - -31537,8894,-31537,8894,-31537,8894,-31537,8894, - -31164,10125,-31164,10125,-31164,10125,-31164,10125, - -30742,11341,-30742,11341,-30742,11341,-30742,11341, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -29758,13718,-29758,13718,-29758,13718,-29758,13718, - -29196,14875,-29196,14875,-29196,14875,-29196,14875, - -28590,16010,-28590,16010,-28590,16010,-28590,16010, - -27939,17120,-27939,17120,-27939,17120,-27939,17120, - -27245,18204,-27245,18204,-27245,18204,-27245,18204, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -25733,20285,-25733,20285,-25733,20285,-25733,20285, - -24917,21280,-24917,21280,-24917,21280,-24917,21280, - -24062,22242,-24062,22242,-24062,22242,-24062,22242, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22243,24061,-22243,24061,-22243,24061,-22243,24061, - -21281,24916,-21281,24916,-21281,24916,-21281,24916, - -20286,25732,-20286,25732,-20286,25732,-20286,25732, - -19260,26509,-19260,26509,-19260,26509,-19260,26509, - -18205,27244,-18205,27244,-18205,27244,-18205,27244, - -17121,27938,-17121,27938,-17121,27938,-17121,27938, - -16011,28589,-16011,28589,-16011,28589,-16011,28589, - -14876,29195,-14876,29195,-14876,29195,-14876,29195, - -13719,29757,-13719,29757,-13719,29757,-13719,29757, - -12540,30272,-12540,30272,-12540,30272,-12540,30272, - -11342,30741,-11342,30741,-11342,30741,-11342,30741, - -10126,31163,-10126,31163,-10126,31163,-10126,31163, - -8895,31536,-8895,31536,-8895,31536,-8895,31536, - -7650,31861,-7650,31861,-7650,31861,-7650,31861, - -6393,32137,-6393,32137,-6393,32137,-6393,32137, - -5126,32363,-5126,32363,-5126,32363,-5126,32363, - -3852,32539,-3852,32539,-3852,32539,-3852,32539, - -2571,32665,-2571,32665,-2571,32665,-2571,32665, - -1287,32741,-1287,32741,-1287,32741,-1287,32741 - }; +static int16_t twa480[119*2*4]; +static int16_t twb480[119*2*4]; +static int16_t twc480[119*2*4]; void dft480(int16_t *x,int16_t *y,unsigned char scale_flag) // 120 x 4 { @@ -10552,392 +7798,9 @@ void dft480(int16_t *x,int16_t *y,unsigned char scale_flag) // 120 x 4 }; -/* -Twiddles generated with - -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:179)/540)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:179)/540)); -twa2 = zeros(1,2*179); -twb2 = zeros(1,2*179); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa540[179*2*4] = {"); -for i=1:2:(2*178) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb540[179*2*4] = {"); -for i=1:2:(2*178) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); -*/ -static int16_t twa540[179*2*4] = {32764,-382,32764,-382,32764,-382,32764,-382, - 32758,-763,32758,-763,32758,-763,32758,-763, - 32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32731,-1525,32731,-1525,32731,-1525,32731,-1525, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32658,-2666,32658,-2666,32658,-2666,32658,-2666, - 32625,-3046,32625,-3046,32625,-3046,32625,-3046, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32498,-4183,32498,-4183,32498,-4183,32498,-4183, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32392,-4938,32392,-4938,32392,-4938,32392,-4938, - 32333,-5315,32333,-5315,32333,-5315,32333,-5315, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32200,-6066,32200,-6066,32200,-6066,32200,-6066, - 32128,-6440,32128,-6440,32128,-6440,32128,-6440, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31969,-7186,31969,-7186,31969,-7186,31969,-7186, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31699,-8297,31699,-8297,31699,-8297,31699,-8297, - 31600,-8665,31600,-8665,31600,-8665,31600,-8665, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31278,-9763,31278,-9763,31278,-9763,31278,-9763, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31043,-10488,31043,-10488,31043,-10488,31043,-10488, - 30919,-10848,30919,-10848,30919,-10848,30919,-10848, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30658,-11565,30658,-11565,30658,-11565,30658,-11565, - 30521,-11921,30521,-11921,30521,-11921,30521,-11921, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 30236,-12628,30236,-12628,30236,-12628,30236,-12628, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29777,-13675,29777,-13675,29777,-13675,29777,-13675, - 29615,-14021,29615,-14021,29615,-14021,29615,-14021, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29108,-15046,29108,-15046,29108,-15046,29108,-15046, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28750,-15719,28750,-15719,28750,-15719,28750,-15719, - 28565,-16053,28565,-16053,28565,-16053,28565,-16053, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28184,-16713,28184,-16713,28184,-16713,28184,-16713, - 27988,-17040,27988,-17040,27988,-17040,27988,-17040, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27584,-17687,27584,-17687,27584,-17687,27584,-17687, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 26950,-18638,26950,-18638,26950,-18638,26950,-18638, - 26731,-18951,26731,-18951,26731,-18951,26731,-18951, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 26053,-19872,26053,-19872,26053,-19872,26053,-19872, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25584,-20473,25584,-20473,25584,-20473,25584,-20473, - 25344,-20769,25344,-20769,25344,-20769,25344,-20769, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24854,-21353,24854,-21353,24854,-21353,24854,-21353, - 24604,-21641,24604,-21641,24604,-21641,24604,-21641, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24093,-22208,24093,-22208,24093,-22208,24093,-22208, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23304,-23035,23304,-23035,23304,-23035,23304,-23035, - 23034,-23305,23034,-23305,23034,-23305,23034,-23305, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22207,-24094,22207,-24094,22207,-24094,22207,-24094, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21640,-24605,21640,-24605,21640,-24605,21640,-24605, - 21352,-24855,21352,-24855,21352,-24855,21352,-24855, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20768,-25345,20768,-25345,20768,-25345,20768,-25345, - 20472,-25585,20472,-25585,20472,-25585,20472,-25585, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19871,-26054,19871,-26054,19871,-26054,19871,-26054, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18950,-26732,18950,-26732,18950,-26732,18950,-26732, - 18637,-26951,18637,-26951,18637,-26951,18637,-26951, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17686,-27585,17686,-27585,17686,-27585,17686,-27585, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 17039,-27989,17039,-27989,17039,-27989,17039,-27989, - 16712,-28185,16712,-28185,16712,-28185,16712,-28185, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16052,-28566,16052,-28566,16052,-28566,16052,-28566, - 15718,-28751,15718,-28751,15718,-28751,15718,-28751, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 15045,-29109,15045,-29109,15045,-29109,15045,-29109, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 14020,-29616,14020,-29616,14020,-29616,14020,-29616, - 13674,-29778,13674,-29778,13674,-29778,13674,-29778, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12627,-30237,12627,-30237,12627,-30237,12627,-30237, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 11920,-30522,11920,-30522,11920,-30522,11920,-30522, - 11564,-30659,11564,-30659,11564,-30659,11564,-30659, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10847,-30920,10847,-30920,10847,-30920,10847,-30920, - 10487,-31044,10487,-31044,10487,-31044,10487,-31044, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9762,-31279,9762,-31279,9762,-31279,9762,-31279, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 8664,-31601,8664,-31601,8664,-31601,8664,-31601, - 8296,-31700,8296,-31700,8296,-31700,8296,-31700, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7185,-31970,7185,-31970,7185,-31970,7185,-31970, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6439,-32129,6439,-32129,6439,-32129,6439,-32129, - 6065,-32201,6065,-32201,6065,-32201,6065,-32201, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5314,-32334,5314,-32334,5314,-32334,5314,-32334, - 4937,-32393,4937,-32393,4937,-32393,4937,-32393, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 4182,-32499,4182,-32499,4182,-32499,4182,-32499, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3045,-32626,3045,-32626,3045,-32626,3045,-32626, - 2665,-32659,2665,-32659,2665,-32659,2665,-32659, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1524,-32732,1524,-32732,1524,-32732,1524,-32732, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 762,-32759,762,-32759,762,-32759,762,-32759, - 381,-32765,381,-32765,381,-32765,381,-32765, - 0,-32767,0,-32767,0,-32767,0,-32767, - -382,-32765,-382,-32765,-382,-32765,-382,-32765, - -763,-32759,-763,-32759,-763,-32759,-763,-32759, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1525,-32732,-1525,-32732,-1525,-32732,-1525,-32732, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688, - -2666,-32659,-2666,-32659,-2666,-32659,-2666,-32659, - -3046,-32626,-3046,-32626,-3046,-32626,-3046,-32626, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4183,-32499,-4183,-32499,-4183,-32499,-4183,-32499, - -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449, - -4938,-32393,-4938,-32393,-4938,-32393,-4938,-32393, - -5315,-32334,-5315,-32334,-5315,-32334,-5315,-32334, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6066,-32201,-6066,-32201,-6066,-32201,-6066,-32201, - -6440,-32129,-6440,-32129,-6440,-32129,-6440,-32129, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7186,-31970,-7186,-31970,-7186,-31970,-7186,-31970, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8297,-31700,-8297,-31700,-8297,-31700,-8297,-31700, - -8665,-31601,-8665,-31601,-8665,-31601,-8665,-31601, - -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9763,-31279,-9763,-31279,-9763,-31279,-9763,-31279, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10488,-31044,-10488,-31044,-10488,-31044,-10488,-31044, - -10848,-30920,-10848,-30920,-10848,-30920,-10848,-30920, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11565,-30659,-11565,-30659,-11565,-30659,-11565,-30659, - -11921,-30522,-11921,-30522,-11921,-30522,-11921,-30522, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12628,-30237,-12628,-30237,-12628,-30237,-12628,-30237, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13675,-29778,-13675,-29778,-13675,-29778,-13675,-29778, - -14021,-29616,-14021,-29616,-14021,-29616,-14021,-29616, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -15046,-29109,-15046,-29109,-15046,-29109,-15046,-29109, - -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932, - -15719,-28751,-15719,-28751,-15719,-28751,-15719,-28751, - -16053,-28566,-16053,-28566,-16053,-28566,-16053,-28566 - }; -static int16_t twb540[179*2*4] = {32758,-763,32758,-763,32758,-763,32758,-763, - 32731,-1525,32731,-1525,32731,-1525,32731,-1525, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32625,-3046,32625,-3046,32625,-3046,32625,-3046, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32333,-5315,32333,-5315,32333,-5315,32333,-5315, - 32200,-6066,32200,-6066,32200,-6066,32200,-6066, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31699,-8297,31699,-8297,31699,-8297,31699,-8297, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31278,-9763,31278,-9763,31278,-9763,31278,-9763, - 31043,-10488,31043,-10488,31043,-10488,31043,-10488, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30521,-11921,30521,-11921,30521,-11921,30521,-11921, - 30236,-12628,30236,-12628,30236,-12628,30236,-12628, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29615,-14021,29615,-14021,29615,-14021,29615,-14021, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28565,-16053,28565,-16053,28565,-16053,28565,-16053, - 28184,-16713,28184,-16713,28184,-16713,28184,-16713, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 26950,-18638,26950,-18638,26950,-18638,26950,-18638, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26053,-19872,26053,-19872,26053,-19872,26053,-19872, - 25584,-20473,25584,-20473,25584,-20473,25584,-20473, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24604,-21641,24604,-21641,24604,-21641,24604,-21641, - 24093,-22208,24093,-22208,24093,-22208,24093,-22208, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23034,-23305,23034,-23305,23034,-23305,23034,-23305, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21352,-24855,21352,-24855,21352,-24855,21352,-24855, - 20768,-25345,20768,-25345,20768,-25345,20768,-25345, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 18950,-26732,18950,-26732,18950,-26732,18950,-26732, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 17686,-27585,17686,-27585,17686,-27585,17686,-27585, - 17039,-27989,17039,-27989,17039,-27989,17039,-27989, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15718,-28751,15718,-28751,15718,-28751,15718,-28751, - 15045,-29109,15045,-29109,15045,-29109,15045,-29109, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 13674,-29778,13674,-29778,13674,-29778,13674,-29778, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 11564,-30659,11564,-30659,11564,-30659,11564,-30659, - 10847,-30920,10847,-30920,10847,-30920,10847,-30920, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8664,-31601,8664,-31601,8664,-31601,8664,-31601, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7185,-31970,7185,-31970,7185,-31970,7185,-31970, - 6439,-32129,6439,-32129,6439,-32129,6439,-32129, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 4937,-32393,4937,-32393,4937,-32393,4937,-32393, - 4182,-32499,4182,-32499,4182,-32499,4182,-32499, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2665,-32659,2665,-32659,2665,-32659,2665,-32659, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 381,-32765,381,-32765,381,-32765,381,-32765, - -382,-32765,-382,-32765,-382,-32765,-382,-32765, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2666,-32659,-2666,-32659,-2666,-32659,-2666,-32659, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -4183,-32499,-4183,-32499,-4183,-32499,-4183,-32499, - -4938,-32393,-4938,-32393,-4938,-32393,-4938,-32393, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6440,-32129,-6440,-32129,-6440,-32129,-6440,-32129, - -7186,-31970,-7186,-31970,-7186,-31970,-7186,-31970, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8665,-31601,-8665,-31601,-8665,-31601,-8665,-31601, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10848,-30920,-10848,-30920,-10848,-30920,-10848,-30920, - -11565,-30659,-11565,-30659,-11565,-30659,-11565,-30659, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13675,-29778,-13675,-29778,-13675,-29778,-13675,-29778, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -15046,-29109,-15046,-29109,-15046,-29109,-15046,-29109, - -15719,-28751,-15719,-28751,-15719,-28751,-15719,-28751, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17040,-27989,-17040,-27989,-17040,-27989,-17040,-27989, - -17687,-27585,-17687,-27585,-17687,-27585,-17687,-27585, - -18324,-27166,-18324,-27166,-18324,-27166,-18324,-27166, - -18951,-26732,-18951,-26732,-18951,-26732,-18951,-26732, - -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284, - -20174,-25821,-20174,-25821,-20174,-25821,-20174,-25821, - -20769,-25345,-20769,-25345,-20769,-25345,-20769,-25345, - -21353,-24855,-21353,-24855,-21353,-24855,-21353,-24855, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834, - -23035,-23305,-23035,-23305,-23035,-23305,-23035,-23305, - -23571,-22762,-23571,-22762,-23571,-22762,-23571,-22762, - -24094,-22208,-24094,-22208,-24094,-22208,-24094,-22208, - -24605,-21641,-24605,-21641,-24605,-21641,-24605,-21641, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25585,-20473,-25585,-20473,-25585,-20473,-25585,-20473, - -26054,-19872,-26054,-19872,-26054,-19872,-26054,-19872, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26951,-18638,-26951,-18638,-26951,-18638,-26951,-18638, - -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006, - -27788,-17364,-27788,-17364,-27788,-17364,-27788,-17364, - -28185,-16713,-28185,-16713,-28185,-16713,-28185,-16713, - -28566,-16053,-28566,-16053,-28566,-16053,-28566,-16053, - -28932,-15384,-28932,-15384,-28932,-15384,-28932,-15384, - -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706, - -29616,-14021,-29616,-14021,-29616,-14021,-29616,-14021, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30237,-12628,-30237,-12628,-30237,-12628,-30237,-12628, - -30522,-11921,-30522,-11921,-30522,-11921,-30522,-11921, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -31044,-10488,-31044,-10488,-31044,-10488,-31044,-10488, - -31279,-9763,-31279,-9763,-31279,-9763,-31279,-9763, - -31498,-9032,-31498,-9032,-31498,-9032,-31498,-9032, - -31700,-8297,-31700,-8297,-31700,-8297,-31700,-8297, - -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32201,-6066,-32201,-6066,-32201,-6066,-32201,-6066, - -32334,-5315,-32334,-5315,-32334,-5315,-32334,-5315, - -32449,-4561,-32449,-4561,-32449,-4561,-32449,-4561, - -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805, - -32626,-3046,-32626,-3046,-32626,-3046,-32626,-3046, - -32688,-2286,-32688,-2286,-32688,-2286,-32688,-2286, - -32732,-1525,-32732,-1525,-32732,-1525,-32732,-1525, - -32759,-763,-32759,-763,-32759,-763,-32759,-763, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32759,762,-32759,762,-32759,762,-32759,762, - -32732,1524,-32732,1524,-32732,1524,-32732,1524, - -32688,2285,-32688,2285,-32688,2285,-32688,2285, - -32626,3045,-32626,3045,-32626,3045,-32626,3045, - -32546,3804,-32546,3804,-32546,3804,-32546,3804, - -32449,4560,-32449,4560,-32449,4560,-32449,4560, - -32334,5314,-32334,5314,-32334,5314,-32334,5314, - -32201,6065,-32201,6065,-32201,6065,-32201,6065, - -32051,6812,-32051,6812,-32051,6812,-32051,6812, - -31884,7556,-31884,7556,-31884,7556,-31884,7556, - -31700,8296,-31700,8296,-31700,8296,-31700,8296, - -31498,9031,-31498,9031,-31498,9031,-31498,9031, - -31279,9762,-31279,9762,-31279,9762,-31279,9762, - -31044,10487,-31044,10487,-31044,10487,-31044,10487, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30522,11920,-30522,11920,-30522,11920,-30522,11920, - -30237,12627,-30237,12627,-30237,12627,-30237,12627, - -29935,13327,-29935,13327,-29935,13327,-29935,13327, - -29616,14020,-29616,14020,-29616,14020,-29616,14020, - -29282,14705,-29282,14705,-29282,14705,-29282,14705, - -28932,15383,-28932,15383,-28932,15383,-28932,15383, - -28566,16052,-28566,16052,-28566,16052,-28566,16052, - -28185,16712,-28185,16712,-28185,16712,-28185,16712, - -27788,17363,-27788,17363,-27788,17363,-27788,17363, - -27377,18005,-27377,18005,-27377,18005,-27377,18005, - -26951,18637,-26951,18637,-26951,18637,-26951,18637, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -26054,19871,-26054,19871,-26054,19871,-26054,19871, - -25585,20472,-25585,20472,-25585,20472,-25585,20472, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24605,21640,-24605,21640,-24605,21640,-24605,21640, - -24094,22207,-24094,22207,-24094,22207,-24094,22207, - -23571,22761,-23571,22761,-23571,22761,-23571,22761, - -23035,23304,-23035,23304,-23035,23304,-23035,23304, - -22487,23833,-22487,23833,-22487,23833,-22487,23833, - -21926,24350,-21926,24350,-21926,24350,-21926,24350, - -21353,24854,-21353,24854,-21353,24854,-21353,24854, - -20769,25344,-20769,25344,-20769,25344,-20769,25344, - -20174,25820,-20174,25820,-20174,25820,-20174,25820, - -19568,26283,-19568,26283,-19568,26283,-19568,26283, - -18951,26731,-18951,26731,-18951,26731,-18951,26731, - -18324,27165,-18324,27165,-18324,27165,-18324,27165, - -17687,27584,-17687,27584,-17687,27584,-17687,27584, - -17040,27988,-17040,27988,-17040,27988,-17040,27988 - }; + +static int16_t twa540[179*2*4]; +static int16_t twb540[179*2*4]; void dft540(int16_t *x,int16_t *y,unsigned char scale_flag) // 180 x 3 { @@ -10987,416 +7850,8 @@ void dft540(int16_t *x,int16_t *y,unsigned char scale_flag) // 180 x 3 }; -/* -Twiddles generated with - -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:191)/576)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:191)/576)); -twa2 = zeros(1,2*191); -twb2 = zeros(1,2*191); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa576[191*2*4] = {"); -for i=1:2:(2*190) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb576[191*2*4] = {"); -for i=1:2:(2*190) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); -*/ -static int16_t twa576[191*2*4] = {32765,-358,32765,-358,32765,-358,32765,-358, - 32759,-715,32759,-715,32759,-715,32759,-715, - 32749,-1073,32749,-1073,32749,-1073,32749,-1073, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32718,-1787,32718,-1787,32718,-1787,32718,-1787, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32671,-2500,32671,-2500,32671,-2500,32671,-2500, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32572,-3568,32572,-3568,32572,-3568,32572,-3568, - 32531,-3923,32531,-3923,32531,-3923,32531,-3923, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32438,-4632,32438,-4632,32438,-4632,32438,-4632, - 32385,-4985,32385,-4985,32385,-4985,32385,-4985, - 32329,-5338,32329,-5338,32329,-5338,32329,-5338, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32205,-6042,32205,-6042,32205,-6042,32205,-6042, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32065,-6743,32065,-6743,32065,-6743,32065,-6743, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31911,-7441,31911,-7441,31911,-7441,31911,-7441, - 31827,-7789,31827,-7789,31827,-7789,31827,-7789, - 31741,-8135,31741,-8135,31741,-8135,31741,-8135, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31556,-8826,31556,-8826,31556,-8826,31556,-8826, - 31457,-9170,31457,-9170,31457,-9170,31457,-9170, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31141,-10194,31141,-10194,31141,-10194,31141,-10194, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30911,-10871,30911,-10871,30911,-10871,30911,-10871, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30666,-11543,30666,-11543,30666,-11543,30666,-11543, - 30539,-11877,30539,-11877,30539,-11877,30539,-11877, - 30407,-12209,30407,-12209,30407,-12209,30407,-12209, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30134,-12869,30134,-12869,30134,-12869,30134,-12869, - 29992,-13197,29992,-13197,29992,-13197,29992,-13197, - 29846,-13524,29846,-13524,29846,-13524,29846,-13524, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29544,-14172,29544,-14172,29544,-14172,29544,-14172, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29227,-14813,29227,-14813,29227,-14813,29227,-14813, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28727,-15761,28727,-15761,28727,-15761,28727,-15761, - 28554,-16073,28554,-16073,28554,-16073,28554,-16073, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28196,-16693,28196,-16693,28196,-16693,28196,-16693, - 28012,-16999,28012,-16999,28012,-16999,28012,-16999, - 27825,-17304,27825,-17304,27825,-17304,27825,-17304, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27441,-17907,27441,-17907,27441,-17907,27441,-17907, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 27044,-18501,27044,-18501,27044,-18501,27044,-18501, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26634,-19087,26634,-19087,26634,-19087,26634,-19087, - 26424,-19376,26424,-19376,26424,-19376,26424,-19376, - 26211,-19663,26211,-19663,26211,-19663,26211,-19663, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25776,-20230,25776,-20230,25776,-20230,25776,-20230, - 25554,-20510,25554,-20510,25554,-20510,25554,-20510, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24869,-21335,24869,-21335,24869,-21335,24869,-21335, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24398,-21873,24398,-21873,24398,-21873,24398,-21873, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23915,-22400,23915,-22400,23915,-22400,23915,-22400, - 23669,-22659,23669,-22659,23669,-22659,23669,-22659, - 23421,-22916,23421,-22916,23421,-22916,23421,-22916, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22915,-23422,22915,-23422,22915,-23422,22915,-23422, - 22658,-23670,22658,-23670,22658,-23670,22658,-23670, - 22399,-23916,22399,-23916,22399,-23916,22399,-23916, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21872,-24399,21872,-24399,21872,-24399,21872,-24399, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21334,-24870,21334,-24870,21334,-24870,21334,-24870, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 20509,-25555,20509,-25555,20509,-25555,20509,-25555, - 20229,-25777,20229,-25777,20229,-25777,20229,-25777, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19662,-26212,19662,-26212,19662,-26212,19662,-26212, - 19375,-26425,19375,-26425,19375,-26425,19375,-26425, - 19086,-26635,19086,-26635,19086,-26635,19086,-26635, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18500,-27045,18500,-27045,18500,-27045,18500,-27045, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17906,-27442,17906,-27442,17906,-27442,17906,-27442, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 17303,-27826,17303,-27826,17303,-27826,17303,-27826, - 16998,-28013,16998,-28013,16998,-28013,16998,-28013, - 16692,-28197,16692,-28197,16692,-28197,16692,-28197, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16072,-28555,16072,-28555,16072,-28555,16072,-28555, - 15760,-28728,15760,-28728,15760,-28728,15760,-28728, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14812,-29228,14812,-29228,14812,-29228,14812,-29228, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14171,-29545,14171,-29545,14171,-29545,14171,-29545, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13523,-29847,13523,-29847,13523,-29847,13523,-29847, - 13196,-29993,13196,-29993,13196,-29993,13196,-29993, - 12868,-30135,12868,-30135,12868,-30135,12868,-30135, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12208,-30408,12208,-30408,12208,-30408,12208,-30408, - 11876,-30540,11876,-30540,11876,-30540,11876,-30540, - 11542,-30667,11542,-30667,11542,-30667,11542,-30667, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10870,-30912,10870,-30912,10870,-30912,10870,-30912, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10193,-31142,10193,-31142,10193,-31142,10193,-31142, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 9169,-31458,9169,-31458,9169,-31458,9169,-31458, - 8825,-31557,8825,-31557,8825,-31557,8825,-31557, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8134,-31742,8134,-31742,8134,-31742,8134,-31742, - 7788,-31828,7788,-31828,7788,-31828,7788,-31828, - 7440,-31912,7440,-31912,7440,-31912,7440,-31912, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6742,-32066,6742,-32066,6742,-32066,6742,-32066, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 6041,-32206,6041,-32206,6041,-32206,6041,-32206, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5337,-32330,5337,-32330,5337,-32330,5337,-32330, - 4984,-32386,4984,-32386,4984,-32386,4984,-32386, - 4631,-32439,4631,-32439,4631,-32439,4631,-32439, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3922,-32532,3922,-32532,3922,-32532,3922,-32532, - 3567,-32573,3567,-32573,3567,-32573,3567,-32573, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2499,-32672,2499,-32672,2499,-32672,2499,-32672, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1786,-32719,1786,-32719,1786,-32719,1786,-32719, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 1072,-32750,1072,-32750,1072,-32750,1072,-32750, - 714,-32760,714,-32760,714,-32760,714,-32760, - 357,-32766,357,-32766,357,-32766,357,-32766, - 0,-32767,0,-32767,0,-32767,0,-32767, - -358,-32766,-358,-32766,-358,-32766,-358,-32766, - -715,-32760,-715,-32760,-715,-32760,-715,-32760, - -1073,-32750,-1073,-32750,-1073,-32750,-1073,-32750, - -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736, - -1787,-32719,-1787,-32719,-1787,-32719,-1787,-32719, - -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697, - -2500,-32672,-2500,-32672,-2500,-32672,-2500,-32672, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610, - -3568,-32573,-3568,-32573,-3568,-32573,-3568,-32573, - -3923,-32532,-3923,-32532,-3923,-32532,-3923,-32532, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -4632,-32439,-4632,-32439,-4632,-32439,-4632,-32439, - -4985,-32386,-4985,-32386,-4985,-32386,-4985,-32386, - -5338,-32330,-5338,-32330,-5338,-32330,-5338,-32330, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6042,-32206,-6042,-32206,-6042,-32206,-6042,-32206, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -6743,-32066,-6743,-32066,-6743,-32066,-6743,-32066, - -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991, - -7441,-31912,-7441,-31912,-7441,-31912,-7441,-31912, - -7789,-31828,-7789,-31828,-7789,-31828,-7789,-31828, - -8135,-31742,-8135,-31742,-8135,-31742,-8135,-31742, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8826,-31557,-8826,-31557,-8826,-31557,-8826,-31557, - -9170,-31458,-9170,-31458,-9170,-31458,-9170,-31458, - -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357, - -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251, - -10194,-31142,-10194,-31142,-10194,-31142,-10194,-31142, - -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029, - -10871,-30912,-10871,-30912,-10871,-30912,-10871,-30912, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11543,-30667,-11543,-30667,-11543,-30667,-11543,-30667, - -11877,-30540,-11877,-30540,-11877,-30540,-11877,-30540, - -12209,-30408,-12209,-30408,-12209,-30408,-12209,-30408, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -12869,-30135,-12869,-30135,-12869,-30135,-12869,-30135, - -13197,-29993,-13197,-29993,-13197,-29993,-13197,-29993, - -13524,-29847,-13524,-29847,-13524,-29847,-13524,-29847, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14172,-29545,-14172,-29545,-14172,-29545,-14172,-29545, - -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388, - -14813,-29228,-14813,-29228,-14813,-29228,-14813,-29228, - -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065, - -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898, - -15761,-28728,-15761,-28728,-15761,-28728,-15761,-28728, - -16073,-28555,-16073,-28555,-16073,-28555,-16073,-28555 - }; -static int16_t twb576[191*2*4] = {32759,-715,32759,-715,32759,-715,32759,-715, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32572,-3568,32572,-3568,32572,-3568,32572,-3568, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32385,-4985,32385,-4985,32385,-4985,32385,-4985, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31827,-7789,31827,-7789,31827,-7789,31827,-7789, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31457,-9170,31457,-9170,31457,-9170,31457,-9170, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30539,-11877,30539,-11877,30539,-11877,30539,-11877, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 29992,-13197,29992,-13197,29992,-13197,29992,-13197, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28727,-15761,28727,-15761,28727,-15761,28727,-15761, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28012,-16999,28012,-16999,28012,-16999,28012,-16999, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26424,-19376,26424,-19376,26424,-19376,26424,-19376, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25554,-20510,25554,-20510,25554,-20510,25554,-20510, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23669,-22659,23669,-22659,23669,-22659,23669,-22659, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22658,-23670,22658,-23670,22658,-23670,22658,-23670, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20509,-25555,20509,-25555,20509,-25555,20509,-25555, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19375,-26425,19375,-26425,19375,-26425,19375,-26425, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 16998,-28013,16998,-28013,16998,-28013,16998,-28013, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15760,-28728,15760,-28728,15760,-28728,15760,-28728, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13196,-29993,13196,-29993,13196,-29993,13196,-29993, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11876,-30540,11876,-30540,11876,-30540,11876,-30540, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9169,-31458,9169,-31458,9169,-31458,9169,-31458, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7788,-31828,7788,-31828,7788,-31828,7788,-31828, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 4984,-32386,4984,-32386,4984,-32386,4984,-32386, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3567,-32573,3567,-32573,3567,-32573,3567,-32573, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 714,-32760,714,-32760,714,-32760,714,-32760, - 0,-32767,0,-32767,0,-32767,0,-32767, - -715,-32760,-715,-32760,-715,-32760,-715,-32760, - -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736, - -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3568,-32573,-3568,-32573,-3568,-32573,-3568,-32573, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -4985,-32386,-4985,-32386,-4985,-32386,-4985,-32386, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991, - -7789,-31828,-7789,-31828,-7789,-31828,-7789,-31828, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9170,-31458,-9170,-31458,-9170,-31458,-9170,-31458, - -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251, - -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11877,-30540,-11877,-30540,-11877,-30540,-11877,-30540, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13197,-29993,-13197,-29993,-13197,-29993,-13197,-29993, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388, - -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065, - -15761,-28728,-15761,-28728,-15761,-28728,-15761,-28728, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16999,-28013,-16999,-28013,-16999,-28013,-16999,-28013, - -17606,-27636,-17606,-27636,-17606,-27636,-17606,-27636, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842, - -19376,-26425,-19376,-26425,-19376,-26425,-19376,-26425, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20510,-25555,-20510,-25555,-20510,-25555,-20510,-25555, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21605,-24636,-21605,-24636,-21605,-24636,-21605,-24636, - -22138,-24159,-22138,-24159,-22138,-24159,-22138,-24159, - -22659,-23670,-22659,-23670,-22659,-23670,-22659,-23670, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23670,-22659,-23670,-22659,-23670,-22659,-23670,-22659, - -24159,-22138,-24159,-22138,-24159,-22138,-24159,-22138, - -24636,-21605,-24636,-21605,-24636,-21605,-24636,-21605, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25555,-20510,-25555,-20510,-25555,-20510,-25555,-20510, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26425,-19376,-26425,-19376,-26425,-19376,-26425,-19376, - -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -27636,-17606,-27636,-17606,-27636,-17606,-27636,-17606, - -28013,-16999,-28013,-16999,-28013,-16999,-28013,-16999, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28728,-15761,-28728,-15761,-28728,-15761,-28728,-15761, - -29065,-15131,-29065,-15131,-29065,-15131,-29065,-15131, - -29388,-14493,-29388,-14493,-29388,-14493,-29388,-14493, - -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848, - -29993,-13197,-29993,-13197,-29993,-13197,-29993,-13197, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30540,-11877,-30540,-11877,-30540,-11877,-30540,-11877, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -31029,-10533,-31029,-10533,-31029,-10533,-31029,-10533, - -31251,-9854,-31251,-9854,-31251,-9854,-31251,-9854, - -31458,-9170,-31458,-9170,-31458,-9170,-31458,-9170, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31828,-7789,-31828,-7789,-31828,-7789,-31828,-7789, - -31991,-7093,-31991,-7093,-31991,-7093,-31991,-7093, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32386,-4985,-32386,-4985,-32386,-4985,-32386,-4985, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32573,-3568,-32573,-3568,-32573,-3568,-32573,-3568, - -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856, - -32697,-2144,-32697,-2144,-32697,-2144,-32697,-2144, - -32736,-1430,-32736,-1430,-32736,-1430,-32736,-1430, - -32760,-715,-32760,-715,-32760,-715,-32760,-715, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32760,714,-32760,714,-32760,714,-32760,714, - -32736,1429,-32736,1429,-32736,1429,-32736,1429, - -32697,2143,-32697,2143,-32697,2143,-32697,2143, - -32643,2855,-32643,2855,-32643,2855,-32643,2855, - -32573,3567,-32573,3567,-32573,3567,-32573,3567, - -32487,4276,-32487,4276,-32487,4276,-32487,4276, - -32386,4984,-32386,4984,-32386,4984,-32386,4984, - -32270,5689,-32270,5689,-32270,5689,-32270,5689, - -32138,6392,-32138,6392,-32138,6392,-32138,6392, - -31991,7092,-31991,7092,-31991,7092,-31991,7092, - -31828,7788,-31828,7788,-31828,7788,-31828,7788, - -31651,8480,-31651,8480,-31651,8480,-31651,8480, - -31458,9169,-31458,9169,-31458,9169,-31458,9169, - -31251,9853,-31251,9853,-31251,9853,-31251,9853, - -31029,10532,-31029,10532,-31029,10532,-31029,10532, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30540,11876,-30540,11876,-30540,11876,-30540,11876, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -29993,13196,-29993,13196,-29993,13196,-29993,13196, - -29697,13847,-29697,13847,-29697,13847,-29697,13847, - -29388,14492,-29388,14492,-29388,14492,-29388,14492, - -29065,15130,-29065,15130,-29065,15130,-29065,15130, - -28728,15760,-28728,15760,-28728,15760,-28728,15760, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -28013,16998,-28013,16998,-28013,16998,-28013,16998, - -27636,17605,-27636,17605,-27636,17605,-27636,17605, - -27245,18204,-27245,18204,-27245,18204,-27245,18204, - -26842,18794,-26842,18794,-26842,18794,-26842,18794, - -26425,19375,-26425,19375,-26425,19375,-26425,19375, - -25996,19947,-25996,19947,-25996,19947,-25996,19947, - -25555,20509,-25555,20509,-25555,20509,-25555,20509, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24636,21604,-24636,21604,-24636,21604,-24636,21604, - -24159,22137,-24159,22137,-24159,22137,-24159,22137, - -23670,22658,-23670,22658,-23670,22658,-23670,22658, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22659,23669,-22659,23669,-22659,23669,-22659,23669, - -22138,24158,-22138,24158,-22138,24158,-22138,24158, - -21605,24635,-21605,24635,-21605,24635,-21605,24635, - -21063,25100,-21063,25100,-21063,25100,-21063,25100, - -20510,25554,-20510,25554,-20510,25554,-20510,25554, - -19948,25995,-19948,25995,-19948,25995,-19948,25995, - -19376,26424,-19376,26424,-19376,26424,-19376,26424, - -18795,26841,-18795,26841,-18795,26841,-18795,26841, - -18205,27244,-18205,27244,-18205,27244,-18205,27244, - -17606,27635,-17606,27635,-17606,27635,-17606,27635, - -16999,28012,-16999,28012,-16999,28012,-16999,28012 - }; +static int16_t twa576[191*2*4]; +static int16_t twb576[191*2*4]; void dft576(int16_t *x,int16_t *y,unsigned char scale_flag) // 192 x 3 { @@ -11446,320 +7901,8 @@ void dft576(int16_t *x,int16_t *y,unsigned char scale_flag) // 192 x 3 _m_empty(); }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:299)/600)); -twa2 = zeros(1,2*299); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa600[299*2*4] = {"); -for i=1:2:(2*298) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fclose(fd); - */ -static int16_t twa600[299*2*4] = {32765,-344,32765,-344,32765,-344,32765,-344, - 32759,-687,32759,-687,32759,-687,32759,-687, - 32750,-1030,32750,-1030,32750,-1030,32750,-1030, - 32738,-1373,32738,-1373,32738,-1373,32738,-1373, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32702,-2058,32702,-2058,32702,-2058,32702,-2058, - 32679,-2400,32679,-2400,32679,-2400,32679,-2400, - 32652,-2742,32652,-2742,32652,-2742,32652,-2742, - 32621,-3084,32621,-3084,32621,-3084,32621,-3084, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32549,-3767,32549,-3767,32549,-3767,32549,-3767, - 32508,-4107,32508,-4107,32508,-4107,32508,-4107, - 32463,-4447,32463,-4447,32463,-4447,32463,-4447, - 32415,-4787,32415,-4787,32415,-4787,32415,-4787, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32308,-5465,32308,-5465,32308,-5465,32308,-5465, - 32249,-5803,32249,-5803,32249,-5803,32249,-5803, - 32186,-6140,32186,-6140,32186,-6140,32186,-6140, - 32120,-6477,32120,-6477,32120,-6477,32120,-6477, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31977,-7148,31977,-7148,31977,-7148,31977,-7148, - 31901,-7483,31901,-7483,31901,-7483,31901,-7483, - 31821,-7817,31821,-7817,31821,-7817,31821,-7817, - 31737,-8149,31737,-8149,31737,-8149,31737,-8149, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31559,-8812,31559,-8812,31559,-8812,31559,-8812, - 31465,-9142,31465,-9142,31465,-9142,31465,-9142, - 31368,-9471,31368,-9471,31368,-9471,31368,-9471, - 31267,-9799,31267,-9799,31267,-9799,31267,-9799, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31055,-10452,31055,-10452,31055,-10452,31055,-10452, - 30944,-10776,30944,-10776,30944,-10776,30944,-10776, - 30829,-11100,30829,-11100,30829,-11100,30829,-11100, - 30711,-11422,30711,-11422,30711,-11422,30711,-11422, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30465,-12063,30465,-12063,30465,-12063,30465,-12063, - 30338,-12381,30338,-12381,30338,-12381,30338,-12381, - 30206,-12698,30206,-12698,30206,-12698,30206,-12698, - 30072,-13014,30072,-13014,30072,-13014,30072,-13014, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29792,-13641,29792,-13641,29792,-13641,29792,-13641, - 29648,-13952,29648,-13952,29648,-13952,29648,-13952, - 29500,-14262,29500,-14262,29500,-14262,29500,-14262, - 29349,-14570,29349,-14570,29349,-14570,29349,-14570, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 29038,-15181,29038,-15181,29038,-15181,29038,-15181, - 28877,-15485,28877,-15485,28877,-15485,28877,-15485, - 28713,-15786,28713,-15786,28713,-15786,28713,-15786, - 28547,-16086,28547,-16086,28547,-16086,28547,-16086, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28203,-16680,28203,-16680,28203,-16680,28203,-16680, - 28027,-16975,28027,-16975,28027,-16975,28027,-16975, - 27848,-17267,27848,-17267,27848,-17267,27848,-17267, - 27666,-17558,27666,-17558,27666,-17558,27666,-17558, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27292,-18133,27292,-18133,27292,-18133,27292,-18133, - 27100,-18418,27100,-18418,27100,-18418,27100,-18418, - 26906,-18701,26906,-18701,26906,-18701,26906,-18701, - 26709,-18982,26709,-18982,26709,-18982,26709,-18982, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26305,-19537,26305,-19537,26305,-19537,26305,-19537, - 26099,-19811,26099,-19811,26099,-19811,26099,-19811, - 25891,-20084,25891,-20084,25891,-20084,25891,-20084, - 25679,-20354,25679,-20354,25679,-20354,25679,-20354, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25247,-20887,25247,-20887,25247,-20887,25247,-20887, - 25027,-21150,25027,-21150,25027,-21150,25027,-21150, - 24804,-21411,24804,-21411,24804,-21411,24804,-21411, - 24578,-21670,24578,-21670,24578,-21670,24578,-21670, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24119,-22180,24119,-22180,24119,-22180,24119,-22180, - 23886,-22431,23886,-22431,23886,-22431,23886,-22431, - 23649,-22680,23649,-22680,23649,-22680,23649,-22680, - 23411,-22926,23411,-22926,23411,-22926,23411,-22926, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22925,-23412,22925,-23412,22925,-23412,22925,-23412, - 22679,-23650,22679,-23650,22679,-23650,22679,-23650, - 22430,-23887,22430,-23887,22430,-23887,22430,-23887, - 22179,-24120,22179,-24120,22179,-24120,22179,-24120, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21669,-24579,21669,-24579,21669,-24579,21669,-24579, - 21410,-24805,21410,-24805,21410,-24805,21410,-24805, - 21149,-25028,21149,-25028,21149,-25028,21149,-25028, - 20886,-25248,20886,-25248,20886,-25248,20886,-25248, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20353,-25680,20353,-25680,20353,-25680,20353,-25680, - 20083,-25892,20083,-25892,20083,-25892,20083,-25892, - 19810,-26100,19810,-26100,19810,-26100,19810,-26100, - 19536,-26306,19536,-26306,19536,-26306,19536,-26306, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18981,-26710,18981,-26710,18981,-26710,18981,-26710, - 18700,-26907,18700,-26907,18700,-26907,18700,-26907, - 18417,-27101,18417,-27101,18417,-27101,18417,-27101, - 18132,-27293,18132,-27293,18132,-27293,18132,-27293, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17557,-27667,17557,-27667,17557,-27667,17557,-27667, - 17266,-27849,17266,-27849,17266,-27849,17266,-27849, - 16974,-28028,16974,-28028,16974,-28028,16974,-28028, - 16679,-28204,16679,-28204,16679,-28204,16679,-28204, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16085,-28548,16085,-28548,16085,-28548,16085,-28548, - 15785,-28714,15785,-28714,15785,-28714,15785,-28714, - 15484,-28878,15484,-28878,15484,-28878,15484,-28878, - 15180,-29039,15180,-29039,15180,-29039,15180,-29039, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14569,-29350,14569,-29350,14569,-29350,14569,-29350, - 14261,-29501,14261,-29501,14261,-29501,14261,-29501, - 13951,-29649,13951,-29649,13951,-29649,13951,-29649, - 13640,-29793,13640,-29793,13640,-29793,13640,-29793, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 13013,-30073,13013,-30073,13013,-30073,13013,-30073, - 12697,-30207,12697,-30207,12697,-30207,12697,-30207, - 12380,-30339,12380,-30339,12380,-30339,12380,-30339, - 12062,-30466,12062,-30466,12062,-30466,12062,-30466, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11421,-30712,11421,-30712,11421,-30712,11421,-30712, - 11099,-30830,11099,-30830,11099,-30830,11099,-30830, - 10775,-30945,10775,-30945,10775,-30945,10775,-30945, - 10451,-31056,10451,-31056,10451,-31056,10451,-31056, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9798,-31268,9798,-31268,9798,-31268,9798,-31268, - 9470,-31369,9470,-31369,9470,-31369,9470,-31369, - 9141,-31466,9141,-31466,9141,-31466,9141,-31466, - 8811,-31560,8811,-31560,8811,-31560,8811,-31560, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8148,-31738,8148,-31738,8148,-31738,8148,-31738, - 7816,-31822,7816,-31822,7816,-31822,7816,-31822, - 7482,-31902,7482,-31902,7482,-31902,7482,-31902, - 7147,-31978,7147,-31978,7147,-31978,7147,-31978, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6476,-32121,6476,-32121,6476,-32121,6476,-32121, - 6139,-32187,6139,-32187,6139,-32187,6139,-32187, - 5802,-32250,5802,-32250,5802,-32250,5802,-32250, - 5464,-32309,5464,-32309,5464,-32309,5464,-32309, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4786,-32416,4786,-32416,4786,-32416,4786,-32416, - 4446,-32464,4446,-32464,4446,-32464,4446,-32464, - 4106,-32509,4106,-32509,4106,-32509,4106,-32509, - 3766,-32550,3766,-32550,3766,-32550,3766,-32550, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3083,-32622,3083,-32622,3083,-32622,3083,-32622, - 2741,-32653,2741,-32653,2741,-32653,2741,-32653, - 2399,-32680,2399,-32680,2399,-32680,2399,-32680, - 2057,-32703,2057,-32703,2057,-32703,2057,-32703, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1372,-32739,1372,-32739,1372,-32739,1372,-32739, - 1029,-32751,1029,-32751,1029,-32751,1029,-32751, - 686,-32760,686,-32760,686,-32760,686,-32760, - 343,-32766,343,-32766,343,-32766,343,-32766, - 0,-32767,0,-32767,0,-32767,0,-32767, - -344,-32766,-344,-32766,-344,-32766,-344,-32766, - -687,-32760,-687,-32760,-687,-32760,-687,-32760, - -1030,-32751,-1030,-32751,-1030,-32751,-1030,-32751, - -1373,-32739,-1373,-32739,-1373,-32739,-1373,-32739, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -2058,-32703,-2058,-32703,-2058,-32703,-2058,-32703, - -2400,-32680,-2400,-32680,-2400,-32680,-2400,-32680, - -2742,-32653,-2742,-32653,-2742,-32653,-2742,-32653, - -3084,-32622,-3084,-32622,-3084,-32622,-3084,-32622, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3767,-32550,-3767,-32550,-3767,-32550,-3767,-32550, - -4107,-32509,-4107,-32509,-4107,-32509,-4107,-32509, - -4447,-32464,-4447,-32464,-4447,-32464,-4447,-32464, - -4787,-32416,-4787,-32416,-4787,-32416,-4787,-32416, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5465,-32309,-5465,-32309,-5465,-32309,-5465,-32309, - -5803,-32250,-5803,-32250,-5803,-32250,-5803,-32250, - -6140,-32187,-6140,-32187,-6140,-32187,-6140,-32187, - -6477,-32121,-6477,-32121,-6477,-32121,-6477,-32121, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7148,-31978,-7148,-31978,-7148,-31978,-7148,-31978, - -7483,-31902,-7483,-31902,-7483,-31902,-7483,-31902, - -7817,-31822,-7817,-31822,-7817,-31822,-7817,-31822, - -8149,-31738,-8149,-31738,-8149,-31738,-8149,-31738, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8812,-31560,-8812,-31560,-8812,-31560,-8812,-31560, - -9142,-31466,-9142,-31466,-9142,-31466,-9142,-31466, - -9471,-31369,-9471,-31369,-9471,-31369,-9471,-31369, - -9799,-31268,-9799,-31268,-9799,-31268,-9799,-31268, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10452,-31056,-10452,-31056,-10452,-31056,-10452,-31056, - -10776,-30945,-10776,-30945,-10776,-30945,-10776,-30945, - -11100,-30830,-11100,-30830,-11100,-30830,-11100,-30830, - -11422,-30712,-11422,-30712,-11422,-30712,-11422,-30712, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -12063,-30466,-12063,-30466,-12063,-30466,-12063,-30466, - -12381,-30339,-12381,-30339,-12381,-30339,-12381,-30339, - -12698,-30207,-12698,-30207,-12698,-30207,-12698,-30207, - -13014,-30073,-13014,-30073,-13014,-30073,-13014,-30073, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13641,-29793,-13641,-29793,-13641,-29793,-13641,-29793, - -13952,-29649,-13952,-29649,-13952,-29649,-13952,-29649, - -14262,-29501,-14262,-29501,-14262,-29501,-14262,-29501, - -14570,-29350,-14570,-29350,-14570,-29350,-14570,-29350, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15181,-29039,-15181,-29039,-15181,-29039,-15181,-29039, - -15485,-28878,-15485,-28878,-15485,-28878,-15485,-28878, - -15786,-28714,-15786,-28714,-15786,-28714,-15786,-28714, - -16086,-28548,-16086,-28548,-16086,-28548,-16086,-28548, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16680,-28204,-16680,-28204,-16680,-28204,-16680,-28204, - -16975,-28028,-16975,-28028,-16975,-28028,-16975,-28028, - -17267,-27849,-17267,-27849,-17267,-27849,-17267,-27849, - -17558,-27667,-17558,-27667,-17558,-27667,-17558,-27667, - -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481, - -18133,-27293,-18133,-27293,-18133,-27293,-18133,-27293, - -18418,-27101,-18418,-27101,-18418,-27101,-18418,-27101, - -18701,-26907,-18701,-26907,-18701,-26907,-18701,-26907, - -18982,-26710,-18982,-26710,-18982,-26710,-18982,-26710, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19537,-26306,-19537,-26306,-19537,-26306,-19537,-26306, - -19811,-26100,-19811,-26100,-19811,-26100,-19811,-26100, - -20084,-25892,-20084,-25892,-20084,-25892,-20084,-25892, - -20354,-25680,-20354,-25680,-20354,-25680,-20354,-25680, - -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465, - -20887,-25248,-20887,-25248,-20887,-25248,-20887,-25248, - -21150,-25028,-21150,-25028,-21150,-25028,-21150,-25028, - -21411,-24805,-21411,-24805,-21411,-24805,-21411,-24805, - -21670,-24579,-21670,-24579,-21670,-24579,-21670,-24579, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22180,-24120,-22180,-24120,-22180,-24120,-22180,-24120, - -22431,-23887,-22431,-23887,-22431,-23887,-22431,-23887, - -22680,-23650,-22680,-23650,-22680,-23650,-22680,-23650, - -22926,-23412,-22926,-23412,-22926,-23412,-22926,-23412, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23412,-22926,-23412,-22926,-23412,-22926,-23412,-22926, - -23650,-22680,-23650,-22680,-23650,-22680,-23650,-22680, - -23887,-22431,-23887,-22431,-23887,-22431,-23887,-22431, - -24120,-22180,-24120,-22180,-24120,-22180,-24120,-22180, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -24579,-21670,-24579,-21670,-24579,-21670,-24579,-21670, - -24805,-21411,-24805,-21411,-24805,-21411,-24805,-21411, - -25028,-21150,-25028,-21150,-25028,-21150,-25028,-21150, - -25248,-20887,-25248,-20887,-25248,-20887,-25248,-20887, - -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621, - -25680,-20354,-25680,-20354,-25680,-20354,-25680,-20354, - -25892,-20084,-25892,-20084,-25892,-20084,-25892,-20084, - -26100,-19811,-26100,-19811,-26100,-19811,-26100,-19811, - -26306,-19537,-26306,-19537,-26306,-19537,-26306,-19537, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26710,-18982,-26710,-18982,-26710,-18982,-26710,-18982, - -26907,-18701,-26907,-18701,-26907,-18701,-26907,-18701, - -27101,-18418,-27101,-18418,-27101,-18418,-27101,-18418, - -27293,-18133,-27293,-18133,-27293,-18133,-27293,-18133, - -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847, - -27667,-17558,-27667,-17558,-27667,-17558,-27667,-17558, - -27849,-17267,-27849,-17267,-27849,-17267,-27849,-17267, - -28028,-16975,-28028,-16975,-28028,-16975,-28028,-16975, - -28204,-16680,-28204,-16680,-28204,-16680,-28204,-16680, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28548,-16086,-28548,-16086,-28548,-16086,-28548,-16086, - -28714,-15786,-28714,-15786,-28714,-15786,-28714,-15786, - -28878,-15485,-28878,-15485,-28878,-15485,-28878,-15485, - -29039,-15181,-29039,-15181,-29039,-15181,-29039,-15181, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29350,-14570,-29350,-14570,-29350,-14570,-29350,-14570, - -29501,-14262,-29501,-14262,-29501,-14262,-29501,-14262, - -29649,-13952,-29649,-13952,-29649,-13952,-29649,-13952, - -29793,-13641,-29793,-13641,-29793,-13641,-29793,-13641, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30073,-13014,-30073,-13014,-30073,-13014,-30073,-13014, - -30207,-12698,-30207,-12698,-30207,-12698,-30207,-12698, - -30339,-12381,-30339,-12381,-30339,-12381,-30339,-12381, - -30466,-12063,-30466,-12063,-30466,-12063,-30466,-12063, - -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743, - -30712,-11422,-30712,-11422,-30712,-11422,-30712,-11422, - -30830,-11100,-30830,-11100,-30830,-11100,-30830,-11100, - -30945,-10776,-30945,-10776,-30945,-10776,-30945,-10776, - -31056,-10452,-31056,-10452,-31056,-10452,-31056,-10452, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31268,-9799,-31268,-9799,-31268,-9799,-31268,-9799, - -31369,-9471,-31369,-9471,-31369,-9471,-31369,-9471, - -31466,-9142,-31466,-9142,-31466,-9142,-31466,-9142, - -31560,-8812,-31560,-8812,-31560,-8812,-31560,-8812, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31738,-8149,-31738,-8149,-31738,-8149,-31738,-8149, - -31822,-7817,-31822,-7817,-31822,-7817,-31822,-7817, - -31902,-7483,-31902,-7483,-31902,-7483,-31902,-7483, - -31978,-7148,-31978,-7148,-31978,-7148,-31978,-7148, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32121,-6477,-32121,-6477,-32121,-6477,-32121,-6477, - -32187,-6140,-32187,-6140,-32187,-6140,-32187,-6140, - -32250,-5803,-32250,-5803,-32250,-5803,-32250,-5803, - -32309,-5465,-32309,-5465,-32309,-5465,-32309,-5465, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32416,-4787,-32416,-4787,-32416,-4787,-32416,-4787, - -32464,-4447,-32464,-4447,-32464,-4447,-32464,-4447, - -32509,-4107,-32509,-4107,-32509,-4107,-32509,-4107, - -32550,-3767,-32550,-3767,-32550,-3767,-32550,-3767, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32622,-3084,-32622,-3084,-32622,-3084,-32622,-3084, - -32653,-2742,-32653,-2742,-32653,-2742,-32653,-2742, - -32680,-2400,-32680,-2400,-32680,-2400,-32680,-2400, - -32703,-2058,-32703,-2058,-32703,-2058,-32703,-2058, - -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715, - -32739,-1373,-32739,-1373,-32739,-1373,-32739,-1373, - -32751,-1030,-32751,-1030,-32751,-1030,-32751,-1030, - -32760,-687,-32760,-687,-32760,-687,-32760,-687, - -32766,-344,-32766,-344,-32766,-344,-32766,-344 - }; + +static int16_t twa600[299*2*4]; void dft600(int16_t *x,int16_t *y,unsigned char scale_flag) // 300 x 2 { @@ -11803,464 +7946,8 @@ void dft600(int16_t *x,int16_t *y,unsigned char scale_flag) // 300 x 2 }; -/* -Twiddles generated with - -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:215)/648)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:215)/648)); -twa2 = zeros(1,2*215); -twb2 = zeros(1,2*215); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa648[215*2*4] = {"); -for i=1:2:(2*214) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb648[215*2*4] = {"); -for i=1:2:(2*214) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); -*/ -static int16_t twa648[215*2*4] = {32765,-318,32765,-318,32765,-318,32765,-318, - 32760,-636,32760,-636,32760,-636,32760,-636, - 32753,-954,32753,-954,32753,-954,32753,-954, - 32742,-1271,32742,-1271,32742,-1271,32742,-1271, - 32728,-1588,32728,-1588,32728,-1588,32728,-1588, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32691,-2223,32691,-2223,32691,-2223,32691,-2223, - 32668,-2540,32668,-2540,32668,-2540,32668,-2540, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32613,-3173,32613,-3173,32613,-3173,32613,-3173, - 32580,-3489,32580,-3489,32580,-3489,32580,-3489, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32507,-4120,32507,-4120,32507,-4120,32507,-4120, - 32465,-4435,32465,-4435,32465,-4435,32465,-4435, - 32421,-4749,32421,-4749,32421,-4749,32421,-4749, - 32373,-5064,32373,-5064,32373,-5064,32373,-5064, - 32322,-5377,32322,-5377,32322,-5377,32322,-5377, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32212,-6003,32212,-6003,32212,-6003,32212,-6003, - 32152,-6315,32152,-6315,32152,-6315,32152,-6315, - 32090,-6627,32090,-6627,32090,-6627,32090,-6627, - 32024,-6937,32024,-6937,32024,-6937,32024,-6937, - 31955,-7248,31955,-7248,31955,-7248,31955,-7248, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31808,-7866,31808,-7866,31808,-7866,31808,-7866, - 31731,-8174,31731,-8174,31731,-8174,31731,-8174, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31566,-8788,31566,-8788,31566,-8788,31566,-8788, - 31480,-9093,31480,-9093,31480,-9093,31480,-9093, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31297,-9702,31297,-9702,31297,-9702,31297,-9702, - 31202,-10005,31202,-10005,31202,-10005,31202,-10005, - 31103,-10307,31103,-10307,31103,-10307,31103,-10307, - 31002,-10608,31002,-10608,31002,-10608,31002,-10608, - 30898,-10908,30898,-10908,30898,-10908,30898,-10908, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30680,-11505,30680,-11505,30680,-11505,30680,-11505, - 30567,-11802,30567,-11802,30567,-11802,30567,-11802, - 30451,-12098,30451,-12098,30451,-12098,30451,-12098, - 30333,-12393,30333,-12393,30333,-12393,30333,-12393, - 30211,-12687,30211,-12687,30211,-12687,30211,-12687, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29959,-13270,29959,-13270,29959,-13270,29959,-13270, - 29829,-13560,29829,-13560,29829,-13560,29829,-13560, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29561,-14136,29561,-14136,29561,-14136,29561,-14136, - 29422,-14422,29422,-14422,29422,-14422,29422,-14422, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29137,-14990,29137,-14990,29137,-14990,29137,-14990, - 28990,-15271,28990,-15271,28990,-15271,28990,-15271, - 28841,-15552,28841,-15552,28841,-15552,28841,-15552, - 28689,-15831,28689,-15831,28689,-15831,28689,-15831, - 28534,-16108,28534,-16108,28534,-16108,28534,-16108, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28216,-16658,28216,-16658,28216,-16658,28216,-16658, - 28054,-16931,28054,-16931,28054,-16931,28054,-16931, - 27888,-17202,27888,-17202,27888,-17202,27888,-17202, - 27720,-17472,27720,-17472,27720,-17472,27720,-17472, - 27549,-17740,27549,-17740,27549,-17740,27549,-17740, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27200,-18271,27200,-18271,27200,-18271,27200,-18271, - 27022,-18534,27022,-18534,27022,-18534,27022,-18534, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26657,-19054,26657,-19054,26657,-19054,26657,-19054, - 26471,-19312,26471,-19312,26471,-19312,26471,-19312, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 26092,-19822,26092,-19822,26092,-19822,26092,-19822, - 25898,-20074,25898,-20074,25898,-20074,25898,-20074, - 25702,-20324,25702,-20324,25702,-20324,25702,-20324, - 25504,-20572,25504,-20572,25504,-20572,25504,-20572, - 25304,-20818,25304,-20818,25304,-20818,25304,-20818, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24895,-21305,24895,-21305,24895,-21305,24895,-21305, - 24687,-21546,24687,-21546,24687,-21546,24687,-21546, - 24477,-21784,24477,-21784,24477,-21784,24477,-21784, - 24265,-22020,24265,-22020,24265,-22020,24265,-22020, - 24050,-22254,24050,-22254,24050,-22254,24050,-22254, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23614,-22717,23614,-22717,23614,-22717,23614,-22717, - 23393,-22945,23393,-22945,23393,-22945,23393,-22945, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22944,-23394,22944,-23394,22944,-23394,22944,-23394, - 22716,-23615,22716,-23615,22716,-23615,22716,-23615, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22253,-24051,22253,-24051,22253,-24051,22253,-24051, - 22019,-24266,22019,-24266,22019,-24266,22019,-24266, - 21783,-24478,21783,-24478,21783,-24478,21783,-24478, - 21545,-24688,21545,-24688,21545,-24688,21545,-24688, - 21304,-24896,21304,-24896,21304,-24896,21304,-24896, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20817,-25305,20817,-25305,20817,-25305,20817,-25305, - 20571,-25505,20571,-25505,20571,-25505,20571,-25505, - 20323,-25703,20323,-25703,20323,-25703,20323,-25703, - 20073,-25899,20073,-25899,20073,-25899,20073,-25899, - 19821,-26093,19821,-26093,19821,-26093,19821,-26093, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19311,-26472,19311,-26472,19311,-26472,19311,-26472, - 19053,-26658,19053,-26658,19053,-26658,19053,-26658, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18533,-27023,18533,-27023,18533,-27023,18533,-27023, - 18270,-27201,18270,-27201,18270,-27201,18270,-27201, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17739,-27550,17739,-27550,17739,-27550,17739,-27550, - 17471,-27721,17471,-27721,17471,-27721,17471,-27721, - 17201,-27889,17201,-27889,17201,-27889,17201,-27889, - 16930,-28055,16930,-28055,16930,-28055,16930,-28055, - 16657,-28217,16657,-28217,16657,-28217,16657,-28217, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16107,-28535,16107,-28535,16107,-28535,16107,-28535, - 15830,-28690,15830,-28690,15830,-28690,15830,-28690, - 15551,-28842,15551,-28842,15551,-28842,15551,-28842, - 15270,-28991,15270,-28991,15270,-28991,15270,-28991, - 14989,-29138,14989,-29138,14989,-29138,14989,-29138, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14421,-29423,14421,-29423,14421,-29423,14421,-29423, - 14135,-29562,14135,-29562,14135,-29562,14135,-29562, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13559,-29830,13559,-29830,13559,-29830,13559,-29830, - 13269,-29960,13269,-29960,13269,-29960,13269,-29960, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12686,-30212,12686,-30212,12686,-30212,12686,-30212, - 12392,-30334,12392,-30334,12392,-30334,12392,-30334, - 12097,-30452,12097,-30452,12097,-30452,12097,-30452, - 11801,-30568,11801,-30568,11801,-30568,11801,-30568, - 11504,-30681,11504,-30681,11504,-30681,11504,-30681, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10907,-30899,10907,-30899,10907,-30899,10907,-30899, - 10607,-31003,10607,-31003,10607,-31003,10607,-31003, - 10306,-31104,10306,-31104,10306,-31104,10306,-31104, - 10004,-31203,10004,-31203,10004,-31203,10004,-31203, - 9701,-31298,9701,-31298,9701,-31298,9701,-31298, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 9092,-31481,9092,-31481,9092,-31481,9092,-31481, - 8787,-31567,8787,-31567,8787,-31567,8787,-31567, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8173,-31732,8173,-31732,8173,-31732,8173,-31732, - 7865,-31809,7865,-31809,7865,-31809,7865,-31809, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7247,-31956,7247,-31956,7247,-31956,7247,-31956, - 6936,-32025,6936,-32025,6936,-32025,6936,-32025, - 6626,-32091,6626,-32091,6626,-32091,6626,-32091, - 6314,-32153,6314,-32153,6314,-32153,6314,-32153, - 6002,-32213,6002,-32213,6002,-32213,6002,-32213, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5376,-32323,5376,-32323,5376,-32323,5376,-32323, - 5063,-32374,5063,-32374,5063,-32374,5063,-32374, - 4748,-32422,4748,-32422,4748,-32422,4748,-32422, - 4434,-32466,4434,-32466,4434,-32466,4434,-32466, - 4119,-32508,4119,-32508,4119,-32508,4119,-32508, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3488,-32581,3488,-32581,3488,-32581,3488,-32581, - 3172,-32614,3172,-32614,3172,-32614,3172,-32614, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2539,-32669,2539,-32669,2539,-32669,2539,-32669, - 2222,-32692,2222,-32692,2222,-32692,2222,-32692, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1587,-32729,1587,-32729,1587,-32729,1587,-32729, - 1270,-32743,1270,-32743,1270,-32743,1270,-32743, - 953,-32754,953,-32754,953,-32754,953,-32754, - 635,-32761,635,-32761,635,-32761,635,-32761, - 317,-32766,317,-32766,317,-32766,317,-32766, - 0,-32767,0,-32767,0,-32767,0,-32767, - -318,-32766,-318,-32766,-318,-32766,-318,-32766, - -636,-32761,-636,-32761,-636,-32761,-636,-32761, - -954,-32754,-954,-32754,-954,-32754,-954,-32754, - -1271,-32743,-1271,-32743,-1271,-32743,-1271,-32743, - -1588,-32729,-1588,-32729,-1588,-32729,-1588,-32729, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2223,-32692,-2223,-32692,-2223,-32692,-2223,-32692, - -2540,-32669,-2540,-32669,-2540,-32669,-2540,-32669, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614, - -3489,-32581,-3489,-32581,-3489,-32581,-3489,-32581, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4120,-32508,-4120,-32508,-4120,-32508,-4120,-32508, - -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466, - -4749,-32422,-4749,-32422,-4749,-32422,-4749,-32422, - -5064,-32374,-5064,-32374,-5064,-32374,-5064,-32374, - -5377,-32323,-5377,-32323,-5377,-32323,-5377,-32323, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6003,-32213,-6003,-32213,-6003,-32213,-6003,-32213, - -6315,-32153,-6315,-32153,-6315,-32153,-6315,-32153, - -6627,-32091,-6627,-32091,-6627,-32091,-6627,-32091, - -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025, - -7248,-31956,-7248,-31956,-7248,-31956,-7248,-31956, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -7866,-31809,-7866,-31809,-7866,-31809,-7866,-31809, - -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8788,-31567,-8788,-31567,-8788,-31567,-8788,-31567, - -9093,-31481,-9093,-31481,-9093,-31481,-9093,-31481, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9702,-31298,-9702,-31298,-9702,-31298,-9702,-31298, - -10005,-31203,-10005,-31203,-10005,-31203,-10005,-31203, - -10307,-31104,-10307,-31104,-10307,-31104,-10307,-31104, - -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003, - -10908,-30899,-10908,-30899,-10908,-30899,-10908,-30899, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11505,-30681,-11505,-30681,-11505,-30681,-11505,-30681, - -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568, - -12098,-30452,-12098,-30452,-12098,-30452,-12098,-30452, - -12393,-30334,-12393,-30334,-12393,-30334,-12393,-30334, - -12687,-30212,-12687,-30212,-12687,-30212,-12687,-30212, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13270,-29960,-13270,-29960,-13270,-29960,-13270,-29960, - -13560,-29830,-13560,-29830,-13560,-29830,-13560,-29830, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562, - -14422,-29423,-14422,-29423,-14422,-29423,-14422,-29423, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -14990,-29138,-14990,-29138,-14990,-29138,-14990,-29138, - -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991, - -15552,-28842,-15552,-28842,-15552,-28842,-15552,-28842, - -15831,-28690,-15831,-28690,-15831,-28690,-15831,-28690, - -16108,-28535,-16108,-28535,-16108,-28535,-16108,-28535 - }; -static int16_t twb648[215*2*4] = {32760,-636,32760,-636,32760,-636,32760,-636, - 32742,-1271,32742,-1271,32742,-1271,32742,-1271, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32668,-2540,32668,-2540,32668,-2540,32668,-2540, - 32613,-3173,32613,-3173,32613,-3173,32613,-3173, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32465,-4435,32465,-4435,32465,-4435,32465,-4435, - 32373,-5064,32373,-5064,32373,-5064,32373,-5064, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32152,-6315,32152,-6315,32152,-6315,32152,-6315, - 32024,-6937,32024,-6937,32024,-6937,32024,-6937, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31731,-8174,31731,-8174,31731,-8174,31731,-8174, - 31566,-8788,31566,-8788,31566,-8788,31566,-8788, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31202,-10005,31202,-10005,31202,-10005,31202,-10005, - 31002,-10608,31002,-10608,31002,-10608,31002,-10608, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30567,-11802,30567,-11802,30567,-11802,30567,-11802, - 30333,-12393,30333,-12393,30333,-12393,30333,-12393, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29829,-13560,29829,-13560,29829,-13560,29829,-13560, - 29561,-14136,29561,-14136,29561,-14136,29561,-14136, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 28990,-15271,28990,-15271,28990,-15271,28990,-15271, - 28689,-15831,28689,-15831,28689,-15831,28689,-15831, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28054,-16931,28054,-16931,28054,-16931,28054,-16931, - 27720,-17472,27720,-17472,27720,-17472,27720,-17472, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27022,-18534,27022,-18534,27022,-18534,27022,-18534, - 26657,-19054,26657,-19054,26657,-19054,26657,-19054, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 25898,-20074,25898,-20074,25898,-20074,25898,-20074, - 25504,-20572,25504,-20572,25504,-20572,25504,-20572, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24687,-21546,24687,-21546,24687,-21546,24687,-21546, - 24265,-22020,24265,-22020,24265,-22020,24265,-22020, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23393,-22945,23393,-22945,23393,-22945,23393,-22945, - 22944,-23394,22944,-23394,22944,-23394,22944,-23394, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22019,-24266,22019,-24266,22019,-24266,22019,-24266, - 21545,-24688,21545,-24688,21545,-24688,21545,-24688, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20571,-25505,20571,-25505,20571,-25505,20571,-25505, - 20073,-25899,20073,-25899,20073,-25899,20073,-25899, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19053,-26658,19053,-26658,19053,-26658,19053,-26658, - 18533,-27023,18533,-27023,18533,-27023,18533,-27023, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17471,-27721,17471,-27721,17471,-27721,17471,-27721, - 16930,-28055,16930,-28055,16930,-28055,16930,-28055, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15830,-28690,15830,-28690,15830,-28690,15830,-28690, - 15270,-28991,15270,-28991,15270,-28991,15270,-28991, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14135,-29562,14135,-29562,14135,-29562,14135,-29562, - 13559,-29830,13559,-29830,13559,-29830,13559,-29830, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12392,-30334,12392,-30334,12392,-30334,12392,-30334, - 11801,-30568,11801,-30568,11801,-30568,11801,-30568, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10607,-31003,10607,-31003,10607,-31003,10607,-31003, - 10004,-31203,10004,-31203,10004,-31203,10004,-31203, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8787,-31567,8787,-31567,8787,-31567,8787,-31567, - 8173,-31732,8173,-31732,8173,-31732,8173,-31732, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 6936,-32025,6936,-32025,6936,-32025,6936,-32025, - 6314,-32153,6314,-32153,6314,-32153,6314,-32153, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5063,-32374,5063,-32374,5063,-32374,5063,-32374, - 4434,-32466,4434,-32466,4434,-32466,4434,-32466, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3172,-32614,3172,-32614,3172,-32614,3172,-32614, - 2539,-32669,2539,-32669,2539,-32669,2539,-32669, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1270,-32743,1270,-32743,1270,-32743,1270,-32743, - 635,-32761,635,-32761,635,-32761,635,-32761, - 0,-32767,0,-32767,0,-32767,0,-32767, - -636,-32761,-636,-32761,-636,-32761,-636,-32761, - -1271,-32743,-1271,-32743,-1271,-32743,-1271,-32743, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2540,-32669,-2540,-32669,-2540,-32669,-2540,-32669, - -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466, - -5064,-32374,-5064,-32374,-5064,-32374,-5064,-32374, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6315,-32153,-6315,-32153,-6315,-32153,-6315,-32153, - -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732, - -8788,-31567,-8788,-31567,-8788,-31567,-8788,-31567, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -10005,-31203,-10005,-31203,-10005,-31203,-10005,-31203, - -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568, - -12393,-30334,-12393,-30334,-12393,-30334,-12393,-30334, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13560,-29830,-13560,-29830,-13560,-29830,-13560,-29830, - -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991, - -15831,-28690,-15831,-28690,-15831,-28690,-15831,-28690, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16931,-28055,-16931,-28055,-16931,-28055,-16931,-28055, - -17472,-27721,-17472,-27721,-17472,-27721,-17472,-27721, - -18006,-27377,-18006,-27377,-18006,-27377,-18006,-27377, - -18534,-27023,-18534,-27023,-18534,-27023,-18534,-27023, - -19054,-26658,-19054,-26658,-19054,-26658,-19054,-26658, - -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284, - -20074,-25899,-20074,-25899,-20074,-25899,-20074,-25899, - -20572,-25505,-20572,-25505,-20572,-25505,-20572,-25505, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21546,-24688,-21546,-24688,-21546,-24688,-21546,-24688, - -22020,-24266,-22020,-24266,-22020,-24266,-22020,-24266, - -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834, - -22945,-23394,-22945,-23394,-22945,-23394,-22945,-23394, - -23394,-22945,-23394,-22945,-23394,-22945,-23394,-22945, - -23834,-22487,-23834,-22487,-23834,-22487,-23834,-22487, - -24266,-22020,-24266,-22020,-24266,-22020,-24266,-22020, - -24688,-21546,-24688,-21546,-24688,-21546,-24688,-21546, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25505,-20572,-25505,-20572,-25505,-20572,-25505,-20572, - -25899,-20074,-25899,-20074,-25899,-20074,-25899,-20074, - -26284,-19568,-26284,-19568,-26284,-19568,-26284,-19568, - -26658,-19054,-26658,-19054,-26658,-19054,-26658,-19054, - -27023,-18534,-27023,-18534,-27023,-18534,-27023,-18534, - -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006, - -27721,-17472,-27721,-17472,-27721,-17472,-27721,-17472, - -28055,-16931,-28055,-16931,-28055,-16931,-28055,-16931, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28690,-15831,-28690,-15831,-28690,-15831,-28690,-15831, - -28991,-15271,-28991,-15271,-28991,-15271,-28991,-15271, - -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706, - -29562,-14136,-29562,-14136,-29562,-14136,-29562,-14136, - -29830,-13560,-29830,-13560,-29830,-13560,-29830,-13560, - -30088,-12979,-30088,-12979,-30088,-12979,-30088,-12979, - -30334,-12393,-30334,-12393,-30334,-12393,-30334,-12393, - -30568,-11802,-30568,-11802,-30568,-11802,-30568,-11802, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -31003,-10608,-31003,-10608,-31003,-10608,-31003,-10608, - -31203,-10005,-31203,-10005,-31203,-10005,-31203,-10005, - -31391,-9398,-31391,-9398,-31391,-9398,-31391,-9398, - -31567,-8788,-31567,-8788,-31567,-8788,-31567,-8788, - -31732,-8174,-31732,-8174,-31732,-8174,-31732,-8174, - -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557, - -32025,-6937,-32025,-6937,-32025,-6937,-32025,-6937, - -32153,-6315,-32153,-6315,-32153,-6315,-32153,-6315, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32374,-5064,-32374,-5064,-32374,-5064,-32374,-5064, - -32466,-4435,-32466,-4435,-32466,-4435,-32466,-4435, - -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805, - -32614,-3173,-32614,-3173,-32614,-3173,-32614,-3173, - -32669,-2540,-32669,-2540,-32669,-2540,-32669,-2540, - -32712,-1906,-32712,-1906,-32712,-1906,-32712,-1906, - -32743,-1271,-32743,-1271,-32743,-1271,-32743,-1271, - -32761,-636,-32761,-636,-32761,-636,-32761,-636, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32761,635,-32761,635,-32761,635,-32761,635, - -32743,1270,-32743,1270,-32743,1270,-32743,1270, - -32712,1905,-32712,1905,-32712,1905,-32712,1905, - -32669,2539,-32669,2539,-32669,2539,-32669,2539, - -32614,3172,-32614,3172,-32614,3172,-32614,3172, - -32546,3804,-32546,3804,-32546,3804,-32546,3804, - -32466,4434,-32466,4434,-32466,4434,-32466,4434, - -32374,5063,-32374,5063,-32374,5063,-32374,5063, - -32270,5689,-32270,5689,-32270,5689,-32270,5689, - -32153,6314,-32153,6314,-32153,6314,-32153,6314, - -32025,6936,-32025,6936,-32025,6936,-32025,6936, - -31884,7556,-31884,7556,-31884,7556,-31884,7556, - -31732,8173,-31732,8173,-31732,8173,-31732,8173, - -31567,8787,-31567,8787,-31567,8787,-31567,8787, - -31391,9397,-31391,9397,-31391,9397,-31391,9397, - -31203,10004,-31203,10004,-31203,10004,-31203,10004, - -31003,10607,-31003,10607,-31003,10607,-31003,10607, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30568,11801,-30568,11801,-30568,11801,-30568,11801, - -30334,12392,-30334,12392,-30334,12392,-30334,12392, - -30088,12978,-30088,12978,-30088,12978,-30088,12978, - -29830,13559,-29830,13559,-29830,13559,-29830,13559, - -29562,14135,-29562,14135,-29562,14135,-29562,14135, - -29282,14705,-29282,14705,-29282,14705,-29282,14705, - -28991,15270,-28991,15270,-28991,15270,-28991,15270, - -28690,15830,-28690,15830,-28690,15830,-28690,15830, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -28055,16930,-28055,16930,-28055,16930,-28055,16930, - -27721,17471,-27721,17471,-27721,17471,-27721,17471, - -27377,18005,-27377,18005,-27377,18005,-27377,18005, - -27023,18533,-27023,18533,-27023,18533,-27023,18533, - -26658,19053,-26658,19053,-26658,19053,-26658,19053, - -26284,19567,-26284,19567,-26284,19567,-26284,19567, - -25899,20073,-25899,20073,-25899,20073,-25899,20073, - -25505,20571,-25505,20571,-25505,20571,-25505,20571, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24688,21545,-24688,21545,-24688,21545,-24688,21545, - -24266,22019,-24266,22019,-24266,22019,-24266,22019, - -23834,22486,-23834,22486,-23834,22486,-23834,22486, - -23394,22944,-23394,22944,-23394,22944,-23394,22944, - -22945,23393,-22945,23393,-22945,23393,-22945,23393, - -22487,23833,-22487,23833,-22487,23833,-22487,23833, - -22020,24265,-22020,24265,-22020,24265,-22020,24265, - -21546,24687,-21546,24687,-21546,24687,-21546,24687, - -21063,25100,-21063,25100,-21063,25100,-21063,25100, - -20572,25504,-20572,25504,-20572,25504,-20572,25504, - -20074,25898,-20074,25898,-20074,25898,-20074,25898, - -19568,26283,-19568,26283,-19568,26283,-19568,26283, - -19054,26657,-19054,26657,-19054,26657,-19054,26657, - -18534,27022,-18534,27022,-18534,27022,-18534,27022, - -18006,27376,-18006,27376,-18006,27376,-18006,27376, - -17472,27720,-17472,27720,-17472,27720,-17472,27720, - -16931,28054,-16931,28054,-16931,28054,-16931,28054 - }; +static int16_t twa648[215*2*4]; +static int16_t twb648[215*2*4]; void dft648(int16_t *x,int16_t *y,unsigned char scale_flag) // 216 x 3 { @@ -12311,583 +7998,10 @@ void dft648(int16_t *x,int16_t *y,unsigned char scale_flag) // 216 x 3 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:179)/720)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:179)/720)); -twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:179)/720)); -twa2 = zeros(1,2*179); -twb2 = zeros(1,2*179); -twc2 = zeros(1,2*179); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -twc2(1:2:end) = real(twc); -twc2(2:2:end) = imag(twc); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa720[179*2*4] = {"); -for i=1:2:(2*178) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"\nstatic int16_t twb720[179*2*4] = {"); -for i=1:2:(2*178) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fprintf(fd,"\nstatic int16_t twc720[179*2*4] = {"); -for i=1:2:(2*178) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -fclose(fd); - */ +static int16_t twa720[179*2*4]; +static int16_t twb720[179*2*4]; +static int16_t twc720[179*2*4]; -static int16_t twa720[179*2*4] = {32765,-286,32765,-286,32765,-286,32765,-286, - 32762,-572,32762,-572,32762,-572,32762,-572, - 32755,-858,32755,-858,32755,-858,32755,-858, - 32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32705,-2001,32705,-2001,32705,-2001,32705,-2001, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32616,-3141,32616,-3141,32616,-3141,32616,-3141, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32556,-3710,32556,-3710,32556,-3710,32556,-3710, - 32522,-3994,32522,-3994,32522,-3994,32522,-3994, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32407,-4844,32407,-4844,32407,-4844,32407,-4844, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32317,-5409,32317,-5409,32317,-5409,32317,-5409, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32218,-5972,32218,-5972,32218,-5972,32218,-5972, - 32164,-6253,32164,-6253,32164,-6253,32164,-6253, - 32109,-6533,32109,-6533,32109,-6533,32109,-6533, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31927,-7371,31927,-7371,31927,-7371,31927,-7371, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31723,-8205,31723,-8205,31723,-8205,31723,-8205, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31575,-8757,31575,-8757,31575,-8757,31575,-8757, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31417,-9307,31417,-9307,31417,-9307,31417,-9307, - 31335,-9581,31335,-9581,31335,-9581,31335,-9581, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31073,-10398,31073,-10398,31073,-10398,31073,-10398, - 30981,-10668,30981,-10668,30981,-10668,30981,-10668, - 30887,-10938,30887,-10938,30887,-10938,30887,-10938, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30691,-11476,30691,-11476,30691,-11476,30691,-11476, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30486,-12010,30486,-12010,30486,-12010,30486,-12010, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30162,-12804,30162,-12804,30162,-12804,30162,-12804, - 30049,-13066,30049,-13066,30049,-13066,30049,-13066, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29816,-13589,29816,-13589,29816,-13589,29816,-13589, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29575,-14107,29575,-14107,29575,-14107,29575,-14107, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 29324,-14621,29324,-14621,29324,-14621,29324,-14621, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28796,-15636,28796,-15636,28796,-15636,28796,-15636, - 28658,-15886,28658,-15886,28658,-15886,28658,-15886, - 28518,-16136,28518,-16136,28518,-16136,28518,-16136, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28233,-16631,28233,-16631,28233,-16631,28233,-16631, - 28086,-16877,28086,-16877,28086,-16877,28086,-16877, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27323,-18086,27323,-18086,27323,-18086,27323,-18086, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 27004,-18560,27004,-18560,27004,-18560,27004,-18560, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26676,-19028,26676,-19028,26676,-19028,26676,-19028, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26339,-19491,26339,-19491,26339,-19491,26339,-19491, - 26168,-19720,26168,-19720,26168,-19720,26168,-19720, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25643,-20398,25643,-20398,25643,-20398,25643,-20398, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25283,-20843,25283,-20843,25283,-20843,25283,-20843, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24729,-21498,24729,-21498,24729,-21498,24729,-21498, - 24541,-21713,24541,-21713,24541,-21713,24541,-21713, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23964,-22348,23964,-22348,23964,-22348,23964,-22348, - 23768,-22556,23768,-22556,23768,-22556,23768,-22556, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23371,-22967,23371,-22967,23371,-22967,23371,-22967, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22966,-23372,22966,-23372,22966,-23372,22966,-23372, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 22555,-23769,22555,-23769,22555,-23769,22555,-23769, - 22347,-23965,22347,-23965,22347,-23965,22347,-23965, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21712,-24542,21712,-24542,21712,-24542,21712,-24542, - 21497,-24730,21497,-24730,21497,-24730,21497,-24730, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20842,-25284,20842,-25284,20842,-25284,20842,-25284, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20397,-25644,20397,-25644,20397,-25644,20397,-25644, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19719,-26169,19719,-26169,19719,-26169,19719,-26169, - 19490,-26340,19490,-26340,19490,-26340,19490,-26340, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 19027,-26677,19027,-26677,19027,-26677,19027,-26677, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18559,-27005,18559,-27005,18559,-27005,18559,-27005, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 18085,-27324,18085,-27324,18085,-27324,18085,-27324, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16876,-28087,16876,-28087,16876,-28087,16876,-28087, - 16630,-28234,16630,-28234,16630,-28234,16630,-28234, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16135,-28519,16135,-28519,16135,-28519,16135,-28519, - 15885,-28659,15885,-28659,15885,-28659,15885,-28659, - 15635,-28797,15635,-28797,15635,-28797,15635,-28797, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14620,-29325,14620,-29325,14620,-29325,14620,-29325, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 14106,-29576,14106,-29576,14106,-29576,14106,-29576, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13588,-29817,13588,-29817,13588,-29817,13588,-29817, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 13065,-30050,13065,-30050,13065,-30050,13065,-30050, - 12803,-30163,12803,-30163,12803,-30163,12803,-30163, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 12009,-30487,12009,-30487,12009,-30487,12009,-30487, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11475,-30692,11475,-30692,11475,-30692,11475,-30692, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10937,-30888,10937,-30888,10937,-30888,10937,-30888, - 10667,-30982,10667,-30982,10667,-30982,10667,-30982, - 10397,-31074,10397,-31074,10397,-31074,10397,-31074, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9580,-31336,9580,-31336,9580,-31336,9580,-31336, - 9306,-31418,9306,-31418,9306,-31418,9306,-31418, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 8756,-31576,8756,-31576,8756,-31576,8756,-31576, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8204,-31724,8204,-31724,8204,-31724,8204,-31724, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 7370,-31928,7370,-31928,7370,-31928,7370,-31928, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6532,-32110,6532,-32110,6532,-32110,6532,-32110, - 6252,-32165,6252,-32165,6252,-32165,6252,-32165, - 5971,-32219,5971,-32219,5971,-32219,5971,-32219, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5408,-32318,5408,-32318,5408,-32318,5408,-32318, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4843,-32408,4843,-32408,4843,-32408,4843,-32408, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3993,-32523,3993,-32523,3993,-32523,3993,-32523, - 3709,-32557,3709,-32557,3709,-32557,3709,-32557, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3140,-32617,3140,-32617,3140,-32617,3140,-32617, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 2000,-32706,2000,-32706,2000,-32706,2000,-32706, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 857,-32756,857,-32756,857,-32756,857,-32756, - 571,-32763,571,-32763,571,-32763,571,-32763, - 285,-32766,285,-32766,285,-32766,285,-32766 - }; - -static int16_t twb720[179*2*4] = {32762,-572,32762,-572,32762,-572,32762,-572, - 32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32522,-3994,32522,-3994,32522,-3994,32522,-3994, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32164,-6253,32164,-6253,32164,-6253,32164,-6253, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31927,-7371,31927,-7371,31927,-7371,31927,-7371, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31335,-9581,31335,-9581,31335,-9581,31335,-9581, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 30981,-10668,30981,-10668,30981,-10668,30981,-10668, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 30162,-12804,30162,-12804,30162,-12804,30162,-12804, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28658,-15886,28658,-15886,28658,-15886,28658,-15886, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28086,-16877,28086,-16877,28086,-16877,28086,-16877, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26168,-19720,26168,-19720,26168,-19720,26168,-19720, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24729,-21498,24729,-21498,24729,-21498,24729,-21498, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 23964,-22348,23964,-22348,23964,-22348,23964,-22348, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 22347,-23965,22347,-23965,22347,-23965,22347,-23965, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21497,-24730,21497,-24730,21497,-24730,21497,-24730, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19719,-26169,19719,-26169,19719,-26169,19719,-26169, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 16876,-28087,16876,-28087,16876,-28087,16876,-28087, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15885,-28659,15885,-28659,15885,-28659,15885,-28659, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12803,-30163,12803,-30163,12803,-30163,12803,-30163, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10667,-30982,10667,-30982,10667,-30982,10667,-30982, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9580,-31336,9580,-31336,9580,-31336,9580,-31336, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7370,-31928,7370,-31928,7370,-31928,7370,-31928, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6252,-32165,6252,-32165,6252,-32165,6252,-32165, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 3993,-32523,3993,-32523,3993,-32523,3993,-32523, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 571,-32763,571,-32763,571,-32763,571,-32763, - 0,-32767,0,-32767,0,-32767,0,-32767, - -572,-32763,-572,-32763,-572,-32763,-572,-32763, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3994,-32523,-3994,-32523,-3994,-32523,-3994,-32523, - -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6253,-32165,-6253,-32165,-6253,-32165,-6253,-32165, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7371,-31928,-7371,-31928,-7371,-31928,-7371,-31928, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498, - -9581,-31336,-9581,-31336,-9581,-31336,-9581,-31336, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10668,-30982,-10668,-30982,-10668,-30982,-10668,-30982, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12804,-30163,-12804,-30163,-12804,-30163,-12804,-30163, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932, - -15886,-28659,-15886,-28659,-15886,-28659,-15886,-28659, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16877,-28087,-16877,-28087,-16877,-28087,-16877,-28087, - -17364,-27788,-17364,-27788,-17364,-27788,-17364,-27788, - -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481, - -18324,-27166,-18324,-27166,-18324,-27166,-18324,-27166, - -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19720,-26169,-19720,-26169,-19720,-26169,-19720,-26169, - -20174,-25821,-20174,-25821,-20174,-25821,-20174,-25821, - -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21498,-24730,-21498,-24730,-21498,-24730,-21498,-24730, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22348,-23965,-22348,-23965,-22348,-23965,-22348,-23965, - -22762,-23571,-22762,-23571,-22762,-23571,-22762,-23571, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23571,-22762,-23571,-22762,-23571,-22762,-23571,-22762, - -23965,-22348,-23965,-22348,-23965,-22348,-23965,-22348, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -24730,-21498,-24730,-21498,-24730,-21498,-24730,-21498, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621, - -25821,-20174,-25821,-20174,-25821,-20174,-25821,-20174, - -26169,-19720,-26169,-19720,-26169,-19720,-26169,-19720, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795, - -27166,-18324,-27166,-18324,-27166,-18324,-27166,-18324, - -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847, - -27788,-17364,-27788,-17364,-27788,-17364,-27788,-17364, - -28087,-16877,-28087,-16877,-28087,-16877,-28087,-16877, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28659,-15886,-28659,-15886,-28659,-15886,-28659,-15886, - -28932,-15384,-28932,-15384,-28932,-15384,-28932,-15384, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29451,-14365,-29451,-14365,-29451,-14365,-29451,-14365, - -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30163,-12804,-30163,-12804,-30163,-12804,-30163,-12804, - -30382,-12275,-30382,-12275,-30382,-12275,-30382,-12275, - -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -30982,-10668,-30982,-10668,-30982,-10668,-30982,-10668, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31336,-9581,-31336,-9581,-31336,-9581,-31336,-9581, - -31498,-9032,-31498,-9032,-31498,-9032,-31498,-9032, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31794,-7928,-31794,-7928,-31794,-7928,-31794,-7928, - -31928,-7371,-31928,-7371,-31928,-7371,-31928,-7371, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32165,-6253,-32165,-6253,-32165,-6253,-32165,-6253, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32449,-4561,-32449,-4561,-32449,-4561,-32449,-4561, - -32523,-3994,-32523,-3994,-32523,-3994,-32523,-3994, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856, - -32688,-2286,-32688,-2286,-32688,-2286,-32688,-2286, - -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715, - -32748,-1144,-32748,-1144,-32748,-1144,-32748,-1144, - -32763,-572,-32763,-572,-32763,-572,-32763,-572 - }; - -static int16_t twc720[179*2*4] = {32755,-858,32755,-858,32755,-858,32755,-858, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32218,-5972,32218,-5972,32218,-5972,32218,-5972, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31417,-9307,31417,-9307,31417,-9307,31417,-9307, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 30887,-10938,30887,-10938,30887,-10938,30887,-10938, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29575,-14107,29575,-14107,29575,-14107,29575,-14107, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28796,-15636,28796,-15636,28796,-15636,28796,-15636, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27004,-18560,27004,-18560,27004,-18560,27004,-18560, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 23768,-22556,23768,-22556,23768,-22556,23768,-22556, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22555,-23769,22555,-23769,22555,-23769,22555,-23769, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18559,-27005,18559,-27005,18559,-27005,18559,-27005, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15635,-28797,15635,-28797,15635,-28797,15635,-28797, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14106,-29576,14106,-29576,14106,-29576,14106,-29576, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 10937,-30888,10937,-30888,10937,-30888,10937,-30888, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9306,-31418,9306,-31418,9306,-31418,9306,-31418, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 5971,-32219,5971,-32219,5971,-32219,5971,-32219, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 857,-32756,857,-32756,857,-32756,857,-32756, - 0,-32767,0,-32767,0,-32767,0,-32767, - -858,-32756,-858,-32756,-858,-32756,-858,-32756, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5972,-32219,-5972,-32219,-5972,-32219,-5972,-32219, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -9307,-31418,-9307,-31418,-9307,-31418,-9307,-31418, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10938,-30888,-10938,-30888,-10938,-30888,-10938,-30888, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -14107,-29576,-14107,-29576,-14107,-29576,-14107,-29576, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15636,-28797,-15636,-28797,-15636,-28797,-15636,-28797, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939, - -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481, - -18560,-27005,-18560,-27005,-18560,-27005,-18560,-27005, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465, - -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22556,-23769,-22556,-23769,-22556,-23769,-22556,-23769, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23769,-22556,-23769,-22556,-23769,-22556,-23769,-22556, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281, - -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -27005,-18560,-27005,-18560,-27005,-18560,-27005,-18560, - -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847, - -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28797,-15636,-28797,-15636,-28797,-15636,-28797,-15636, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29576,-14107,-29576,-14107,-29576,-14107,-29576,-14107, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743, - -30888,-10938,-30888,-10938,-30888,-10938,-30888,-10938, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31418,-9307,-31418,-9307,-31418,-9307,-31418,-9307, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32219,-5972,-32219,-5972,-32219,-5972,-32219,-5972, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571, - -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715, - -32756,-858,-32756,-858,-32756,-858,-32756,-858, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32756,857,-32756,857,-32756,857,-32756,857, - -32723,1714,-32723,1714,-32723,1714,-32723,1714, - -32666,2570,-32666,2570,-32666,2570,-32666,2570, - -32588,3425,-32588,3425,-32588,3425,-32588,3425, - -32487,4276,-32487,4276,-32487,4276,-32487,4276, - -32364,5125,-32364,5125,-32364,5125,-32364,5125, - -32219,5971,-32219,5971,-32219,5971,-32219,5971, - -32051,6812,-32051,6812,-32051,6812,-32051,6812, - -31862,7649,-31862,7649,-31862,7649,-31862,7649, - -31651,8480,-31651,8480,-31651,8480,-31651,8480, - -31418,9306,-31418,9306,-31418,9306,-31418,9306, - -31164,10125,-31164,10125,-31164,10125,-31164,10125, - -30888,10937,-30888,10937,-30888,10937,-30888,10937, - -30591,11742,-30591,11742,-30591,11742,-30591,11742, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -29935,13327,-29935,13327,-29935,13327,-29935,13327, - -29576,14106,-29576,14106,-29576,14106,-29576,14106, - -29196,14875,-29196,14875,-29196,14875,-29196,14875, - -28797,15635,-28797,15635,-28797,15635,-28797,15635, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -27939,17120,-27939,17120,-27939,17120,-27939,17120, - -27481,17846,-27481,17846,-27481,17846,-27481,17846, - -27005,18559,-27005,18559,-27005,18559,-27005,18559, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -25996,19947,-25996,19947,-25996,19947,-25996,19947, - -25465,20620,-25465,20620,-25465,20620,-25465,20620, - -24917,21280,-24917,21280,-24917,21280,-24917,21280, - -24351,21925,-24351,21925,-24351,21925,-24351,21925, - -23769,22555,-23769,22555,-23769,22555,-23769,22555, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22556,23768,-22556,23768,-22556,23768,-22556,23768, - -21926,24350,-21926,24350,-21926,24350,-21926,24350, - -21281,24916,-21281,24916,-21281,24916,-21281,24916, - -20621,25464,-20621,25464,-20621,25464,-20621,25464, - -19948,25995,-19948,25995,-19948,25995,-19948,25995, - -19260,26509,-19260,26509,-19260,26509,-19260,26509, - -18560,27004,-18560,27004,-18560,27004,-18560,27004, - -17847,27480,-17847,27480,-17847,27480,-17847,27480, - -17121,27938,-17121,27938,-17121,27938,-17121,27938, - -16384,28377,-16384,28377,-16384,28377,-16384,28377, - -15636,28796,-15636,28796,-15636,28796,-15636,28796, - -14876,29195,-14876,29195,-14876,29195,-14876,29195, - -14107,29575,-14107,29575,-14107,29575,-14107,29575, - -13328,29934,-13328,29934,-13328,29934,-13328,29934, - -12540,30272,-12540,30272,-12540,30272,-12540,30272, - -11743,30590,-11743,30590,-11743,30590,-11743,30590, - -10938,30887,-10938,30887,-10938,30887,-10938,30887, - -10126,31163,-10126,31163,-10126,31163,-10126,31163, - -9307,31417,-9307,31417,-9307,31417,-9307,31417, - -8481,31650,-8481,31650,-8481,31650,-8481,31650, - -7650,31861,-7650,31861,-7650,31861,-7650,31861, - -6813,32050,-6813,32050,-6813,32050,-6813,32050, - -5972,32218,-5972,32218,-5972,32218,-5972,32218, - -5126,32363,-5126,32363,-5126,32363,-5126,32363, - -4277,32486,-4277,32486,-4277,32486,-4277,32486, - -3426,32587,-3426,32587,-3426,32587,-3426,32587, - -2571,32665,-2571,32665,-2571,32665,-2571,32665, - -1715,32722,-1715,32722,-1715,32722,-1715,32722, - -858,32755,-858,32755,-858,32755,-858,32755 - }; void dft720(int16_t *x,int16_t *y,unsigned char scale_flag) // 180 x 4 { @@ -12943,606 +8057,68 @@ void dft720(int16_t *x,int16_t *y,unsigned char scale_flag) // 180 x 4 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:287)/864)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:287)/864)); -twa2 = zeros(1,2*287); -twb2 = zeros(1,2*287); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa864[287*2*4] = {"); -for i=1:2:(2*286) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb864[287*2*4] = {"); -for i=1:2:(2*286) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); -*/ -static int16_t twa864[287*2*4] = {32766,-239,32766,-239,32766,-239,32766,-239, - 32763,-477,32763,-477,32763,-477,32763,-477, - 32759,-715,32759,-715,32759,-715,32759,-715, - 32753,-954,32753,-954,32753,-954,32753,-954, - 32745,-1192,32745,-1192,32745,-1192,32745,-1192, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32724,-1668,32724,-1668,32724,-1668,32724,-1668, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32680,-2381,32680,-2381,32680,-2381,32680,-2381, - 32662,-2619,32662,-2619,32662,-2619,32662,-2619, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32620,-3094,32620,-3094,32620,-3094,32620,-3094, - 32597,-3331,32597,-3331,32597,-3331,32597,-3331, - 32572,-3568,32572,-3568,32572,-3568,32572,-3568, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32516,-4041,32516,-4041,32516,-4041,32516,-4041, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32454,-4514,32454,-4514,32454,-4514,32454,-4514, - 32421,-4749,32421,-4749,32421,-4749,32421,-4749, - 32385,-4985,32385,-4985,32385,-4985,32385,-4985, - 32348,-5221,32348,-5221,32348,-5221,32348,-5221, - 32309,-5456,32309,-5456,32309,-5456,32309,-5456, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32226,-5925,32226,-5925,32226,-5925,32226,-5925, - 32183,-6159,32183,-6159,32183,-6159,32183,-6159, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32090,-6627,32090,-6627,32090,-6627,32090,-6627, - 32041,-6860,32041,-6860,32041,-6860,32041,-6860, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31937,-7325,31937,-7325,31937,-7325,31937,-7325, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31827,-7789,31827,-7789,31827,-7789,31827,-7789, - 31770,-8020,31770,-8020,31770,-8020,31770,-8020, - 31711,-8251,31711,-8251,31711,-8251,31711,-8251, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31587,-8711,31587,-8711,31587,-8711,31587,-8711, - 31523,-8941,31523,-8941,31523,-8941,31523,-8941, - 31457,-9170,31457,-9170,31457,-9170,31457,-9170, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31321,-9626,31321,-9626,31321,-9626,31321,-9626, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31177,-10081,31177,-10081,31177,-10081,31177,-10081, - 31103,-10307,31103,-10307,31103,-10307,31103,-10307, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30950,-10758,30950,-10758,30950,-10758,30950,-10758, - 30871,-10983,30871,-10983,30871,-10983,30871,-10983, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30708,-11431,30708,-11431,30708,-11431,30708,-11431, - 30624,-11654,30624,-11654,30624,-11654,30624,-11654, - 30539,-11877,30539,-11877,30539,-11877,30539,-11877, - 30451,-12098,30451,-12098,30451,-12098,30451,-12098, - 30363,-12319,30363,-12319,30363,-12319,30363,-12319, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30180,-12760,30180,-12760,30180,-12760,30180,-12760, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29992,-13197,29992,-13197,29992,-13197,29992,-13197, - 29895,-13415,29895,-13415,29895,-13415,29895,-13415, - 29796,-13632,29796,-13632,29796,-13632,29796,-13632, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29595,-14064,29595,-14064,29595,-14064,29595,-14064, - 29492,-14279,29492,-14279,29492,-14279,29492,-14279, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29173,-14919,29173,-14919,29173,-14919,29173,-14919, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28953,-15342,28953,-15342,28953,-15342,28953,-15342, - 28841,-15552,28841,-15552,28841,-15552,28841,-15552, - 28727,-15761,28727,-15761,28727,-15761,28727,-15761, - 28612,-15970,28612,-15970,28612,-15970,28612,-15970, - 28495,-16177,28495,-16177,28495,-16177,28495,-16177, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28257,-16590,28257,-16590,28257,-16590,28257,-16590, - 28135,-16795,28135,-16795,28135,-16795,28135,-16795, - 28012,-16999,28012,-16999,28012,-16999,28012,-16999, - 27888,-17202,27888,-17202,27888,-17202,27888,-17202, - 27762,-17405,27762,-17405,27762,-17405,27762,-17405, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27506,-17807,27506,-17807,27506,-17807,27506,-17807, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 27111,-18403,27111,-18403,27111,-18403,27111,-18403, - 26977,-18599,26977,-18599,26977,-18599,26977,-18599, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26703,-18990,26703,-18990,26703,-18990,26703,-18990, - 26564,-19183,26564,-19183,26564,-19183,26564,-19183, - 26424,-19376,26424,-19376,26424,-19376,26424,-19376, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 26140,-19758,26140,-19758,26140,-19758,26140,-19758, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25850,-20136,25850,-20136,25850,-20136,25850,-20136, - 25702,-20324,25702,-20324,25702,-20324,25702,-20324, - 25554,-20510,25554,-20510,25554,-20510,25554,-20510, - 25404,-20695,25404,-20695,25404,-20695,25404,-20695, - 25253,-20880,25253,-20880,25253,-20880,25253,-20880, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24947,-21245,24947,-21245,24947,-21245,24947,-21245, - 24791,-21426,24791,-21426,24791,-21426,24791,-21426, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24477,-21784,24477,-21784,24477,-21784,24477,-21784, - 24318,-21961,24318,-21961,24318,-21961,24318,-21961, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23996,-22313,23996,-22313,23996,-22313,23996,-22313, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23669,-22659,23669,-22659,23669,-22659,23669,-22659, - 23504,-22831,23504,-22831,23504,-22831,23504,-22831, - 23337,-23001,23337,-23001,23337,-23001,23337,-23001, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 23000,-23338,23000,-23338,23000,-23338,23000,-23338, - 22830,-23505,22830,-23505,22830,-23505,22830,-23505, - 22658,-23670,22658,-23670,22658,-23670,22658,-23670, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22312,-23997,22312,-23997,22312,-23997,22312,-23997, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21960,-24319,21960,-24319,21960,-24319,21960,-24319, - 21783,-24478,21783,-24478,21783,-24478,21783,-24478, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21425,-24792,21425,-24792,21425,-24792,21425,-24792, - 21244,-24948,21244,-24948,21244,-24948,21244,-24948, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20879,-25254,20879,-25254,20879,-25254,20879,-25254, - 20694,-25405,20694,-25405,20694,-25405,20694,-25405, - 20509,-25555,20509,-25555,20509,-25555,20509,-25555, - 20323,-25703,20323,-25703,20323,-25703,20323,-25703, - 20135,-25851,20135,-25851,20135,-25851,20135,-25851, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19757,-26141,19757,-26141,19757,-26141,19757,-26141, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19375,-26425,19375,-26425,19375,-26425,19375,-26425, - 19182,-26565,19182,-26565,19182,-26565,19182,-26565, - 18989,-26704,18989,-26704,18989,-26704,18989,-26704, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18598,-26978,18598,-26978,18598,-26978,18598,-26978, - 18402,-27112,18402,-27112,18402,-27112,18402,-27112, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17806,-27507,17806,-27507,17806,-27507,17806,-27507, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 17404,-27763,17404,-27763,17404,-27763,17404,-27763, - 17201,-27889,17201,-27889,17201,-27889,17201,-27889, - 16998,-28013,16998,-28013,16998,-28013,16998,-28013, - 16794,-28136,16794,-28136,16794,-28136,16794,-28136, - 16589,-28258,16589,-28258,16589,-28258,16589,-28258, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16176,-28496,16176,-28496,16176,-28496,16176,-28496, - 15969,-28613,15969,-28613,15969,-28613,15969,-28613, - 15760,-28728,15760,-28728,15760,-28728,15760,-28728, - 15551,-28842,15551,-28842,15551,-28842,15551,-28842, - 15341,-28954,15341,-28954,15341,-28954,15341,-28954, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14918,-29174,14918,-29174,14918,-29174,14918,-29174, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14278,-29493,14278,-29493,14278,-29493,14278,-29493, - 14063,-29596,14063,-29596,14063,-29596,14063,-29596, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13631,-29797,13631,-29797,13631,-29797,13631,-29797, - 13414,-29896,13414,-29896,13414,-29896,13414,-29896, - 13196,-29993,13196,-29993,13196,-29993,13196,-29993, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12759,-30181,12759,-30181,12759,-30181,12759,-30181, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12318,-30364,12318,-30364,12318,-30364,12318,-30364, - 12097,-30452,12097,-30452,12097,-30452,12097,-30452, - 11876,-30540,11876,-30540,11876,-30540,11876,-30540, - 11653,-30625,11653,-30625,11653,-30625,11653,-30625, - 11430,-30709,11430,-30709,11430,-30709,11430,-30709, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10982,-30872,10982,-30872,10982,-30872,10982,-30872, - 10757,-30951,10757,-30951,10757,-30951,10757,-30951, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10306,-31104,10306,-31104,10306,-31104,10306,-31104, - 10080,-31178,10080,-31178,10080,-31178,10080,-31178, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9625,-31322,9625,-31322,9625,-31322,9625,-31322, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 9169,-31458,9169,-31458,9169,-31458,9169,-31458, - 8940,-31524,8940,-31524,8940,-31524,8940,-31524, - 8710,-31588,8710,-31588,8710,-31588,8710,-31588, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8250,-31712,8250,-31712,8250,-31712,8250,-31712, - 8019,-31771,8019,-31771,8019,-31771,8019,-31771, - 7788,-31828,7788,-31828,7788,-31828,7788,-31828, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7324,-31938,7324,-31938,7324,-31938,7324,-31938, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6859,-32042,6859,-32042,6859,-32042,6859,-32042, - 6626,-32091,6626,-32091,6626,-32091,6626,-32091, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 6158,-32184,6158,-32184,6158,-32184,6158,-32184, - 5924,-32227,5924,-32227,5924,-32227,5924,-32227, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5455,-32310,5455,-32310,5455,-32310,5455,-32310, - 5220,-32349,5220,-32349,5220,-32349,5220,-32349, - 4984,-32386,4984,-32386,4984,-32386,4984,-32386, - 4748,-32422,4748,-32422,4748,-32422,4748,-32422, - 4513,-32455,4513,-32455,4513,-32455,4513,-32455, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 4040,-32517,4040,-32517,4040,-32517,4040,-32517, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3567,-32573,3567,-32573,3567,-32573,3567,-32573, - 3330,-32598,3330,-32598,3330,-32598,3330,-32598, - 3093,-32621,3093,-32621,3093,-32621,3093,-32621, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2618,-32663,2618,-32663,2618,-32663,2618,-32663, - 2380,-32681,2380,-32681,2380,-32681,2380,-32681, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1667,-32725,1667,-32725,1667,-32725,1667,-32725, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 1191,-32746,1191,-32746,1191,-32746,1191,-32746, - 953,-32754,953,-32754,953,-32754,953,-32754, - 714,-32760,714,-32760,714,-32760,714,-32760, - 476,-32764,476,-32764,476,-32764,476,-32764, - 238,-32767,238,-32767,238,-32767,238,-32767, - 0,-32767,0,-32767,0,-32767,0,-32767, - -239,-32767,-239,-32767,-239,-32767,-239,-32767, - -477,-32764,-477,-32764,-477,-32764,-477,-32764, - -715,-32760,-715,-32760,-715,-32760,-715,-32760, - -954,-32754,-954,-32754,-954,-32754,-954,-32754, - -1192,-32746,-1192,-32746,-1192,-32746,-1192,-32746, - -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736, - -1668,-32725,-1668,-32725,-1668,-32725,-1668,-32725, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697, - -2381,-32681,-2381,-32681,-2381,-32681,-2381,-32681, - -2619,-32663,-2619,-32663,-2619,-32663,-2619,-32663, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3094,-32621,-3094,-32621,-3094,-32621,-3094,-32621, - -3331,-32598,-3331,-32598,-3331,-32598,-3331,-32598, - -3568,-32573,-3568,-32573,-3568,-32573,-3568,-32573, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4041,-32517,-4041,-32517,-4041,-32517,-4041,-32517, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -4514,-32455,-4514,-32455,-4514,-32455,-4514,-32455, - -4749,-32422,-4749,-32422,-4749,-32422,-4749,-32422, - -4985,-32386,-4985,-32386,-4985,-32386,-4985,-32386, - -5221,-32349,-5221,-32349,-5221,-32349,-5221,-32349, - -5456,-32310,-5456,-32310,-5456,-32310,-5456,-32310, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -5925,-32227,-5925,-32227,-5925,-32227,-5925,-32227, - -6159,-32184,-6159,-32184,-6159,-32184,-6159,-32184, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -6627,-32091,-6627,-32091,-6627,-32091,-6627,-32091, - -6860,-32042,-6860,-32042,-6860,-32042,-6860,-32042, - -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991, - -7325,-31938,-7325,-31938,-7325,-31938,-7325,-31938, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -7789,-31828,-7789,-31828,-7789,-31828,-7789,-31828, - -8020,-31771,-8020,-31771,-8020,-31771,-8020,-31771, - -8251,-31712,-8251,-31712,-8251,-31712,-8251,-31712, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8711,-31588,-8711,-31588,-8711,-31588,-8711,-31588, - -8941,-31524,-8941,-31524,-8941,-31524,-8941,-31524, - -9170,-31458,-9170,-31458,-9170,-31458,-9170,-31458, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9626,-31322,-9626,-31322,-9626,-31322,-9626,-31322, - -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251, - -10081,-31178,-10081,-31178,-10081,-31178,-10081,-31178, - -10307,-31104,-10307,-31104,-10307,-31104,-10307,-31104, - -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029, - -10758,-30951,-10758,-30951,-10758,-30951,-10758,-30951, - -10983,-30872,-10983,-30872,-10983,-30872,-10983,-30872, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11431,-30709,-11431,-30709,-11431,-30709,-11431,-30709, - -11654,-30625,-11654,-30625,-11654,-30625,-11654,-30625, - -11877,-30540,-11877,-30540,-11877,-30540,-11877,-30540, - -12098,-30452,-12098,-30452,-12098,-30452,-12098,-30452, - -12319,-30364,-12319,-30364,-12319,-30364,-12319,-30364, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -12760,-30181,-12760,-30181,-12760,-30181,-12760,-30181, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13197,-29993,-13197,-29993,-13197,-29993,-13197,-29993, - -13415,-29896,-13415,-29896,-13415,-29896,-13415,-29896, - -13632,-29797,-13632,-29797,-13632,-29797,-13632,-29797, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14064,-29596,-14064,-29596,-14064,-29596,-14064,-29596, - -14279,-29493,-14279,-29493,-14279,-29493,-14279,-29493, - -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -14919,-29174,-14919,-29174,-14919,-29174,-14919,-29174, - -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065, - -15342,-28954,-15342,-28954,-15342,-28954,-15342,-28954, - -15552,-28842,-15552,-28842,-15552,-28842,-15552,-28842, - -15761,-28728,-15761,-28728,-15761,-28728,-15761,-28728, - -15970,-28613,-15970,-28613,-15970,-28613,-15970,-28613, - -16177,-28496,-16177,-28496,-16177,-28496,-16177,-28496 - }; -static int16_t twb864[287*2*4] = {32763,-477,32763,-477,32763,-477,32763,-477, - 32753,-954,32753,-954,32753,-954,32753,-954, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32680,-2381,32680,-2381,32680,-2381,32680,-2381, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32597,-3331,32597,-3331,32597,-3331,32597,-3331, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32421,-4749,32421,-4749,32421,-4749,32421,-4749, - 32348,-5221,32348,-5221,32348,-5221,32348,-5221, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32183,-6159,32183,-6159,32183,-6159,32183,-6159, - 32090,-6627,32090,-6627,32090,-6627,32090,-6627, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31770,-8020,31770,-8020,31770,-8020,31770,-8020, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31523,-8941,31523,-8941,31523,-8941,31523,-8941, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31103,-10307,31103,-10307,31103,-10307,31103,-10307, - 30950,-10758,30950,-10758,30950,-10758,30950,-10758, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30624,-11654,30624,-11654,30624,-11654,30624,-11654, - 30451,-12098,30451,-12098,30451,-12098,30451,-12098, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29895,-13415,29895,-13415,29895,-13415,29895,-13415, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29492,-14279,29492,-14279,29492,-14279,29492,-14279, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28841,-15552,28841,-15552,28841,-15552,28841,-15552, - 28612,-15970,28612,-15970,28612,-15970,28612,-15970, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28135,-16795,28135,-16795,28135,-16795,28135,-16795, - 27888,-17202,27888,-17202,27888,-17202,27888,-17202, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27111,-18403,27111,-18403,27111,-18403,27111,-18403, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26564,-19183,26564,-19183,26564,-19183,26564,-19183, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25702,-20324,25702,-20324,25702,-20324,25702,-20324, - 25404,-20695,25404,-20695,25404,-20695,25404,-20695, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24791,-21426,24791,-21426,24791,-21426,24791,-21426, - 24477,-21784,24477,-21784,24477,-21784,24477,-21784, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23504,-22831,23504,-22831,23504,-22831,23504,-22831, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22830,-23505,22830,-23505,22830,-23505,22830,-23505, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21783,-24478,21783,-24478,21783,-24478,21783,-24478, - 21425,-24792,21425,-24792,21425,-24792,21425,-24792, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20694,-25405,20694,-25405,20694,-25405,20694,-25405, - 20323,-25703,20323,-25703,20323,-25703,20323,-25703, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19182,-26565,19182,-26565,19182,-26565,19182,-26565, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18402,-27112,18402,-27112,18402,-27112,18402,-27112, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 17201,-27889,17201,-27889,17201,-27889,17201,-27889, - 16794,-28136,16794,-28136,16794,-28136,16794,-28136, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15969,-28613,15969,-28613,15969,-28613,15969,-28613, - 15551,-28842,15551,-28842,15551,-28842,15551,-28842, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14278,-29493,14278,-29493,14278,-29493,14278,-29493, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13414,-29896,13414,-29896,13414,-29896,13414,-29896, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12097,-30452,12097,-30452,12097,-30452,12097,-30452, - 11653,-30625,11653,-30625,11653,-30625,11653,-30625, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10757,-30951,10757,-30951,10757,-30951,10757,-30951, - 10306,-31104,10306,-31104,10306,-31104,10306,-31104, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8940,-31524,8940,-31524,8940,-31524,8940,-31524, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8019,-31771,8019,-31771,8019,-31771,8019,-31771, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6626,-32091,6626,-32091,6626,-32091,6626,-32091, - 6158,-32184,6158,-32184,6158,-32184,6158,-32184, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5220,-32349,5220,-32349,5220,-32349,5220,-32349, - 4748,-32422,4748,-32422,4748,-32422,4748,-32422, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3330,-32598,3330,-32598,3330,-32598,3330,-32598, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2380,-32681,2380,-32681,2380,-32681,2380,-32681, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 953,-32754,953,-32754,953,-32754,953,-32754, - 476,-32764,476,-32764,476,-32764,476,-32764, - 0,-32767,0,-32767,0,-32767,0,-32767, - -477,-32764,-477,-32764,-477,-32764,-477,-32764, - -954,-32754,-954,-32754,-954,-32754,-954,-32754, - -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2381,-32681,-2381,-32681,-2381,-32681,-2381,-32681, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3331,-32598,-3331,-32598,-3331,-32598,-3331,-32598, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -4749,-32422,-4749,-32422,-4749,-32422,-4749,-32422, - -5221,-32349,-5221,-32349,-5221,-32349,-5221,-32349, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6159,-32184,-6159,-32184,-6159,-32184,-6159,-32184, - -6627,-32091,-6627,-32091,-6627,-32091,-6627,-32091, - -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -8020,-31771,-8020,-31771,-8020,-31771,-8020,-31771, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8941,-31524,-8941,-31524,-8941,-31524,-8941,-31524, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251, - -10307,-31104,-10307,-31104,-10307,-31104,-10307,-31104, - -10758,-30951,-10758,-30951,-10758,-30951,-10758,-30951, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11654,-30625,-11654,-30625,-11654,-30625,-11654,-30625, - -12098,-30452,-12098,-30452,-12098,-30452,-12098,-30452, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13415,-29896,-13415,-29896,-13415,-29896,-13415,-29896, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14279,-29493,-14279,-29493,-14279,-29493,-14279,-29493, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065, - -15552,-28842,-15552,-28842,-15552,-28842,-15552,-28842, - -15970,-28613,-15970,-28613,-15970,-28613,-15970,-28613, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16795,-28136,-16795,-28136,-16795,-28136,-16795,-28136, - -17202,-27889,-17202,-27889,-17202,-27889,-17202,-27889, - -17606,-27636,-17606,-27636,-17606,-27636,-17606,-27636, - -18006,-27377,-18006,-27377,-18006,-27377,-18006,-27377, - -18403,-27112,-18403,-27112,-18403,-27112,-18403,-27112, - -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842, - -19183,-26565,-19183,-26565,-19183,-26565,-19183,-26565, - -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20324,-25703,-20324,-25703,-20324,-25703,-20324,-25703, - -20695,-25405,-20695,-25405,-20695,-25405,-20695,-25405, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21426,-24792,-21426,-24792,-21426,-24792,-21426,-24792, - -21784,-24478,-21784,-24478,-21784,-24478,-21784,-24478, - -22138,-24159,-22138,-24159,-22138,-24159,-22138,-24159, - -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834, - -22831,-23505,-22831,-23505,-22831,-23505,-22831,-23505, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23505,-22831,-23505,-22831,-23505,-22831,-23505,-22831, - -23834,-22487,-23834,-22487,-23834,-22487,-23834,-22487, - -24159,-22138,-24159,-22138,-24159,-22138,-24159,-22138, - -24478,-21784,-24478,-21784,-24478,-21784,-24478,-21784, - -24792,-21426,-24792,-21426,-24792,-21426,-24792,-21426, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25405,-20695,-25405,-20695,-25405,-20695,-25405,-20695, - -25703,-20324,-25703,-20324,-25703,-20324,-25703,-20324, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26284,-19568,-26284,-19568,-26284,-19568,-26284,-19568, - -26565,-19183,-26565,-19183,-26565,-19183,-26565,-19183, - -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795, - -27112,-18403,-27112,-18403,-27112,-18403,-27112,-18403, - -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006, - -27636,-17606,-27636,-17606,-27636,-17606,-27636,-17606, - -27889,-17202,-27889,-17202,-27889,-17202,-27889,-17202, - -28136,-16795,-28136,-16795,-28136,-16795,-28136,-16795, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28613,-15970,-28613,-15970,-28613,-15970,-28613,-15970, - -28842,-15552,-28842,-15552,-28842,-15552,-28842,-15552, - -29065,-15131,-29065,-15131,-29065,-15131,-29065,-15131, - -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706, - -29493,-14279,-29493,-14279,-29493,-14279,-29493,-14279, - -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848, - -29896,-13415,-29896,-13415,-29896,-13415,-29896,-13415, - -30088,-12979,-30088,-12979,-30088,-12979,-30088,-12979, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30452,-12098,-30452,-12098,-30452,-12098,-30452,-12098, - -30625,-11654,-30625,-11654,-30625,-11654,-30625,-11654, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -30951,-10758,-30951,-10758,-30951,-10758,-30951,-10758, - -31104,-10307,-31104,-10307,-31104,-10307,-31104,-10307, - -31251,-9854,-31251,-9854,-31251,-9854,-31251,-9854, - -31391,-9398,-31391,-9398,-31391,-9398,-31391,-9398, - -31524,-8941,-31524,-8941,-31524,-8941,-31524,-8941, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31771,-8020,-31771,-8020,-31771,-8020,-31771,-8020, - -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557, - -31991,-7093,-31991,-7093,-31991,-7093,-31991,-7093, - -32091,-6627,-32091,-6627,-32091,-6627,-32091,-6627, - -32184,-6159,-32184,-6159,-32184,-6159,-32184,-6159, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32349,-5221,-32349,-5221,-32349,-5221,-32349,-5221, - -32422,-4749,-32422,-4749,-32422,-4749,-32422,-4749, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805, - -32598,-3331,-32598,-3331,-32598,-3331,-32598,-3331, - -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856, - -32681,-2381,-32681,-2381,-32681,-2381,-32681,-2381, - -32712,-1906,-32712,-1906,-32712,-1906,-32712,-1906, - -32736,-1430,-32736,-1430,-32736,-1430,-32736,-1430, - -32754,-954,-32754,-954,-32754,-954,-32754,-954, - -32764,-477,-32764,-477,-32764,-477,-32764,-477, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32764,476,-32764,476,-32764,476,-32764,476, - -32754,953,-32754,953,-32754,953,-32754,953, - -32736,1429,-32736,1429,-32736,1429,-32736,1429, - -32712,1905,-32712,1905,-32712,1905,-32712,1905, - -32681,2380,-32681,2380,-32681,2380,-32681,2380, - -32643,2855,-32643,2855,-32643,2855,-32643,2855, - -32598,3330,-32598,3330,-32598,3330,-32598,3330, - -32546,3804,-32546,3804,-32546,3804,-32546,3804, - -32487,4276,-32487,4276,-32487,4276,-32487,4276, - -32422,4748,-32422,4748,-32422,4748,-32422,4748, - -32349,5220,-32349,5220,-32349,5220,-32349,5220, - -32270,5689,-32270,5689,-32270,5689,-32270,5689, - -32184,6158,-32184,6158,-32184,6158,-32184,6158, - -32091,6626,-32091,6626,-32091,6626,-32091,6626, - -31991,7092,-31991,7092,-31991,7092,-31991,7092, - -31884,7556,-31884,7556,-31884,7556,-31884,7556, - -31771,8019,-31771,8019,-31771,8019,-31771,8019, - -31651,8480,-31651,8480,-31651,8480,-31651,8480, - -31524,8940,-31524,8940,-31524,8940,-31524,8940, - -31391,9397,-31391,9397,-31391,9397,-31391,9397, - -31251,9853,-31251,9853,-31251,9853,-31251,9853, - -31104,10306,-31104,10306,-31104,10306,-31104,10306, - -30951,10757,-30951,10757,-30951,10757,-30951,10757, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30625,11653,-30625,11653,-30625,11653,-30625,11653, - -30452,12097,-30452,12097,-30452,12097,-30452,12097, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -30088,12978,-30088,12978,-30088,12978,-30088,12978, - -29896,13414,-29896,13414,-29896,13414,-29896,13414, - -29697,13847,-29697,13847,-29697,13847,-29697,13847, - -29493,14278,-29493,14278,-29493,14278,-29493,14278, - -29282,14705,-29282,14705,-29282,14705,-29282,14705, - -29065,15130,-29065,15130,-29065,15130,-29065,15130, - -28842,15551,-28842,15551,-28842,15551,-28842,15551, - -28613,15969,-28613,15969,-28613,15969,-28613,15969, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -28136,16794,-28136,16794,-28136,16794,-28136,16794, - -27889,17201,-27889,17201,-27889,17201,-27889,17201, - -27636,17605,-27636,17605,-27636,17605,-27636,17605, - -27377,18005,-27377,18005,-27377,18005,-27377,18005, - -27112,18402,-27112,18402,-27112,18402,-27112,18402, - -26842,18794,-26842,18794,-26842,18794,-26842,18794, - -26565,19182,-26565,19182,-26565,19182,-26565,19182, - -26284,19567,-26284,19567,-26284,19567,-26284,19567, - -25996,19947,-25996,19947,-25996,19947,-25996,19947, - -25703,20323,-25703,20323,-25703,20323,-25703,20323, - -25405,20694,-25405,20694,-25405,20694,-25405,20694, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24792,21425,-24792,21425,-24792,21425,-24792,21425, - -24478,21783,-24478,21783,-24478,21783,-24478,21783, - -24159,22137,-24159,22137,-24159,22137,-24159,22137, - -23834,22486,-23834,22486,-23834,22486,-23834,22486, - -23505,22830,-23505,22830,-23505,22830,-23505,22830, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22831,23504,-22831,23504,-22831,23504,-22831,23504, - -22487,23833,-22487,23833,-22487,23833,-22487,23833, - -22138,24158,-22138,24158,-22138,24158,-22138,24158, - -21784,24477,-21784,24477,-21784,24477,-21784,24477, - -21426,24791,-21426,24791,-21426,24791,-21426,24791, - -21063,25100,-21063,25100,-21063,25100,-21063,25100, - -20695,25404,-20695,25404,-20695,25404,-20695,25404, - -20324,25702,-20324,25702,-20324,25702,-20324,25702, - -19948,25995,-19948,25995,-19948,25995,-19948,25995, - -19568,26283,-19568,26283,-19568,26283,-19568,26283, - -19183,26564,-19183,26564,-19183,26564,-19183,26564, - -18795,26841,-18795,26841,-18795,26841,-18795,26841, - -18403,27111,-18403,27111,-18403,27111,-18403,27111, - -18006,27376,-18006,27376,-18006,27376,-18006,27376, - -17606,27635,-17606,27635,-17606,27635,-17606,27635, - -17202,27888,-17202,27888,-17202,27888,-17202,27888, - -16795,28135,-16795,28135,-16795,28135,-16795,28135 - }; +static int16_t twa768[191*2*4]; +static int16_t twb768[191*2*4]; +static int16_t twc768[191*2*4]; + +void dft768(int16_t *x,int16_t *y,unsigned char scale_flag) { // 192x 4; + + int i,j; + simd_q15_t *x128=(simd_q15_t *)x; + simd_q15_t *y128=(simd_q15_t *)y; + simd_q15_t *twa128=(simd_q15_t *)&twa768[0]; + simd_q15_t *twb128=(simd_q15_t *)&twb768[0]; + simd_q15_t *twc128=(simd_q15_t *)&twc768[0]; + simd_q15_t x2128[768];// = (simd_q15_t *)&x2128array[0]; + simd_q15_t ytmp128[768];//=&ytmp128array2[0]; + + + + for (i=0,j=0; i<192; i++,j+=4) { + x2128[i] = x128[j]; + x2128[i+192] = x128[j+1]; + x2128[i+384] = x128[j+2]; + x2128[i+576] = x128[j+3]; + } + + dft192((int16_t *)x2128,(int16_t *)ytmp128,1); + dft192((int16_t *)(x2128+192),(int16_t *)(ytmp128+192),1); + dft192((int16_t *)(x2128+384),(int16_t *)(ytmp128+384),1); + dft192((int16_t *)(x2128+576),(int16_t *)(ytmp128+576),1); + + bfly4_tw1(ytmp128,ytmp128+192,ytmp128+384,ytmp128+576,y128,y128+192,y128+384,y128+576); + + for (i=1,j=0; i<192; i++,j++) { + bfly4(ytmp128+i, + ytmp128+192+i, + ytmp128+384+i, + ytmp128+576+i, + y128+i, + y128+192+i, + y128+384+i, + y128+576+i, + twa128+j, + twb128+j, + twc128+j); + } + + if (scale_flag==1) { + norm128 = set1_int16(16384);//dft_norm_table[13]); + + for (i=0; i<768; i++) { + y128[i] = mulhi_int16(y128[i],norm128); + } + } + + _mm_empty(); + _m_empty(); + + +} + + +static int16_t twa864[287*2*4]; +static int16_t twb864[287*2*4]; void dft864(int16_t *x,int16_t *y,unsigned char scale_flag) // 288 x 3 { @@ -13592,630 +8168,8 @@ void dft864(int16_t *x,int16_t *y,unsigned char scale_flag) // 288 x 3 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:299)/900)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:299)/900)); -twa2 = zeros(1,2*299); -twb2 = zeros(1,2*299); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa900[299*2*4] = {"); -for i=1:2:(2*298) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb900[299*2*4] = {"); -for i=1:2:(2*298) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); -*/ -static int16_t twa900[299*2*4] = {32766,-229,32766,-229,32766,-229,32766,-229, - 32763,-458,32763,-458,32763,-458,32763,-458, - 32759,-687,32759,-687,32759,-687,32759,-687, - 32754,-915,32754,-915,32754,-915,32754,-915, - 32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32738,-1373,32738,-1373,32738,-1373,32738,-1373, - 32727,-1601,32727,-1601,32727,-1601,32727,-1601, - 32715,-1830,32715,-1830,32715,-1830,32715,-1830, - 32702,-2058,32702,-2058,32702,-2058,32702,-2058, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32670,-2514,32670,-2514,32670,-2514,32670,-2514, - 32652,-2742,32652,-2742,32652,-2742,32652,-2742, - 32632,-2970,32632,-2970,32632,-2970,32632,-2970, - 32610,-3198,32610,-3198,32610,-3198,32610,-3198, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32562,-3653,32562,-3653,32562,-3653,32562,-3653, - 32536,-3880,32536,-3880,32536,-3880,32536,-3880, - 32508,-4107,32508,-4107,32508,-4107,32508,-4107, - 32479,-4334,32479,-4334,32479,-4334,32479,-4334, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32415,-4787,32415,-4787,32415,-4787,32415,-4787, - 32381,-5013,32381,-5013,32381,-5013,32381,-5013, - 32345,-5239,32345,-5239,32345,-5239,32345,-5239, - 32308,-5465,32308,-5465,32308,-5465,32308,-5465, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32228,-5916,32228,-5916,32228,-5916,32228,-5916, - 32186,-6140,32186,-6140,32186,-6140,32186,-6140, - 32142,-6365,32142,-6365,32142,-6365,32142,-6365, - 32097,-6589,32097,-6589,32097,-6589,32097,-6589, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 32002,-7037,32002,-7037,32002,-7037,32002,-7037, - 31952,-7260,31952,-7260,31952,-7260,31952,-7260, - 31901,-7483,31901,-7483,31901,-7483,31901,-7483, - 31848,-7705,31848,-7705,31848,-7705,31848,-7705, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31737,-8149,31737,-8149,31737,-8149,31737,-8149, - 31679,-8371,31679,-8371,31679,-8371,31679,-8371, - 31620,-8592,31620,-8592,31620,-8592,31620,-8592, - 31559,-8812,31559,-8812,31559,-8812,31559,-8812, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31433,-9252,31433,-9252,31433,-9252,31433,-9252, - 31368,-9471,31368,-9471,31368,-9471,31368,-9471, - 31301,-9690,31301,-9690,31301,-9690,31301,-9690, - 31233,-9908,31233,-9908,31233,-9908,31233,-9908, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31091,-10343,31091,-10343,31091,-10343,31091,-10343, - 31018,-10560,31018,-10560,31018,-10560,31018,-10560, - 30944,-10776,30944,-10776,30944,-10776,30944,-10776, - 30868,-10992,30868,-10992,30868,-10992,30868,-10992, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30711,-11422,30711,-11422,30711,-11422,30711,-11422, - 30631,-11636,30631,-11636,30631,-11636,30631,-11636, - 30549,-11850,30549,-11850,30549,-11850,30549,-11850, - 30465,-12063,30465,-12063,30465,-12063,30465,-12063, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 30294,-12487,30294,-12487,30294,-12487,30294,-12487, - 30206,-12698,30206,-12698,30206,-12698,30206,-12698, - 30117,-12909,30117,-12909,30117,-12909,30117,-12909, - 30026,-13119,30026,-13119,30026,-13119,30026,-13119, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29840,-13537,29840,-13537,29840,-13537,29840,-13537, - 29745,-13745,29745,-13745,29745,-13745,29745,-13745, - 29648,-13952,29648,-13952,29648,-13952,29648,-13952, - 29550,-14159,29550,-14159,29550,-14159,29550,-14159, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 29349,-14570,29349,-14570,29349,-14570,29349,-14570, - 29247,-14774,29247,-14774,29247,-14774,29247,-14774, - 29143,-14978,29143,-14978,29143,-14978,29143,-14978, - 29038,-15181,29038,-15181,29038,-15181,29038,-15181, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28823,-15585,28823,-15585,28823,-15585,28823,-15585, - 28713,-15786,28713,-15786,28713,-15786,28713,-15786, - 28603,-15986,28603,-15986,28603,-15986,28603,-15986, - 28490,-16185,28490,-16185,28490,-16185,28490,-16185, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28261,-16582,28261,-16582,28261,-16582,28261,-16582, - 28145,-16779,28145,-16779,28145,-16779,28145,-16779, - 28027,-16975,28027,-16975,28027,-16975,28027,-16975, - 27908,-17170,27908,-17170,27908,-17170,27908,-17170, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27666,-17558,27666,-17558,27666,-17558,27666,-17558, - 27542,-17751,27542,-17751,27542,-17751,27542,-17751, - 27418,-17943,27418,-17943,27418,-17943,27418,-17943, - 27292,-18133,27292,-18133,27292,-18133,27292,-18133, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 27036,-18513,27036,-18513,27036,-18513,27036,-18513, - 26906,-18701,26906,-18701,26906,-18701,26906,-18701, - 26775,-18888,26775,-18888,26775,-18888,26775,-18888, - 26642,-19075,26642,-19075,26642,-19075,26642,-19075, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26373,-19445,26373,-19445,26373,-19445,26373,-19445, - 26237,-19629,26237,-19629,26237,-19629,26237,-19629, - 26099,-19811,26099,-19811,26099,-19811,26099,-19811, - 25960,-19993,25960,-19993,25960,-19993,25960,-19993, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25679,-20354,25679,-20354,25679,-20354,25679,-20354, - 25536,-20532,25536,-20532,25536,-20532,25536,-20532, - 25392,-20710,25392,-20710,25392,-20710,25392,-20710, - 25247,-20887,25247,-20887,25247,-20887,25247,-20887, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24953,-21237,24953,-21237,24953,-21237,24953,-21237, - 24804,-21411,24804,-21411,24804,-21411,24804,-21411, - 24654,-21584,24654,-21584,24654,-21584,24654,-21584, - 24503,-21755,24503,-21755,24503,-21755,24503,-21755, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24196,-22095,24196,-22095,24196,-22095,24196,-22095, - 24042,-22264,24042,-22264,24042,-22264,24042,-22264, - 23886,-22431,23886,-22431,23886,-22431,23886,-22431, - 23728,-22597,23728,-22597,23728,-22597,23728,-22597, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23411,-22926,23411,-22926,23411,-22926,23411,-22926, - 23250,-23089,23250,-23089,23250,-23089,23250,-23089, - 23088,-23251,23088,-23251,23088,-23251,23088,-23251, - 22925,-23412,22925,-23412,22925,-23412,22925,-23412, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 22596,-23729,22596,-23729,22596,-23729,22596,-23729, - 22430,-23887,22430,-23887,22430,-23887,22430,-23887, - 22263,-24043,22263,-24043,22263,-24043,22263,-24043, - 22094,-24197,22094,-24197,22094,-24197,22094,-24197, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21754,-24504,21754,-24504,21754,-24504,21754,-24504, - 21583,-24655,21583,-24655,21583,-24655,21583,-24655, - 21410,-24805,21410,-24805,21410,-24805,21410,-24805, - 21236,-24954,21236,-24954,21236,-24954,21236,-24954, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20886,-25248,20886,-25248,20886,-25248,20886,-25248, - 20709,-25393,20709,-25393,20709,-25393,20709,-25393, - 20531,-25537,20531,-25537,20531,-25537,20531,-25537, - 20353,-25680,20353,-25680,20353,-25680,20353,-25680, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19992,-25961,19992,-25961,19992,-25961,19992,-25961, - 19810,-26100,19810,-26100,19810,-26100,19810,-26100, - 19628,-26238,19628,-26238,19628,-26238,19628,-26238, - 19444,-26374,19444,-26374,19444,-26374,19444,-26374, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 19074,-26643,19074,-26643,19074,-26643,19074,-26643, - 18887,-26776,18887,-26776,18887,-26776,18887,-26776, - 18700,-26907,18700,-26907,18700,-26907,18700,-26907, - 18512,-27037,18512,-27037,18512,-27037,18512,-27037, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 18132,-27293,18132,-27293,18132,-27293,18132,-27293, - 17942,-27419,17942,-27419,17942,-27419,17942,-27419, - 17750,-27543,17750,-27543,17750,-27543,17750,-27543, - 17557,-27667,17557,-27667,17557,-27667,17557,-27667, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 17169,-27909,17169,-27909,17169,-27909,17169,-27909, - 16974,-28028,16974,-28028,16974,-28028,16974,-28028, - 16778,-28146,16778,-28146,16778,-28146,16778,-28146, - 16581,-28262,16581,-28262,16581,-28262,16581,-28262, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16184,-28491,16184,-28491,16184,-28491,16184,-28491, - 15985,-28604,15985,-28604,15985,-28604,15985,-28604, - 15785,-28714,15785,-28714,15785,-28714,15785,-28714, - 15584,-28824,15584,-28824,15584,-28824,15584,-28824, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 15180,-29039,15180,-29039,15180,-29039,15180,-29039, - 14977,-29144,14977,-29144,14977,-29144,14977,-29144, - 14773,-29248,14773,-29248,14773,-29248,14773,-29248, - 14569,-29350,14569,-29350,14569,-29350,14569,-29350, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 14158,-29551,14158,-29551,14158,-29551,14158,-29551, - 13951,-29649,13951,-29649,13951,-29649,13951,-29649, - 13744,-29746,13744,-29746,13744,-29746,13744,-29746, - 13536,-29841,13536,-29841,13536,-29841,13536,-29841, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 13118,-30027,13118,-30027,13118,-30027,13118,-30027, - 12908,-30118,12908,-30118,12908,-30118,12908,-30118, - 12697,-30207,12697,-30207,12697,-30207,12697,-30207, - 12486,-30295,12486,-30295,12486,-30295,12486,-30295, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 12062,-30466,12062,-30466,12062,-30466,12062,-30466, - 11849,-30550,11849,-30550,11849,-30550,11849,-30550, - 11635,-30632,11635,-30632,11635,-30632,11635,-30632, - 11421,-30712,11421,-30712,11421,-30712,11421,-30712, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10991,-30869,10991,-30869,10991,-30869,10991,-30869, - 10775,-30945,10775,-30945,10775,-30945,10775,-30945, - 10559,-31019,10559,-31019,10559,-31019,10559,-31019, - 10342,-31092,10342,-31092,10342,-31092,10342,-31092, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9907,-31234,9907,-31234,9907,-31234,9907,-31234, - 9689,-31302,9689,-31302,9689,-31302,9689,-31302, - 9470,-31369,9470,-31369,9470,-31369,9470,-31369, - 9251,-31434,9251,-31434,9251,-31434,9251,-31434, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 8811,-31560,8811,-31560,8811,-31560,8811,-31560, - 8591,-31621,8591,-31621,8591,-31621,8591,-31621, - 8370,-31680,8370,-31680,8370,-31680,8370,-31680, - 8148,-31738,8148,-31738,8148,-31738,8148,-31738, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7704,-31849,7704,-31849,7704,-31849,7704,-31849, - 7482,-31902,7482,-31902,7482,-31902,7482,-31902, - 7259,-31953,7259,-31953,7259,-31953,7259,-31953, - 7036,-32003,7036,-32003,7036,-32003,7036,-32003, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6588,-32098,6588,-32098,6588,-32098,6588,-32098, - 6364,-32143,6364,-32143,6364,-32143,6364,-32143, - 6139,-32187,6139,-32187,6139,-32187,6139,-32187, - 5915,-32229,5915,-32229,5915,-32229,5915,-32229, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5464,-32309,5464,-32309,5464,-32309,5464,-32309, - 5238,-32346,5238,-32346,5238,-32346,5238,-32346, - 5012,-32382,5012,-32382,5012,-32382,5012,-32382, - 4786,-32416,4786,-32416,4786,-32416,4786,-32416, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 4333,-32480,4333,-32480,4333,-32480,4333,-32480, - 4106,-32509,4106,-32509,4106,-32509,4106,-32509, - 3879,-32537,3879,-32537,3879,-32537,3879,-32537, - 3652,-32563,3652,-32563,3652,-32563,3652,-32563, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3197,-32611,3197,-32611,3197,-32611,3197,-32611, - 2969,-32633,2969,-32633,2969,-32633,2969,-32633, - 2741,-32653,2741,-32653,2741,-32653,2741,-32653, - 2513,-32671,2513,-32671,2513,-32671,2513,-32671, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 2057,-32703,2057,-32703,2057,-32703,2057,-32703, - 1829,-32716,1829,-32716,1829,-32716,1829,-32716, - 1600,-32728,1600,-32728,1600,-32728,1600,-32728, - 1372,-32739,1372,-32739,1372,-32739,1372,-32739, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 914,-32755,914,-32755,914,-32755,914,-32755, - 686,-32760,686,-32760,686,-32760,686,-32760, - 457,-32764,457,-32764,457,-32764,457,-32764, - 228,-32767,228,-32767,228,-32767,228,-32767, - 0,-32767,0,-32767,0,-32767,0,-32767, - -229,-32767,-229,-32767,-229,-32767,-229,-32767, - -458,-32764,-458,-32764,-458,-32764,-458,-32764, - -687,-32760,-687,-32760,-687,-32760,-687,-32760, - -915,-32755,-915,-32755,-915,-32755,-915,-32755, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1373,-32739,-1373,-32739,-1373,-32739,-1373,-32739, - -1601,-32728,-1601,-32728,-1601,-32728,-1601,-32728, - -1830,-32716,-1830,-32716,-1830,-32716,-1830,-32716, - -2058,-32703,-2058,-32703,-2058,-32703,-2058,-32703, - -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688, - -2514,-32671,-2514,-32671,-2514,-32671,-2514,-32671, - -2742,-32653,-2742,-32653,-2742,-32653,-2742,-32653, - -2970,-32633,-2970,-32633,-2970,-32633,-2970,-32633, - -3198,-32611,-3198,-32611,-3198,-32611,-3198,-32611, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3653,-32563,-3653,-32563,-3653,-32563,-3653,-32563, - -3880,-32537,-3880,-32537,-3880,-32537,-3880,-32537, - -4107,-32509,-4107,-32509,-4107,-32509,-4107,-32509, - -4334,-32480,-4334,-32480,-4334,-32480,-4334,-32480, - -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449, - -4787,-32416,-4787,-32416,-4787,-32416,-4787,-32416, - -5013,-32382,-5013,-32382,-5013,-32382,-5013,-32382, - -5239,-32346,-5239,-32346,-5239,-32346,-5239,-32346, - -5465,-32309,-5465,-32309,-5465,-32309,-5465,-32309, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -5916,-32229,-5916,-32229,-5916,-32229,-5916,-32229, - -6140,-32187,-6140,-32187,-6140,-32187,-6140,-32187, - -6365,-32143,-6365,-32143,-6365,-32143,-6365,-32143, - -6589,-32098,-6589,-32098,-6589,-32098,-6589,-32098, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7037,-32003,-7037,-32003,-7037,-32003,-7037,-32003, - -7260,-31953,-7260,-31953,-7260,-31953,-7260,-31953, - -7483,-31902,-7483,-31902,-7483,-31902,-7483,-31902, - -7705,-31849,-7705,-31849,-7705,-31849,-7705,-31849, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8149,-31738,-8149,-31738,-8149,-31738,-8149,-31738, - -8371,-31680,-8371,-31680,-8371,-31680,-8371,-31680, - -8592,-31621,-8592,-31621,-8592,-31621,-8592,-31621, - -8812,-31560,-8812,-31560,-8812,-31560,-8812,-31560, - -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498, - -9252,-31434,-9252,-31434,-9252,-31434,-9252,-31434, - -9471,-31369,-9471,-31369,-9471,-31369,-9471,-31369, - -9690,-31302,-9690,-31302,-9690,-31302,-9690,-31302, - -9908,-31234,-9908,-31234,-9908,-31234,-9908,-31234, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10343,-31092,-10343,-31092,-10343,-31092,-10343,-31092, - -10560,-31019,-10560,-31019,-10560,-31019,-10560,-31019, - -10776,-30945,-10776,-30945,-10776,-30945,-10776,-30945, - -10992,-30869,-10992,-30869,-10992,-30869,-10992,-30869, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11422,-30712,-11422,-30712,-11422,-30712,-11422,-30712, - -11636,-30632,-11636,-30632,-11636,-30632,-11636,-30632, - -11850,-30550,-11850,-30550,-11850,-30550,-11850,-30550, - -12063,-30466,-12063,-30466,-12063,-30466,-12063,-30466, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12487,-30295,-12487,-30295,-12487,-30295,-12487,-30295, - -12698,-30207,-12698,-30207,-12698,-30207,-12698,-30207, - -12909,-30118,-12909,-30118,-12909,-30118,-12909,-30118, - -13119,-30027,-13119,-30027,-13119,-30027,-13119,-30027, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13537,-29841,-13537,-29841,-13537,-29841,-13537,-29841, - -13745,-29746,-13745,-29746,-13745,-29746,-13745,-29746, - -13952,-29649,-13952,-29649,-13952,-29649,-13952,-29649, - -14159,-29551,-14159,-29551,-14159,-29551,-14159,-29551, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -14570,-29350,-14570,-29350,-14570,-29350,-14570,-29350, - -14774,-29248,-14774,-29248,-14774,-29248,-14774,-29248, - -14978,-29144,-14978,-29144,-14978,-29144,-14978,-29144, - -15181,-29039,-15181,-29039,-15181,-29039,-15181,-29039, - -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932, - -15585,-28824,-15585,-28824,-15585,-28824,-15585,-28824, - -15786,-28714,-15786,-28714,-15786,-28714,-15786,-28714, - -15986,-28604,-15986,-28604,-15986,-28604,-15986,-28604, - -16185,-28491,-16185,-28491,-16185,-28491,-16185,-28491 - }; -static int16_t twb900[299*2*4] = {32763,-458,32763,-458,32763,-458,32763,-458, - 32754,-915,32754,-915,32754,-915,32754,-915, - 32738,-1373,32738,-1373,32738,-1373,32738,-1373, - 32715,-1830,32715,-1830,32715,-1830,32715,-1830, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32652,-2742,32652,-2742,32652,-2742,32652,-2742, - 32610,-3198,32610,-3198,32610,-3198,32610,-3198, - 32562,-3653,32562,-3653,32562,-3653,32562,-3653, - 32508,-4107,32508,-4107,32508,-4107,32508,-4107, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32381,-5013,32381,-5013,32381,-5013,32381,-5013, - 32308,-5465,32308,-5465,32308,-5465,32308,-5465, - 32228,-5916,32228,-5916,32228,-5916,32228,-5916, - 32142,-6365,32142,-6365,32142,-6365,32142,-6365, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31952,-7260,31952,-7260,31952,-7260,31952,-7260, - 31848,-7705,31848,-7705,31848,-7705,31848,-7705, - 31737,-8149,31737,-8149,31737,-8149,31737,-8149, - 31620,-8592,31620,-8592,31620,-8592,31620,-8592, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31368,-9471,31368,-9471,31368,-9471,31368,-9471, - 31233,-9908,31233,-9908,31233,-9908,31233,-9908, - 31091,-10343,31091,-10343,31091,-10343,31091,-10343, - 30944,-10776,30944,-10776,30944,-10776,30944,-10776, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30631,-11636,30631,-11636,30631,-11636,30631,-11636, - 30465,-12063,30465,-12063,30465,-12063,30465,-12063, - 30294,-12487,30294,-12487,30294,-12487,30294,-12487, - 30117,-12909,30117,-12909,30117,-12909,30117,-12909, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29745,-13745,29745,-13745,29745,-13745,29745,-13745, - 29550,-14159,29550,-14159,29550,-14159,29550,-14159, - 29349,-14570,29349,-14570,29349,-14570,29349,-14570, - 29143,-14978,29143,-14978,29143,-14978,29143,-14978, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28713,-15786,28713,-15786,28713,-15786,28713,-15786, - 28490,-16185,28490,-16185,28490,-16185,28490,-16185, - 28261,-16582,28261,-16582,28261,-16582,28261,-16582, - 28027,-16975,28027,-16975,28027,-16975,28027,-16975, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27542,-17751,27542,-17751,27542,-17751,27542,-17751, - 27292,-18133,27292,-18133,27292,-18133,27292,-18133, - 27036,-18513,27036,-18513,27036,-18513,27036,-18513, - 26775,-18888,26775,-18888,26775,-18888,26775,-18888, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26237,-19629,26237,-19629,26237,-19629,26237,-19629, - 25960,-19993,25960,-19993,25960,-19993,25960,-19993, - 25679,-20354,25679,-20354,25679,-20354,25679,-20354, - 25392,-20710,25392,-20710,25392,-20710,25392,-20710, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24804,-21411,24804,-21411,24804,-21411,24804,-21411, - 24503,-21755,24503,-21755,24503,-21755,24503,-21755, - 24196,-22095,24196,-22095,24196,-22095,24196,-22095, - 23886,-22431,23886,-22431,23886,-22431,23886,-22431, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23250,-23089,23250,-23089,23250,-23089,23250,-23089, - 22925,-23412,22925,-23412,22925,-23412,22925,-23412, - 22596,-23729,22596,-23729,22596,-23729,22596,-23729, - 22263,-24043,22263,-24043,22263,-24043,22263,-24043, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21583,-24655,21583,-24655,21583,-24655,21583,-24655, - 21236,-24954,21236,-24954,21236,-24954,21236,-24954, - 20886,-25248,20886,-25248,20886,-25248,20886,-25248, - 20531,-25537,20531,-25537,20531,-25537,20531,-25537, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19810,-26100,19810,-26100,19810,-26100,19810,-26100, - 19444,-26374,19444,-26374,19444,-26374,19444,-26374, - 19074,-26643,19074,-26643,19074,-26643,19074,-26643, - 18700,-26907,18700,-26907,18700,-26907,18700,-26907, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 17942,-27419,17942,-27419,17942,-27419,17942,-27419, - 17557,-27667,17557,-27667,17557,-27667,17557,-27667, - 17169,-27909,17169,-27909,17169,-27909,17169,-27909, - 16778,-28146,16778,-28146,16778,-28146,16778,-28146, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15985,-28604,15985,-28604,15985,-28604,15985,-28604, - 15584,-28824,15584,-28824,15584,-28824,15584,-28824, - 15180,-29039,15180,-29039,15180,-29039,15180,-29039, - 14773,-29248,14773,-29248,14773,-29248,14773,-29248, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 13951,-29649,13951,-29649,13951,-29649,13951,-29649, - 13536,-29841,13536,-29841,13536,-29841,13536,-29841, - 13118,-30027,13118,-30027,13118,-30027,13118,-30027, - 12697,-30207,12697,-30207,12697,-30207,12697,-30207, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 11849,-30550,11849,-30550,11849,-30550,11849,-30550, - 11421,-30712,11421,-30712,11421,-30712,11421,-30712, - 10991,-30869,10991,-30869,10991,-30869,10991,-30869, - 10559,-31019,10559,-31019,10559,-31019,10559,-31019, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9689,-31302,9689,-31302,9689,-31302,9689,-31302, - 9251,-31434,9251,-31434,9251,-31434,9251,-31434, - 8811,-31560,8811,-31560,8811,-31560,8811,-31560, - 8370,-31680,8370,-31680,8370,-31680,8370,-31680, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7482,-31902,7482,-31902,7482,-31902,7482,-31902, - 7036,-32003,7036,-32003,7036,-32003,7036,-32003, - 6588,-32098,6588,-32098,6588,-32098,6588,-32098, - 6139,-32187,6139,-32187,6139,-32187,6139,-32187, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5238,-32346,5238,-32346,5238,-32346,5238,-32346, - 4786,-32416,4786,-32416,4786,-32416,4786,-32416, - 4333,-32480,4333,-32480,4333,-32480,4333,-32480, - 3879,-32537,3879,-32537,3879,-32537,3879,-32537, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2969,-32633,2969,-32633,2969,-32633,2969,-32633, - 2513,-32671,2513,-32671,2513,-32671,2513,-32671, - 2057,-32703,2057,-32703,2057,-32703,2057,-32703, - 1600,-32728,1600,-32728,1600,-32728,1600,-32728, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 686,-32760,686,-32760,686,-32760,686,-32760, - 228,-32767,228,-32767,228,-32767,228,-32767, - -229,-32767,-229,-32767,-229,-32767,-229,-32767, - -687,-32760,-687,-32760,-687,-32760,-687,-32760, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1601,-32728,-1601,-32728,-1601,-32728,-1601,-32728, - -2058,-32703,-2058,-32703,-2058,-32703,-2058,-32703, - -2514,-32671,-2514,-32671,-2514,-32671,-2514,-32671, - -2970,-32633,-2970,-32633,-2970,-32633,-2970,-32633, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3880,-32537,-3880,-32537,-3880,-32537,-3880,-32537, - -4334,-32480,-4334,-32480,-4334,-32480,-4334,-32480, - -4787,-32416,-4787,-32416,-4787,-32416,-4787,-32416, - -5239,-32346,-5239,-32346,-5239,-32346,-5239,-32346, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6140,-32187,-6140,-32187,-6140,-32187,-6140,-32187, - -6589,-32098,-6589,-32098,-6589,-32098,-6589,-32098, - -7037,-32003,-7037,-32003,-7037,-32003,-7037,-32003, - -7483,-31902,-7483,-31902,-7483,-31902,-7483,-31902, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8371,-31680,-8371,-31680,-8371,-31680,-8371,-31680, - -8812,-31560,-8812,-31560,-8812,-31560,-8812,-31560, - -9252,-31434,-9252,-31434,-9252,-31434,-9252,-31434, - -9690,-31302,-9690,-31302,-9690,-31302,-9690,-31302, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10560,-31019,-10560,-31019,-10560,-31019,-10560,-31019, - -10992,-30869,-10992,-30869,-10992,-30869,-10992,-30869, - -11422,-30712,-11422,-30712,-11422,-30712,-11422,-30712, - -11850,-30550,-11850,-30550,-11850,-30550,-11850,-30550, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12698,-30207,-12698,-30207,-12698,-30207,-12698,-30207, - -13119,-30027,-13119,-30027,-13119,-30027,-13119,-30027, - -13537,-29841,-13537,-29841,-13537,-29841,-13537,-29841, - -13952,-29649,-13952,-29649,-13952,-29649,-13952,-29649, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -14774,-29248,-14774,-29248,-14774,-29248,-14774,-29248, - -15181,-29039,-15181,-29039,-15181,-29039,-15181,-29039, - -15585,-28824,-15585,-28824,-15585,-28824,-15585,-28824, - -15986,-28604,-15986,-28604,-15986,-28604,-15986,-28604, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16779,-28146,-16779,-28146,-16779,-28146,-16779,-28146, - -17170,-27909,-17170,-27909,-17170,-27909,-17170,-27909, - -17558,-27667,-17558,-27667,-17558,-27667,-17558,-27667, - -17943,-27419,-17943,-27419,-17943,-27419,-17943,-27419, - -18324,-27166,-18324,-27166,-18324,-27166,-18324,-27166, - -18701,-26907,-18701,-26907,-18701,-26907,-18701,-26907, - -19075,-26643,-19075,-26643,-19075,-26643,-19075,-26643, - -19445,-26374,-19445,-26374,-19445,-26374,-19445,-26374, - -19811,-26100,-19811,-26100,-19811,-26100,-19811,-26100, - -20174,-25821,-20174,-25821,-20174,-25821,-20174,-25821, - -20532,-25537,-20532,-25537,-20532,-25537,-20532,-25537, - -20887,-25248,-20887,-25248,-20887,-25248,-20887,-25248, - -21237,-24954,-21237,-24954,-21237,-24954,-21237,-24954, - -21584,-24655,-21584,-24655,-21584,-24655,-21584,-24655, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22264,-24043,-22264,-24043,-22264,-24043,-22264,-24043, - -22597,-23729,-22597,-23729,-22597,-23729,-22597,-23729, - -22926,-23412,-22926,-23412,-22926,-23412,-22926,-23412, - -23251,-23089,-23251,-23089,-23251,-23089,-23251,-23089, - -23571,-22762,-23571,-22762,-23571,-22762,-23571,-22762, - -23887,-22431,-23887,-22431,-23887,-22431,-23887,-22431, - -24197,-22095,-24197,-22095,-24197,-22095,-24197,-22095, - -24504,-21755,-24504,-21755,-24504,-21755,-24504,-21755, - -24805,-21411,-24805,-21411,-24805,-21411,-24805,-21411, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25393,-20710,-25393,-20710,-25393,-20710,-25393,-20710, - -25680,-20354,-25680,-20354,-25680,-20354,-25680,-20354, - -25961,-19993,-25961,-19993,-25961,-19993,-25961,-19993, - -26238,-19629,-26238,-19629,-26238,-19629,-26238,-19629, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26776,-18888,-26776,-18888,-26776,-18888,-26776,-18888, - -27037,-18513,-27037,-18513,-27037,-18513,-27037,-18513, - -27293,-18133,-27293,-18133,-27293,-18133,-27293,-18133, - -27543,-17751,-27543,-17751,-27543,-17751,-27543,-17751, - -27788,-17364,-27788,-17364,-27788,-17364,-27788,-17364, - -28028,-16975,-28028,-16975,-28028,-16975,-28028,-16975, - -28262,-16582,-28262,-16582,-28262,-16582,-28262,-16582, - -28491,-16185,-28491,-16185,-28491,-16185,-28491,-16185, - -28714,-15786,-28714,-15786,-28714,-15786,-28714,-15786, - -28932,-15384,-28932,-15384,-28932,-15384,-28932,-15384, - -29144,-14978,-29144,-14978,-29144,-14978,-29144,-14978, - -29350,-14570,-29350,-14570,-29350,-14570,-29350,-14570, - -29551,-14159,-29551,-14159,-29551,-14159,-29551,-14159, - -29746,-13745,-29746,-13745,-29746,-13745,-29746,-13745, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30118,-12909,-30118,-12909,-30118,-12909,-30118,-12909, - -30295,-12487,-30295,-12487,-30295,-12487,-30295,-12487, - -30466,-12063,-30466,-12063,-30466,-12063,-30466,-12063, - -30632,-11636,-30632,-11636,-30632,-11636,-30632,-11636, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -30945,-10776,-30945,-10776,-30945,-10776,-30945,-10776, - -31092,-10343,-31092,-10343,-31092,-10343,-31092,-10343, - -31234,-9908,-31234,-9908,-31234,-9908,-31234,-9908, - -31369,-9471,-31369,-9471,-31369,-9471,-31369,-9471, - -31498,-9032,-31498,-9032,-31498,-9032,-31498,-9032, - -31621,-8592,-31621,-8592,-31621,-8592,-31621,-8592, - -31738,-8149,-31738,-8149,-31738,-8149,-31738,-8149, - -31849,-7705,-31849,-7705,-31849,-7705,-31849,-7705, - -31953,-7260,-31953,-7260,-31953,-7260,-31953,-7260, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32143,-6365,-32143,-6365,-32143,-6365,-32143,-6365, - -32229,-5916,-32229,-5916,-32229,-5916,-32229,-5916, - -32309,-5465,-32309,-5465,-32309,-5465,-32309,-5465, - -32382,-5013,-32382,-5013,-32382,-5013,-32382,-5013, - -32449,-4561,-32449,-4561,-32449,-4561,-32449,-4561, - -32509,-4107,-32509,-4107,-32509,-4107,-32509,-4107, - -32563,-3653,-32563,-3653,-32563,-3653,-32563,-3653, - -32611,-3198,-32611,-3198,-32611,-3198,-32611,-3198, - -32653,-2742,-32653,-2742,-32653,-2742,-32653,-2742, - -32688,-2286,-32688,-2286,-32688,-2286,-32688,-2286, - -32716,-1830,-32716,-1830,-32716,-1830,-32716,-1830, - -32739,-1373,-32739,-1373,-32739,-1373,-32739,-1373, - -32755,-915,-32755,-915,-32755,-915,-32755,-915, - -32764,-458,-32764,-458,-32764,-458,-32764,-458, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32764,457,-32764,457,-32764,457,-32764,457, - -32755,914,-32755,914,-32755,914,-32755,914, - -32739,1372,-32739,1372,-32739,1372,-32739,1372, - -32716,1829,-32716,1829,-32716,1829,-32716,1829, - -32688,2285,-32688,2285,-32688,2285,-32688,2285, - -32653,2741,-32653,2741,-32653,2741,-32653,2741, - -32611,3197,-32611,3197,-32611,3197,-32611,3197, - -32563,3652,-32563,3652,-32563,3652,-32563,3652, - -32509,4106,-32509,4106,-32509,4106,-32509,4106, - -32449,4560,-32449,4560,-32449,4560,-32449,4560, - -32382,5012,-32382,5012,-32382,5012,-32382,5012, - -32309,5464,-32309,5464,-32309,5464,-32309,5464, - -32229,5915,-32229,5915,-32229,5915,-32229,5915, - -32143,6364,-32143,6364,-32143,6364,-32143,6364, - -32051,6812,-32051,6812,-32051,6812,-32051,6812, - -31953,7259,-31953,7259,-31953,7259,-31953,7259, - -31849,7704,-31849,7704,-31849,7704,-31849,7704, - -31738,8148,-31738,8148,-31738,8148,-31738,8148, - -31621,8591,-31621,8591,-31621,8591,-31621,8591, - -31498,9031,-31498,9031,-31498,9031,-31498,9031, - -31369,9470,-31369,9470,-31369,9470,-31369,9470, - -31234,9907,-31234,9907,-31234,9907,-31234,9907, - -31092,10342,-31092,10342,-31092,10342,-31092,10342, - -30945,10775,-30945,10775,-30945,10775,-30945,10775, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30632,11635,-30632,11635,-30632,11635,-30632,11635, - -30466,12062,-30466,12062,-30466,12062,-30466,12062, - -30295,12486,-30295,12486,-30295,12486,-30295,12486, - -30118,12908,-30118,12908,-30118,12908,-30118,12908, - -29935,13327,-29935,13327,-29935,13327,-29935,13327, - -29746,13744,-29746,13744,-29746,13744,-29746,13744, - -29551,14158,-29551,14158,-29551,14158,-29551,14158, - -29350,14569,-29350,14569,-29350,14569,-29350,14569, - -29144,14977,-29144,14977,-29144,14977,-29144,14977, - -28932,15383,-28932,15383,-28932,15383,-28932,15383, - -28714,15785,-28714,15785,-28714,15785,-28714,15785, - -28491,16184,-28491,16184,-28491,16184,-28491,16184, - -28262,16581,-28262,16581,-28262,16581,-28262,16581, - -28028,16974,-28028,16974,-28028,16974,-28028,16974, - -27788,17363,-27788,17363,-27788,17363,-27788,17363, - -27543,17750,-27543,17750,-27543,17750,-27543,17750, - -27293,18132,-27293,18132,-27293,18132,-27293,18132, - -27037,18512,-27037,18512,-27037,18512,-27037,18512, - -26776,18887,-26776,18887,-26776,18887,-26776,18887, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -26238,19628,-26238,19628,-26238,19628,-26238,19628, - -25961,19992,-25961,19992,-25961,19992,-25961,19992, - -25680,20353,-25680,20353,-25680,20353,-25680,20353, - -25393,20709,-25393,20709,-25393,20709,-25393,20709, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24805,21410,-24805,21410,-24805,21410,-24805,21410, - -24504,21754,-24504,21754,-24504,21754,-24504,21754, - -24197,22094,-24197,22094,-24197,22094,-24197,22094, - -23887,22430,-23887,22430,-23887,22430,-23887,22430, - -23571,22761,-23571,22761,-23571,22761,-23571,22761, - -23251,23088,-23251,23088,-23251,23088,-23251,23088, - -22926,23411,-22926,23411,-22926,23411,-22926,23411, - -22597,23728,-22597,23728,-22597,23728,-22597,23728, - -22264,24042,-22264,24042,-22264,24042,-22264,24042, - -21926,24350,-21926,24350,-21926,24350,-21926,24350, - -21584,24654,-21584,24654,-21584,24654,-21584,24654, - -21237,24953,-21237,24953,-21237,24953,-21237,24953, - -20887,25247,-20887,25247,-20887,25247,-20887,25247, - -20532,25536,-20532,25536,-20532,25536,-20532,25536, - -20174,25820,-20174,25820,-20174,25820,-20174,25820, - -19811,26099,-19811,26099,-19811,26099,-19811,26099, - -19445,26373,-19445,26373,-19445,26373,-19445,26373, - -19075,26642,-19075,26642,-19075,26642,-19075,26642, - -18701,26906,-18701,26906,-18701,26906,-18701,26906, - -18324,27165,-18324,27165,-18324,27165,-18324,27165, - -17943,27418,-17943,27418,-17943,27418,-17943,27418, - -17558,27666,-17558,27666,-17558,27666,-17558,27666, - -17170,27908,-17170,27908,-17170,27908,-17170,27908, - -16779,28145,-16779,28145,-16779,28145,-16779,28145 - }; +static int16_t twa900[299*2*4]; +static int16_t twb900[299*2*4]; void dft900(int16_t *x,int16_t *y,unsigned char scale_flag) // 300 x 3 { @@ -14266,762 +8220,10 @@ void dft900(int16_t *x,int16_t *y,unsigned char scale_flag) // 300 x 3 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:239)/960)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:239)/960)); -twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:239)/960)); -twa2 = zeros(1,2*239); -twb2 = zeros(1,2*239); -twc2 = zeros(1,2*239); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -twc2(1:2:end) = real(twc); -twc2(2:2:end) = imag(twc); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa960[239*2*4] = {"); -for i=1:2:(2*238) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"\nstatic int16_t twb960[239*2*4] = {"); -for i=1:2:(2*238) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fprintf(fd,"\nstatic int16_t twc960[239*2*4] = {"); -for i=1:2:(2*238) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -fclose(fd); -*/ -static int16_t twa960[239*2*4] = {32766,-215,32766,-215,32766,-215,32766,-215, - 32764,-429,32764,-429,32764,-429,32764,-429, - 32760,-644,32760,-644,32760,-644,32760,-644, - 32755,-858,32755,-858,32755,-858,32755,-858, - 32749,-1073,32749,-1073,32749,-1073,32749,-1073, - 32741,-1287,32741,-1287,32741,-1287,32741,-1287, - 32732,-1501,32732,-1501,32732,-1501,32732,-1501, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32710,-1930,32710,-1930,32710,-1930,32710,-1930, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32682,-2358,32682,-2358,32682,-2358,32682,-2358, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32648,-2785,32648,-2785,32648,-2785,32648,-2785, - 32629,-2999,32629,-2999,32629,-2999,32629,-2999, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32564,-3639,32564,-3639,32564,-3639,32564,-3639, - 32539,-3852,32539,-3852,32539,-3852,32539,-3852, - 32513,-4065,32513,-4065,32513,-4065,32513,-4065, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32457,-4490,32457,-4490,32457,-4490,32457,-4490, - 32427,-4702,32427,-4702,32427,-4702,32427,-4702, - 32396,-4914,32396,-4914,32396,-4914,32396,-4914, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32329,-5338,32329,-5338,32329,-5338,32329,-5338, - 32293,-5550,32293,-5550,32293,-5550,32293,-5550, - 32256,-5761,32256,-5761,32256,-5761,32256,-5761, - 32218,-5972,32218,-5972,32218,-5972,32218,-5972, - 32178,-6183,32178,-6183,32178,-6183,32178,-6183, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32094,-6603,32094,-6603,32094,-6603,32094,-6603, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 32005,-7023,32005,-7023,32005,-7023,32005,-7023, - 31959,-7232,31959,-7232,31959,-7232,31959,-7232, - 31911,-7441,31911,-7441,31911,-7441,31911,-7441, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31810,-7858,31810,-7858,31810,-7858,31810,-7858, - 31758,-8066,31758,-8066,31758,-8066,31758,-8066, - 31705,-8274,31705,-8274,31705,-8274,31705,-8274, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31594,-8688,31594,-8688,31594,-8688,31594,-8688, - 31536,-8895,31536,-8895,31536,-8895,31536,-8895, - 31477,-9101,31477,-9101,31477,-9101,31477,-9101, - 31417,-9307,31417,-9307,31417,-9307,31417,-9307, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31293,-9717,31293,-9717,31293,-9717,31293,-9717, - 31228,-9922,31228,-9922,31228,-9922,31228,-9922, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31096,-10330,31096,-10330,31096,-10330,31096,-10330, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30958,-10736,30958,-10736,30958,-10736,30958,-10736, - 30887,-10938,30887,-10938,30887,-10938,30887,-10938, - 30815,-11140,30815,-11140,30815,-11140,30815,-11140, - 30741,-11342,30741,-11342,30741,-11342,30741,-11342, - 30666,-11543,30666,-11543,30666,-11543,30666,-11543, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30513,-11943,30513,-11943,30513,-11943,30513,-11943, - 30434,-12143,30434,-12143,30434,-12143,30434,-12143, - 30354,-12341,30354,-12341,30354,-12341,30354,-12341, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30190,-12738,30190,-12738,30190,-12738,30190,-12738, - 30106,-12935,30106,-12935,30106,-12935,30106,-12935, - 30020,-13132,30020,-13132,30020,-13132,30020,-13132, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29846,-13524,29846,-13524,29846,-13524,29846,-13524, - 29757,-13719,29757,-13719,29757,-13719,29757,-13719, - 29666,-13913,29666,-13913,29666,-13913,29666,-13913, - 29575,-14107,29575,-14107,29575,-14107,29575,-14107, - 29482,-14300,29482,-14300,29482,-14300,29482,-14300, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29292,-14685,29292,-14685,29292,-14685,29292,-14685, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 29097,-15067,29097,-15067,29097,-15067,29097,-15067, - 28998,-15257,28998,-15257,28998,-15257,28998,-15257, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28796,-15636,28796,-15636,28796,-15636,28796,-15636, - 28693,-15824,28693,-15824,28693,-15824,28693,-15824, - 28589,-16011,28589,-16011,28589,-16011,28589,-16011, - 28483,-16198,28483,-16198,28483,-16198,28483,-16198, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28269,-16569,28269,-16569,28269,-16569,28269,-16569, - 28160,-16754,28160,-16754,28160,-16754,28160,-16754, - 28049,-16938,28049,-16938,28049,-16938,28049,-16938, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27825,-17304,27825,-17304,27825,-17304,27825,-17304, - 27711,-17485,27711,-17485,27711,-17485,27711,-17485, - 27596,-17666,27596,-17666,27596,-17666,27596,-17666, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27363,-18026,27363,-18026,27363,-18026,27363,-18026, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 27125,-18383,27125,-18383,27125,-18383,27125,-18383, - 27004,-18560,27004,-18560,27004,-18560,27004,-18560, - 26882,-18736,26882,-18736,26882,-18736,26882,-18736, - 26758,-18912,26758,-18912,26758,-18912,26758,-18912, - 26634,-19087,26634,-19087,26634,-19087,26634,-19087, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26382,-19434,26382,-19434,26382,-19434,26382,-19434, - 26254,-19606,26254,-19606,26254,-19606,26254,-19606, - 26125,-19777,26125,-19777,26125,-19777,26125,-19777, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25864,-20117,25864,-20117,25864,-20117,25864,-20117, - 25732,-20286,25732,-20286,25732,-20286,25732,-20286, - 25599,-20454,25599,-20454,25599,-20454,25599,-20454, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 25192,-20953,25192,-20953,25192,-20953,25192,-20953, - 25054,-21117,25054,-21117,25054,-21117,25054,-21117, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24776,-21444,24776,-21444,24776,-21444,24776,-21444, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24493,-21766,24493,-21766,24493,-21766,24493,-21766, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24206,-22085,24206,-22085,24206,-22085,24206,-22085, - 24061,-22243,24061,-22243,24061,-22243,24061,-22243, - 23915,-22400,23915,-22400,23915,-22400,23915,-22400, - 23768,-22556,23768,-22556,23768,-22556,23768,-22556, - 23620,-22711,23620,-22711,23620,-22711,23620,-22711, - 23471,-22865,23471,-22865,23471,-22865,23471,-22865, - 23320,-23018,23320,-23018,23320,-23018,23320,-23018, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 23017,-23321,23017,-23321,23017,-23321,23017,-23321, - 22864,-23472,22864,-23472,22864,-23472,22864,-23472, - 22710,-23621,22710,-23621,22710,-23621,22710,-23621, - 22555,-23769,22555,-23769,22555,-23769,22555,-23769, - 22399,-23916,22399,-23916,22399,-23916,22399,-23916, - 22242,-24062,22242,-24062,22242,-24062,22242,-24062, - 22084,-24207,22084,-24207,22084,-24207,22084,-24207, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21765,-24494,21765,-24494,21765,-24494,21765,-24494, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21443,-24777,21443,-24777,21443,-24777,21443,-24777, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 21116,-25055,21116,-25055,21116,-25055,21116,-25055, - 20952,-25193,20952,-25193,20952,-25193,20952,-25193, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20453,-25600,20453,-25600,20453,-25600,20453,-25600, - 20285,-25733,20285,-25733,20285,-25733,20285,-25733, - 20116,-25865,20116,-25865,20116,-25865,20116,-25865, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19776,-26126,19776,-26126,19776,-26126,19776,-26126, - 19605,-26255,19605,-26255,19605,-26255,19605,-26255, - 19433,-26383,19433,-26383,19433,-26383,19433,-26383, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 19086,-26635,19086,-26635,19086,-26635,19086,-26635, - 18911,-26759,18911,-26759,18911,-26759,18911,-26759, - 18735,-26883,18735,-26883,18735,-26883,18735,-26883, - 18559,-27005,18559,-27005,18559,-27005,18559,-27005, - 18382,-27126,18382,-27126,18382,-27126,18382,-27126, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 18025,-27364,18025,-27364,18025,-27364,18025,-27364, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17665,-27597,17665,-27597,17665,-27597,17665,-27597, - 17484,-27712,17484,-27712,17484,-27712,17484,-27712, - 17303,-27826,17303,-27826,17303,-27826,17303,-27826, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16937,-28050,16937,-28050,16937,-28050,16937,-28050, - 16753,-28161,16753,-28161,16753,-28161,16753,-28161, - 16568,-28270,16568,-28270,16568,-28270,16568,-28270, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16197,-28484,16197,-28484,16197,-28484,16197,-28484, - 16010,-28590,16010,-28590,16010,-28590,16010,-28590, - 15823,-28694,15823,-28694,15823,-28694,15823,-28694, - 15635,-28797,15635,-28797,15635,-28797,15635,-28797, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 15256,-28999,15256,-28999,15256,-28999,15256,-28999, - 15066,-29098,15066,-29098,15066,-29098,15066,-29098, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14684,-29293,14684,-29293,14684,-29293,14684,-29293, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14299,-29483,14299,-29483,14299,-29483,14299,-29483, - 14106,-29576,14106,-29576,14106,-29576,14106,-29576, - 13912,-29667,13912,-29667,13912,-29667,13912,-29667, - 13718,-29758,13718,-29758,13718,-29758,13718,-29758, - 13523,-29847,13523,-29847,13523,-29847,13523,-29847, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 13131,-30021,13131,-30021,13131,-30021,13131,-30021, - 12934,-30107,12934,-30107,12934,-30107,12934,-30107, - 12737,-30191,12737,-30191,12737,-30191,12737,-30191, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12340,-30355,12340,-30355,12340,-30355,12340,-30355, - 12142,-30435,12142,-30435,12142,-30435,12142,-30435, - 11942,-30514,11942,-30514,11942,-30514,11942,-30514, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11542,-30667,11542,-30667,11542,-30667,11542,-30667, - 11341,-30742,11341,-30742,11341,-30742,11341,-30742, - 11139,-30816,11139,-30816,11139,-30816,11139,-30816, - 10937,-30888,10937,-30888,10937,-30888,10937,-30888, - 10735,-30959,10735,-30959,10735,-30959,10735,-30959, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10329,-31097,10329,-31097,10329,-31097,10329,-31097, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9921,-31229,9921,-31229,9921,-31229,9921,-31229, - 9716,-31294,9716,-31294,9716,-31294,9716,-31294, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 9306,-31418,9306,-31418,9306,-31418,9306,-31418, - 9100,-31478,9100,-31478,9100,-31478,9100,-31478, - 8894,-31537,8894,-31537,8894,-31537,8894,-31537, - 8687,-31595,8687,-31595,8687,-31595,8687,-31595, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8273,-31706,8273,-31706,8273,-31706,8273,-31706, - 8065,-31759,8065,-31759,8065,-31759,8065,-31759, - 7857,-31811,7857,-31811,7857,-31811,7857,-31811, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 7440,-31912,7440,-31912,7440,-31912,7440,-31912, - 7231,-31960,7231,-31960,7231,-31960,7231,-31960, - 7022,-32006,7022,-32006,7022,-32006,7022,-32006, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6602,-32095,6602,-32095,6602,-32095,6602,-32095, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 6182,-32179,6182,-32179,6182,-32179,6182,-32179, - 5971,-32219,5971,-32219,5971,-32219,5971,-32219, - 5760,-32257,5760,-32257,5760,-32257,5760,-32257, - 5549,-32294,5549,-32294,5549,-32294,5549,-32294, - 5337,-32330,5337,-32330,5337,-32330,5337,-32330, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4913,-32397,4913,-32397,4913,-32397,4913,-32397, - 4701,-32428,4701,-32428,4701,-32428,4701,-32428, - 4489,-32458,4489,-32458,4489,-32458,4489,-32458, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 4064,-32514,4064,-32514,4064,-32514,4064,-32514, - 3851,-32540,3851,-32540,3851,-32540,3851,-32540, - 3638,-32565,3638,-32565,3638,-32565,3638,-32565, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 2998,-32630,2998,-32630,2998,-32630,2998,-32630, - 2784,-32649,2784,-32649,2784,-32649,2784,-32649, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 2357,-32683,2357,-32683,2357,-32683,2357,-32683, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1929,-32711,1929,-32711,1929,-32711,1929,-32711, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1500,-32733,1500,-32733,1500,-32733,1500,-32733, - 1286,-32742,1286,-32742,1286,-32742,1286,-32742, - 1072,-32750,1072,-32750,1072,-32750,1072,-32750, - 857,-32756,857,-32756,857,-32756,857,-32756, - 643,-32761,643,-32761,643,-32761,643,-32761, - 428,-32765,428,-32765,428,-32765,428,-32765, - 214,-32767,214,-32767,214,-32767,214,-32767 - }; - -static int16_t twb960[239*2*4] = {32764,-429,32764,-429,32764,-429,32764,-429, - 32755,-858,32755,-858,32755,-858,32755,-858, - 32741,-1287,32741,-1287,32741,-1287,32741,-1287, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32629,-2999,32629,-2999,32629,-2999,32629,-2999, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32539,-3852,32539,-3852,32539,-3852,32539,-3852, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32427,-4702,32427,-4702,32427,-4702,32427,-4702, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32293,-5550,32293,-5550,32293,-5550,32293,-5550, - 32218,-5972,32218,-5972,32218,-5972,32218,-5972, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31959,-7232,31959,-7232,31959,-7232,31959,-7232, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31758,-8066,31758,-8066,31758,-8066,31758,-8066, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31536,-8895,31536,-8895,31536,-8895,31536,-8895, - 31417,-9307,31417,-9307,31417,-9307,31417,-9307, - 31293,-9717,31293,-9717,31293,-9717,31293,-9717, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30887,-10938,30887,-10938,30887,-10938,30887,-10938, - 30741,-11342,30741,-11342,30741,-11342,30741,-11342, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30434,-12143,30434,-12143,30434,-12143,30434,-12143, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30106,-12935,30106,-12935,30106,-12935,30106,-12935, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29757,-13719,29757,-13719,29757,-13719,29757,-13719, - 29575,-14107,29575,-14107,29575,-14107,29575,-14107, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28998,-15257,28998,-15257,28998,-15257,28998,-15257, - 28796,-15636,28796,-15636,28796,-15636,28796,-15636, - 28589,-16011,28589,-16011,28589,-16011,28589,-16011, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28160,-16754,28160,-16754,28160,-16754,28160,-16754, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27711,-17485,27711,-17485,27711,-17485,27711,-17485, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 27004,-18560,27004,-18560,27004,-18560,27004,-18560, - 26758,-18912,26758,-18912,26758,-18912,26758,-18912, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26254,-19606,26254,-19606,26254,-19606,26254,-19606, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25732,-20286,25732,-20286,25732,-20286,25732,-20286, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25192,-20953,25192,-20953,25192,-20953,25192,-20953, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24061,-22243,24061,-22243,24061,-22243,24061,-22243, - 23768,-22556,23768,-22556,23768,-22556,23768,-22556, - 23471,-22865,23471,-22865,23471,-22865,23471,-22865, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22864,-23472,22864,-23472,22864,-23472,22864,-23472, - 22555,-23769,22555,-23769,22555,-23769,22555,-23769, - 22242,-24062,22242,-24062,22242,-24062,22242,-24062, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 20952,-25193,20952,-25193,20952,-25193,20952,-25193, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20285,-25733,20285,-25733,20285,-25733,20285,-25733, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19605,-26255,19605,-26255,19605,-26255,19605,-26255, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18911,-26759,18911,-26759,18911,-26759,18911,-26759, - 18559,-27005,18559,-27005,18559,-27005,18559,-27005, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17484,-27712,17484,-27712,17484,-27712,17484,-27712, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16753,-28161,16753,-28161,16753,-28161,16753,-28161, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16010,-28590,16010,-28590,16010,-28590,16010,-28590, - 15635,-28797,15635,-28797,15635,-28797,15635,-28797, - 15256,-28999,15256,-28999,15256,-28999,15256,-28999, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14106,-29576,14106,-29576,14106,-29576,14106,-29576, - 13718,-29758,13718,-29758,13718,-29758,13718,-29758, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12934,-30107,12934,-30107,12934,-30107,12934,-30107, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12142,-30435,12142,-30435,12142,-30435,12142,-30435, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11341,-30742,11341,-30742,11341,-30742,11341,-30742, - 10937,-30888,10937,-30888,10937,-30888,10937,-30888, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9716,-31294,9716,-31294,9716,-31294,9716,-31294, - 9306,-31418,9306,-31418,9306,-31418,9306,-31418, - 8894,-31537,8894,-31537,8894,-31537,8894,-31537, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8065,-31759,8065,-31759,8065,-31759,8065,-31759, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 7231,-31960,7231,-31960,7231,-31960,7231,-31960, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5971,-32219,5971,-32219,5971,-32219,5971,-32219, - 5549,-32294,5549,-32294,5549,-32294,5549,-32294, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4701,-32428,4701,-32428,4701,-32428,4701,-32428, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3851,-32540,3851,-32540,3851,-32540,3851,-32540, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 2998,-32630,2998,-32630,2998,-32630,2998,-32630, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1286,-32742,1286,-32742,1286,-32742,1286,-32742, - 857,-32756,857,-32756,857,-32756,857,-32756, - 428,-32765,428,-32765,428,-32765,428,-32765, - 0,-32767,0,-32767,0,-32767,0,-32767, - -429,-32765,-429,-32765,-429,-32765,-429,-32765, - -858,-32756,-858,-32756,-858,-32756,-858,-32756, - -1287,-32742,-1287,-32742,-1287,-32742,-1287,-32742, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697, - -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666, - -2999,-32630,-2999,-32630,-2999,-32630,-2999,-32630, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3852,-32540,-3852,-32540,-3852,-32540,-3852,-32540, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -4702,-32428,-4702,-32428,-4702,-32428,-4702,-32428, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5550,-32294,-5550,-32294,-5550,-32294,-5550,-32294, - -5972,-32219,-5972,-32219,-5972,-32219,-5972,-32219, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7232,-31960,-7232,-31960,-7232,-31960,-7232,-31960, - -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862, - -8066,-31759,-8066,-31759,-8066,-31759,-8066,-31759, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8895,-31537,-8895,-31537,-8895,-31537,-8895,-31537, - -9307,-31418,-9307,-31418,-9307,-31418,-9307,-31418, - -9717,-31294,-9717,-31294,-9717,-31294,-9717,-31294, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029, - -10938,-30888,-10938,-30888,-10938,-30888,-10938,-30888, - -11342,-30742,-11342,-30742,-11342,-30742,-11342,-30742, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -12143,-30435,-12143,-30435,-12143,-30435,-12143,-30435, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -12935,-30107,-12935,-30107,-12935,-30107,-12935,-30107, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13719,-29758,-13719,-29758,-13719,-29758,-13719,-29758, - -14107,-29576,-14107,-29576,-14107,-29576,-14107,-29576, - -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15257,-28999,-15257,-28999,-15257,-28999,-15257,-28999, - -15636,-28797,-15636,-28797,-15636,-28797,-15636,-28797, - -16011,-28590,-16011,-28590,-16011,-28590,-16011,-28590, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16754,-28161,-16754,-28161,-16754,-28161,-16754,-28161, - -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939, - -17485,-27712,-17485,-27712,-17485,-27712,-17485,-27712, - -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -18560,-27005,-18560,-27005,-18560,-27005,-18560,-27005, - -18912,-26759,-18912,-26759,-18912,-26759,-18912,-26759, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19606,-26255,-19606,-26255,-19606,-26255,-19606,-26255, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20286,-25733,-20286,-25733,-20286,-25733,-20286,-25733, - -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465, - -20953,-25193,-20953,-25193,-20953,-25193,-20953,-25193, - -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917, - -21605,-24636,-21605,-24636,-21605,-24636,-21605,-24636, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22243,-24062,-22243,-24062,-22243,-24062,-22243,-24062, - -22556,-23769,-22556,-23769,-22556,-23769,-22556,-23769, - -22865,-23472,-22865,-23472,-22865,-23472,-22865,-23472, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23472,-22865,-23472,-22865,-23472,-22865,-23472,-22865, - -23769,-22556,-23769,-22556,-23769,-22556,-23769,-22556, - -24062,-22243,-24062,-22243,-24062,-22243,-24062,-22243, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -24636,-21605,-24636,-21605,-24636,-21605,-24636,-21605, - -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281, - -25193,-20953,-25193,-20953,-25193,-20953,-25193,-20953, - -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621, - -25733,-20286,-25733,-20286,-25733,-20286,-25733,-20286, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26255,-19606,-26255,-19606,-26255,-19606,-26255,-19606, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26759,-18912,-26759,-18912,-26759,-18912,-26759,-18912, - -27005,-18560,-27005,-18560,-27005,-18560,-27005,-18560, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847, - -27712,-17485,-27712,-17485,-27712,-17485,-27712,-17485, - -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121, - -28161,-16754,-28161,-16754,-28161,-16754,-28161,-16754, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28590,-16011,-28590,-16011,-28590,-16011,-28590,-16011, - -28797,-15636,-28797,-15636,-28797,-15636,-28797,-15636, - -28999,-15257,-28999,-15257,-28999,-15257,-28999,-15257, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29388,-14493,-29388,-14493,-29388,-14493,-29388,-14493, - -29576,-14107,-29576,-14107,-29576,-14107,-29576,-14107, - -29758,-13719,-29758,-13719,-29758,-13719,-29758,-13719, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30107,-12935,-30107,-12935,-30107,-12935,-30107,-12935, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30435,-12143,-30435,-12143,-30435,-12143,-30435,-12143, - -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743, - -30742,-11342,-30742,-11342,-30742,-11342,-30742,-11342, - -30888,-10938,-30888,-10938,-30888,-10938,-30888,-10938, - -31029,-10533,-31029,-10533,-31029,-10533,-31029,-10533, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31294,-9717,-31294,-9717,-31294,-9717,-31294,-9717, - -31418,-9307,-31418,-9307,-31418,-9307,-31418,-9307, - -31537,-8895,-31537,-8895,-31537,-8895,-31537,-8895, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31759,-8066,-31759,-8066,-31759,-8066,-31759,-8066, - -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650, - -31960,-7232,-31960,-7232,-31960,-7232,-31960,-7232, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32219,-5972,-32219,-5972,-32219,-5972,-32219,-5972, - -32294,-5550,-32294,-5550,-32294,-5550,-32294,-5550, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32428,-4702,-32428,-4702,-32428,-4702,-32428,-4702, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32540,-3852,-32540,-3852,-32540,-3852,-32540,-3852, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32630,-2999,-32630,-2999,-32630,-2999,-32630,-2999, - -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571, - -32697,-2144,-32697,-2144,-32697,-2144,-32697,-2144, - -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715, - -32742,-1287,-32742,-1287,-32742,-1287,-32742,-1287, - -32756,-858,-32756,-858,-32756,-858,-32756,-858, - -32765,-429,-32765,-429,-32765,-429,-32765,-429 - }; - -static int16_t twc960[239*2*4] = {32760,-644,32760,-644,32760,-644,32760,-644, - 32741,-1287,32741,-1287,32741,-1287,32741,-1287, - 32710,-1930,32710,-1930,32710,-1930,32710,-1930, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32539,-3852,32539,-3852,32539,-3852,32539,-3852, - 32457,-4490,32457,-4490,32457,-4490,32457,-4490, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32256,-5761,32256,-5761,32256,-5761,32256,-5761, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32005,-7023,32005,-7023,32005,-7023,32005,-7023, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31705,-8274,31705,-8274,31705,-8274,31705,-8274, - 31536,-8895,31536,-8895,31536,-8895,31536,-8895, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 30958,-10736,30958,-10736,30958,-10736,30958,-10736, - 30741,-11342,30741,-11342,30741,-11342,30741,-11342, - 30513,-11943,30513,-11943,30513,-11943,30513,-11943, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30020,-13132,30020,-13132,30020,-13132,30020,-13132, - 29757,-13719,29757,-13719,29757,-13719,29757,-13719, - 29482,-14300,29482,-14300,29482,-14300,29482,-14300, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28589,-16011,28589,-16011,28589,-16011,28589,-16011, - 28269,-16569,28269,-16569,28269,-16569,28269,-16569, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27596,-17666,27596,-17666,27596,-17666,27596,-17666, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 26882,-18736,26882,-18736,26882,-18736,26882,-18736, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26125,-19777,26125,-19777,26125,-19777,26125,-19777, - 25732,-20286,25732,-20286,25732,-20286,25732,-20286, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24493,-21766,24493,-21766,24493,-21766,24493,-21766, - 24061,-22243,24061,-22243,24061,-22243,24061,-22243, - 23620,-22711,23620,-22711,23620,-22711,23620,-22711, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22710,-23621,22710,-23621,22710,-23621,22710,-23621, - 22242,-24062,22242,-24062,22242,-24062,22242,-24062, - 21765,-24494,21765,-24494,21765,-24494,21765,-24494, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 20285,-25733,20285,-25733,20285,-25733,20285,-25733, - 19776,-26126,19776,-26126,19776,-26126,19776,-26126, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18735,-26883,18735,-26883,18735,-26883,18735,-26883, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17665,-27597,17665,-27597,17665,-27597,17665,-27597, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16568,-28270,16568,-28270,16568,-28270,16568,-28270, - 16010,-28590,16010,-28590,16010,-28590,16010,-28590, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14299,-29483,14299,-29483,14299,-29483,14299,-29483, - 13718,-29758,13718,-29758,13718,-29758,13718,-29758, - 13131,-30021,13131,-30021,13131,-30021,13131,-30021, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 11942,-30514,11942,-30514,11942,-30514,11942,-30514, - 11341,-30742,11341,-30742,11341,-30742,11341,-30742, - 10735,-30959,10735,-30959,10735,-30959,10735,-30959, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 8894,-31537,8894,-31537,8894,-31537,8894,-31537, - 8273,-31706,8273,-31706,8273,-31706,8273,-31706, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 7022,-32006,7022,-32006,7022,-32006,7022,-32006, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5760,-32257,5760,-32257,5760,-32257,5760,-32257, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4489,-32458,4489,-32458,4489,-32458,4489,-32458, - 3851,-32540,3851,-32540,3851,-32540,3851,-32540, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 1929,-32711,1929,-32711,1929,-32711,1929,-32711, - 1286,-32742,1286,-32742,1286,-32742,1286,-32742, - 643,-32761,643,-32761,643,-32761,643,-32761, - 0,-32767,0,-32767,0,-32767,0,-32767, - -644,-32761,-644,-32761,-644,-32761,-644,-32761, - -1287,-32742,-1287,-32742,-1287,-32742,-1287,-32742, - -1930,-32711,-1930,-32711,-1930,-32711,-1930,-32711, - -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666, - -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610, - -3852,-32540,-3852,-32540,-3852,-32540,-3852,-32540, - -4490,-32458,-4490,-32458,-4490,-32458,-4490,-32458, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5761,-32257,-5761,-32257,-5761,-32257,-5761,-32257, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -7023,-32006,-7023,-32006,-7023,-32006,-7023,-32006, - -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862, - -8274,-31706,-8274,-31706,-8274,-31706,-8274,-31706, - -8895,-31537,-8895,-31537,-8895,-31537,-8895,-31537, - -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10736,-30959,-10736,-30959,-10736,-30959,-10736,-30959, - -11342,-30742,-11342,-30742,-11342,-30742,-11342,-30742, - -11943,-30514,-11943,-30514,-11943,-30514,-11943,-30514, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13132,-30021,-13132,-30021,-13132,-30021,-13132,-30021, - -13719,-29758,-13719,-29758,-13719,-29758,-13719,-29758, - -14300,-29483,-14300,-29483,-14300,-29483,-14300,-29483, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898, - -16011,-28590,-16011,-28590,-16011,-28590,-16011,-28590, - -16569,-28270,-16569,-28270,-16569,-28270,-16569,-28270, - -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939, - -17666,-27597,-17666,-27597,-17666,-27597,-17666,-27597, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -18736,-26883,-18736,-26883,-18736,-26883,-18736,-26883, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19777,-26126,-19777,-26126,-19777,-26126,-19777,-26126, - -20286,-25733,-20286,-25733,-20286,-25733,-20286,-25733, - -20788,-25330,-20788,-25330,-20788,-25330,-20788,-25330, - -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917, - -21766,-24494,-21766,-24494,-21766,-24494,-21766,-24494, - -22243,-24062,-22243,-24062,-22243,-24062,-22243,-24062, - -22711,-23621,-22711,-23621,-22711,-23621,-22711,-23621, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23621,-22711,-23621,-22711,-23621,-22711,-23621,-22711, - -24062,-22243,-24062,-22243,-24062,-22243,-24062,-22243, - -24494,-21766,-24494,-21766,-24494,-21766,-24494,-21766, - -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281, - -25330,-20788,-25330,-20788,-25330,-20788,-25330,-20788, - -25733,-20286,-25733,-20286,-25733,-20286,-25733,-20286, - -26126,-19777,-26126,-19777,-26126,-19777,-26126,-19777, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26883,-18736,-26883,-18736,-26883,-18736,-26883,-18736, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -27597,-17666,-27597,-17666,-27597,-17666,-27597,-17666, - -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121, - -28270,-16569,-28270,-16569,-28270,-16569,-28270,-16569, - -28590,-16011,-28590,-16011,-28590,-16011,-28590,-16011, - -28898,-15447,-28898,-15447,-28898,-15447,-28898,-15447, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29483,-14300,-29483,-14300,-29483,-14300,-29483,-14300, - -29758,-13719,-29758,-13719,-29758,-13719,-29758,-13719, - -30021,-13132,-30021,-13132,-30021,-13132,-30021,-13132, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30514,-11943,-30514,-11943,-30514,-11943,-30514,-11943, - -30742,-11342,-30742,-11342,-30742,-11342,-30742,-11342, - -30959,-10736,-30959,-10736,-30959,-10736,-30959,-10736, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31357,-9512,-31357,-9512,-31357,-9512,-31357,-9512, - -31537,-8895,-31537,-8895,-31537,-8895,-31537,-8895, - -31706,-8274,-31706,-8274,-31706,-8274,-31706,-8274, - -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650, - -32006,-7023,-32006,-7023,-32006,-7023,-32006,-7023, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32257,-5761,-32257,-5761,-32257,-5761,-32257,-5761, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32458,-4490,-32458,-4490,-32458,-4490,-32458,-4490, - -32540,-3852,-32540,-3852,-32540,-3852,-32540,-3852, - -32610,-3212,-32610,-3212,-32610,-3212,-32610,-3212, - -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571, - -32711,-1930,-32711,-1930,-32711,-1930,-32711,-1930, - -32742,-1287,-32742,-1287,-32742,-1287,-32742,-1287, - -32761,-644,-32761,-644,-32761,-644,-32761,-644, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32761,643,-32761,643,-32761,643,-32761,643, - -32742,1286,-32742,1286,-32742,1286,-32742,1286, - -32711,1929,-32711,1929,-32711,1929,-32711,1929, - -32666,2570,-32666,2570,-32666,2570,-32666,2570, - -32610,3211,-32610,3211,-32610,3211,-32610,3211, - -32540,3851,-32540,3851,-32540,3851,-32540,3851, - -32458,4489,-32458,4489,-32458,4489,-32458,4489, - -32364,5125,-32364,5125,-32364,5125,-32364,5125, - -32257,5760,-32257,5760,-32257,5760,-32257,5760, - -32138,6392,-32138,6392,-32138,6392,-32138,6392, - -32006,7022,-32006,7022,-32006,7022,-32006,7022, - -31862,7649,-31862,7649,-31862,7649,-31862,7649, - -31706,8273,-31706,8273,-31706,8273,-31706,8273, - -31537,8894,-31537,8894,-31537,8894,-31537,8894, - -31357,9511,-31357,9511,-31357,9511,-31357,9511, - -31164,10125,-31164,10125,-31164,10125,-31164,10125, - -30959,10735,-30959,10735,-30959,10735,-30959,10735, - -30742,11341,-30742,11341,-30742,11341,-30742,11341, - -30514,11942,-30514,11942,-30514,11942,-30514,11942, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -30021,13131,-30021,13131,-30021,13131,-30021,13131, - -29758,13718,-29758,13718,-29758,13718,-29758,13718, - -29483,14299,-29483,14299,-29483,14299,-29483,14299, - -29196,14875,-29196,14875,-29196,14875,-29196,14875, - -28898,15446,-28898,15446,-28898,15446,-28898,15446, - -28590,16010,-28590,16010,-28590,16010,-28590,16010, - -28270,16568,-28270,16568,-28270,16568,-28270,16568, - -27939,17120,-27939,17120,-27939,17120,-27939,17120, - -27597,17665,-27597,17665,-27597,17665,-27597,17665, - -27245,18204,-27245,18204,-27245,18204,-27245,18204, - -26883,18735,-26883,18735,-26883,18735,-26883,18735, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -26126,19776,-26126,19776,-26126,19776,-26126,19776, - -25733,20285,-25733,20285,-25733,20285,-25733,20285, - -25330,20787,-25330,20787,-25330,20787,-25330,20787, - -24917,21280,-24917,21280,-24917,21280,-24917,21280, - -24494,21765,-24494,21765,-24494,21765,-24494,21765, - -24062,22242,-24062,22242,-24062,22242,-24062,22242, - -23621,22710,-23621,22710,-23621,22710,-23621,22710, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22711,23620,-22711,23620,-22711,23620,-22711,23620, - -22243,24061,-22243,24061,-22243,24061,-22243,24061, - -21766,24493,-21766,24493,-21766,24493,-21766,24493, - -21281,24916,-21281,24916,-21281,24916,-21281,24916, - -20788,25329,-20788,25329,-20788,25329,-20788,25329, - -20286,25732,-20286,25732,-20286,25732,-20286,25732, - -19777,26125,-19777,26125,-19777,26125,-19777,26125, - -19260,26509,-19260,26509,-19260,26509,-19260,26509, - -18736,26882,-18736,26882,-18736,26882,-18736,26882, - -18205,27244,-18205,27244,-18205,27244,-18205,27244, - -17666,27596,-17666,27596,-17666,27596,-17666,27596, - -17121,27938,-17121,27938,-17121,27938,-17121,27938, - -16569,28269,-16569,28269,-16569,28269,-16569,28269, - -16011,28589,-16011,28589,-16011,28589,-16011,28589, - -15447,28897,-15447,28897,-15447,28897,-15447,28897, - -14876,29195,-14876,29195,-14876,29195,-14876,29195, - -14300,29482,-14300,29482,-14300,29482,-14300,29482, - -13719,29757,-13719,29757,-13719,29757,-13719,29757, - -13132,30020,-13132,30020,-13132,30020,-13132,30020, - -12540,30272,-12540,30272,-12540,30272,-12540,30272, - -11943,30513,-11943,30513,-11943,30513,-11943,30513, - -11342,30741,-11342,30741,-11342,30741,-11342,30741, - -10736,30958,-10736,30958,-10736,30958,-10736,30958, - -10126,31163,-10126,31163,-10126,31163,-10126,31163, - -9512,31356,-9512,31356,-9512,31356,-9512,31356, - -8895,31536,-8895,31536,-8895,31536,-8895,31536, - -8274,31705,-8274,31705,-8274,31705,-8274,31705, - -7650,31861,-7650,31861,-7650,31861,-7650,31861, - -7023,32005,-7023,32005,-7023,32005,-7023,32005, - -6393,32137,-6393,32137,-6393,32137,-6393,32137, - -5761,32256,-5761,32256,-5761,32256,-5761,32256, - -5126,32363,-5126,32363,-5126,32363,-5126,32363, - -4490,32457,-4490,32457,-4490,32457,-4490,32457, - -3852,32539,-3852,32539,-3852,32539,-3852,32539, - -3212,32609,-3212,32609,-3212,32609,-3212,32609, - -2571,32665,-2571,32665,-2571,32665,-2571,32665, - -1930,32710,-1930,32710,-1930,32710,-1930,32710, - -1287,32741,-1287,32741,-1287,32741,-1287,32741, - -644,32760,-644,32760,-644,32760,-644,32760 - }; +static int16_t twa960[239*2*4]; +static int16_t twb960[239*2*4]; +static int16_t twc960[239*2*4]; + void dft960(int16_t *x,int16_t *y,unsigned char scale_flag) // 240 x 4 { @@ -15077,678 +8279,9 @@ void dft960(int16_t *x,int16_t *y,unsigned char scale_flag) // 240 x 4 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:323)/972)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:323)/972)); -twa2 = zeros(1,2*323); -twb2 = zeros(1,2*323); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa972[323*2*4] = {"); -for i=1:2:(2*322) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb972[323*2*4] = {"); -for i=1:2:(2*322) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); -*/ -static int16_t twa972[323*2*4] = {32766,-212,32766,-212,32766,-212,32766,-212, - 32764,-424,32764,-424,32764,-424,32764,-424, - 32760,-636,32760,-636,32760,-636,32760,-636, - 32756,-848,32756,-848,32756,-848,32756,-848, - 32749,-1059,32749,-1059,32749,-1059,32749,-1059, - 32742,-1271,32742,-1271,32742,-1271,32742,-1271, - 32733,-1483,32733,-1483,32733,-1483,32733,-1483, - 32723,-1694,32723,-1694,32723,-1694,32723,-1694, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32698,-2117,32698,-2117,32698,-2117,32698,-2117, - 32684,-2328,32684,-2328,32684,-2328,32684,-2328, - 32668,-2540,32668,-2540,32668,-2540,32668,-2540, - 32651,-2751,32651,-2751,32651,-2751,32651,-2751, - 32632,-2962,32632,-2962,32632,-2962,32632,-2962, - 32613,-3173,32613,-3173,32613,-3173,32613,-3173, - 32591,-3383,32591,-3383,32591,-3383,32591,-3383, - 32569,-3594,32569,-3594,32569,-3594,32569,-3594, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32520,-4015,32520,-4015,32520,-4015,32520,-4015, - 32493,-4225,32493,-4225,32493,-4225,32493,-4225, - 32465,-4435,32465,-4435,32465,-4435,32465,-4435, - 32436,-4645,32436,-4645,32436,-4645,32436,-4645, - 32405,-4854,32405,-4854,32405,-4854,32405,-4854, - 32373,-5064,32373,-5064,32373,-5064,32373,-5064, - 32340,-5273,32340,-5273,32340,-5273,32340,-5273, - 32305,-5482,32305,-5482,32305,-5482,32305,-5482, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32231,-5899,32231,-5899,32231,-5899,32231,-5899, - 32192,-6107,32192,-6107,32192,-6107,32192,-6107, - 32152,-6315,32152,-6315,32152,-6315,32152,-6315, - 32111,-6523,32111,-6523,32111,-6523,32111,-6523, - 32068,-6730,32068,-6730,32068,-6730,32068,-6730, - 32024,-6937,32024,-6937,32024,-6937,32024,-6937, - 31978,-7144,31978,-7144,31978,-7144,31978,-7144, - 31931,-7351,31931,-7351,31931,-7351,31931,-7351, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31834,-7763,31834,-7763,31834,-7763,31834,-7763, - 31783,-7969,31783,-7969,31783,-7969,31783,-7969, - 31731,-8174,31731,-8174,31731,-8174,31731,-8174, - 31677,-8379,31677,-8379,31677,-8379,31677,-8379, - 31622,-8583,31622,-8583,31622,-8583,31622,-8583, - 31566,-8788,31566,-8788,31566,-8788,31566,-8788, - 31509,-8992,31509,-8992,31509,-8992,31509,-8992, - 31450,-9195,31450,-9195,31450,-9195,31450,-9195, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31329,-9601,31329,-9601,31329,-9601,31329,-9601, - 31266,-9803,31266,-9803,31266,-9803,31266,-9803, - 31202,-10005,31202,-10005,31202,-10005,31202,-10005, - 31136,-10207,31136,-10207,31136,-10207,31136,-10207, - 31070,-10408,31070,-10408,31070,-10408,31070,-10408, - 31002,-10608,31002,-10608,31002,-10608,31002,-10608, - 30933,-10808,30933,-10808,30933,-10808,30933,-10808, - 30862,-11008,30862,-11008,30862,-11008,30862,-11008, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30717,-11406,30717,-11406,30717,-11406,30717,-11406, - 30643,-11605,30643,-11605,30643,-11605,30643,-11605, - 30567,-11802,30567,-11802,30567,-11802,30567,-11802, - 30490,-12000,30490,-12000,30490,-12000,30490,-12000, - 30412,-12197,30412,-12197,30412,-12197,30412,-12197, - 30333,-12393,30333,-12393,30333,-12393,30333,-12393, - 30252,-12589,30252,-12589,30252,-12589,30252,-12589, - 30170,-12784,30170,-12784,30170,-12784,30170,-12784, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 30002,-13173,30002,-13173,30002,-13173,30002,-13173, - 29916,-13367,29916,-13367,29916,-13367,29916,-13367, - 29829,-13560,29829,-13560,29829,-13560,29829,-13560, - 29741,-13752,29741,-13752,29741,-13752,29741,-13752, - 29652,-13944,29652,-13944,29652,-13944,29652,-13944, - 29561,-14136,29561,-14136,29561,-14136,29561,-14136, - 29469,-14327,29469,-14327,29469,-14327,29469,-14327, - 29376,-14517,29376,-14517,29376,-14517,29376,-14517, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29185,-14895,29185,-14895,29185,-14895,29185,-14895, - 29089,-15084,29089,-15084,29089,-15084,29089,-15084, - 28990,-15271,28990,-15271,28990,-15271,28990,-15271, - 28891,-15458,28891,-15458,28891,-15458,28891,-15458, - 28791,-15645,28791,-15645,28791,-15645,28791,-15645, - 28689,-15831,28689,-15831,28689,-15831,28689,-15831, - 28586,-16016,28586,-16016,28586,-16016,28586,-16016, - 28482,-16200,28482,-16200,28482,-16200,28482,-16200, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28270,-16567,28270,-16567,28270,-16567,28270,-16567, - 28162,-16749,28162,-16749,28162,-16749,28162,-16749, - 28054,-16931,28054,-16931,28054,-16931,28054,-16931, - 27943,-17112,27943,-17112,27943,-17112,27943,-17112, - 27832,-17292,27832,-17292,27832,-17292,27832,-17292, - 27720,-17472,27720,-17472,27720,-17472,27720,-17472, - 27606,-17651,27606,-17651,27606,-17651,27606,-17651, - 27492,-17829,27492,-17829,27492,-17829,27492,-17829, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27259,-18183,27259,-18183,27259,-18183,27259,-18183, - 27141,-18359,27141,-18359,27141,-18359,27141,-18359, - 27022,-18534,27022,-18534,27022,-18534,27022,-18534, - 26901,-18708,26901,-18708,26901,-18708,26901,-18708, - 26780,-18882,26780,-18882,26780,-18882,26780,-18882, - 26657,-19054,26657,-19054,26657,-19054,26657,-19054, - 26533,-19226,26533,-19226,26533,-19226,26533,-19226, - 26409,-19397,26409,-19397,26409,-19397,26409,-19397, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 26156,-19737,26156,-19737,26156,-19737,26156,-19737, - 26028,-19906,26028,-19906,26028,-19906,26028,-19906, - 25898,-20074,25898,-20074,25898,-20074,25898,-20074, - 25768,-20241,25768,-20241,25768,-20241,25768,-20241, - 25637,-20407,25637,-20407,25637,-20407,25637,-20407, - 25504,-20572,25504,-20572,25504,-20572,25504,-20572, - 25371,-20736,25371,-20736,25371,-20736,25371,-20736, - 25236,-20900,25236,-20900,25236,-20900,25236,-20900, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24964,-21225,24964,-21225,24964,-21225,24964,-21225, - 24826,-21385,24826,-21385,24826,-21385,24826,-21385, - 24687,-21546,24687,-21546,24687,-21546,24687,-21546, - 24548,-21705,24548,-21705,24548,-21705,24548,-21705, - 24407,-21863,24407,-21863,24407,-21863,24407,-21863, - 24265,-22020,24265,-22020,24265,-22020,24265,-22020, - 24122,-22177,24122,-22177,24122,-22177,24122,-22177, - 23978,-22332,23978,-22332,23978,-22332,23978,-22332, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23688,-22640,23688,-22640,23688,-22640,23688,-22640, - 23541,-22793,23541,-22793,23541,-22793,23541,-22793, - 23393,-22945,23393,-22945,23393,-22945,23393,-22945, - 23244,-23095,23244,-23095,23244,-23095,23244,-23095, - 23094,-23245,23094,-23245,23094,-23245,23094,-23245, - 22944,-23394,22944,-23394,22944,-23394,22944,-23394, - 22792,-23542,22792,-23542,22792,-23542,22792,-23542, - 22639,-23689,22639,-23689,22639,-23689,22639,-23689, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22331,-23979,22331,-23979,22331,-23979,22331,-23979, - 22176,-24123,22176,-24123,22176,-24123,22176,-24123, - 22019,-24266,22019,-24266,22019,-24266,22019,-24266, - 21862,-24408,21862,-24408,21862,-24408,21862,-24408, - 21704,-24549,21704,-24549,21704,-24549,21704,-24549, - 21545,-24688,21545,-24688,21545,-24688,21545,-24688, - 21384,-24827,21384,-24827,21384,-24827,21384,-24827, - 21224,-24965,21224,-24965,21224,-24965,21224,-24965, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20899,-25237,20899,-25237,20899,-25237,20899,-25237, - 20735,-25372,20735,-25372,20735,-25372,20735,-25372, - 20571,-25505,20571,-25505,20571,-25505,20571,-25505, - 20406,-25638,20406,-25638,20406,-25638,20406,-25638, - 20240,-25769,20240,-25769,20240,-25769,20240,-25769, - 20073,-25899,20073,-25899,20073,-25899,20073,-25899, - 19905,-26029,19905,-26029,19905,-26029,19905,-26029, - 19736,-26157,19736,-26157,19736,-26157,19736,-26157, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19396,-26410,19396,-26410,19396,-26410,19396,-26410, - 19225,-26534,19225,-26534,19225,-26534,19225,-26534, - 19053,-26658,19053,-26658,19053,-26658,19053,-26658, - 18881,-26781,18881,-26781,18881,-26781,18881,-26781, - 18707,-26902,18707,-26902,18707,-26902,18707,-26902, - 18533,-27023,18533,-27023,18533,-27023,18533,-27023, - 18358,-27142,18358,-27142,18358,-27142,18358,-27142, - 18182,-27260,18182,-27260,18182,-27260,18182,-27260, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17828,-27493,17828,-27493,17828,-27493,17828,-27493, - 17650,-27607,17650,-27607,17650,-27607,17650,-27607, - 17471,-27721,17471,-27721,17471,-27721,17471,-27721, - 17291,-27833,17291,-27833,17291,-27833,17291,-27833, - 17111,-27944,17111,-27944,17111,-27944,17111,-27944, - 16930,-28055,16930,-28055,16930,-28055,16930,-28055, - 16748,-28163,16748,-28163,16748,-28163,16748,-28163, - 16566,-28271,16566,-28271,16566,-28271,16566,-28271, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16199,-28483,16199,-28483,16199,-28483,16199,-28483, - 16015,-28587,16015,-28587,16015,-28587,16015,-28587, - 15830,-28690,15830,-28690,15830,-28690,15830,-28690, - 15644,-28792,15644,-28792,15644,-28792,15644,-28792, - 15457,-28892,15457,-28892,15457,-28892,15457,-28892, - 15270,-28991,15270,-28991,15270,-28991,15270,-28991, - 15083,-29090,15083,-29090,15083,-29090,15083,-29090, - 14894,-29186,14894,-29186,14894,-29186,14894,-29186, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14516,-29377,14516,-29377,14516,-29377,14516,-29377, - 14326,-29470,14326,-29470,14326,-29470,14326,-29470, - 14135,-29562,14135,-29562,14135,-29562,14135,-29562, - 13943,-29653,13943,-29653,13943,-29653,13943,-29653, - 13751,-29742,13751,-29742,13751,-29742,13751,-29742, - 13559,-29830,13559,-29830,13559,-29830,13559,-29830, - 13366,-29917,13366,-29917,13366,-29917,13366,-29917, - 13172,-30003,13172,-30003,13172,-30003,13172,-30003, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12783,-30171,12783,-30171,12783,-30171,12783,-30171, - 12588,-30253,12588,-30253,12588,-30253,12588,-30253, - 12392,-30334,12392,-30334,12392,-30334,12392,-30334, - 12196,-30413,12196,-30413,12196,-30413,12196,-30413, - 11999,-30491,11999,-30491,11999,-30491,11999,-30491, - 11801,-30568,11801,-30568,11801,-30568,11801,-30568, - 11604,-30644,11604,-30644,11604,-30644,11604,-30644, - 11405,-30718,11405,-30718,11405,-30718,11405,-30718, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 11007,-30863,11007,-30863,11007,-30863,11007,-30863, - 10807,-30934,10807,-30934,10807,-30934,10807,-30934, - 10607,-31003,10607,-31003,10607,-31003,10607,-31003, - 10407,-31071,10407,-31071,10407,-31071,10407,-31071, - 10206,-31137,10206,-31137,10206,-31137,10206,-31137, - 10004,-31203,10004,-31203,10004,-31203,10004,-31203, - 9802,-31267,9802,-31267,9802,-31267,9802,-31267, - 9600,-31330,9600,-31330,9600,-31330,9600,-31330, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 9194,-31451,9194,-31451,9194,-31451,9194,-31451, - 8991,-31510,8991,-31510,8991,-31510,8991,-31510, - 8787,-31567,8787,-31567,8787,-31567,8787,-31567, - 8582,-31623,8582,-31623,8582,-31623,8582,-31623, - 8378,-31678,8378,-31678,8378,-31678,8378,-31678, - 8173,-31732,8173,-31732,8173,-31732,8173,-31732, - 7968,-31784,7968,-31784,7968,-31784,7968,-31784, - 7762,-31835,7762,-31835,7762,-31835,7762,-31835, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7350,-31932,7350,-31932,7350,-31932,7350,-31932, - 7143,-31979,7143,-31979,7143,-31979,7143,-31979, - 6936,-32025,6936,-32025,6936,-32025,6936,-32025, - 6729,-32069,6729,-32069,6729,-32069,6729,-32069, - 6522,-32112,6522,-32112,6522,-32112,6522,-32112, - 6314,-32153,6314,-32153,6314,-32153,6314,-32153, - 6106,-32193,6106,-32193,6106,-32193,6106,-32193, - 5898,-32232,5898,-32232,5898,-32232,5898,-32232, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5481,-32306,5481,-32306,5481,-32306,5481,-32306, - 5272,-32341,5272,-32341,5272,-32341,5272,-32341, - 5063,-32374,5063,-32374,5063,-32374,5063,-32374, - 4853,-32406,4853,-32406,4853,-32406,4853,-32406, - 4644,-32437,4644,-32437,4644,-32437,4644,-32437, - 4434,-32466,4434,-32466,4434,-32466,4434,-32466, - 4224,-32494,4224,-32494,4224,-32494,4224,-32494, - 4014,-32521,4014,-32521,4014,-32521,4014,-32521, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3593,-32570,3593,-32570,3593,-32570,3593,-32570, - 3382,-32592,3382,-32592,3382,-32592,3382,-32592, - 3172,-32614,3172,-32614,3172,-32614,3172,-32614, - 2961,-32633,2961,-32633,2961,-32633,2961,-32633, - 2750,-32652,2750,-32652,2750,-32652,2750,-32652, - 2539,-32669,2539,-32669,2539,-32669,2539,-32669, - 2327,-32685,2327,-32685,2327,-32685,2327,-32685, - 2116,-32699,2116,-32699,2116,-32699,2116,-32699, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1693,-32724,1693,-32724,1693,-32724,1693,-32724, - 1482,-32734,1482,-32734,1482,-32734,1482,-32734, - 1270,-32743,1270,-32743,1270,-32743,1270,-32743, - 1058,-32750,1058,-32750,1058,-32750,1058,-32750, - 847,-32757,847,-32757,847,-32757,847,-32757, - 635,-32761,635,-32761,635,-32761,635,-32761, - 423,-32765,423,-32765,423,-32765,423,-32765, - 211,-32767,211,-32767,211,-32767,211,-32767, - 0,-32767,0,-32767,0,-32767,0,-32767, - -212,-32767,-212,-32767,-212,-32767,-212,-32767, - -424,-32765,-424,-32765,-424,-32765,-424,-32765, - -636,-32761,-636,-32761,-636,-32761,-636,-32761, - -848,-32757,-848,-32757,-848,-32757,-848,-32757, - -1059,-32750,-1059,-32750,-1059,-32750,-1059,-32750, - -1271,-32743,-1271,-32743,-1271,-32743,-1271,-32743, - -1483,-32734,-1483,-32734,-1483,-32734,-1483,-32734, - -1694,-32724,-1694,-32724,-1694,-32724,-1694,-32724, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2117,-32699,-2117,-32699,-2117,-32699,-2117,-32699, - -2328,-32685,-2328,-32685,-2328,-32685,-2328,-32685, - -2540,-32669,-2540,-32669,-2540,-32669,-2540,-32669, - -2751,-32652,-2751,-32652,-2751,-32652,-2751,-32652, - -2962,-32633,-2962,-32633,-2962,-32633,-2962,-32633, - -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614, - -3383,-32592,-3383,-32592,-3383,-32592,-3383,-32592, - -3594,-32570,-3594,-32570,-3594,-32570,-3594,-32570, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4015,-32521,-4015,-32521,-4015,-32521,-4015,-32521, - -4225,-32494,-4225,-32494,-4225,-32494,-4225,-32494, - -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466, - -4645,-32437,-4645,-32437,-4645,-32437,-4645,-32437, - -4854,-32406,-4854,-32406,-4854,-32406,-4854,-32406, - -5064,-32374,-5064,-32374,-5064,-32374,-5064,-32374, - -5273,-32341,-5273,-32341,-5273,-32341,-5273,-32341, - -5482,-32306,-5482,-32306,-5482,-32306,-5482,-32306, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -5899,-32232,-5899,-32232,-5899,-32232,-5899,-32232, - -6107,-32193,-6107,-32193,-6107,-32193,-6107,-32193, - -6315,-32153,-6315,-32153,-6315,-32153,-6315,-32153, - -6523,-32112,-6523,-32112,-6523,-32112,-6523,-32112, - -6730,-32069,-6730,-32069,-6730,-32069,-6730,-32069, - -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025, - -7144,-31979,-7144,-31979,-7144,-31979,-7144,-31979, - -7351,-31932,-7351,-31932,-7351,-31932,-7351,-31932, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -7763,-31835,-7763,-31835,-7763,-31835,-7763,-31835, - -7969,-31784,-7969,-31784,-7969,-31784,-7969,-31784, - -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732, - -8379,-31678,-8379,-31678,-8379,-31678,-8379,-31678, - -8583,-31623,-8583,-31623,-8583,-31623,-8583,-31623, - -8788,-31567,-8788,-31567,-8788,-31567,-8788,-31567, - -8992,-31510,-8992,-31510,-8992,-31510,-8992,-31510, - -9195,-31451,-9195,-31451,-9195,-31451,-9195,-31451, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9601,-31330,-9601,-31330,-9601,-31330,-9601,-31330, - -9803,-31267,-9803,-31267,-9803,-31267,-9803,-31267, - -10005,-31203,-10005,-31203,-10005,-31203,-10005,-31203, - -10207,-31137,-10207,-31137,-10207,-31137,-10207,-31137, - -10408,-31071,-10408,-31071,-10408,-31071,-10408,-31071, - -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003, - -10808,-30934,-10808,-30934,-10808,-30934,-10808,-30934, - -11008,-30863,-11008,-30863,-11008,-30863,-11008,-30863, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11406,-30718,-11406,-30718,-11406,-30718,-11406,-30718, - -11605,-30644,-11605,-30644,-11605,-30644,-11605,-30644, - -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568, - -12000,-30491,-12000,-30491,-12000,-30491,-12000,-30491, - -12197,-30413,-12197,-30413,-12197,-30413,-12197,-30413, - -12393,-30334,-12393,-30334,-12393,-30334,-12393,-30334, - -12589,-30253,-12589,-30253,-12589,-30253,-12589,-30253, - -12784,-30171,-12784,-30171,-12784,-30171,-12784,-30171, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13173,-30003,-13173,-30003,-13173,-30003,-13173,-30003, - -13367,-29917,-13367,-29917,-13367,-29917,-13367,-29917, - -13560,-29830,-13560,-29830,-13560,-29830,-13560,-29830, - -13752,-29742,-13752,-29742,-13752,-29742,-13752,-29742, - -13944,-29653,-13944,-29653,-13944,-29653,-13944,-29653, - -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562, - -14327,-29470,-14327,-29470,-14327,-29470,-14327,-29470, - -14517,-29377,-14517,-29377,-14517,-29377,-14517,-29377, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -14895,-29186,-14895,-29186,-14895,-29186,-14895,-29186, - -15084,-29090,-15084,-29090,-15084,-29090,-15084,-29090, - -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991, - -15458,-28892,-15458,-28892,-15458,-28892,-15458,-28892, - -15645,-28792,-15645,-28792,-15645,-28792,-15645,-28792, - -15831,-28690,-15831,-28690,-15831,-28690,-15831,-28690, - -16016,-28587,-16016,-28587,-16016,-28587,-16016,-28587, - -16200,-28483,-16200,-28483,-16200,-28483,-16200,-28483 - }; -static int16_t twb972[323*2*4] = {32764,-424,32764,-424,32764,-424,32764,-424, - 32756,-848,32756,-848,32756,-848,32756,-848, - 32742,-1271,32742,-1271,32742,-1271,32742,-1271, - 32723,-1694,32723,-1694,32723,-1694,32723,-1694, - 32698,-2117,32698,-2117,32698,-2117,32698,-2117, - 32668,-2540,32668,-2540,32668,-2540,32668,-2540, - 32632,-2962,32632,-2962,32632,-2962,32632,-2962, - 32591,-3383,32591,-3383,32591,-3383,32591,-3383, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32493,-4225,32493,-4225,32493,-4225,32493,-4225, - 32436,-4645,32436,-4645,32436,-4645,32436,-4645, - 32373,-5064,32373,-5064,32373,-5064,32373,-5064, - 32305,-5482,32305,-5482,32305,-5482,32305,-5482, - 32231,-5899,32231,-5899,32231,-5899,32231,-5899, - 32152,-6315,32152,-6315,32152,-6315,32152,-6315, - 32068,-6730,32068,-6730,32068,-6730,32068,-6730, - 31978,-7144,31978,-7144,31978,-7144,31978,-7144, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31783,-7969,31783,-7969,31783,-7969,31783,-7969, - 31677,-8379,31677,-8379,31677,-8379,31677,-8379, - 31566,-8788,31566,-8788,31566,-8788,31566,-8788, - 31450,-9195,31450,-9195,31450,-9195,31450,-9195, - 31329,-9601,31329,-9601,31329,-9601,31329,-9601, - 31202,-10005,31202,-10005,31202,-10005,31202,-10005, - 31070,-10408,31070,-10408,31070,-10408,31070,-10408, - 30933,-10808,30933,-10808,30933,-10808,30933,-10808, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30643,-11605,30643,-11605,30643,-11605,30643,-11605, - 30490,-12000,30490,-12000,30490,-12000,30490,-12000, - 30333,-12393,30333,-12393,30333,-12393,30333,-12393, - 30170,-12784,30170,-12784,30170,-12784,30170,-12784, - 30002,-13173,30002,-13173,30002,-13173,30002,-13173, - 29829,-13560,29829,-13560,29829,-13560,29829,-13560, - 29652,-13944,29652,-13944,29652,-13944,29652,-13944, - 29469,-14327,29469,-14327,29469,-14327,29469,-14327, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29089,-15084,29089,-15084,29089,-15084,29089,-15084, - 28891,-15458,28891,-15458,28891,-15458,28891,-15458, - 28689,-15831,28689,-15831,28689,-15831,28689,-15831, - 28482,-16200,28482,-16200,28482,-16200,28482,-16200, - 28270,-16567,28270,-16567,28270,-16567,28270,-16567, - 28054,-16931,28054,-16931,28054,-16931,28054,-16931, - 27832,-17292,27832,-17292,27832,-17292,27832,-17292, - 27606,-17651,27606,-17651,27606,-17651,27606,-17651, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27141,-18359,27141,-18359,27141,-18359,27141,-18359, - 26901,-18708,26901,-18708,26901,-18708,26901,-18708, - 26657,-19054,26657,-19054,26657,-19054,26657,-19054, - 26409,-19397,26409,-19397,26409,-19397,26409,-19397, - 26156,-19737,26156,-19737,26156,-19737,26156,-19737, - 25898,-20074,25898,-20074,25898,-20074,25898,-20074, - 25637,-20407,25637,-20407,25637,-20407,25637,-20407, - 25371,-20736,25371,-20736,25371,-20736,25371,-20736, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24826,-21385,24826,-21385,24826,-21385,24826,-21385, - 24548,-21705,24548,-21705,24548,-21705,24548,-21705, - 24265,-22020,24265,-22020,24265,-22020,24265,-22020, - 23978,-22332,23978,-22332,23978,-22332,23978,-22332, - 23688,-22640,23688,-22640,23688,-22640,23688,-22640, - 23393,-22945,23393,-22945,23393,-22945,23393,-22945, - 23094,-23245,23094,-23245,23094,-23245,23094,-23245, - 22792,-23542,22792,-23542,22792,-23542,22792,-23542, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22176,-24123,22176,-24123,22176,-24123,22176,-24123, - 21862,-24408,21862,-24408,21862,-24408,21862,-24408, - 21545,-24688,21545,-24688,21545,-24688,21545,-24688, - 21224,-24965,21224,-24965,21224,-24965,21224,-24965, - 20899,-25237,20899,-25237,20899,-25237,20899,-25237, - 20571,-25505,20571,-25505,20571,-25505,20571,-25505, - 20240,-25769,20240,-25769,20240,-25769,20240,-25769, - 19905,-26029,19905,-26029,19905,-26029,19905,-26029, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19225,-26534,19225,-26534,19225,-26534,19225,-26534, - 18881,-26781,18881,-26781,18881,-26781,18881,-26781, - 18533,-27023,18533,-27023,18533,-27023,18533,-27023, - 18182,-27260,18182,-27260,18182,-27260,18182,-27260, - 17828,-27493,17828,-27493,17828,-27493,17828,-27493, - 17471,-27721,17471,-27721,17471,-27721,17471,-27721, - 17111,-27944,17111,-27944,17111,-27944,17111,-27944, - 16748,-28163,16748,-28163,16748,-28163,16748,-28163, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16015,-28587,16015,-28587,16015,-28587,16015,-28587, - 15644,-28792,15644,-28792,15644,-28792,15644,-28792, - 15270,-28991,15270,-28991,15270,-28991,15270,-28991, - 14894,-29186,14894,-29186,14894,-29186,14894,-29186, - 14516,-29377,14516,-29377,14516,-29377,14516,-29377, - 14135,-29562,14135,-29562,14135,-29562,14135,-29562, - 13751,-29742,13751,-29742,13751,-29742,13751,-29742, - 13366,-29917,13366,-29917,13366,-29917,13366,-29917, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12588,-30253,12588,-30253,12588,-30253,12588,-30253, - 12196,-30413,12196,-30413,12196,-30413,12196,-30413, - 11801,-30568,11801,-30568,11801,-30568,11801,-30568, - 11405,-30718,11405,-30718,11405,-30718,11405,-30718, - 11007,-30863,11007,-30863,11007,-30863,11007,-30863, - 10607,-31003,10607,-31003,10607,-31003,10607,-31003, - 10206,-31137,10206,-31137,10206,-31137,10206,-31137, - 9802,-31267,9802,-31267,9802,-31267,9802,-31267, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 8991,-31510,8991,-31510,8991,-31510,8991,-31510, - 8582,-31623,8582,-31623,8582,-31623,8582,-31623, - 8173,-31732,8173,-31732,8173,-31732,8173,-31732, - 7762,-31835,7762,-31835,7762,-31835,7762,-31835, - 7350,-31932,7350,-31932,7350,-31932,7350,-31932, - 6936,-32025,6936,-32025,6936,-32025,6936,-32025, - 6522,-32112,6522,-32112,6522,-32112,6522,-32112, - 6106,-32193,6106,-32193,6106,-32193,6106,-32193, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5272,-32341,5272,-32341,5272,-32341,5272,-32341, - 4853,-32406,4853,-32406,4853,-32406,4853,-32406, - 4434,-32466,4434,-32466,4434,-32466,4434,-32466, - 4014,-32521,4014,-32521,4014,-32521,4014,-32521, - 3593,-32570,3593,-32570,3593,-32570,3593,-32570, - 3172,-32614,3172,-32614,3172,-32614,3172,-32614, - 2750,-32652,2750,-32652,2750,-32652,2750,-32652, - 2327,-32685,2327,-32685,2327,-32685,2327,-32685, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1482,-32734,1482,-32734,1482,-32734,1482,-32734, - 1058,-32750,1058,-32750,1058,-32750,1058,-32750, - 635,-32761,635,-32761,635,-32761,635,-32761, - 211,-32767,211,-32767,211,-32767,211,-32767, - -212,-32767,-212,-32767,-212,-32767,-212,-32767, - -636,-32761,-636,-32761,-636,-32761,-636,-32761, - -1059,-32750,-1059,-32750,-1059,-32750,-1059,-32750, - -1483,-32734,-1483,-32734,-1483,-32734,-1483,-32734, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2328,-32685,-2328,-32685,-2328,-32685,-2328,-32685, - -2751,-32652,-2751,-32652,-2751,-32652,-2751,-32652, - -3173,-32614,-3173,-32614,-3173,-32614,-3173,-32614, - -3594,-32570,-3594,-32570,-3594,-32570,-3594,-32570, - -4015,-32521,-4015,-32521,-4015,-32521,-4015,-32521, - -4435,-32466,-4435,-32466,-4435,-32466,-4435,-32466, - -4854,-32406,-4854,-32406,-4854,-32406,-4854,-32406, - -5273,-32341,-5273,-32341,-5273,-32341,-5273,-32341, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6107,-32193,-6107,-32193,-6107,-32193,-6107,-32193, - -6523,-32112,-6523,-32112,-6523,-32112,-6523,-32112, - -6937,-32025,-6937,-32025,-6937,-32025,-6937,-32025, - -7351,-31932,-7351,-31932,-7351,-31932,-7351,-31932, - -7763,-31835,-7763,-31835,-7763,-31835,-7763,-31835, - -8174,-31732,-8174,-31732,-8174,-31732,-8174,-31732, - -8583,-31623,-8583,-31623,-8583,-31623,-8583,-31623, - -8992,-31510,-8992,-31510,-8992,-31510,-8992,-31510, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9803,-31267,-9803,-31267,-9803,-31267,-9803,-31267, - -10207,-31137,-10207,-31137,-10207,-31137,-10207,-31137, - -10608,-31003,-10608,-31003,-10608,-31003,-10608,-31003, - -11008,-30863,-11008,-30863,-11008,-30863,-11008,-30863, - -11406,-30718,-11406,-30718,-11406,-30718,-11406,-30718, - -11802,-30568,-11802,-30568,-11802,-30568,-11802,-30568, - -12197,-30413,-12197,-30413,-12197,-30413,-12197,-30413, - -12589,-30253,-12589,-30253,-12589,-30253,-12589,-30253, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13367,-29917,-13367,-29917,-13367,-29917,-13367,-29917, - -13752,-29742,-13752,-29742,-13752,-29742,-13752,-29742, - -14136,-29562,-14136,-29562,-14136,-29562,-14136,-29562, - -14517,-29377,-14517,-29377,-14517,-29377,-14517,-29377, - -14895,-29186,-14895,-29186,-14895,-29186,-14895,-29186, - -15271,-28991,-15271,-28991,-15271,-28991,-15271,-28991, - -15645,-28792,-15645,-28792,-15645,-28792,-15645,-28792, - -16016,-28587,-16016,-28587,-16016,-28587,-16016,-28587, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16749,-28163,-16749,-28163,-16749,-28163,-16749,-28163, - -17112,-27944,-17112,-27944,-17112,-27944,-17112,-27944, - -17472,-27721,-17472,-27721,-17472,-27721,-17472,-27721, - -17829,-27493,-17829,-27493,-17829,-27493,-17829,-27493, - -18183,-27260,-18183,-27260,-18183,-27260,-18183,-27260, - -18534,-27023,-18534,-27023,-18534,-27023,-18534,-27023, - -18882,-26781,-18882,-26781,-18882,-26781,-18882,-26781, - -19226,-26534,-19226,-26534,-19226,-26534,-19226,-26534, - -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284, - -19906,-26029,-19906,-26029,-19906,-26029,-19906,-26029, - -20241,-25769,-20241,-25769,-20241,-25769,-20241,-25769, - -20572,-25505,-20572,-25505,-20572,-25505,-20572,-25505, - -20900,-25237,-20900,-25237,-20900,-25237,-20900,-25237, - -21225,-24965,-21225,-24965,-21225,-24965,-21225,-24965, - -21546,-24688,-21546,-24688,-21546,-24688,-21546,-24688, - -21863,-24408,-21863,-24408,-21863,-24408,-21863,-24408, - -22177,-24123,-22177,-24123,-22177,-24123,-22177,-24123, - -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834, - -22793,-23542,-22793,-23542,-22793,-23542,-22793,-23542, - -23095,-23245,-23095,-23245,-23095,-23245,-23095,-23245, - -23394,-22945,-23394,-22945,-23394,-22945,-23394,-22945, - -23689,-22640,-23689,-22640,-23689,-22640,-23689,-22640, - -23979,-22332,-23979,-22332,-23979,-22332,-23979,-22332, - -24266,-22020,-24266,-22020,-24266,-22020,-24266,-22020, - -24549,-21705,-24549,-21705,-24549,-21705,-24549,-21705, - -24827,-21385,-24827,-21385,-24827,-21385,-24827,-21385, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25372,-20736,-25372,-20736,-25372,-20736,-25372,-20736, - -25638,-20407,-25638,-20407,-25638,-20407,-25638,-20407, - -25899,-20074,-25899,-20074,-25899,-20074,-25899,-20074, - -26157,-19737,-26157,-19737,-26157,-19737,-26157,-19737, - -26410,-19397,-26410,-19397,-26410,-19397,-26410,-19397, - -26658,-19054,-26658,-19054,-26658,-19054,-26658,-19054, - -26902,-18708,-26902,-18708,-26902,-18708,-26902,-18708, - -27142,-18359,-27142,-18359,-27142,-18359,-27142,-18359, - -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006, - -27607,-17651,-27607,-17651,-27607,-17651,-27607,-17651, - -27833,-17292,-27833,-17292,-27833,-17292,-27833,-17292, - -28055,-16931,-28055,-16931,-28055,-16931,-28055,-16931, - -28271,-16567,-28271,-16567,-28271,-16567,-28271,-16567, - -28483,-16200,-28483,-16200,-28483,-16200,-28483,-16200, - -28690,-15831,-28690,-15831,-28690,-15831,-28690,-15831, - -28892,-15458,-28892,-15458,-28892,-15458,-28892,-15458, - -29090,-15084,-29090,-15084,-29090,-15084,-29090,-15084, - -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706, - -29470,-14327,-29470,-14327,-29470,-14327,-29470,-14327, - -29653,-13944,-29653,-13944,-29653,-13944,-29653,-13944, - -29830,-13560,-29830,-13560,-29830,-13560,-29830,-13560, - -30003,-13173,-30003,-13173,-30003,-13173,-30003,-13173, - -30171,-12784,-30171,-12784,-30171,-12784,-30171,-12784, - -30334,-12393,-30334,-12393,-30334,-12393,-30334,-12393, - -30491,-12000,-30491,-12000,-30491,-12000,-30491,-12000, - -30644,-11605,-30644,-11605,-30644,-11605,-30644,-11605, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -30934,-10808,-30934,-10808,-30934,-10808,-30934,-10808, - -31071,-10408,-31071,-10408,-31071,-10408,-31071,-10408, - -31203,-10005,-31203,-10005,-31203,-10005,-31203,-10005, - -31330,-9601,-31330,-9601,-31330,-9601,-31330,-9601, - -31451,-9195,-31451,-9195,-31451,-9195,-31451,-9195, - -31567,-8788,-31567,-8788,-31567,-8788,-31567,-8788, - -31678,-8379,-31678,-8379,-31678,-8379,-31678,-8379, - -31784,-7969,-31784,-7969,-31784,-7969,-31784,-7969, - -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557, - -31979,-7144,-31979,-7144,-31979,-7144,-31979,-7144, - -32069,-6730,-32069,-6730,-32069,-6730,-32069,-6730, - -32153,-6315,-32153,-6315,-32153,-6315,-32153,-6315, - -32232,-5899,-32232,-5899,-32232,-5899,-32232,-5899, - -32306,-5482,-32306,-5482,-32306,-5482,-32306,-5482, - -32374,-5064,-32374,-5064,-32374,-5064,-32374,-5064, - -32437,-4645,-32437,-4645,-32437,-4645,-32437,-4645, - -32494,-4225,-32494,-4225,-32494,-4225,-32494,-4225, - -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805, - -32592,-3383,-32592,-3383,-32592,-3383,-32592,-3383, - -32633,-2962,-32633,-2962,-32633,-2962,-32633,-2962, - -32669,-2540,-32669,-2540,-32669,-2540,-32669,-2540, - -32699,-2117,-32699,-2117,-32699,-2117,-32699,-2117, - -32724,-1694,-32724,-1694,-32724,-1694,-32724,-1694, - -32743,-1271,-32743,-1271,-32743,-1271,-32743,-1271, - -32757,-848,-32757,-848,-32757,-848,-32757,-848, - -32765,-424,-32765,-424,-32765,-424,-32765,-424, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32765,423,-32765,423,-32765,423,-32765,423, - -32757,847,-32757,847,-32757,847,-32757,847, - -32743,1270,-32743,1270,-32743,1270,-32743,1270, - -32724,1693,-32724,1693,-32724,1693,-32724,1693, - -32699,2116,-32699,2116,-32699,2116,-32699,2116, - -32669,2539,-32669,2539,-32669,2539,-32669,2539, - -32633,2961,-32633,2961,-32633,2961,-32633,2961, - -32592,3382,-32592,3382,-32592,3382,-32592,3382, - -32546,3804,-32546,3804,-32546,3804,-32546,3804, - -32494,4224,-32494,4224,-32494,4224,-32494,4224, - -32437,4644,-32437,4644,-32437,4644,-32437,4644, - -32374,5063,-32374,5063,-32374,5063,-32374,5063, - -32306,5481,-32306,5481,-32306,5481,-32306,5481, - -32232,5898,-32232,5898,-32232,5898,-32232,5898, - -32153,6314,-32153,6314,-32153,6314,-32153,6314, - -32069,6729,-32069,6729,-32069,6729,-32069,6729, - -31979,7143,-31979,7143,-31979,7143,-31979,7143, - -31884,7556,-31884,7556,-31884,7556,-31884,7556, - -31784,7968,-31784,7968,-31784,7968,-31784,7968, - -31678,8378,-31678,8378,-31678,8378,-31678,8378, - -31567,8787,-31567,8787,-31567,8787,-31567,8787, - -31451,9194,-31451,9194,-31451,9194,-31451,9194, - -31330,9600,-31330,9600,-31330,9600,-31330,9600, - -31203,10004,-31203,10004,-31203,10004,-31203,10004, - -31071,10407,-31071,10407,-31071,10407,-31071,10407, - -30934,10807,-30934,10807,-30934,10807,-30934,10807, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30644,11604,-30644,11604,-30644,11604,-30644,11604, - -30491,11999,-30491,11999,-30491,11999,-30491,11999, - -30334,12392,-30334,12392,-30334,12392,-30334,12392, - -30171,12783,-30171,12783,-30171,12783,-30171,12783, - -30003,13172,-30003,13172,-30003,13172,-30003,13172, - -29830,13559,-29830,13559,-29830,13559,-29830,13559, - -29653,13943,-29653,13943,-29653,13943,-29653,13943, - -29470,14326,-29470,14326,-29470,14326,-29470,14326, - -29282,14705,-29282,14705,-29282,14705,-29282,14705, - -29090,15083,-29090,15083,-29090,15083,-29090,15083, - -28892,15457,-28892,15457,-28892,15457,-28892,15457, - -28690,15830,-28690,15830,-28690,15830,-28690,15830, - -28483,16199,-28483,16199,-28483,16199,-28483,16199, - -28271,16566,-28271,16566,-28271,16566,-28271,16566, - -28055,16930,-28055,16930,-28055,16930,-28055,16930, - -27833,17291,-27833,17291,-27833,17291,-27833,17291, - -27607,17650,-27607,17650,-27607,17650,-27607,17650, - -27377,18005,-27377,18005,-27377,18005,-27377,18005, - -27142,18358,-27142,18358,-27142,18358,-27142,18358, - -26902,18707,-26902,18707,-26902,18707,-26902,18707, - -26658,19053,-26658,19053,-26658,19053,-26658,19053, - -26410,19396,-26410,19396,-26410,19396,-26410,19396, - -26157,19736,-26157,19736,-26157,19736,-26157,19736, - -25899,20073,-25899,20073,-25899,20073,-25899,20073, - -25638,20406,-25638,20406,-25638,20406,-25638,20406, - -25372,20735,-25372,20735,-25372,20735,-25372,20735, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24827,21384,-24827,21384,-24827,21384,-24827,21384, - -24549,21704,-24549,21704,-24549,21704,-24549,21704, - -24266,22019,-24266,22019,-24266,22019,-24266,22019, - -23979,22331,-23979,22331,-23979,22331,-23979,22331, - -23689,22639,-23689,22639,-23689,22639,-23689,22639, - -23394,22944,-23394,22944,-23394,22944,-23394,22944, - -23095,23244,-23095,23244,-23095,23244,-23095,23244, - -22793,23541,-22793,23541,-22793,23541,-22793,23541, - -22487,23833,-22487,23833,-22487,23833,-22487,23833, - -22177,24122,-22177,24122,-22177,24122,-22177,24122, - -21863,24407,-21863,24407,-21863,24407,-21863,24407, - -21546,24687,-21546,24687,-21546,24687,-21546,24687, - -21225,24964,-21225,24964,-21225,24964,-21225,24964, - -20900,25236,-20900,25236,-20900,25236,-20900,25236, - -20572,25504,-20572,25504,-20572,25504,-20572,25504, - -20241,25768,-20241,25768,-20241,25768,-20241,25768, - -19906,26028,-19906,26028,-19906,26028,-19906,26028, - -19568,26283,-19568,26283,-19568,26283,-19568,26283, - -19226,26533,-19226,26533,-19226,26533,-19226,26533, - -18882,26780,-18882,26780,-18882,26780,-18882,26780, - -18534,27022,-18534,27022,-18534,27022,-18534,27022, - -18183,27259,-18183,27259,-18183,27259,-18183,27259, - -17829,27492,-17829,27492,-17829,27492,-17829,27492, - -17472,27720,-17472,27720,-17472,27720,-17472,27720, - -17112,27943,-17112,27943,-17112,27943,-17112,27943, - -16749,28162,-16749,28162,-16749,28162,-16749,28162 - }; + +static int16_t twa972[323*2*4]; +static int16_t twb972[323*2*4]; void dft972(int16_t *x,int16_t *y,unsigned char scale_flag) // 324 x 3 { @@ -15798,750 +8331,8 @@ void dft972(int16_t *x,int16_t *y,unsigned char scale_flag) // 324 x 3 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:359)/1080)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:359)/1080)); -twa2 = zeros(1,2*359); -twb2 = zeros(1,2*359); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa1080[359*2*4] = {"); -for i=1:2:(2*358) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"static int16_t twb1080[359*2*4] = {"); -for i=1:2:(2*358) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fclose(fd); -*/ -static int16_t twa1080[359*2*4] = {32766,-191,32766,-191,32766,-191,32766,-191, - 32764,-382,32764,-382,32764,-382,32764,-382, - 32762,-572,32762,-572,32762,-572,32762,-572, - 32758,-763,32758,-763,32758,-763,32758,-763, - 32753,-954,32753,-954,32753,-954,32753,-954, - 32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32739,-1335,32739,-1335,32739,-1335,32739,-1335, - 32731,-1525,32731,-1525,32731,-1525,32731,-1525, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32699,-2096,32699,-2096,32699,-2096,32699,-2096, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32673,-2476,32673,-2476,32673,-2476,32673,-2476, - 32658,-2666,32658,-2666,32658,-2666,32658,-2666, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32625,-3046,32625,-3046,32625,-3046,32625,-3046, - 32606,-3236,32606,-3236,32606,-3236,32606,-3236, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32567,-3615,32567,-3615,32567,-3615,32567,-3615, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32522,-3994,32522,-3994,32522,-3994,32522,-3994, - 32498,-4183,32498,-4183,32498,-4183,32498,-4183, - 32474,-4372,32474,-4372,32474,-4372,32474,-4372, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32421,-4749,32421,-4749,32421,-4749,32421,-4749, - 32392,-4938,32392,-4938,32392,-4938,32392,-4938, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32333,-5315,32333,-5315,32333,-5315,32333,-5315, - 32301,-5503,32301,-5503,32301,-5503,32301,-5503, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32235,-5878,32235,-5878,32235,-5878,32235,-5878, - 32200,-6066,32200,-6066,32200,-6066,32200,-6066, - 32164,-6253,32164,-6253,32164,-6253,32164,-6253, - 32128,-6440,32128,-6440,32128,-6440,32128,-6440, - 32090,-6627,32090,-6627,32090,-6627,32090,-6627, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 32010,-6999,32010,-6999,32010,-6999,32010,-6999, - 31969,-7186,31969,-7186,31969,-7186,31969,-7186, - 31927,-7371,31927,-7371,31927,-7371,31927,-7371, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31839,-7742,31839,-7742,31839,-7742,31839,-7742, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31747,-8112,31747,-8112,31747,-8112,31747,-8112, - 31699,-8297,31699,-8297,31699,-8297,31699,-8297, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31600,-8665,31600,-8665,31600,-8665,31600,-8665, - 31549,-8849,31549,-8849,31549,-8849,31549,-8849, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31444,-9215,31444,-9215,31444,-9215,31444,-9215, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31335,-9581,31335,-9581,31335,-9581,31335,-9581, - 31278,-9763,31278,-9763,31278,-9763,31278,-9763, - 31221,-9945,31221,-9945,31221,-9945,31221,-9945, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31103,-10307,31103,-10307,31103,-10307,31103,-10307, - 31043,-10488,31043,-10488,31043,-10488,31043,-10488, - 30981,-10668,30981,-10668,30981,-10668,30981,-10668, - 30919,-10848,30919,-10848,30919,-10848,30919,-10848, - 30855,-11028,30855,-11028,30855,-11028,30855,-11028, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30725,-11386,30725,-11386,30725,-11386,30725,-11386, - 30658,-11565,30658,-11565,30658,-11565,30658,-11565, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30521,-11921,30521,-11921,30521,-11921,30521,-11921, - 30451,-12098,30451,-12098,30451,-12098,30451,-12098, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 30309,-12452,30309,-12452,30309,-12452,30309,-12452, - 30236,-12628,30236,-12628,30236,-12628,30236,-12628, - 30162,-12804,30162,-12804,30162,-12804,30162,-12804, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 30011,-13154,30011,-13154,30011,-13154,30011,-13154, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29856,-13502,29856,-13502,29856,-13502,29856,-13502, - 29777,-13675,29777,-13675,29777,-13675,29777,-13675, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29615,-14021,29615,-14021,29615,-14021,29615,-14021, - 29533,-14193,29533,-14193,29533,-14193,29533,-14193, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 29366,-14536,29366,-14536,29366,-14536,29366,-14536, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 29108,-15046,29108,-15046,29108,-15046,29108,-15046, - 29020,-15215,29020,-15215,29020,-15215,29020,-15215, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28841,-15552,28841,-15552,28841,-15552,28841,-15552, - 28750,-15719,28750,-15719,28750,-15719,28750,-15719, - 28658,-15886,28658,-15886,28658,-15886,28658,-15886, - 28565,-16053,28565,-16053,28565,-16053,28565,-16053, - 28471,-16219,28471,-16219,28471,-16219,28471,-16219, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28281,-16549,28281,-16549,28281,-16549,28281,-16549, - 28184,-16713,28184,-16713,28184,-16713,28184,-16713, - 28086,-16877,28086,-16877,28086,-16877,28086,-16877, - 27988,-17040,27988,-17040,27988,-17040,27988,-17040, - 27888,-17202,27888,-17202,27888,-17202,27888,-17202, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27686,-17526,27686,-17526,27686,-17526,27686,-17526, - 27584,-17687,27584,-17687,27584,-17687,27584,-17687, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27271,-18165,27271,-18165,27271,-18165,27271,-18165, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 27058,-18481,27058,-18481,27058,-18481,27058,-18481, - 26950,-18638,26950,-18638,26950,-18638,26950,-18638, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26731,-18951,26731,-18951,26731,-18951,26731,-18951, - 26620,-19106,26620,-19106,26620,-19106,26620,-19106, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26396,-19414,26396,-19414,26396,-19414,26396,-19414, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 26168,-19720,26168,-19720,26168,-19720,26168,-19720, - 26053,-19872,26053,-19872,26053,-19872,26053,-19872, - 25937,-20023,25937,-20023,25937,-20023,25937,-20023, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25702,-20324,25702,-20324,25702,-20324,25702,-20324, - 25584,-20473,25584,-20473,25584,-20473,25584,-20473, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25344,-20769,25344,-20769,25344,-20769,25344,-20769, - 25223,-20916,25223,-20916,25223,-20916,25223,-20916, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24978,-21208,24978,-21208,24978,-21208,24978,-21208, - 24854,-21353,24854,-21353,24854,-21353,24854,-21353, - 24729,-21498,24729,-21498,24729,-21498,24729,-21498, - 24604,-21641,24604,-21641,24604,-21641,24604,-21641, - 24477,-21784,24477,-21784,24477,-21784,24477,-21784, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24222,-22067,24222,-22067,24222,-22067,24222,-22067, - 24093,-22208,24093,-22208,24093,-22208,24093,-22208, - 23964,-22348,23964,-22348,23964,-22348,23964,-22348, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23702,-22625,23702,-22625,23702,-22625,23702,-22625, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23437,-22899,23437,-22899,23437,-22899,23437,-22899, - 23304,-23035,23304,-23035,23304,-23035,23304,-23035, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 23034,-23305,23034,-23305,23034,-23305,23034,-23305, - 22898,-23438,22898,-23438,22898,-23438,22898,-23438, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 22624,-23703,22624,-23703,22624,-23703,22624,-23703, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22347,-23965,22347,-23965,22347,-23965,22347,-23965, - 22207,-24094,22207,-24094,22207,-24094,22207,-24094, - 22066,-24223,22066,-24223,22066,-24223,22066,-24223, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21783,-24478,21783,-24478,21783,-24478,21783,-24478, - 21640,-24605,21640,-24605,21640,-24605,21640,-24605, - 21497,-24730,21497,-24730,21497,-24730,21497,-24730, - 21352,-24855,21352,-24855,21352,-24855,21352,-24855, - 21207,-24979,21207,-24979,21207,-24979,21207,-24979, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20915,-25224,20915,-25224,20915,-25224,20915,-25224, - 20768,-25345,20768,-25345,20768,-25345,20768,-25345, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20472,-25585,20472,-25585,20472,-25585,20472,-25585, - 20323,-25703,20323,-25703,20323,-25703,20323,-25703, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 20022,-25938,20022,-25938,20022,-25938,20022,-25938, - 19871,-26054,19871,-26054,19871,-26054,19871,-26054, - 19719,-26169,19719,-26169,19719,-26169,19719,-26169, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19413,-26397,19413,-26397,19413,-26397,19413,-26397, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 19105,-26621,19105,-26621,19105,-26621,19105,-26621, - 18950,-26732,18950,-26732,18950,-26732,18950,-26732, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18637,-26951,18637,-26951,18637,-26951,18637,-26951, - 18480,-27059,18480,-27059,18480,-27059,18480,-27059, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 18164,-27272,18164,-27272,18164,-27272,18164,-27272, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17686,-27585,17686,-27585,17686,-27585,17686,-27585, - 17525,-27687,17525,-27687,17525,-27687,17525,-27687, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 17201,-27889,17201,-27889,17201,-27889,17201,-27889, - 17039,-27989,17039,-27989,17039,-27989,17039,-27989, - 16876,-28087,16876,-28087,16876,-28087,16876,-28087, - 16712,-28185,16712,-28185,16712,-28185,16712,-28185, - 16548,-28282,16548,-28282,16548,-28282,16548,-28282, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16218,-28472,16218,-28472,16218,-28472,16218,-28472, - 16052,-28566,16052,-28566,16052,-28566,16052,-28566, - 15885,-28659,15885,-28659,15885,-28659,15885,-28659, - 15718,-28751,15718,-28751,15718,-28751,15718,-28751, - 15551,-28842,15551,-28842,15551,-28842,15551,-28842, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 15214,-29021,15214,-29021,15214,-29021,15214,-29021, - 15045,-29109,15045,-29109,15045,-29109,15045,-29109, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14535,-29367,14535,-29367,14535,-29367,14535,-29367, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 14192,-29534,14192,-29534,14192,-29534,14192,-29534, - 14020,-29616,14020,-29616,14020,-29616,14020,-29616, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13674,-29778,13674,-29778,13674,-29778,13674,-29778, - 13501,-29857,13501,-29857,13501,-29857,13501,-29857, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 13153,-30012,13153,-30012,13153,-30012,13153,-30012, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12803,-30163,12803,-30163,12803,-30163,12803,-30163, - 12627,-30237,12627,-30237,12627,-30237,12627,-30237, - 12451,-30310,12451,-30310,12451,-30310,12451,-30310, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 12097,-30452,12097,-30452,12097,-30452,12097,-30452, - 11920,-30522,11920,-30522,11920,-30522,11920,-30522, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11564,-30659,11564,-30659,11564,-30659,11564,-30659, - 11385,-30726,11385,-30726,11385,-30726,11385,-30726, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 11027,-30856,11027,-30856,11027,-30856,11027,-30856, - 10847,-30920,10847,-30920,10847,-30920,10847,-30920, - 10667,-30982,10667,-30982,10667,-30982,10667,-30982, - 10487,-31044,10487,-31044,10487,-31044,10487,-31044, - 10306,-31104,10306,-31104,10306,-31104,10306,-31104, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9944,-31222,9944,-31222,9944,-31222,9944,-31222, - 9762,-31279,9762,-31279,9762,-31279,9762,-31279, - 9580,-31336,9580,-31336,9580,-31336,9580,-31336, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 9214,-31445,9214,-31445,9214,-31445,9214,-31445, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 8848,-31550,8848,-31550,8848,-31550,8848,-31550, - 8664,-31601,8664,-31601,8664,-31601,8664,-31601, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8296,-31700,8296,-31700,8296,-31700,8296,-31700, - 8111,-31748,8111,-31748,8111,-31748,8111,-31748, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7741,-31840,7741,-31840,7741,-31840,7741,-31840, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7370,-31928,7370,-31928,7370,-31928,7370,-31928, - 7185,-31970,7185,-31970,7185,-31970,7185,-31970, - 6998,-32011,6998,-32011,6998,-32011,6998,-32011, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6626,-32091,6626,-32091,6626,-32091,6626,-32091, - 6439,-32129,6439,-32129,6439,-32129,6439,-32129, - 6252,-32165,6252,-32165,6252,-32165,6252,-32165, - 6065,-32201,6065,-32201,6065,-32201,6065,-32201, - 5877,-32236,5877,-32236,5877,-32236,5877,-32236, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5502,-32302,5502,-32302,5502,-32302,5502,-32302, - 5314,-32334,5314,-32334,5314,-32334,5314,-32334, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4937,-32393,4937,-32393,4937,-32393,4937,-32393, - 4748,-32422,4748,-32422,4748,-32422,4748,-32422, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 4371,-32475,4371,-32475,4371,-32475,4371,-32475, - 4182,-32499,4182,-32499,4182,-32499,4182,-32499, - 3993,-32523,3993,-32523,3993,-32523,3993,-32523, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3614,-32568,3614,-32568,3614,-32568,3614,-32568, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3235,-32607,3235,-32607,3235,-32607,3235,-32607, - 3045,-32626,3045,-32626,3045,-32626,3045,-32626, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2665,-32659,2665,-32659,2665,-32659,2665,-32659, - 2475,-32674,2475,-32674,2475,-32674,2475,-32674, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 2095,-32700,2095,-32700,2095,-32700,2095,-32700, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1524,-32732,1524,-32732,1524,-32732,1524,-32732, - 1334,-32740,1334,-32740,1334,-32740,1334,-32740, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 953,-32754,953,-32754,953,-32754,953,-32754, - 762,-32759,762,-32759,762,-32759,762,-32759, - 571,-32763,571,-32763,571,-32763,571,-32763, - 381,-32765,381,-32765,381,-32765,381,-32765, - 190,-32767,190,-32767,190,-32767,190,-32767, - 0,-32767,0,-32767,0,-32767,0,-32767, - -191,-32767,-191,-32767,-191,-32767,-191,-32767, - -382,-32765,-382,-32765,-382,-32765,-382,-32765, - -572,-32763,-572,-32763,-572,-32763,-572,-32763, - -763,-32759,-763,-32759,-763,-32759,-763,-32759, - -954,-32754,-954,-32754,-954,-32754,-954,-32754, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1335,-32740,-1335,-32740,-1335,-32740,-1335,-32740, - -1525,-32732,-1525,-32732,-1525,-32732,-1525,-32732, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2096,-32700,-2096,-32700,-2096,-32700,-2096,-32700, - -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688, - -2476,-32674,-2476,-32674,-2476,-32674,-2476,-32674, - -2666,-32659,-2666,-32659,-2666,-32659,-2666,-32659, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3046,-32626,-3046,-32626,-3046,-32626,-3046,-32626, - -3236,-32607,-3236,-32607,-3236,-32607,-3236,-32607, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3615,-32568,-3615,-32568,-3615,-32568,-3615,-32568, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -3994,-32523,-3994,-32523,-3994,-32523,-3994,-32523, - -4183,-32499,-4183,-32499,-4183,-32499,-4183,-32499, - -4372,-32475,-4372,-32475,-4372,-32475,-4372,-32475, - -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449, - -4749,-32422,-4749,-32422,-4749,-32422,-4749,-32422, - -4938,-32393,-4938,-32393,-4938,-32393,-4938,-32393, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5315,-32334,-5315,-32334,-5315,-32334,-5315,-32334, - -5503,-32302,-5503,-32302,-5503,-32302,-5503,-32302, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -5878,-32236,-5878,-32236,-5878,-32236,-5878,-32236, - -6066,-32201,-6066,-32201,-6066,-32201,-6066,-32201, - -6253,-32165,-6253,-32165,-6253,-32165,-6253,-32165, - -6440,-32129,-6440,-32129,-6440,-32129,-6440,-32129, - -6627,-32091,-6627,-32091,-6627,-32091,-6627,-32091, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -6999,-32011,-6999,-32011,-6999,-32011,-6999,-32011, - -7186,-31970,-7186,-31970,-7186,-31970,-7186,-31970, - -7371,-31928,-7371,-31928,-7371,-31928,-7371,-31928, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -7742,-31840,-7742,-31840,-7742,-31840,-7742,-31840, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8112,-31748,-8112,-31748,-8112,-31748,-8112,-31748, - -8297,-31700,-8297,-31700,-8297,-31700,-8297,-31700, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8665,-31601,-8665,-31601,-8665,-31601,-8665,-31601, - -8849,-31550,-8849,-31550,-8849,-31550,-8849,-31550, - -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498, - -9215,-31445,-9215,-31445,-9215,-31445,-9215,-31445, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9581,-31336,-9581,-31336,-9581,-31336,-9581,-31336, - -9763,-31279,-9763,-31279,-9763,-31279,-9763,-31279, - -9945,-31222,-9945,-31222,-9945,-31222,-9945,-31222, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10307,-31104,-10307,-31104,-10307,-31104,-10307,-31104, - -10488,-31044,-10488,-31044,-10488,-31044,-10488,-31044, - -10668,-30982,-10668,-30982,-10668,-30982,-10668,-30982, - -10848,-30920,-10848,-30920,-10848,-30920,-10848,-30920, - -11028,-30856,-11028,-30856,-11028,-30856,-11028,-30856, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11386,-30726,-11386,-30726,-11386,-30726,-11386,-30726, - -11565,-30659,-11565,-30659,-11565,-30659,-11565,-30659, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -11921,-30522,-11921,-30522,-11921,-30522,-11921,-30522, - -12098,-30452,-12098,-30452,-12098,-30452,-12098,-30452, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12452,-30310,-12452,-30310,-12452,-30310,-12452,-30310, - -12628,-30237,-12628,-30237,-12628,-30237,-12628,-30237, - -12804,-30163,-12804,-30163,-12804,-30163,-12804,-30163, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13154,-30012,-13154,-30012,-13154,-30012,-13154,-30012, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13502,-29857,-13502,-29857,-13502,-29857,-13502,-29857, - -13675,-29778,-13675,-29778,-13675,-29778,-13675,-29778, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14021,-29616,-14021,-29616,-14021,-29616,-14021,-29616, - -14193,-29534,-14193,-29534,-14193,-29534,-14193,-29534, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -14536,-29367,-14536,-29367,-14536,-29367,-14536,-29367, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15046,-29109,-15046,-29109,-15046,-29109,-15046,-29109, - -15215,-29021,-15215,-29021,-15215,-29021,-15215,-29021, - -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932, - -15552,-28842,-15552,-28842,-15552,-28842,-15552,-28842, - -15719,-28751,-15719,-28751,-15719,-28751,-15719,-28751, - -15886,-28659,-15886,-28659,-15886,-28659,-15886,-28659, - -16053,-28566,-16053,-28566,-16053,-28566,-16053,-28566, - -16219,-28472,-16219,-28472,-16219,-28472,-16219,-28472 - }; -static int16_t twb1080[359*2*4] = {32764,-382,32764,-382,32764,-382,32764,-382, - 32758,-763,32758,-763,32758,-763,32758,-763, - 32747,-1144,32747,-1144,32747,-1144,32747,-1144, - 32731,-1525,32731,-1525,32731,-1525,32731,-1525, - 32711,-1906,32711,-1906,32711,-1906,32711,-1906, - 32687,-2286,32687,-2286,32687,-2286,32687,-2286, - 32658,-2666,32658,-2666,32658,-2666,32658,-2666, - 32625,-3046,32625,-3046,32625,-3046,32625,-3046, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32545,-3805,32545,-3805,32545,-3805,32545,-3805, - 32498,-4183,32498,-4183,32498,-4183,32498,-4183, - 32448,-4561,32448,-4561,32448,-4561,32448,-4561, - 32392,-4938,32392,-4938,32392,-4938,32392,-4938, - 32333,-5315,32333,-5315,32333,-5315,32333,-5315, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32200,-6066,32200,-6066,32200,-6066,32200,-6066, - 32128,-6440,32128,-6440,32128,-6440,32128,-6440, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31969,-7186,31969,-7186,31969,-7186,31969,-7186, - 31883,-7557,31883,-7557,31883,-7557,31883,-7557, - 31793,-7928,31793,-7928,31793,-7928,31793,-7928, - 31699,-8297,31699,-8297,31699,-8297,31699,-8297, - 31600,-8665,31600,-8665,31600,-8665,31600,-8665, - 31497,-9032,31497,-9032,31497,-9032,31497,-9032, - 31390,-9398,31390,-9398,31390,-9398,31390,-9398, - 31278,-9763,31278,-9763,31278,-9763,31278,-9763, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31043,-10488,31043,-10488,31043,-10488,31043,-10488, - 30919,-10848,30919,-10848,30919,-10848,30919,-10848, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30658,-11565,30658,-11565,30658,-11565,30658,-11565, - 30521,-11921,30521,-11921,30521,-11921,30521,-11921, - 30381,-12275,30381,-12275,30381,-12275,30381,-12275, - 30236,-12628,30236,-12628,30236,-12628,30236,-12628, - 30087,-12979,30087,-12979,30087,-12979,30087,-12979, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29777,-13675,29777,-13675,29777,-13675,29777,-13675, - 29615,-14021,29615,-14021,29615,-14021,29615,-14021, - 29450,-14365,29450,-14365,29450,-14365,29450,-14365, - 29281,-14706,29281,-14706,29281,-14706,29281,-14706, - 29108,-15046,29108,-15046,29108,-15046,29108,-15046, - 28931,-15384,28931,-15384,28931,-15384,28931,-15384, - 28750,-15719,28750,-15719,28750,-15719,28750,-15719, - 28565,-16053,28565,-16053,28565,-16053,28565,-16053, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28184,-16713,28184,-16713,28184,-16713,28184,-16713, - 27988,-17040,27988,-17040,27988,-17040,27988,-17040, - 27787,-17364,27787,-17364,27787,-17364,27787,-17364, - 27584,-17687,27584,-17687,27584,-17687,27584,-17687, - 27376,-18006,27376,-18006,27376,-18006,27376,-18006, - 27165,-18324,27165,-18324,27165,-18324,27165,-18324, - 26950,-18638,26950,-18638,26950,-18638,26950,-18638, - 26731,-18951,26731,-18951,26731,-18951,26731,-18951, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26283,-19568,26283,-19568,26283,-19568,26283,-19568, - 26053,-19872,26053,-19872,26053,-19872,26053,-19872, - 25820,-20174,25820,-20174,25820,-20174,25820,-20174, - 25584,-20473,25584,-20473,25584,-20473,25584,-20473, - 25344,-20769,25344,-20769,25344,-20769,25344,-20769, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24854,-21353,24854,-21353,24854,-21353,24854,-21353, - 24604,-21641,24604,-21641,24604,-21641,24604,-21641, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24093,-22208,24093,-22208,24093,-22208,24093,-22208, - 23833,-22487,23833,-22487,23833,-22487,23833,-22487, - 23570,-22762,23570,-22762,23570,-22762,23570,-22762, - 23304,-23035,23304,-23035,23304,-23035,23304,-23035, - 23034,-23305,23034,-23305,23034,-23305,23034,-23305, - 22761,-23571,22761,-23571,22761,-23571,22761,-23571, - 22486,-23834,22486,-23834,22486,-23834,22486,-23834, - 22207,-24094,22207,-24094,22207,-24094,22207,-24094, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21640,-24605,21640,-24605,21640,-24605,21640,-24605, - 21352,-24855,21352,-24855,21352,-24855,21352,-24855, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20768,-25345,20768,-25345,20768,-25345,20768,-25345, - 20472,-25585,20472,-25585,20472,-25585,20472,-25585, - 20173,-25821,20173,-25821,20173,-25821,20173,-25821, - 19871,-26054,19871,-26054,19871,-26054,19871,-26054, - 19567,-26284,19567,-26284,19567,-26284,19567,-26284, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18950,-26732,18950,-26732,18950,-26732,18950,-26732, - 18637,-26951,18637,-26951,18637,-26951,18637,-26951, - 18323,-27166,18323,-27166,18323,-27166,18323,-27166, - 18005,-27377,18005,-27377,18005,-27377,18005,-27377, - 17686,-27585,17686,-27585,17686,-27585,17686,-27585, - 17363,-27788,17363,-27788,17363,-27788,17363,-27788, - 17039,-27989,17039,-27989,17039,-27989,17039,-27989, - 16712,-28185,16712,-28185,16712,-28185,16712,-28185, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16052,-28566,16052,-28566,16052,-28566,16052,-28566, - 15718,-28751,15718,-28751,15718,-28751,15718,-28751, - 15383,-28932,15383,-28932,15383,-28932,15383,-28932, - 15045,-29109,15045,-29109,15045,-29109,15045,-29109, - 14705,-29282,14705,-29282,14705,-29282,14705,-29282, - 14364,-29451,14364,-29451,14364,-29451,14364,-29451, - 14020,-29616,14020,-29616,14020,-29616,14020,-29616, - 13674,-29778,13674,-29778,13674,-29778,13674,-29778, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 12978,-30088,12978,-30088,12978,-30088,12978,-30088, - 12627,-30237,12627,-30237,12627,-30237,12627,-30237, - 12274,-30382,12274,-30382,12274,-30382,12274,-30382, - 11920,-30522,11920,-30522,11920,-30522,11920,-30522, - 11564,-30659,11564,-30659,11564,-30659,11564,-30659, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10847,-30920,10847,-30920,10847,-30920,10847,-30920, - 10487,-31044,10487,-31044,10487,-31044,10487,-31044, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9762,-31279,9762,-31279,9762,-31279,9762,-31279, - 9397,-31391,9397,-31391,9397,-31391,9397,-31391, - 9031,-31498,9031,-31498,9031,-31498,9031,-31498, - 8664,-31601,8664,-31601,8664,-31601,8664,-31601, - 8296,-31700,8296,-31700,8296,-31700,8296,-31700, - 7927,-31794,7927,-31794,7927,-31794,7927,-31794, - 7556,-31884,7556,-31884,7556,-31884,7556,-31884, - 7185,-31970,7185,-31970,7185,-31970,7185,-31970, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6439,-32129,6439,-32129,6439,-32129,6439,-32129, - 6065,-32201,6065,-32201,6065,-32201,6065,-32201, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5314,-32334,5314,-32334,5314,-32334,5314,-32334, - 4937,-32393,4937,-32393,4937,-32393,4937,-32393, - 4560,-32449,4560,-32449,4560,-32449,4560,-32449, - 4182,-32499,4182,-32499,4182,-32499,4182,-32499, - 3804,-32546,3804,-32546,3804,-32546,3804,-32546, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3045,-32626,3045,-32626,3045,-32626,3045,-32626, - 2665,-32659,2665,-32659,2665,-32659,2665,-32659, - 2285,-32688,2285,-32688,2285,-32688,2285,-32688, - 1905,-32712,1905,-32712,1905,-32712,1905,-32712, - 1524,-32732,1524,-32732,1524,-32732,1524,-32732, - 1143,-32748,1143,-32748,1143,-32748,1143,-32748, - 762,-32759,762,-32759,762,-32759,762,-32759, - 381,-32765,381,-32765,381,-32765,381,-32765, - 0,-32767,0,-32767,0,-32767,0,-32767, - -382,-32765,-382,-32765,-382,-32765,-382,-32765, - -763,-32759,-763,-32759,-763,-32759,-763,-32759, - -1144,-32748,-1144,-32748,-1144,-32748,-1144,-32748, - -1525,-32732,-1525,-32732,-1525,-32732,-1525,-32732, - -1906,-32712,-1906,-32712,-1906,-32712,-1906,-32712, - -2286,-32688,-2286,-32688,-2286,-32688,-2286,-32688, - -2666,-32659,-2666,-32659,-2666,-32659,-2666,-32659, - -3046,-32626,-3046,-32626,-3046,-32626,-3046,-32626, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3805,-32546,-3805,-32546,-3805,-32546,-3805,-32546, - -4183,-32499,-4183,-32499,-4183,-32499,-4183,-32499, - -4561,-32449,-4561,-32449,-4561,-32449,-4561,-32449, - -4938,-32393,-4938,-32393,-4938,-32393,-4938,-32393, - -5315,-32334,-5315,-32334,-5315,-32334,-5315,-32334, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6066,-32201,-6066,-32201,-6066,-32201,-6066,-32201, - -6440,-32129,-6440,-32129,-6440,-32129,-6440,-32129, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7186,-31970,-7186,-31970,-7186,-31970,-7186,-31970, - -7557,-31884,-7557,-31884,-7557,-31884,-7557,-31884, - -7928,-31794,-7928,-31794,-7928,-31794,-7928,-31794, - -8297,-31700,-8297,-31700,-8297,-31700,-8297,-31700, - -8665,-31601,-8665,-31601,-8665,-31601,-8665,-31601, - -9032,-31498,-9032,-31498,-9032,-31498,-9032,-31498, - -9398,-31391,-9398,-31391,-9398,-31391,-9398,-31391, - -9763,-31279,-9763,-31279,-9763,-31279,-9763,-31279, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10488,-31044,-10488,-31044,-10488,-31044,-10488,-31044, - -10848,-30920,-10848,-30920,-10848,-30920,-10848,-30920, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11565,-30659,-11565,-30659,-11565,-30659,-11565,-30659, - -11921,-30522,-11921,-30522,-11921,-30522,-11921,-30522, - -12275,-30382,-12275,-30382,-12275,-30382,-12275,-30382, - -12628,-30237,-12628,-30237,-12628,-30237,-12628,-30237, - -12979,-30088,-12979,-30088,-12979,-30088,-12979,-30088, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13675,-29778,-13675,-29778,-13675,-29778,-13675,-29778, - -14021,-29616,-14021,-29616,-14021,-29616,-14021,-29616, - -14365,-29451,-14365,-29451,-14365,-29451,-14365,-29451, - -14706,-29282,-14706,-29282,-14706,-29282,-14706,-29282, - -15046,-29109,-15046,-29109,-15046,-29109,-15046,-29109, - -15384,-28932,-15384,-28932,-15384,-28932,-15384,-28932, - -15719,-28751,-15719,-28751,-15719,-28751,-15719,-28751, - -16053,-28566,-16053,-28566,-16053,-28566,-16053,-28566, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16713,-28185,-16713,-28185,-16713,-28185,-16713,-28185, - -17040,-27989,-17040,-27989,-17040,-27989,-17040,-27989, - -17364,-27788,-17364,-27788,-17364,-27788,-17364,-27788, - -17687,-27585,-17687,-27585,-17687,-27585,-17687,-27585, - -18006,-27377,-18006,-27377,-18006,-27377,-18006,-27377, - -18324,-27166,-18324,-27166,-18324,-27166,-18324,-27166, - -18638,-26951,-18638,-26951,-18638,-26951,-18638,-26951, - -18951,-26732,-18951,-26732,-18951,-26732,-18951,-26732, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19568,-26284,-19568,-26284,-19568,-26284,-19568,-26284, - -19872,-26054,-19872,-26054,-19872,-26054,-19872,-26054, - -20174,-25821,-20174,-25821,-20174,-25821,-20174,-25821, - -20473,-25585,-20473,-25585,-20473,-25585,-20473,-25585, - -20769,-25345,-20769,-25345,-20769,-25345,-20769,-25345, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21353,-24855,-21353,-24855,-21353,-24855,-21353,-24855, - -21641,-24605,-21641,-24605,-21641,-24605,-21641,-24605, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22208,-24094,-22208,-24094,-22208,-24094,-22208,-24094, - -22487,-23834,-22487,-23834,-22487,-23834,-22487,-23834, - -22762,-23571,-22762,-23571,-22762,-23571,-22762,-23571, - -23035,-23305,-23035,-23305,-23035,-23305,-23035,-23305, - -23305,-23035,-23305,-23035,-23305,-23035,-23305,-23035, - -23571,-22762,-23571,-22762,-23571,-22762,-23571,-22762, - -23834,-22487,-23834,-22487,-23834,-22487,-23834,-22487, - -24094,-22208,-24094,-22208,-24094,-22208,-24094,-22208, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -24605,-21641,-24605,-21641,-24605,-21641,-24605,-21641, - -24855,-21353,-24855,-21353,-24855,-21353,-24855,-21353, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25345,-20769,-25345,-20769,-25345,-20769,-25345,-20769, - -25585,-20473,-25585,-20473,-25585,-20473,-25585,-20473, - -25821,-20174,-25821,-20174,-25821,-20174,-25821,-20174, - -26054,-19872,-26054,-19872,-26054,-19872,-26054,-19872, - -26284,-19568,-26284,-19568,-26284,-19568,-26284,-19568, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26732,-18951,-26732,-18951,-26732,-18951,-26732,-18951, - -26951,-18638,-26951,-18638,-26951,-18638,-26951,-18638, - -27166,-18324,-27166,-18324,-27166,-18324,-27166,-18324, - -27377,-18006,-27377,-18006,-27377,-18006,-27377,-18006, - -27585,-17687,-27585,-17687,-27585,-17687,-27585,-17687, - -27788,-17364,-27788,-17364,-27788,-17364,-27788,-17364, - -27989,-17040,-27989,-17040,-27989,-17040,-27989,-17040, - -28185,-16713,-28185,-16713,-28185,-16713,-28185,-16713, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28566,-16053,-28566,-16053,-28566,-16053,-28566,-16053, - -28751,-15719,-28751,-15719,-28751,-15719,-28751,-15719, - -28932,-15384,-28932,-15384,-28932,-15384,-28932,-15384, - -29109,-15046,-29109,-15046,-29109,-15046,-29109,-15046, - -29282,-14706,-29282,-14706,-29282,-14706,-29282,-14706, - -29451,-14365,-29451,-14365,-29451,-14365,-29451,-14365, - -29616,-14021,-29616,-14021,-29616,-14021,-29616,-14021, - -29778,-13675,-29778,-13675,-29778,-13675,-29778,-13675, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30088,-12979,-30088,-12979,-30088,-12979,-30088,-12979, - -30237,-12628,-30237,-12628,-30237,-12628,-30237,-12628, - -30382,-12275,-30382,-12275,-30382,-12275,-30382,-12275, - -30522,-11921,-30522,-11921,-30522,-11921,-30522,-11921, - -30659,-11565,-30659,-11565,-30659,-11565,-30659,-11565, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -30920,-10848,-30920,-10848,-30920,-10848,-30920,-10848, - -31044,-10488,-31044,-10488,-31044,-10488,-31044,-10488, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31279,-9763,-31279,-9763,-31279,-9763,-31279,-9763, - -31391,-9398,-31391,-9398,-31391,-9398,-31391,-9398, - -31498,-9032,-31498,-9032,-31498,-9032,-31498,-9032, - -31601,-8665,-31601,-8665,-31601,-8665,-31601,-8665, - -31700,-8297,-31700,-8297,-31700,-8297,-31700,-8297, - -31794,-7928,-31794,-7928,-31794,-7928,-31794,-7928, - -31884,-7557,-31884,-7557,-31884,-7557,-31884,-7557, - -31970,-7186,-31970,-7186,-31970,-7186,-31970,-7186, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32129,-6440,-32129,-6440,-32129,-6440,-32129,-6440, - -32201,-6066,-32201,-6066,-32201,-6066,-32201,-6066, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32334,-5315,-32334,-5315,-32334,-5315,-32334,-5315, - -32393,-4938,-32393,-4938,-32393,-4938,-32393,-4938, - -32449,-4561,-32449,-4561,-32449,-4561,-32449,-4561, - -32499,-4183,-32499,-4183,-32499,-4183,-32499,-4183, - -32546,-3805,-32546,-3805,-32546,-3805,-32546,-3805, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32626,-3046,-32626,-3046,-32626,-3046,-32626,-3046, - -32659,-2666,-32659,-2666,-32659,-2666,-32659,-2666, - -32688,-2286,-32688,-2286,-32688,-2286,-32688,-2286, - -32712,-1906,-32712,-1906,-32712,-1906,-32712,-1906, - -32732,-1525,-32732,-1525,-32732,-1525,-32732,-1525, - -32748,-1144,-32748,-1144,-32748,-1144,-32748,-1144, - -32759,-763,-32759,-763,-32759,-763,-32759,-763, - -32765,-382,-32765,-382,-32765,-382,-32765,-382, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32765,381,-32765,381,-32765,381,-32765,381, - -32759,762,-32759,762,-32759,762,-32759,762, - -32748,1143,-32748,1143,-32748,1143,-32748,1143, - -32732,1524,-32732,1524,-32732,1524,-32732,1524, - -32712,1905,-32712,1905,-32712,1905,-32712,1905, - -32688,2285,-32688,2285,-32688,2285,-32688,2285, - -32659,2665,-32659,2665,-32659,2665,-32659,2665, - -32626,3045,-32626,3045,-32626,3045,-32626,3045, - -32588,3425,-32588,3425,-32588,3425,-32588,3425, - -32546,3804,-32546,3804,-32546,3804,-32546,3804, - -32499,4182,-32499,4182,-32499,4182,-32499,4182, - -32449,4560,-32449,4560,-32449,4560,-32449,4560, - -32393,4937,-32393,4937,-32393,4937,-32393,4937, - -32334,5314,-32334,5314,-32334,5314,-32334,5314, - -32270,5689,-32270,5689,-32270,5689,-32270,5689, - -32201,6065,-32201,6065,-32201,6065,-32201,6065, - -32129,6439,-32129,6439,-32129,6439,-32129,6439, - -32051,6812,-32051,6812,-32051,6812,-32051,6812, - -31970,7185,-31970,7185,-31970,7185,-31970,7185, - -31884,7556,-31884,7556,-31884,7556,-31884,7556, - -31794,7927,-31794,7927,-31794,7927,-31794,7927, - -31700,8296,-31700,8296,-31700,8296,-31700,8296, - -31601,8664,-31601,8664,-31601,8664,-31601,8664, - -31498,9031,-31498,9031,-31498,9031,-31498,9031, - -31391,9397,-31391,9397,-31391,9397,-31391,9397, - -31279,9762,-31279,9762,-31279,9762,-31279,9762, - -31164,10125,-31164,10125,-31164,10125,-31164,10125, - -31044,10487,-31044,10487,-31044,10487,-31044,10487, - -30920,10847,-30920,10847,-30920,10847,-30920,10847, - -30791,11206,-30791,11206,-30791,11206,-30791,11206, - -30659,11564,-30659,11564,-30659,11564,-30659,11564, - -30522,11920,-30522,11920,-30522,11920,-30522,11920, - -30382,12274,-30382,12274,-30382,12274,-30382,12274, - -30237,12627,-30237,12627,-30237,12627,-30237,12627, - -30088,12978,-30088,12978,-30088,12978,-30088,12978, - -29935,13327,-29935,13327,-29935,13327,-29935,13327, - -29778,13674,-29778,13674,-29778,13674,-29778,13674, - -29616,14020,-29616,14020,-29616,14020,-29616,14020, - -29451,14364,-29451,14364,-29451,14364,-29451,14364, - -29282,14705,-29282,14705,-29282,14705,-29282,14705, - -29109,15045,-29109,15045,-29109,15045,-29109,15045, - -28932,15383,-28932,15383,-28932,15383,-28932,15383, - -28751,15718,-28751,15718,-28751,15718,-28751,15718, - -28566,16052,-28566,16052,-28566,16052,-28566,16052, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -28185,16712,-28185,16712,-28185,16712,-28185,16712, - -27989,17039,-27989,17039,-27989,17039,-27989,17039, - -27788,17363,-27788,17363,-27788,17363,-27788,17363, - -27585,17686,-27585,17686,-27585,17686,-27585,17686, - -27377,18005,-27377,18005,-27377,18005,-27377,18005, - -27166,18323,-27166,18323,-27166,18323,-27166,18323, - -26951,18637,-26951,18637,-26951,18637,-26951,18637, - -26732,18950,-26732,18950,-26732,18950,-26732,18950, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -26284,19567,-26284,19567,-26284,19567,-26284,19567, - -26054,19871,-26054,19871,-26054,19871,-26054,19871, - -25821,20173,-25821,20173,-25821,20173,-25821,20173, - -25585,20472,-25585,20472,-25585,20472,-25585,20472, - -25345,20768,-25345,20768,-25345,20768,-25345,20768, - -25101,21062,-25101,21062,-25101,21062,-25101,21062, - -24855,21352,-24855,21352,-24855,21352,-24855,21352, - -24605,21640,-24605,21640,-24605,21640,-24605,21640, - -24351,21925,-24351,21925,-24351,21925,-24351,21925, - -24094,22207,-24094,22207,-24094,22207,-24094,22207, - -23834,22486,-23834,22486,-23834,22486,-23834,22486, - -23571,22761,-23571,22761,-23571,22761,-23571,22761, - -23305,23034,-23305,23034,-23305,23034,-23305,23034, - -23035,23304,-23035,23304,-23035,23304,-23035,23304, - -22762,23570,-22762,23570,-22762,23570,-22762,23570, - -22487,23833,-22487,23833,-22487,23833,-22487,23833, - -22208,24093,-22208,24093,-22208,24093,-22208,24093, - -21926,24350,-21926,24350,-21926,24350,-21926,24350, - -21641,24604,-21641,24604,-21641,24604,-21641,24604, - -21353,24854,-21353,24854,-21353,24854,-21353,24854, - -21063,25100,-21063,25100,-21063,25100,-21063,25100, - -20769,25344,-20769,25344,-20769,25344,-20769,25344, - -20473,25584,-20473,25584,-20473,25584,-20473,25584, - -20174,25820,-20174,25820,-20174,25820,-20174,25820, - -19872,26053,-19872,26053,-19872,26053,-19872,26053, - -19568,26283,-19568,26283,-19568,26283,-19568,26283, - -19260,26509,-19260,26509,-19260,26509,-19260,26509, - -18951,26731,-18951,26731,-18951,26731,-18951,26731, - -18638,26950,-18638,26950,-18638,26950,-18638,26950, - -18324,27165,-18324,27165,-18324,27165,-18324,27165, - -18006,27376,-18006,27376,-18006,27376,-18006,27376, - -17687,27584,-17687,27584,-17687,27584,-17687,27584, - -17364,27787,-17364,27787,-17364,27787,-17364,27787, - -17040,27988,-17040,27988,-17040,27988,-17040,27988, - -16713,28184,-16713,28184,-16713,28184,-16713,28184 - }; +static int16_t twa1080[359*2*4]; +static int16_t twb1080[359*2*4]; void dft1080(int16_t *x,int16_t *y,unsigned char scale_flag) // 360 x 3 { @@ -16591,906 +8382,9 @@ void dft1080(int16_t *x,int16_t *y,unsigned char scale_flag) // 360 x 3 }; -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(1:287)/1152)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(1:287)/1152)); -twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(1:287)/1152)); -twa2 = zeros(1,2*287); -twb2 = zeros(1,2*287); -twc2 = zeros(1,2*287); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -twc2(1:2:end) = real(twc); -twc2(2:2:end) = imag(twc); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t twa1152[287*2*4] = {"); -for i=1:2:(2*286) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1),twa2(i),twa2(i+1)); -fprintf(fd,"\nstatic int16_t twb1152[287*2*4] = {"); -for i=1:2:(2*286) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1),twb2(i),twb2(i+1)); -fprintf(fd,"\nstatic int16_t twc1152[287*2*4] = {"); -for i=1:2:(2*286) - fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d,\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -end -i=i+2; -fprintf(fd,"%d,%d,%d,%d,%d,%d,%d,%d};\n",twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1),twc2(i),twc2(i+1)); -fclose(fd); -*/ -static int16_t twa1152[287*2*4] = {32766,-179,32766,-179,32766,-179,32766,-179, - 32765,-358,32765,-358,32765,-358,32765,-358, - 32762,-537,32762,-537,32762,-537,32762,-537, - 32759,-715,32759,-715,32759,-715,32759,-715, - 32754,-894,32754,-894,32754,-894,32754,-894, - 32749,-1073,32749,-1073,32749,-1073,32749,-1073, - 32743,-1251,32743,-1251,32743,-1251,32743,-1251, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32727,-1608,32727,-1608,32727,-1608,32727,-1608, - 32718,-1787,32718,-1787,32718,-1787,32718,-1787, - 32708,-1965,32708,-1965,32708,-1965,32708,-1965, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32684,-2322,32684,-2322,32684,-2322,32684,-2322, - 32671,-2500,32671,-2500,32671,-2500,32671,-2500, - 32657,-2678,32657,-2678,32657,-2678,32657,-2678, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32626,-3034,32626,-3034,32626,-3034,32626,-3034, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32591,-3390,32591,-3390,32591,-3390,32591,-3390, - 32572,-3568,32572,-3568,32572,-3568,32572,-3568, - 32552,-3745,32552,-3745,32552,-3745,32552,-3745, - 32531,-3923,32531,-3923,32531,-3923,32531,-3923, - 32509,-4100,32509,-4100,32509,-4100,32509,-4100, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32462,-4455,32462,-4455,32462,-4455,32462,-4455, - 32438,-4632,32438,-4632,32438,-4632,32438,-4632, - 32412,-4808,32412,-4808,32412,-4808,32412,-4808, - 32385,-4985,32385,-4985,32385,-4985,32385,-4985, - 32357,-5162,32357,-5162,32357,-5162,32357,-5162, - 32329,-5338,32329,-5338,32329,-5338,32329,-5338, - 32299,-5514,32299,-5514,32299,-5514,32299,-5514, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32237,-5866,32237,-5866,32237,-5866,32237,-5866, - 32205,-6042,32205,-6042,32205,-6042,32205,-6042, - 32171,-6218,32171,-6218,32171,-6218,32171,-6218, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32102,-6568,32102,-6568,32102,-6568,32102,-6568, - 32065,-6743,32065,-6743,32065,-6743,32065,-6743, - 32028,-6918,32028,-6918,32028,-6918,32028,-6918, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31951,-7267,31951,-7267,31951,-7267,31951,-7267, - 31911,-7441,31911,-7441,31911,-7441,31911,-7441, - 31869,-7615,31869,-7615,31869,-7615,31869,-7615, - 31827,-7789,31827,-7789,31827,-7789,31827,-7789, - 31785,-7962,31785,-7962,31785,-7962,31785,-7962, - 31741,-8135,31741,-8135,31741,-8135,31741,-8135, - 31696,-8308,31696,-8308,31696,-8308,31696,-8308, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31603,-8654,31603,-8654,31603,-8654,31603,-8654, - 31556,-8826,31556,-8826,31556,-8826,31556,-8826, - 31507,-8998,31507,-8998,31507,-8998,31507,-8998, - 31457,-9170,31457,-9170,31457,-9170,31457,-9170, - 31407,-9341,31407,-9341,31407,-9341,31407,-9341, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31303,-9683,31303,-9683,31303,-9683,31303,-9683, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31196,-10024,31196,-10024,31196,-10024,31196,-10024, - 31141,-10194,31141,-10194,31141,-10194,31141,-10194, - 31085,-10364,31085,-10364,31085,-10364,31085,-10364, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30970,-10702,30970,-10702,30970,-10702,30970,-10702, - 30911,-10871,30911,-10871,30911,-10871,30911,-10871, - 30851,-11039,30851,-11039,30851,-11039,30851,-11039, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30729,-11375,30729,-11375,30729,-11375,30729,-11375, - 30666,-11543,30666,-11543,30666,-11543,30666,-11543, - 30603,-11710,30603,-11710,30603,-11710,30603,-11710, - 30539,-11877,30539,-11877,30539,-11877,30539,-11877, - 30473,-12043,30473,-12043,30473,-12043,30473,-12043, - 30407,-12209,30407,-12209,30407,-12209,30407,-12209, - 30340,-12375,30340,-12375,30340,-12375,30340,-12375, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30203,-12705,30203,-12705,30203,-12705,30203,-12705, - 30134,-12869,30134,-12869,30134,-12869,30134,-12869, - 30063,-13034,30063,-13034,30063,-13034,30063,-13034, - 29992,-13197,29992,-13197,29992,-13197,29992,-13197, - 29919,-13361,29919,-13361,29919,-13361,29919,-13361, - 29846,-13524,29846,-13524,29846,-13524,29846,-13524, - 29772,-13686,29772,-13686,29772,-13686,29772,-13686, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29621,-14010,29621,-14010,29621,-14010,29621,-14010, - 29544,-14172,29544,-14172,29544,-14172,29544,-14172, - 29466,-14332,29466,-14332,29466,-14332,29466,-14332, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29308,-14653,29308,-14653,29308,-14653,29308,-14653, - 29227,-14813,29227,-14813,29227,-14813,29227,-14813, - 29146,-14972,29146,-14972,29146,-14972,29146,-14972, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28981,-15289,28981,-15289,28981,-15289,28981,-15289, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28813,-15604,28813,-15604,28813,-15604,28813,-15604, - 28727,-15761,28727,-15761,28727,-15761,28727,-15761, - 28641,-15918,28641,-15918,28641,-15918,28641,-15918, - 28554,-16073,28554,-16073,28554,-16073,28554,-16073, - 28465,-16229,28465,-16229,28465,-16229,28465,-16229, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28287,-16539,28287,-16539,28287,-16539,28287,-16539, - 28196,-16693,28196,-16693,28196,-16693,28196,-16693, - 28105,-16846,28105,-16846,28105,-16846,28105,-16846, - 28012,-16999,28012,-16999,28012,-16999,28012,-16999, - 27919,-17152,27919,-17152,27919,-17152,27919,-17152, - 27825,-17304,27825,-17304,27825,-17304,27825,-17304, - 27731,-17455,27731,-17455,27731,-17455,27731,-17455, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27538,-17757,27538,-17757,27538,-17757,27538,-17757, - 27441,-17907,27441,-17907,27441,-17907,27441,-17907, - 27343,-18056,27343,-18056,27343,-18056,27343,-18056, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 27145,-18353,27145,-18353,27145,-18353,27145,-18353, - 27044,-18501,27044,-18501,27044,-18501,27044,-18501, - 26943,-18648,26943,-18648,26943,-18648,26943,-18648, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26738,-18941,26738,-18941,26738,-18941,26738,-18941, - 26634,-19087,26634,-19087,26634,-19087,26634,-19087, - 26530,-19232,26530,-19232,26530,-19232,26530,-19232, - 26424,-19376,26424,-19376,26424,-19376,26424,-19376, - 26318,-19520,26318,-19520,26318,-19520,26318,-19520, - 26211,-19663,26211,-19663,26211,-19663,26211,-19663, - 26104,-19806,26104,-19806,26104,-19806,26104,-19806, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25886,-20089,25886,-20089,25886,-20089,25886,-20089, - 25776,-20230,25776,-20230,25776,-20230,25776,-20230, - 25665,-20370,25665,-20370,25665,-20370,25665,-20370, - 25554,-20510,25554,-20510,25554,-20510,25554,-20510, - 25442,-20649,25442,-20649,25442,-20649,25442,-20649, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 25215,-20926,25215,-20926,25215,-20926,25215,-20926, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24985,-21199,24985,-21199,24985,-21199,24985,-21199, - 24869,-21335,24869,-21335,24869,-21335,24869,-21335, - 24753,-21471,24753,-21471,24753,-21471,24753,-21471, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24517,-21739,24517,-21739,24517,-21739,24517,-21739, - 24398,-21873,24398,-21873,24398,-21873,24398,-21873, - 24278,-22005,24278,-22005,24278,-22005,24278,-22005, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 24037,-22269,24037,-22269,24037,-22269,24037,-22269, - 23915,-22400,23915,-22400,23915,-22400,23915,-22400, - 23792,-22530,23792,-22530,23792,-22530,23792,-22530, - 23669,-22659,23669,-22659,23669,-22659,23669,-22659, - 23545,-22788,23545,-22788,23545,-22788,23545,-22788, - 23421,-22916,23421,-22916,23421,-22916,23421,-22916, - 23295,-23044,23295,-23044,23295,-23044,23295,-23044, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 23043,-23296,23043,-23296,23043,-23296,23043,-23296, - 22915,-23422,22915,-23422,22915,-23422,22915,-23422, - 22787,-23546,22787,-23546,22787,-23546,22787,-23546, - 22658,-23670,22658,-23670,22658,-23670,22658,-23670, - 22529,-23793,22529,-23793,22529,-23793,22529,-23793, - 22399,-23916,22399,-23916,22399,-23916,22399,-23916, - 22268,-24038,22268,-24038,22268,-24038,22268,-24038, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 22004,-24279,22004,-24279,22004,-24279,22004,-24279, - 21872,-24399,21872,-24399,21872,-24399,21872,-24399, - 21738,-24518,21738,-24518,21738,-24518,21738,-24518, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21470,-24754,21470,-24754,21470,-24754,21470,-24754, - 21334,-24870,21334,-24870,21334,-24870,21334,-24870, - 21198,-24986,21198,-24986,21198,-24986,21198,-24986, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20925,-25216,20925,-25216,20925,-25216,20925,-25216, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 20648,-25443,20648,-25443,20648,-25443,20648,-25443, - 20509,-25555,20509,-25555,20509,-25555,20509,-25555, - 20369,-25666,20369,-25666,20369,-25666,20369,-25666, - 20229,-25777,20229,-25777,20229,-25777,20229,-25777, - 20088,-25887,20088,-25887,20088,-25887,20088,-25887, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19805,-26105,19805,-26105,19805,-26105,19805,-26105, - 19662,-26212,19662,-26212,19662,-26212,19662,-26212, - 19519,-26319,19519,-26319,19519,-26319,19519,-26319, - 19375,-26425,19375,-26425,19375,-26425,19375,-26425, - 19231,-26531,19231,-26531,19231,-26531,19231,-26531, - 19086,-26635,19086,-26635,19086,-26635,19086,-26635, - 18940,-26739,18940,-26739,18940,-26739,18940,-26739, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18647,-26944,18647,-26944,18647,-26944,18647,-26944, - 18500,-27045,18500,-27045,18500,-27045,18500,-27045, - 18352,-27146,18352,-27146,18352,-27146,18352,-27146, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 18055,-27344,18055,-27344,18055,-27344,18055,-27344, - 17906,-27442,17906,-27442,17906,-27442,17906,-27442, - 17756,-27539,17756,-27539,17756,-27539,17756,-27539, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 17454,-27732,17454,-27732,17454,-27732,17454,-27732, - 17303,-27826,17303,-27826,17303,-27826,17303,-27826, - 17151,-27920,17151,-27920,17151,-27920,17151,-27920, - 16998,-28013,16998,-28013,16998,-28013,16998,-28013, - 16845,-28106,16845,-28106,16845,-28106,16845,-28106, - 16692,-28197,16692,-28197,16692,-28197,16692,-28197, - 16538,-28288,16538,-28288,16538,-28288,16538,-28288, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16228,-28466,16228,-28466,16228,-28466,16228,-28466, - 16072,-28555,16072,-28555,16072,-28555,16072,-28555, - 15917,-28642,15917,-28642,15917,-28642,15917,-28642, - 15760,-28728,15760,-28728,15760,-28728,15760,-28728, - 15603,-28814,15603,-28814,15603,-28814,15603,-28814, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 15288,-28982,15288,-28982,15288,-28982,15288,-28982, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14971,-29147,14971,-29147,14971,-29147,14971,-29147, - 14812,-29228,14812,-29228,14812,-29228,14812,-29228, - 14652,-29309,14652,-29309,14652,-29309,14652,-29309, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14331,-29467,14331,-29467,14331,-29467,14331,-29467, - 14171,-29545,14171,-29545,14171,-29545,14171,-29545, - 14009,-29622,14009,-29622,14009,-29622,14009,-29622, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13685,-29773,13685,-29773,13685,-29773,13685,-29773, - 13523,-29847,13523,-29847,13523,-29847,13523,-29847, - 13360,-29920,13360,-29920,13360,-29920,13360,-29920, - 13196,-29993,13196,-29993,13196,-29993,13196,-29993, - 13033,-30064,13033,-30064,13033,-30064,13033,-30064, - 12868,-30135,12868,-30135,12868,-30135,12868,-30135, - 12704,-30204,12704,-30204,12704,-30204,12704,-30204, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12374,-30341,12374,-30341,12374,-30341,12374,-30341, - 12208,-30408,12208,-30408,12208,-30408,12208,-30408, - 12042,-30474,12042,-30474,12042,-30474,12042,-30474, - 11876,-30540,11876,-30540,11876,-30540,11876,-30540, - 11709,-30604,11709,-30604,11709,-30604,11709,-30604, - 11542,-30667,11542,-30667,11542,-30667,11542,-30667, - 11374,-30730,11374,-30730,11374,-30730,11374,-30730, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 11038,-30852,11038,-30852,11038,-30852,11038,-30852, - 10870,-30912,10870,-30912,10870,-30912,10870,-30912, - 10701,-30971,10701,-30971,10701,-30971,10701,-30971, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10363,-31086,10363,-31086,10363,-31086,10363,-31086, - 10193,-31142,10193,-31142,10193,-31142,10193,-31142, - 10023,-31197,10023,-31197,10023,-31197,10023,-31197, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9682,-31304,9682,-31304,9682,-31304,9682,-31304, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 9340,-31408,9340,-31408,9340,-31408,9340,-31408, - 9169,-31458,9169,-31458,9169,-31458,9169,-31458, - 8997,-31508,8997,-31508,8997,-31508,8997,-31508, - 8825,-31557,8825,-31557,8825,-31557,8825,-31557, - 8653,-31604,8653,-31604,8653,-31604,8653,-31604, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8307,-31697,8307,-31697,8307,-31697,8307,-31697, - 8134,-31742,8134,-31742,8134,-31742,8134,-31742, - 7961,-31786,7961,-31786,7961,-31786,7961,-31786, - 7788,-31828,7788,-31828,7788,-31828,7788,-31828, - 7614,-31870,7614,-31870,7614,-31870,7614,-31870, - 7440,-31912,7440,-31912,7440,-31912,7440,-31912, - 7266,-31952,7266,-31952,7266,-31952,7266,-31952, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6917,-32029,6917,-32029,6917,-32029,6917,-32029, - 6742,-32066,6742,-32066,6742,-32066,6742,-32066, - 6567,-32103,6567,-32103,6567,-32103,6567,-32103, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 6217,-32172,6217,-32172,6217,-32172,6217,-32172, - 6041,-32206,6041,-32206,6041,-32206,6041,-32206, - 5865,-32238,5865,-32238,5865,-32238,5865,-32238, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5513,-32300,5513,-32300,5513,-32300,5513,-32300, - 5337,-32330,5337,-32330,5337,-32330,5337,-32330, - 5161,-32358,5161,-32358,5161,-32358,5161,-32358, - 4984,-32386,4984,-32386,4984,-32386,4984,-32386, - 4807,-32413,4807,-32413,4807,-32413,4807,-32413, - 4631,-32439,4631,-32439,4631,-32439,4631,-32439, - 4454,-32463,4454,-32463,4454,-32463,4454,-32463, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 4099,-32510,4099,-32510,4099,-32510,4099,-32510, - 3922,-32532,3922,-32532,3922,-32532,3922,-32532, - 3744,-32553,3744,-32553,3744,-32553,3744,-32553, - 3567,-32573,3567,-32573,3567,-32573,3567,-32573, - 3389,-32592,3389,-32592,3389,-32592,3389,-32592, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 3033,-32627,3033,-32627,3033,-32627,3033,-32627, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2677,-32658,2677,-32658,2677,-32658,2677,-32658, - 2499,-32672,2499,-32672,2499,-32672,2499,-32672, - 2321,-32685,2321,-32685,2321,-32685,2321,-32685, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1964,-32709,1964,-32709,1964,-32709,1964,-32709, - 1786,-32719,1786,-32719,1786,-32719,1786,-32719, - 1607,-32728,1607,-32728,1607,-32728,1607,-32728, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 1250,-32744,1250,-32744,1250,-32744,1250,-32744, - 1072,-32750,1072,-32750,1072,-32750,1072,-32750, - 893,-32755,893,-32755,893,-32755,893,-32755, - 714,-32760,714,-32760,714,-32760,714,-32760, - 536,-32763,536,-32763,536,-32763,536,-32763, - 357,-32766,357,-32766,357,-32766,357,-32766, - 178,-32767,178,-32767,178,-32767,178,-32767 - }; - -static int16_t twb1152[287*2*4] = {32765,-358,32765,-358,32765,-358,32765,-358, - 32759,-715,32759,-715,32759,-715,32759,-715, - 32749,-1073,32749,-1073,32749,-1073,32749,-1073, - 32735,-1430,32735,-1430,32735,-1430,32735,-1430, - 32718,-1787,32718,-1787,32718,-1787,32718,-1787, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32671,-2500,32671,-2500,32671,-2500,32671,-2500, - 32642,-2856,32642,-2856,32642,-2856,32642,-2856, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32572,-3568,32572,-3568,32572,-3568,32572,-3568, - 32531,-3923,32531,-3923,32531,-3923,32531,-3923, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32438,-4632,32438,-4632,32438,-4632,32438,-4632, - 32385,-4985,32385,-4985,32385,-4985,32385,-4985, - 32329,-5338,32329,-5338,32329,-5338,32329,-5338, - 32269,-5690,32269,-5690,32269,-5690,32269,-5690, - 32205,-6042,32205,-6042,32205,-6042,32205,-6042, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32065,-6743,32065,-6743,32065,-6743,32065,-6743, - 31990,-7093,31990,-7093,31990,-7093,31990,-7093, - 31911,-7441,31911,-7441,31911,-7441,31911,-7441, - 31827,-7789,31827,-7789,31827,-7789,31827,-7789, - 31741,-8135,31741,-8135,31741,-8135,31741,-8135, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31556,-8826,31556,-8826,31556,-8826,31556,-8826, - 31457,-9170,31457,-9170,31457,-9170,31457,-9170, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31250,-9854,31250,-9854,31250,-9854,31250,-9854, - 31141,-10194,31141,-10194,31141,-10194,31141,-10194, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30911,-10871,30911,-10871,30911,-10871,30911,-10871, - 30790,-11207,30790,-11207,30790,-11207,30790,-11207, - 30666,-11543,30666,-11543,30666,-11543,30666,-11543, - 30539,-11877,30539,-11877,30539,-11877,30539,-11877, - 30407,-12209,30407,-12209,30407,-12209,30407,-12209, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30134,-12869,30134,-12869,30134,-12869,30134,-12869, - 29992,-13197,29992,-13197,29992,-13197,29992,-13197, - 29846,-13524,29846,-13524,29846,-13524,29846,-13524, - 29696,-13848,29696,-13848,29696,-13848,29696,-13848, - 29544,-14172,29544,-14172,29544,-14172,29544,-14172, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29227,-14813,29227,-14813,29227,-14813,29227,-14813, - 29064,-15131,29064,-15131,29064,-15131,29064,-15131, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28727,-15761,28727,-15761,28727,-15761,28727,-15761, - 28554,-16073,28554,-16073,28554,-16073,28554,-16073, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28196,-16693,28196,-16693,28196,-16693,28196,-16693, - 28012,-16999,28012,-16999,28012,-16999,28012,-16999, - 27825,-17304,27825,-17304,27825,-17304,27825,-17304, - 27635,-17606,27635,-17606,27635,-17606,27635,-17606, - 27441,-17907,27441,-17907,27441,-17907,27441,-17907, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 27044,-18501,27044,-18501,27044,-18501,27044,-18501, - 26841,-18795,26841,-18795,26841,-18795,26841,-18795, - 26634,-19087,26634,-19087,26634,-19087,26634,-19087, - 26424,-19376,26424,-19376,26424,-19376,26424,-19376, - 26211,-19663,26211,-19663,26211,-19663,26211,-19663, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25776,-20230,25776,-20230,25776,-20230,25776,-20230, - 25554,-20510,25554,-20510,25554,-20510,25554,-20510, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 25100,-21063,25100,-21063,25100,-21063,25100,-21063, - 24869,-21335,24869,-21335,24869,-21335,24869,-21335, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24398,-21873,24398,-21873,24398,-21873,24398,-21873, - 24158,-22138,24158,-22138,24158,-22138,24158,-22138, - 23915,-22400,23915,-22400,23915,-22400,23915,-22400, - 23669,-22659,23669,-22659,23669,-22659,23669,-22659, - 23421,-22916,23421,-22916,23421,-22916,23421,-22916, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22915,-23422,22915,-23422,22915,-23422,22915,-23422, - 22658,-23670,22658,-23670,22658,-23670,22658,-23670, - 22399,-23916,22399,-23916,22399,-23916,22399,-23916, - 22137,-24159,22137,-24159,22137,-24159,22137,-24159, - 21872,-24399,21872,-24399,21872,-24399,21872,-24399, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21334,-24870,21334,-24870,21334,-24870,21334,-24870, - 21062,-25101,21062,-25101,21062,-25101,21062,-25101, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 20509,-25555,20509,-25555,20509,-25555,20509,-25555, - 20229,-25777,20229,-25777,20229,-25777,20229,-25777, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19662,-26212,19662,-26212,19662,-26212,19662,-26212, - 19375,-26425,19375,-26425,19375,-26425,19375,-26425, - 19086,-26635,19086,-26635,19086,-26635,19086,-26635, - 18794,-26842,18794,-26842,18794,-26842,18794,-26842, - 18500,-27045,18500,-27045,18500,-27045,18500,-27045, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17906,-27442,17906,-27442,17906,-27442,17906,-27442, - 17605,-27636,17605,-27636,17605,-27636,17605,-27636, - 17303,-27826,17303,-27826,17303,-27826,17303,-27826, - 16998,-28013,16998,-28013,16998,-28013,16998,-28013, - 16692,-28197,16692,-28197,16692,-28197,16692,-28197, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16072,-28555,16072,-28555,16072,-28555,16072,-28555, - 15760,-28728,15760,-28728,15760,-28728,15760,-28728, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 15130,-29065,15130,-29065,15130,-29065,15130,-29065, - 14812,-29228,14812,-29228,14812,-29228,14812,-29228, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14171,-29545,14171,-29545,14171,-29545,14171,-29545, - 13847,-29697,13847,-29697,13847,-29697,13847,-29697, - 13523,-29847,13523,-29847,13523,-29847,13523,-29847, - 13196,-29993,13196,-29993,13196,-29993,13196,-29993, - 12868,-30135,12868,-30135,12868,-30135,12868,-30135, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12208,-30408,12208,-30408,12208,-30408,12208,-30408, - 11876,-30540,11876,-30540,11876,-30540,11876,-30540, - 11542,-30667,11542,-30667,11542,-30667,11542,-30667, - 11206,-30791,11206,-30791,11206,-30791,11206,-30791, - 10870,-30912,10870,-30912,10870,-30912,10870,-30912, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10193,-31142,10193,-31142,10193,-31142,10193,-31142, - 9853,-31251,9853,-31251,9853,-31251,9853,-31251, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 9169,-31458,9169,-31458,9169,-31458,9169,-31458, - 8825,-31557,8825,-31557,8825,-31557,8825,-31557, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8134,-31742,8134,-31742,8134,-31742,8134,-31742, - 7788,-31828,7788,-31828,7788,-31828,7788,-31828, - 7440,-31912,7440,-31912,7440,-31912,7440,-31912, - 7092,-31991,7092,-31991,7092,-31991,7092,-31991, - 6742,-32066,6742,-32066,6742,-32066,6742,-32066, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 6041,-32206,6041,-32206,6041,-32206,6041,-32206, - 5689,-32270,5689,-32270,5689,-32270,5689,-32270, - 5337,-32330,5337,-32330,5337,-32330,5337,-32330, - 4984,-32386,4984,-32386,4984,-32386,4984,-32386, - 4631,-32439,4631,-32439,4631,-32439,4631,-32439, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3922,-32532,3922,-32532,3922,-32532,3922,-32532, - 3567,-32573,3567,-32573,3567,-32573,3567,-32573, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 2855,-32643,2855,-32643,2855,-32643,2855,-32643, - 2499,-32672,2499,-32672,2499,-32672,2499,-32672, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1786,-32719,1786,-32719,1786,-32719,1786,-32719, - 1429,-32736,1429,-32736,1429,-32736,1429,-32736, - 1072,-32750,1072,-32750,1072,-32750,1072,-32750, - 714,-32760,714,-32760,714,-32760,714,-32760, - 357,-32766,357,-32766,357,-32766,357,-32766, - 0,-32767,0,-32767,0,-32767,0,-32767, - -358,-32766,-358,-32766,-358,-32766,-358,-32766, - -715,-32760,-715,-32760,-715,-32760,-715,-32760, - -1073,-32750,-1073,-32750,-1073,-32750,-1073,-32750, - -1430,-32736,-1430,-32736,-1430,-32736,-1430,-32736, - -1787,-32719,-1787,-32719,-1787,-32719,-1787,-32719, - -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697, - -2500,-32672,-2500,-32672,-2500,-32672,-2500,-32672, - -2856,-32643,-2856,-32643,-2856,-32643,-2856,-32643, - -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610, - -3568,-32573,-3568,-32573,-3568,-32573,-3568,-32573, - -3923,-32532,-3923,-32532,-3923,-32532,-3923,-32532, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -4632,-32439,-4632,-32439,-4632,-32439,-4632,-32439, - -4985,-32386,-4985,-32386,-4985,-32386,-4985,-32386, - -5338,-32330,-5338,-32330,-5338,-32330,-5338,-32330, - -5690,-32270,-5690,-32270,-5690,-32270,-5690,-32270, - -6042,-32206,-6042,-32206,-6042,-32206,-6042,-32206, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -6743,-32066,-6743,-32066,-6743,-32066,-6743,-32066, - -7093,-31991,-7093,-31991,-7093,-31991,-7093,-31991, - -7441,-31912,-7441,-31912,-7441,-31912,-7441,-31912, - -7789,-31828,-7789,-31828,-7789,-31828,-7789,-31828, - -8135,-31742,-8135,-31742,-8135,-31742,-8135,-31742, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8826,-31557,-8826,-31557,-8826,-31557,-8826,-31557, - -9170,-31458,-9170,-31458,-9170,-31458,-9170,-31458, - -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357, - -9854,-31251,-9854,-31251,-9854,-31251,-9854,-31251, - -10194,-31142,-10194,-31142,-10194,-31142,-10194,-31142, - -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029, - -10871,-30912,-10871,-30912,-10871,-30912,-10871,-30912, - -11207,-30791,-11207,-30791,-11207,-30791,-11207,-30791, - -11543,-30667,-11543,-30667,-11543,-30667,-11543,-30667, - -11877,-30540,-11877,-30540,-11877,-30540,-11877,-30540, - -12209,-30408,-12209,-30408,-12209,-30408,-12209,-30408, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -12869,-30135,-12869,-30135,-12869,-30135,-12869,-30135, - -13197,-29993,-13197,-29993,-13197,-29993,-13197,-29993, - -13524,-29847,-13524,-29847,-13524,-29847,-13524,-29847, - -13848,-29697,-13848,-29697,-13848,-29697,-13848,-29697, - -14172,-29545,-14172,-29545,-14172,-29545,-14172,-29545, - -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388, - -14813,-29228,-14813,-29228,-14813,-29228,-14813,-29228, - -15131,-29065,-15131,-29065,-15131,-29065,-15131,-29065, - -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898, - -15761,-28728,-15761,-28728,-15761,-28728,-15761,-28728, - -16073,-28555,-16073,-28555,-16073,-28555,-16073,-28555, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16693,-28197,-16693,-28197,-16693,-28197,-16693,-28197, - -16999,-28013,-16999,-28013,-16999,-28013,-16999,-28013, - -17304,-27826,-17304,-27826,-17304,-27826,-17304,-27826, - -17606,-27636,-17606,-27636,-17606,-27636,-17606,-27636, - -17907,-27442,-17907,-27442,-17907,-27442,-17907,-27442, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -18501,-27045,-18501,-27045,-18501,-27045,-18501,-27045, - -18795,-26842,-18795,-26842,-18795,-26842,-18795,-26842, - -19087,-26635,-19087,-26635,-19087,-26635,-19087,-26635, - -19376,-26425,-19376,-26425,-19376,-26425,-19376,-26425, - -19663,-26212,-19663,-26212,-19663,-26212,-19663,-26212, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20230,-25777,-20230,-25777,-20230,-25777,-20230,-25777, - -20510,-25555,-20510,-25555,-20510,-25555,-20510,-25555, - -20788,-25330,-20788,-25330,-20788,-25330,-20788,-25330, - -21063,-25101,-21063,-25101,-21063,-25101,-21063,-25101, - -21335,-24870,-21335,-24870,-21335,-24870,-21335,-24870, - -21605,-24636,-21605,-24636,-21605,-24636,-21605,-24636, - -21873,-24399,-21873,-24399,-21873,-24399,-21873,-24399, - -22138,-24159,-22138,-24159,-22138,-24159,-22138,-24159, - -22400,-23916,-22400,-23916,-22400,-23916,-22400,-23916, - -22659,-23670,-22659,-23670,-22659,-23670,-22659,-23670, - -22916,-23422,-22916,-23422,-22916,-23422,-22916,-23422, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23422,-22916,-23422,-22916,-23422,-22916,-23422,-22916, - -23670,-22659,-23670,-22659,-23670,-22659,-23670,-22659, - -23916,-22400,-23916,-22400,-23916,-22400,-23916,-22400, - -24159,-22138,-24159,-22138,-24159,-22138,-24159,-22138, - -24399,-21873,-24399,-21873,-24399,-21873,-24399,-21873, - -24636,-21605,-24636,-21605,-24636,-21605,-24636,-21605, - -24870,-21335,-24870,-21335,-24870,-21335,-24870,-21335, - -25101,-21063,-25101,-21063,-25101,-21063,-25101,-21063, - -25330,-20788,-25330,-20788,-25330,-20788,-25330,-20788, - -25555,-20510,-25555,-20510,-25555,-20510,-25555,-20510, - -25777,-20230,-25777,-20230,-25777,-20230,-25777,-20230, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26212,-19663,-26212,-19663,-26212,-19663,-26212,-19663, - -26425,-19376,-26425,-19376,-26425,-19376,-26425,-19376, - -26635,-19087,-26635,-19087,-26635,-19087,-26635,-19087, - -26842,-18795,-26842,-18795,-26842,-18795,-26842,-18795, - -27045,-18501,-27045,-18501,-27045,-18501,-27045,-18501, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -27442,-17907,-27442,-17907,-27442,-17907,-27442,-17907, - -27636,-17606,-27636,-17606,-27636,-17606,-27636,-17606, - -27826,-17304,-27826,-17304,-27826,-17304,-27826,-17304, - -28013,-16999,-28013,-16999,-28013,-16999,-28013,-16999, - -28197,-16693,-28197,-16693,-28197,-16693,-28197,-16693, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28555,-16073,-28555,-16073,-28555,-16073,-28555,-16073, - -28728,-15761,-28728,-15761,-28728,-15761,-28728,-15761, - -28898,-15447,-28898,-15447,-28898,-15447,-28898,-15447, - -29065,-15131,-29065,-15131,-29065,-15131,-29065,-15131, - -29228,-14813,-29228,-14813,-29228,-14813,-29228,-14813, - -29388,-14493,-29388,-14493,-29388,-14493,-29388,-14493, - -29545,-14172,-29545,-14172,-29545,-14172,-29545,-14172, - -29697,-13848,-29697,-13848,-29697,-13848,-29697,-13848, - -29847,-13524,-29847,-13524,-29847,-13524,-29847,-13524, - -29993,-13197,-29993,-13197,-29993,-13197,-29993,-13197, - -30135,-12869,-30135,-12869,-30135,-12869,-30135,-12869, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30408,-12209,-30408,-12209,-30408,-12209,-30408,-12209, - -30540,-11877,-30540,-11877,-30540,-11877,-30540,-11877, - -30667,-11543,-30667,-11543,-30667,-11543,-30667,-11543, - -30791,-11207,-30791,-11207,-30791,-11207,-30791,-11207, - -30912,-10871,-30912,-10871,-30912,-10871,-30912,-10871, - -31029,-10533,-31029,-10533,-31029,-10533,-31029,-10533, - -31142,-10194,-31142,-10194,-31142,-10194,-31142,-10194, - -31251,-9854,-31251,-9854,-31251,-9854,-31251,-9854, - -31357,-9512,-31357,-9512,-31357,-9512,-31357,-9512, - -31458,-9170,-31458,-9170,-31458,-9170,-31458,-9170, - -31557,-8826,-31557,-8826,-31557,-8826,-31557,-8826, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31742,-8135,-31742,-8135,-31742,-8135,-31742,-8135, - -31828,-7789,-31828,-7789,-31828,-7789,-31828,-7789, - -31912,-7441,-31912,-7441,-31912,-7441,-31912,-7441, - -31991,-7093,-31991,-7093,-31991,-7093,-31991,-7093, - -32066,-6743,-32066,-6743,-32066,-6743,-32066,-6743, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32206,-6042,-32206,-6042,-32206,-6042,-32206,-6042, - -32270,-5690,-32270,-5690,-32270,-5690,-32270,-5690, - -32330,-5338,-32330,-5338,-32330,-5338,-32330,-5338, - -32386,-4985,-32386,-4985,-32386,-4985,-32386,-4985, - -32439,-4632,-32439,-4632,-32439,-4632,-32439,-4632, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32532,-3923,-32532,-3923,-32532,-3923,-32532,-3923, - -32573,-3568,-32573,-3568,-32573,-3568,-32573,-3568, - -32610,-3212,-32610,-3212,-32610,-3212,-32610,-3212, - -32643,-2856,-32643,-2856,-32643,-2856,-32643,-2856, - -32672,-2500,-32672,-2500,-32672,-2500,-32672,-2500, - -32697,-2144,-32697,-2144,-32697,-2144,-32697,-2144, - -32719,-1787,-32719,-1787,-32719,-1787,-32719,-1787, - -32736,-1430,-32736,-1430,-32736,-1430,-32736,-1430, - -32750,-1073,-32750,-1073,-32750,-1073,-32750,-1073, - -32760,-715,-32760,-715,-32760,-715,-32760,-715, - -32766,-358,-32766,-358,-32766,-358,-32766,-358 - }; - -static int16_t twc1152[287*2*4] = {32762,-537,32762,-537,32762,-537,32762,-537, - 32749,-1073,32749,-1073,32749,-1073,32749,-1073, - 32727,-1608,32727,-1608,32727,-1608,32727,-1608, - 32696,-2144,32696,-2144,32696,-2144,32696,-2144, - 32657,-2678,32657,-2678,32657,-2678,32657,-2678, - 32609,-3212,32609,-3212,32609,-3212,32609,-3212, - 32552,-3745,32552,-3745,32552,-3745,32552,-3745, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32412,-4808,32412,-4808,32412,-4808,32412,-4808, - 32329,-5338,32329,-5338,32329,-5338,32329,-5338, - 32237,-5866,32237,-5866,32237,-5866,32237,-5866, - 32137,-6393,32137,-6393,32137,-6393,32137,-6393, - 32028,-6918,32028,-6918,32028,-6918,32028,-6918, - 31911,-7441,31911,-7441,31911,-7441,31911,-7441, - 31785,-7962,31785,-7962,31785,-7962,31785,-7962, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31507,-8998,31507,-8998,31507,-8998,31507,-8998, - 31356,-9512,31356,-9512,31356,-9512,31356,-9512, - 31196,-10024,31196,-10024,31196,-10024,31196,-10024, - 31028,-10533,31028,-10533,31028,-10533,31028,-10533, - 30851,-11039,30851,-11039,30851,-11039,30851,-11039, - 30666,-11543,30666,-11543,30666,-11543,30666,-11543, - 30473,-12043,30473,-12043,30473,-12043,30473,-12043, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30063,-13034,30063,-13034,30063,-13034,30063,-13034, - 29846,-13524,29846,-13524,29846,-13524,29846,-13524, - 29621,-14010,29621,-14010,29621,-14010,29621,-14010, - 29387,-14493,29387,-14493,29387,-14493,29387,-14493, - 29146,-14972,29146,-14972,29146,-14972,29146,-14972, - 28897,-15447,28897,-15447,28897,-15447,28897,-15447, - 28641,-15918,28641,-15918,28641,-15918,28641,-15918, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28105,-16846,28105,-16846,28105,-16846,28105,-16846, - 27825,-17304,27825,-17304,27825,-17304,27825,-17304, - 27538,-17757,27538,-17757,27538,-17757,27538,-17757, - 27244,-18205,27244,-18205,27244,-18205,27244,-18205, - 26943,-18648,26943,-18648,26943,-18648,26943,-18648, - 26634,-19087,26634,-19087,26634,-19087,26634,-19087, - 26318,-19520,26318,-19520,26318,-19520,26318,-19520, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25665,-20370,25665,-20370,25665,-20370,25665,-20370, - 25329,-20788,25329,-20788,25329,-20788,25329,-20788, - 24985,-21199,24985,-21199,24985,-21199,24985,-21199, - 24635,-21605,24635,-21605,24635,-21605,24635,-21605, - 24278,-22005,24278,-22005,24278,-22005,24278,-22005, - 23915,-22400,23915,-22400,23915,-22400,23915,-22400, - 23545,-22788,23545,-22788,23545,-22788,23545,-22788, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22787,-23546,22787,-23546,22787,-23546,22787,-23546, - 22399,-23916,22399,-23916,22399,-23916,22399,-23916, - 22004,-24279,22004,-24279,22004,-24279,22004,-24279, - 21604,-24636,21604,-24636,21604,-24636,21604,-24636, - 21198,-24986,21198,-24986,21198,-24986,21198,-24986, - 20787,-25330,20787,-25330,20787,-25330,20787,-25330, - 20369,-25666,20369,-25666,20369,-25666,20369,-25666, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19519,-26319,19519,-26319,19519,-26319,19519,-26319, - 19086,-26635,19086,-26635,19086,-26635,19086,-26635, - 18647,-26944,18647,-26944,18647,-26944,18647,-26944, - 18204,-27245,18204,-27245,18204,-27245,18204,-27245, - 17756,-27539,17756,-27539,17756,-27539,17756,-27539, - 17303,-27826,17303,-27826,17303,-27826,17303,-27826, - 16845,-28106,16845,-28106,16845,-28106,16845,-28106, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 15917,-28642,15917,-28642,15917,-28642,15917,-28642, - 15446,-28898,15446,-28898,15446,-28898,15446,-28898, - 14971,-29147,14971,-29147,14971,-29147,14971,-29147, - 14492,-29388,14492,-29388,14492,-29388,14492,-29388, - 14009,-29622,14009,-29622,14009,-29622,14009,-29622, - 13523,-29847,13523,-29847,13523,-29847,13523,-29847, - 13033,-30064,13033,-30064,13033,-30064,13033,-30064, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12042,-30474,12042,-30474,12042,-30474,12042,-30474, - 11542,-30667,11542,-30667,11542,-30667,11542,-30667, - 11038,-30852,11038,-30852,11038,-30852,11038,-30852, - 10532,-31029,10532,-31029,10532,-31029,10532,-31029, - 10023,-31197,10023,-31197,10023,-31197,10023,-31197, - 9511,-31357,9511,-31357,9511,-31357,9511,-31357, - 8997,-31508,8997,-31508,8997,-31508,8997,-31508, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 7961,-31786,7961,-31786,7961,-31786,7961,-31786, - 7440,-31912,7440,-31912,7440,-31912,7440,-31912, - 6917,-32029,6917,-32029,6917,-32029,6917,-32029, - 6392,-32138,6392,-32138,6392,-32138,6392,-32138, - 5865,-32238,5865,-32238,5865,-32238,5865,-32238, - 5337,-32330,5337,-32330,5337,-32330,5337,-32330, - 4807,-32413,4807,-32413,4807,-32413,4807,-32413, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 3744,-32553,3744,-32553,3744,-32553,3744,-32553, - 3211,-32610,3211,-32610,3211,-32610,3211,-32610, - 2677,-32658,2677,-32658,2677,-32658,2677,-32658, - 2143,-32697,2143,-32697,2143,-32697,2143,-32697, - 1607,-32728,1607,-32728,1607,-32728,1607,-32728, - 1072,-32750,1072,-32750,1072,-32750,1072,-32750, - 536,-32763,536,-32763,536,-32763,536,-32763, - 0,-32767,0,-32767,0,-32767,0,-32767, - -537,-32763,-537,-32763,-537,-32763,-537,-32763, - -1073,-32750,-1073,-32750,-1073,-32750,-1073,-32750, - -1608,-32728,-1608,-32728,-1608,-32728,-1608,-32728, - -2144,-32697,-2144,-32697,-2144,-32697,-2144,-32697, - -2678,-32658,-2678,-32658,-2678,-32658,-2678,-32658, - -3212,-32610,-3212,-32610,-3212,-32610,-3212,-32610, - -3745,-32553,-3745,-32553,-3745,-32553,-3745,-32553, - -4277,-32487,-4277,-32487,-4277,-32487,-4277,-32487, - -4808,-32413,-4808,-32413,-4808,-32413,-4808,-32413, - -5338,-32330,-5338,-32330,-5338,-32330,-5338,-32330, - -5866,-32238,-5866,-32238,-5866,-32238,-5866,-32238, - -6393,-32138,-6393,-32138,-6393,-32138,-6393,-32138, - -6918,-32029,-6918,-32029,-6918,-32029,-6918,-32029, - -7441,-31912,-7441,-31912,-7441,-31912,-7441,-31912, - -7962,-31786,-7962,-31786,-7962,-31786,-7962,-31786, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8998,-31508,-8998,-31508,-8998,-31508,-8998,-31508, - -9512,-31357,-9512,-31357,-9512,-31357,-9512,-31357, - -10024,-31197,-10024,-31197,-10024,-31197,-10024,-31197, - -10533,-31029,-10533,-31029,-10533,-31029,-10533,-31029, - -11039,-30852,-11039,-30852,-11039,-30852,-11039,-30852, - -11543,-30667,-11543,-30667,-11543,-30667,-11543,-30667, - -12043,-30474,-12043,-30474,-12043,-30474,-12043,-30474, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13034,-30064,-13034,-30064,-13034,-30064,-13034,-30064, - -13524,-29847,-13524,-29847,-13524,-29847,-13524,-29847, - -14010,-29622,-14010,-29622,-14010,-29622,-14010,-29622, - -14493,-29388,-14493,-29388,-14493,-29388,-14493,-29388, - -14972,-29147,-14972,-29147,-14972,-29147,-14972,-29147, - -15447,-28898,-15447,-28898,-15447,-28898,-15447,-28898, - -15918,-28642,-15918,-28642,-15918,-28642,-15918,-28642, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16846,-28106,-16846,-28106,-16846,-28106,-16846,-28106, - -17304,-27826,-17304,-27826,-17304,-27826,-17304,-27826, - -17757,-27539,-17757,-27539,-17757,-27539,-17757,-27539, - -18205,-27245,-18205,-27245,-18205,-27245,-18205,-27245, - -18648,-26944,-18648,-26944,-18648,-26944,-18648,-26944, - -19087,-26635,-19087,-26635,-19087,-26635,-19087,-26635, - -19520,-26319,-19520,-26319,-19520,-26319,-19520,-26319, - -19948,-25996,-19948,-25996,-19948,-25996,-19948,-25996, - -20370,-25666,-20370,-25666,-20370,-25666,-20370,-25666, - -20788,-25330,-20788,-25330,-20788,-25330,-20788,-25330, - -21199,-24986,-21199,-24986,-21199,-24986,-21199,-24986, - -21605,-24636,-21605,-24636,-21605,-24636,-21605,-24636, - -22005,-24279,-22005,-24279,-22005,-24279,-22005,-24279, - -22400,-23916,-22400,-23916,-22400,-23916,-22400,-23916, - -22788,-23546,-22788,-23546,-22788,-23546,-22788,-23546, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23546,-22788,-23546,-22788,-23546,-22788,-23546,-22788, - -23916,-22400,-23916,-22400,-23916,-22400,-23916,-22400, - -24279,-22005,-24279,-22005,-24279,-22005,-24279,-22005, - -24636,-21605,-24636,-21605,-24636,-21605,-24636,-21605, - -24986,-21199,-24986,-21199,-24986,-21199,-24986,-21199, - -25330,-20788,-25330,-20788,-25330,-20788,-25330,-20788, - -25666,-20370,-25666,-20370,-25666,-20370,-25666,-20370, - -25996,-19948,-25996,-19948,-25996,-19948,-25996,-19948, - -26319,-19520,-26319,-19520,-26319,-19520,-26319,-19520, - -26635,-19087,-26635,-19087,-26635,-19087,-26635,-19087, - -26944,-18648,-26944,-18648,-26944,-18648,-26944,-18648, - -27245,-18205,-27245,-18205,-27245,-18205,-27245,-18205, - -27539,-17757,-27539,-17757,-27539,-17757,-27539,-17757, - -27826,-17304,-27826,-17304,-27826,-17304,-27826,-17304, - -28106,-16846,-28106,-16846,-28106,-16846,-28106,-16846, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28642,-15918,-28642,-15918,-28642,-15918,-28642,-15918, - -28898,-15447,-28898,-15447,-28898,-15447,-28898,-15447, - -29147,-14972,-29147,-14972,-29147,-14972,-29147,-14972, - -29388,-14493,-29388,-14493,-29388,-14493,-29388,-14493, - -29622,-14010,-29622,-14010,-29622,-14010,-29622,-14010, - -29847,-13524,-29847,-13524,-29847,-13524,-29847,-13524, - -30064,-13034,-30064,-13034,-30064,-13034,-30064,-13034, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30474,-12043,-30474,-12043,-30474,-12043,-30474,-12043, - -30667,-11543,-30667,-11543,-30667,-11543,-30667,-11543, - -30852,-11039,-30852,-11039,-30852,-11039,-30852,-11039, - -31029,-10533,-31029,-10533,-31029,-10533,-31029,-10533, - -31197,-10024,-31197,-10024,-31197,-10024,-31197,-10024, - -31357,-9512,-31357,-9512,-31357,-9512,-31357,-9512, - -31508,-8998,-31508,-8998,-31508,-8998,-31508,-8998, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31786,-7962,-31786,-7962,-31786,-7962,-31786,-7962, - -31912,-7441,-31912,-7441,-31912,-7441,-31912,-7441, - -32029,-6918,-32029,-6918,-32029,-6918,-32029,-6918, - -32138,-6393,-32138,-6393,-32138,-6393,-32138,-6393, - -32238,-5866,-32238,-5866,-32238,-5866,-32238,-5866, - -32330,-5338,-32330,-5338,-32330,-5338,-32330,-5338, - -32413,-4808,-32413,-4808,-32413,-4808,-32413,-4808, - -32487,-4277,-32487,-4277,-32487,-4277,-32487,-4277, - -32553,-3745,-32553,-3745,-32553,-3745,-32553,-3745, - -32610,-3212,-32610,-3212,-32610,-3212,-32610,-3212, - -32658,-2678,-32658,-2678,-32658,-2678,-32658,-2678, - -32697,-2144,-32697,-2144,-32697,-2144,-32697,-2144, - -32728,-1608,-32728,-1608,-32728,-1608,-32728,-1608, - -32750,-1073,-32750,-1073,-32750,-1073,-32750,-1073, - -32763,-537,-32763,-537,-32763,-537,-32763,-537, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32763,536,-32763,536,-32763,536,-32763,536, - -32750,1072,-32750,1072,-32750,1072,-32750,1072, - -32728,1607,-32728,1607,-32728,1607,-32728,1607, - -32697,2143,-32697,2143,-32697,2143,-32697,2143, - -32658,2677,-32658,2677,-32658,2677,-32658,2677, - -32610,3211,-32610,3211,-32610,3211,-32610,3211, - -32553,3744,-32553,3744,-32553,3744,-32553,3744, - -32487,4276,-32487,4276,-32487,4276,-32487,4276, - -32413,4807,-32413,4807,-32413,4807,-32413,4807, - -32330,5337,-32330,5337,-32330,5337,-32330,5337, - -32238,5865,-32238,5865,-32238,5865,-32238,5865, - -32138,6392,-32138,6392,-32138,6392,-32138,6392, - -32029,6917,-32029,6917,-32029,6917,-32029,6917, - -31912,7440,-31912,7440,-31912,7440,-31912,7440, - -31786,7961,-31786,7961,-31786,7961,-31786,7961, - -31651,8480,-31651,8480,-31651,8480,-31651,8480, - -31508,8997,-31508,8997,-31508,8997,-31508,8997, - -31357,9511,-31357,9511,-31357,9511,-31357,9511, - -31197,10023,-31197,10023,-31197,10023,-31197,10023, - -31029,10532,-31029,10532,-31029,10532,-31029,10532, - -30852,11038,-30852,11038,-30852,11038,-30852,11038, - -30667,11542,-30667,11542,-30667,11542,-30667,11542, - -30474,12042,-30474,12042,-30474,12042,-30474,12042, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -30064,13033,-30064,13033,-30064,13033,-30064,13033, - -29847,13523,-29847,13523,-29847,13523,-29847,13523, - -29622,14009,-29622,14009,-29622,14009,-29622,14009, - -29388,14492,-29388,14492,-29388,14492,-29388,14492, - -29147,14971,-29147,14971,-29147,14971,-29147,14971, - -28898,15446,-28898,15446,-28898,15446,-28898,15446, - -28642,15917,-28642,15917,-28642,15917,-28642,15917, - -28378,16383,-28378,16383,-28378,16383,-28378,16383, - -28106,16845,-28106,16845,-28106,16845,-28106,16845, - -27826,17303,-27826,17303,-27826,17303,-27826,17303, - -27539,17756,-27539,17756,-27539,17756,-27539,17756, - -27245,18204,-27245,18204,-27245,18204,-27245,18204, - -26944,18647,-26944,18647,-26944,18647,-26944,18647, - -26635,19086,-26635,19086,-26635,19086,-26635,19086, - -26319,19519,-26319,19519,-26319,19519,-26319,19519, - -25996,19947,-25996,19947,-25996,19947,-25996,19947, - -25666,20369,-25666,20369,-25666,20369,-25666,20369, - -25330,20787,-25330,20787,-25330,20787,-25330,20787, - -24986,21198,-24986,21198,-24986,21198,-24986,21198, - -24636,21604,-24636,21604,-24636,21604,-24636,21604, - -24279,22004,-24279,22004,-24279,22004,-24279,22004, - -23916,22399,-23916,22399,-23916,22399,-23916,22399, - -23546,22787,-23546,22787,-23546,22787,-23546,22787, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22788,23545,-22788,23545,-22788,23545,-22788,23545, - -22400,23915,-22400,23915,-22400,23915,-22400,23915, - -22005,24278,-22005,24278,-22005,24278,-22005,24278, - -21605,24635,-21605,24635,-21605,24635,-21605,24635, - -21199,24985,-21199,24985,-21199,24985,-21199,24985, - -20788,25329,-20788,25329,-20788,25329,-20788,25329, - -20370,25665,-20370,25665,-20370,25665,-20370,25665, - -19948,25995,-19948,25995,-19948,25995,-19948,25995, - -19520,26318,-19520,26318,-19520,26318,-19520,26318, - -19087,26634,-19087,26634,-19087,26634,-19087,26634, - -18648,26943,-18648,26943,-18648,26943,-18648,26943, - -18205,27244,-18205,27244,-18205,27244,-18205,27244, - -17757,27538,-17757,27538,-17757,27538,-17757,27538, - -17304,27825,-17304,27825,-17304,27825,-17304,27825, - -16846,28105,-16846,28105,-16846,28105,-16846,28105, - -16384,28377,-16384,28377,-16384,28377,-16384,28377, - -15918,28641,-15918,28641,-15918,28641,-15918,28641, - -15447,28897,-15447,28897,-15447,28897,-15447,28897, - -14972,29146,-14972,29146,-14972,29146,-14972,29146, - -14493,29387,-14493,29387,-14493,29387,-14493,29387, - -14010,29621,-14010,29621,-14010,29621,-14010,29621, - -13524,29846,-13524,29846,-13524,29846,-13524,29846, - -13034,30063,-13034,30063,-13034,30063,-13034,30063, - -12540,30272,-12540,30272,-12540,30272,-12540,30272, - -12043,30473,-12043,30473,-12043,30473,-12043,30473, - -11543,30666,-11543,30666,-11543,30666,-11543,30666, - -11039,30851,-11039,30851,-11039,30851,-11039,30851, - -10533,31028,-10533,31028,-10533,31028,-10533,31028, - -10024,31196,-10024,31196,-10024,31196,-10024,31196, - -9512,31356,-9512,31356,-9512,31356,-9512,31356, - -8998,31507,-8998,31507,-8998,31507,-8998,31507, - -8481,31650,-8481,31650,-8481,31650,-8481,31650, - -7962,31785,-7962,31785,-7962,31785,-7962,31785, - -7441,31911,-7441,31911,-7441,31911,-7441,31911, - -6918,32028,-6918,32028,-6918,32028,-6918,32028, - -6393,32137,-6393,32137,-6393,32137,-6393,32137, - -5866,32237,-5866,32237,-5866,32237,-5866,32237, - -5338,32329,-5338,32329,-5338,32329,-5338,32329, - -4808,32412,-4808,32412,-4808,32412,-4808,32412, - -4277,32486,-4277,32486,-4277,32486,-4277,32486, - -3745,32552,-3745,32552,-3745,32552,-3745,32552, - -3212,32609,-3212,32609,-3212,32609,-3212,32609, - -2678,32657,-2678,32657,-2678,32657,-2678,32657, - -2144,32696,-2144,32696,-2144,32696,-2144,32696, - -1608,32727,-1608,32727,-1608,32727,-1608,32727, - -1073,32749,-1073,32749,-1073,32749,-1073,32749, - -537,32762,-537,32762,-537,32762,-537,32762 - }; +static int16_t twa1152[287*2*4]; +static int16_t twb1152[287*2*4]; +static int16_t twc1152[287*2*4]; void dft1152(int16_t *x,int16_t *y,unsigned char scale_flag) // 288 x 4 { @@ -17546,909 +8440,9 @@ void dft1152(int16_t *x,int16_t *y,unsigned char scale_flag) // 288 x 4 _m_empty(); }; -int16_t twa1200[4784] = { 32766,-172,32766,-172,32766,-172,32766,-172, - 32765,-344,32765,-344,32765,-344,32765,-344, - 32762,-515,32762,-515,32762,-515,32762,-515, - 32759,-687,32759,-687,32759,-687,32759,-687, - 32755,-858,32755,-858,32755,-858,32755,-858, - 32750,-1030,32750,-1030,32750,-1030,32750,-1030, - 32744,-1201,32744,-1201,32744,-1201,32744,-1201, - 32738,-1373,32738,-1373,32738,-1373,32738,-1373, - 32730,-1544,32730,-1544,32730,-1544,32730,-1544, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32712,-1887,32712,-1887,32712,-1887,32712,-1887, - 32702,-2058,32702,-2058,32702,-2058,32702,-2058, - 32691,-2229,32691,-2229,32691,-2229,32691,-2229, - 32679,-2400,32679,-2400,32679,-2400,32679,-2400, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32652,-2742,32652,-2742,32652,-2742,32652,-2742, - 32637,-2913,32637,-2913,32637,-2913,32637,-2913, - 32621,-3084,32621,-3084,32621,-3084,32621,-3084, - 32604,-3255,32604,-3255,32604,-3255,32604,-3255, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32569,-3596,32569,-3596,32569,-3596,32569,-3596, - 32549,-3767,32549,-3767,32549,-3767,32549,-3767, - 32529,-3937,32529,-3937,32529,-3937,32529,-3937, - 32508,-4107,32508,-4107,32508,-4107,32508,-4107, - 32486,-4277,32486,-4277,32486,-4277,32486,-4277, - 32463,-4447,32463,-4447,32463,-4447,32463,-4447, - 32440,-4617,32440,-4617,32440,-4617,32440,-4617, - 32415,-4787,32415,-4787,32415,-4787,32415,-4787, - 32389,-4957,32389,-4957,32389,-4957,32389,-4957, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32336,-5296,32336,-5296,32336,-5296,32336,-5296, - 32308,-5465,32308,-5465,32308,-5465,32308,-5465, - 32279,-5634,32279,-5634,32279,-5634,32279,-5634, - 32249,-5803,32249,-5803,32249,-5803,32249,-5803, - 32218,-5972,32218,-5972,32218,-5972,32218,-5972, - 32186,-6140,32186,-6140,32186,-6140,32186,-6140, - 32154,-6309,32154,-6309,32154,-6309,32154,-6309, - 32120,-6477,32120,-6477,32120,-6477,32120,-6477, - 32086,-6645,32086,-6645,32086,-6645,32086,-6645, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 32014,-6981,32014,-6981,32014,-6981,32014,-6981, - 31977,-7148,31977,-7148,31977,-7148,31977,-7148, - 31940,-7316,31940,-7316,31940,-7316,31940,-7316, - 31901,-7483,31901,-7483,31901,-7483,31901,-7483, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31821,-7817,31821,-7817,31821,-7817,31821,-7817, - 31779,-7983,31779,-7983,31779,-7983,31779,-7983, - 31737,-8149,31737,-8149,31737,-8149,31737,-8149, - 31694,-8315,31694,-8315,31694,-8315,31694,-8315, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31605,-8647,31605,-8647,31605,-8647,31605,-8647, - 31559,-8812,31559,-8812,31559,-8812,31559,-8812, - 31513,-8977,31513,-8977,31513,-8977,31513,-8977, - 31465,-9142,31465,-9142,31465,-9142,31465,-9142, - 31417,-9307,31417,-9307,31417,-9307,31417,-9307, - 31368,-9471,31368,-9471,31368,-9471,31368,-9471, - 31318,-9635,31318,-9635,31318,-9635,31318,-9635, - 31267,-9799,31267,-9799,31267,-9799,31267,-9799, - 31215,-9963,31215,-9963,31215,-9963,31215,-9963, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31109,-10289,31109,-10289,31109,-10289,31109,-10289, - 31055,-10452,31055,-10452,31055,-10452,31055,-10452, - 31000,-10614,31000,-10614,31000,-10614,31000,-10614, - 30944,-10776,30944,-10776,30944,-10776,30944,-10776, - 30887,-10938,30887,-10938,30887,-10938,30887,-10938, - 30829,-11100,30829,-11100,30829,-11100,30829,-11100, - 30771,-11261,30771,-11261,30771,-11261,30771,-11261, - 30711,-11422,30711,-11422,30711,-11422,30711,-11422, - 30651,-11583,30651,-11583,30651,-11583,30651,-11583, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30528,-11903,30528,-11903,30528,-11903,30528,-11903, - 30465,-12063,30465,-12063,30465,-12063,30465,-12063, - 30402,-12222,30402,-12222,30402,-12222,30402,-12222, - 30338,-12381,30338,-12381,30338,-12381,30338,-12381, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30206,-12698,30206,-12698,30206,-12698,30206,-12698, - 30139,-12856,30139,-12856,30139,-12856,30139,-12856, - 30072,-13014,30072,-13014,30072,-13014,30072,-13014, - 30003,-13171,30003,-13171,30003,-13171,30003,-13171, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29863,-13485,29863,-13485,29863,-13485,29863,-13485, - 29792,-13641,29792,-13641,29792,-13641,29792,-13641, - 29721,-13797,29721,-13797,29721,-13797,29721,-13797, - 29648,-13952,29648,-13952,29648,-13952,29648,-13952, - 29575,-14107,29575,-14107,29575,-14107,29575,-14107, - 29500,-14262,29500,-14262,29500,-14262,29500,-14262, - 29425,-14416,29425,-14416,29425,-14416,29425,-14416, - 29349,-14570,29349,-14570,29349,-14570,29349,-14570, - 29273,-14723,29273,-14723,29273,-14723,29273,-14723, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 29117,-15029,29117,-15029,29117,-15029,29117,-15029, - 29038,-15181,29038,-15181,29038,-15181,29038,-15181, - 28958,-15333,28958,-15333,28958,-15333,28958,-15333, - 28877,-15485,28877,-15485,28877,-15485,28877,-15485, - 28796,-15636,28796,-15636,28796,-15636,28796,-15636, - 28713,-15786,28713,-15786,28713,-15786,28713,-15786, - 28630,-15936,28630,-15936,28630,-15936,28630,-15936, - 28547,-16086,28547,-16086,28547,-16086,28547,-16086, - 28462,-16235,28462,-16235,28462,-16235,28462,-16235, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28290,-16532,28290,-16532,28290,-16532,28290,-16532, - 28203,-16680,28203,-16680,28203,-16680,28203,-16680, - 28116,-16828,28116,-16828,28116,-16828,28116,-16828, - 28027,-16975,28027,-16975,28027,-16975,28027,-16975, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27848,-17267,27848,-17267,27848,-17267,27848,-17267, - 27757,-17413,27757,-17413,27757,-17413,27757,-17413, - 27666,-17558,27666,-17558,27666,-17558,27666,-17558, - 27573,-17703,27573,-17703,27573,-17703,27573,-17703, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27386,-17990,27386,-17990,27386,-17990,27386,-17990, - 27292,-18133,27292,-18133,27292,-18133,27292,-18133, - 27197,-18276,27197,-18276,27197,-18276,27197,-18276, - 27100,-18418,27100,-18418,27100,-18418,27100,-18418, - 27004,-18560,27004,-18560,27004,-18560,27004,-18560, - 26906,-18701,26906,-18701,26906,-18701,26906,-18701, - 26808,-18842,26808,-18842,26808,-18842,26808,-18842, - 26709,-18982,26709,-18982,26709,-18982,26709,-18982, - 26609,-19121,26609,-19121,26609,-19121,26609,-19121, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26407,-19399,26407,-19399,26407,-19399,26407,-19399, - 26305,-19537,26305,-19537,26305,-19537,26305,-19537, - 26203,-19674,26203,-19674,26203,-19674,26203,-19674, - 26099,-19811,26099,-19811,26099,-19811,26099,-19811, - 25995,-19948,25995,-19948,25995,-19948,25995,-19948, - 25891,-20084,25891,-20084,25891,-20084,25891,-20084, - 25785,-20219,25785,-20219,25785,-20219,25785,-20219, - 25679,-20354,25679,-20354,25679,-20354,25679,-20354, - 25572,-20488,25572,-20488,25572,-20488,25572,-20488, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25356,-20754,25356,-20754,25356,-20754,25356,-20754, - 25247,-20887,25247,-20887,25247,-20887,25247,-20887, - 25137,-21019,25137,-21019,25137,-21019,25137,-21019, - 25027,-21150,25027,-21150,25027,-21150,25027,-21150, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24804,-21411,24804,-21411,24804,-21411,24804,-21411, - 24692,-21541,24692,-21541,24692,-21541,24692,-21541, - 24578,-21670,24578,-21670,24578,-21670,24578,-21670, - 24465,-21798,24465,-21798,24465,-21798,24465,-21798, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24235,-22053,24235,-22053,24235,-22053,24235,-22053, - 24119,-22180,24119,-22180,24119,-22180,24119,-22180, - 24003,-22306,24003,-22306,24003,-22306,24003,-22306, - 23886,-22431,23886,-22431,23886,-22431,23886,-22431, - 23768,-22556,23768,-22556,23768,-22556,23768,-22556, - 23649,-22680,23649,-22680,23649,-22680,23649,-22680, - 23530,-22803,23530,-22803,23530,-22803,23530,-22803, - 23411,-22926,23411,-22926,23411,-22926,23411,-22926, - 23290,-23049,23290,-23049,23290,-23049,23290,-23049, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 23048,-23291,23048,-23291,23048,-23291,23048,-23291, - 22925,-23412,22925,-23412,22925,-23412,22925,-23412, - 22802,-23531,22802,-23531,22802,-23531,22802,-23531, - 22679,-23650,22679,-23650,22679,-23650,22679,-23650, - 22555,-23769,22555,-23769,22555,-23769,22555,-23769, - 22430,-23887,22430,-23887,22430,-23887,22430,-23887, - 22305,-24004,22305,-24004,22305,-24004,22305,-24004, - 22179,-24120,22179,-24120,22179,-24120,22179,-24120, - 22052,-24236,22052,-24236,22052,-24236,22052,-24236, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21797,-24466,21797,-24466,21797,-24466,21797,-24466, - 21669,-24579,21669,-24579,21669,-24579,21669,-24579, - 21540,-24693,21540,-24693,21540,-24693,21540,-24693, - 21410,-24805,21410,-24805,21410,-24805,21410,-24805, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 21149,-25028,21149,-25028,21149,-25028,21149,-25028, - 21018,-25138,21018,-25138,21018,-25138,21018,-25138, - 20886,-25248,20886,-25248,20886,-25248,20886,-25248, - 20753,-25357,20753,-25357,20753,-25357,20753,-25357, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20487,-25573,20487,-25573,20487,-25573,20487,-25573, - 20353,-25680,20353,-25680,20353,-25680,20353,-25680, - 20218,-25786,20218,-25786,20218,-25786,20218,-25786, - 20083,-25892,20083,-25892,20083,-25892,20083,-25892, - 19947,-25996,19947,-25996,19947,-25996,19947,-25996, - 19810,-26100,19810,-26100,19810,-26100,19810,-26100, - 19673,-26204,19673,-26204,19673,-26204,19673,-26204, - 19536,-26306,19536,-26306,19536,-26306,19536,-26306, - 19398,-26408,19398,-26408,19398,-26408,19398,-26408, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 19120,-26610,19120,-26610,19120,-26610,19120,-26610, - 18981,-26710,18981,-26710,18981,-26710,18981,-26710, - 18841,-26809,18841,-26809,18841,-26809,18841,-26809, - 18700,-26907,18700,-26907,18700,-26907,18700,-26907, - 18559,-27005,18559,-27005,18559,-27005,18559,-27005, - 18417,-27101,18417,-27101,18417,-27101,18417,-27101, - 18275,-27198,18275,-27198,18275,-27198,18275,-27198, - 18132,-27293,18132,-27293,18132,-27293,18132,-27293, - 17989,-27387,17989,-27387,17989,-27387,17989,-27387, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17702,-27574,17702,-27574,17702,-27574,17702,-27574, - 17557,-27667,17557,-27667,17557,-27667,17557,-27667, - 17412,-27758,17412,-27758,17412,-27758,17412,-27758, - 17266,-27849,17266,-27849,17266,-27849,17266,-27849, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16974,-28028,16974,-28028,16974,-28028,16974,-28028, - 16827,-28117,16827,-28117,16827,-28117,16827,-28117, - 16679,-28204,16679,-28204,16679,-28204,16679,-28204, - 16531,-28291,16531,-28291,16531,-28291,16531,-28291, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16234,-28463,16234,-28463,16234,-28463,16234,-28463, - 16085,-28548,16085,-28548,16085,-28548,16085,-28548, - 15935,-28631,15935,-28631,15935,-28631,15935,-28631, - 15785,-28714,15785,-28714,15785,-28714,15785,-28714, - 15635,-28797,15635,-28797,15635,-28797,15635,-28797, - 15484,-28878,15484,-28878,15484,-28878,15484,-28878, - 15332,-28959,15332,-28959,15332,-28959,15332,-28959, - 15180,-29039,15180,-29039,15180,-29039,15180,-29039, - 15028,-29118,15028,-29118,15028,-29118,15028,-29118, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14722,-29274,14722,-29274,14722,-29274,14722,-29274, - 14569,-29350,14569,-29350,14569,-29350,14569,-29350, - 14415,-29426,14415,-29426,14415,-29426,14415,-29426, - 14261,-29501,14261,-29501,14261,-29501,14261,-29501, - 14106,-29576,14106,-29576,14106,-29576,14106,-29576, - 13951,-29649,13951,-29649,13951,-29649,13951,-29649, - 13796,-29722,13796,-29722,13796,-29722,13796,-29722, - 13640,-29793,13640,-29793,13640,-29793,13640,-29793, - 13484,-29864,13484,-29864,13484,-29864,13484,-29864, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 13170,-30004,13170,-30004,13170,-30004,13170,-30004, - 13013,-30073,13013,-30073,13013,-30073,13013,-30073, - 12855,-30140,12855,-30140,12855,-30140,12855,-30140, - 12697,-30207,12697,-30207,12697,-30207,12697,-30207, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12380,-30339,12380,-30339,12380,-30339,12380,-30339, - 12221,-30403,12221,-30403,12221,-30403,12221,-30403, - 12062,-30466,12062,-30466,12062,-30466,12062,-30466, - 11902,-30529,11902,-30529,11902,-30529,11902,-30529, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11582,-30652,11582,-30652,11582,-30652,11582,-30652, - 11421,-30712,11421,-30712,11421,-30712,11421,-30712, - 11260,-30772,11260,-30772,11260,-30772,11260,-30772, - 11099,-30830,11099,-30830,11099,-30830,11099,-30830, - 10937,-30888,10937,-30888,10937,-30888,10937,-30888, - 10775,-30945,10775,-30945,10775,-30945,10775,-30945, - 10613,-31001,10613,-31001,10613,-31001,10613,-31001, - 10451,-31056,10451,-31056,10451,-31056,10451,-31056, - 10288,-31110,10288,-31110,10288,-31110,10288,-31110, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9962,-31216,9962,-31216,9962,-31216,9962,-31216, - 9798,-31268,9798,-31268,9798,-31268,9798,-31268, - 9634,-31319,9634,-31319,9634,-31319,9634,-31319, - 9470,-31369,9470,-31369,9470,-31369,9470,-31369, - 9306,-31418,9306,-31418,9306,-31418,9306,-31418, - 9141,-31466,9141,-31466,9141,-31466,9141,-31466, - 8976,-31514,8976,-31514,8976,-31514,8976,-31514, - 8811,-31560,8811,-31560,8811,-31560,8811,-31560, - 8646,-31606,8646,-31606,8646,-31606,8646,-31606, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8314,-31695,8314,-31695,8314,-31695,8314,-31695, - 8148,-31738,8148,-31738,8148,-31738,8148,-31738, - 7982,-31780,7982,-31780,7982,-31780,7982,-31780, - 7816,-31822,7816,-31822,7816,-31822,7816,-31822, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 7482,-31902,7482,-31902,7482,-31902,7482,-31902, - 7315,-31941,7315,-31941,7315,-31941,7315,-31941, - 7147,-31978,7147,-31978,7147,-31978,7147,-31978, - 6980,-32015,6980,-32015,6980,-32015,6980,-32015, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6644,-32087,6644,-32087,6644,-32087,6644,-32087, - 6476,-32121,6476,-32121,6476,-32121,6476,-32121, - 6308,-32155,6308,-32155,6308,-32155,6308,-32155, - 6139,-32187,6139,-32187,6139,-32187,6139,-32187, - 5971,-32219,5971,-32219,5971,-32219,5971,-32219, - 5802,-32250,5802,-32250,5802,-32250,5802,-32250, - 5633,-32280,5633,-32280,5633,-32280,5633,-32280, - 5464,-32309,5464,-32309,5464,-32309,5464,-32309, - 5295,-32337,5295,-32337,5295,-32337,5295,-32337, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4956,-32390,4956,-32390,4956,-32390,4956,-32390, - 4786,-32416,4786,-32416,4786,-32416,4786,-32416, - 4616,-32441,4616,-32441,4616,-32441,4616,-32441, - 4446,-32464,4446,-32464,4446,-32464,4446,-32464, - 4276,-32487,4276,-32487,4276,-32487,4276,-32487, - 4106,-32509,4106,-32509,4106,-32509,4106,-32509, - 3936,-32530,3936,-32530,3936,-32530,3936,-32530, - 3766,-32550,3766,-32550,3766,-32550,3766,-32550, - 3595,-32570,3595,-32570,3595,-32570,3595,-32570, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3254,-32605,3254,-32605,3254,-32605,3254,-32605, - 3083,-32622,3083,-32622,3083,-32622,3083,-32622, - 2912,-32638,2912,-32638,2912,-32638,2912,-32638, - 2741,-32653,2741,-32653,2741,-32653,2741,-32653, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 2399,-32680,2399,-32680,2399,-32680,2399,-32680, - 2228,-32692,2228,-32692,2228,-32692,2228,-32692, - 2057,-32703,2057,-32703,2057,-32703,2057,-32703, - 1886,-32713,1886,-32713,1886,-32713,1886,-32713, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1543,-32731,1543,-32731,1543,-32731,1543,-32731, - 1372,-32739,1372,-32739,1372,-32739,1372,-32739, - 1200,-32745,1200,-32745,1200,-32745,1200,-32745, - 1029,-32751,1029,-32751,1029,-32751,1029,-32751, - 857,-32756,857,-32756,857,-32756,857,-32756, - 686,-32760,686,-32760,686,-32760,686,-32760, - 514,-32763,514,-32763,514,-32763,514,-32763, - 343,-32766,343,-32766,343,-32766,343,-32766, - 171,-32767,171,-32767,171,-32767,171,-32767 - }; - -int16_t twb1200[4784] = {32765,-344,32765,-344,32765,-344,32765,-344, - 32759,-687,32759,-687,32759,-687,32759,-687, - 32750,-1030,32750,-1030,32750,-1030,32750,-1030, - 32738,-1373,32738,-1373,32738,-1373,32738,-1373, - 32722,-1715,32722,-1715,32722,-1715,32722,-1715, - 32702,-2058,32702,-2058,32702,-2058,32702,-2058, - 32679,-2400,32679,-2400,32679,-2400,32679,-2400, - 32652,-2742,32652,-2742,32652,-2742,32652,-2742, - 32621,-3084,32621,-3084,32621,-3084,32621,-3084, - 32587,-3426,32587,-3426,32587,-3426,32587,-3426, - 32549,-3767,32549,-3767,32549,-3767,32549,-3767, - 32508,-4107,32508,-4107,32508,-4107,32508,-4107, - 32463,-4447,32463,-4447,32463,-4447,32463,-4447, - 32415,-4787,32415,-4787,32415,-4787,32415,-4787, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32308,-5465,32308,-5465,32308,-5465,32308,-5465, - 32249,-5803,32249,-5803,32249,-5803,32249,-5803, - 32186,-6140,32186,-6140,32186,-6140,32186,-6140, - 32120,-6477,32120,-6477,32120,-6477,32120,-6477, - 32050,-6813,32050,-6813,32050,-6813,32050,-6813, - 31977,-7148,31977,-7148,31977,-7148,31977,-7148, - 31901,-7483,31901,-7483,31901,-7483,31901,-7483, - 31821,-7817,31821,-7817,31821,-7817,31821,-7817, - 31737,-8149,31737,-8149,31737,-8149,31737,-8149, - 31650,-8481,31650,-8481,31650,-8481,31650,-8481, - 31559,-8812,31559,-8812,31559,-8812,31559,-8812, - 31465,-9142,31465,-9142,31465,-9142,31465,-9142, - 31368,-9471,31368,-9471,31368,-9471,31368,-9471, - 31267,-9799,31267,-9799,31267,-9799,31267,-9799, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31055,-10452,31055,-10452,31055,-10452,31055,-10452, - 30944,-10776,30944,-10776,30944,-10776,30944,-10776, - 30829,-11100,30829,-11100,30829,-11100,30829,-11100, - 30711,-11422,30711,-11422,30711,-11422,30711,-11422, - 30590,-11743,30590,-11743,30590,-11743,30590,-11743, - 30465,-12063,30465,-12063,30465,-12063,30465,-12063, - 30338,-12381,30338,-12381,30338,-12381,30338,-12381, - 30206,-12698,30206,-12698,30206,-12698,30206,-12698, - 30072,-13014,30072,-13014,30072,-13014,30072,-13014, - 29934,-13328,29934,-13328,29934,-13328,29934,-13328, - 29792,-13641,29792,-13641,29792,-13641,29792,-13641, - 29648,-13952,29648,-13952,29648,-13952,29648,-13952, - 29500,-14262,29500,-14262,29500,-14262,29500,-14262, - 29349,-14570,29349,-14570,29349,-14570,29349,-14570, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 29038,-15181,29038,-15181,29038,-15181,29038,-15181, - 28877,-15485,28877,-15485,28877,-15485,28877,-15485, - 28713,-15786,28713,-15786,28713,-15786,28713,-15786, - 28547,-16086,28547,-16086,28547,-16086,28547,-16086, - 28377,-16384,28377,-16384,28377,-16384,28377,-16384, - 28203,-16680,28203,-16680,28203,-16680,28203,-16680, - 28027,-16975,28027,-16975,28027,-16975,28027,-16975, - 27848,-17267,27848,-17267,27848,-17267,27848,-17267, - 27666,-17558,27666,-17558,27666,-17558,27666,-17558, - 27480,-17847,27480,-17847,27480,-17847,27480,-17847, - 27292,-18133,27292,-18133,27292,-18133,27292,-18133, - 27100,-18418,27100,-18418,27100,-18418,27100,-18418, - 26906,-18701,26906,-18701,26906,-18701,26906,-18701, - 26709,-18982,26709,-18982,26709,-18982,26709,-18982, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26305,-19537,26305,-19537,26305,-19537,26305,-19537, - 26099,-19811,26099,-19811,26099,-19811,26099,-19811, - 25891,-20084,25891,-20084,25891,-20084,25891,-20084, - 25679,-20354,25679,-20354,25679,-20354,25679,-20354, - 25464,-20621,25464,-20621,25464,-20621,25464,-20621, - 25247,-20887,25247,-20887,25247,-20887,25247,-20887, - 25027,-21150,25027,-21150,25027,-21150,25027,-21150, - 24804,-21411,24804,-21411,24804,-21411,24804,-21411, - 24578,-21670,24578,-21670,24578,-21670,24578,-21670, - 24350,-21926,24350,-21926,24350,-21926,24350,-21926, - 24119,-22180,24119,-22180,24119,-22180,24119,-22180, - 23886,-22431,23886,-22431,23886,-22431,23886,-22431, - 23649,-22680,23649,-22680,23649,-22680,23649,-22680, - 23411,-22926,23411,-22926,23411,-22926,23411,-22926, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22925,-23412,22925,-23412,22925,-23412,22925,-23412, - 22679,-23650,22679,-23650,22679,-23650,22679,-23650, - 22430,-23887,22430,-23887,22430,-23887,22430,-23887, - 22179,-24120,22179,-24120,22179,-24120,22179,-24120, - 21925,-24351,21925,-24351,21925,-24351,21925,-24351, - 21669,-24579,21669,-24579,21669,-24579,21669,-24579, - 21410,-24805,21410,-24805,21410,-24805,21410,-24805, - 21149,-25028,21149,-25028,21149,-25028,21149,-25028, - 20886,-25248,20886,-25248,20886,-25248,20886,-25248, - 20620,-25465,20620,-25465,20620,-25465,20620,-25465, - 20353,-25680,20353,-25680,20353,-25680,20353,-25680, - 20083,-25892,20083,-25892,20083,-25892,20083,-25892, - 19810,-26100,19810,-26100,19810,-26100,19810,-26100, - 19536,-26306,19536,-26306,19536,-26306,19536,-26306, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18981,-26710,18981,-26710,18981,-26710,18981,-26710, - 18700,-26907,18700,-26907,18700,-26907,18700,-26907, - 18417,-27101,18417,-27101,18417,-27101,18417,-27101, - 18132,-27293,18132,-27293,18132,-27293,18132,-27293, - 17846,-27481,17846,-27481,17846,-27481,17846,-27481, - 17557,-27667,17557,-27667,17557,-27667,17557,-27667, - 17266,-27849,17266,-27849,17266,-27849,17266,-27849, - 16974,-28028,16974,-28028,16974,-28028,16974,-28028, - 16679,-28204,16679,-28204,16679,-28204,16679,-28204, - 16383,-28378,16383,-28378,16383,-28378,16383,-28378, - 16085,-28548,16085,-28548,16085,-28548,16085,-28548, - 15785,-28714,15785,-28714,15785,-28714,15785,-28714, - 15484,-28878,15484,-28878,15484,-28878,15484,-28878, - 15180,-29039,15180,-29039,15180,-29039,15180,-29039, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14569,-29350,14569,-29350,14569,-29350,14569,-29350, - 14261,-29501,14261,-29501,14261,-29501,14261,-29501, - 13951,-29649,13951,-29649,13951,-29649,13951,-29649, - 13640,-29793,13640,-29793,13640,-29793,13640,-29793, - 13327,-29935,13327,-29935,13327,-29935,13327,-29935, - 13013,-30073,13013,-30073,13013,-30073,13013,-30073, - 12697,-30207,12697,-30207,12697,-30207,12697,-30207, - 12380,-30339,12380,-30339,12380,-30339,12380,-30339, - 12062,-30466,12062,-30466,12062,-30466,12062,-30466, - 11742,-30591,11742,-30591,11742,-30591,11742,-30591, - 11421,-30712,11421,-30712,11421,-30712,11421,-30712, - 11099,-30830,11099,-30830,11099,-30830,11099,-30830, - 10775,-30945,10775,-30945,10775,-30945,10775,-30945, - 10451,-31056,10451,-31056,10451,-31056,10451,-31056, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9798,-31268,9798,-31268,9798,-31268,9798,-31268, - 9470,-31369,9470,-31369,9470,-31369,9470,-31369, - 9141,-31466,9141,-31466,9141,-31466,9141,-31466, - 8811,-31560,8811,-31560,8811,-31560,8811,-31560, - 8480,-31651,8480,-31651,8480,-31651,8480,-31651, - 8148,-31738,8148,-31738,8148,-31738,8148,-31738, - 7816,-31822,7816,-31822,7816,-31822,7816,-31822, - 7482,-31902,7482,-31902,7482,-31902,7482,-31902, - 7147,-31978,7147,-31978,7147,-31978,7147,-31978, - 6812,-32051,6812,-32051,6812,-32051,6812,-32051, - 6476,-32121,6476,-32121,6476,-32121,6476,-32121, - 6139,-32187,6139,-32187,6139,-32187,6139,-32187, - 5802,-32250,5802,-32250,5802,-32250,5802,-32250, - 5464,-32309,5464,-32309,5464,-32309,5464,-32309, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4786,-32416,4786,-32416,4786,-32416,4786,-32416, - 4446,-32464,4446,-32464,4446,-32464,4446,-32464, - 4106,-32509,4106,-32509,4106,-32509,4106,-32509, - 3766,-32550,3766,-32550,3766,-32550,3766,-32550, - 3425,-32588,3425,-32588,3425,-32588,3425,-32588, - 3083,-32622,3083,-32622,3083,-32622,3083,-32622, - 2741,-32653,2741,-32653,2741,-32653,2741,-32653, - 2399,-32680,2399,-32680,2399,-32680,2399,-32680, - 2057,-32703,2057,-32703,2057,-32703,2057,-32703, - 1714,-32723,1714,-32723,1714,-32723,1714,-32723, - 1372,-32739,1372,-32739,1372,-32739,1372,-32739, - 1029,-32751,1029,-32751,1029,-32751,1029,-32751, - 686,-32760,686,-32760,686,-32760,686,-32760, - 343,-32766,343,-32766,343,-32766,343,-32766, - 0,-32767,0,-32767,0,-32767,0,-32767, - -344,-32766,-344,-32766,-344,-32766,-344,-32766, - -687,-32760,-687,-32760,-687,-32760,-687,-32760, - -1030,-32751,-1030,-32751,-1030,-32751,-1030,-32751, - -1373,-32739,-1373,-32739,-1373,-32739,-1373,-32739, - -1715,-32723,-1715,-32723,-1715,-32723,-1715,-32723, - -2058,-32703,-2058,-32703,-2058,-32703,-2058,-32703, - -2400,-32680,-2400,-32680,-2400,-32680,-2400,-32680, - -2742,-32653,-2742,-32653,-2742,-32653,-2742,-32653, - -3084,-32622,-3084,-32622,-3084,-32622,-3084,-32622, - -3426,-32588,-3426,-32588,-3426,-32588,-3426,-32588, - -3767,-32550,-3767,-32550,-3767,-32550,-3767,-32550, - -4107,-32509,-4107,-32509,-4107,-32509,-4107,-32509, - -4447,-32464,-4447,-32464,-4447,-32464,-4447,-32464, - -4787,-32416,-4787,-32416,-4787,-32416,-4787,-32416, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5465,-32309,-5465,-32309,-5465,-32309,-5465,-32309, - -5803,-32250,-5803,-32250,-5803,-32250,-5803,-32250, - -6140,-32187,-6140,-32187,-6140,-32187,-6140,-32187, - -6477,-32121,-6477,-32121,-6477,-32121,-6477,-32121, - -6813,-32051,-6813,-32051,-6813,-32051,-6813,-32051, - -7148,-31978,-7148,-31978,-7148,-31978,-7148,-31978, - -7483,-31902,-7483,-31902,-7483,-31902,-7483,-31902, - -7817,-31822,-7817,-31822,-7817,-31822,-7817,-31822, - -8149,-31738,-8149,-31738,-8149,-31738,-8149,-31738, - -8481,-31651,-8481,-31651,-8481,-31651,-8481,-31651, - -8812,-31560,-8812,-31560,-8812,-31560,-8812,-31560, - -9142,-31466,-9142,-31466,-9142,-31466,-9142,-31466, - -9471,-31369,-9471,-31369,-9471,-31369,-9471,-31369, - -9799,-31268,-9799,-31268,-9799,-31268,-9799,-31268, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10452,-31056,-10452,-31056,-10452,-31056,-10452,-31056, - -10776,-30945,-10776,-30945,-10776,-30945,-10776,-30945, - -11100,-30830,-11100,-30830,-11100,-30830,-11100,-30830, - -11422,-30712,-11422,-30712,-11422,-30712,-11422,-30712, - -11743,-30591,-11743,-30591,-11743,-30591,-11743,-30591, - -12063,-30466,-12063,-30466,-12063,-30466,-12063,-30466, - -12381,-30339,-12381,-30339,-12381,-30339,-12381,-30339, - -12698,-30207,-12698,-30207,-12698,-30207,-12698,-30207, - -13014,-30073,-13014,-30073,-13014,-30073,-13014,-30073, - -13328,-29935,-13328,-29935,-13328,-29935,-13328,-29935, - -13641,-29793,-13641,-29793,-13641,-29793,-13641,-29793, - -13952,-29649,-13952,-29649,-13952,-29649,-13952,-29649, - -14262,-29501,-14262,-29501,-14262,-29501,-14262,-29501, - -14570,-29350,-14570,-29350,-14570,-29350,-14570,-29350, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15181,-29039,-15181,-29039,-15181,-29039,-15181,-29039, - -15485,-28878,-15485,-28878,-15485,-28878,-15485,-28878, - -15786,-28714,-15786,-28714,-15786,-28714,-15786,-28714, - -16086,-28548,-16086,-28548,-16086,-28548,-16086,-28548, - -16384,-28378,-16384,-28378,-16384,-28378,-16384,-28378, - -16680,-28204,-16680,-28204,-16680,-28204,-16680,-28204, - -16975,-28028,-16975,-28028,-16975,-28028,-16975,-28028, - -17267,-27849,-17267,-27849,-17267,-27849,-17267,-27849, - -17558,-27667,-17558,-27667,-17558,-27667,-17558,-27667, - -17847,-27481,-17847,-27481,-17847,-27481,-17847,-27481, - -18133,-27293,-18133,-27293,-18133,-27293,-18133,-27293, - -18418,-27101,-18418,-27101,-18418,-27101,-18418,-27101, - -18701,-26907,-18701,-26907,-18701,-26907,-18701,-26907, - -18982,-26710,-18982,-26710,-18982,-26710,-18982,-26710, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19537,-26306,-19537,-26306,-19537,-26306,-19537,-26306, - -19811,-26100,-19811,-26100,-19811,-26100,-19811,-26100, - -20084,-25892,-20084,-25892,-20084,-25892,-20084,-25892, - -20354,-25680,-20354,-25680,-20354,-25680,-20354,-25680, - -20621,-25465,-20621,-25465,-20621,-25465,-20621,-25465, - -20887,-25248,-20887,-25248,-20887,-25248,-20887,-25248, - -21150,-25028,-21150,-25028,-21150,-25028,-21150,-25028, - -21411,-24805,-21411,-24805,-21411,-24805,-21411,-24805, - -21670,-24579,-21670,-24579,-21670,-24579,-21670,-24579, - -21926,-24351,-21926,-24351,-21926,-24351,-21926,-24351, - -22180,-24120,-22180,-24120,-22180,-24120,-22180,-24120, - -22431,-23887,-22431,-23887,-22431,-23887,-22431,-23887, - -22680,-23650,-22680,-23650,-22680,-23650,-22680,-23650, - -22926,-23412,-22926,-23412,-22926,-23412,-22926,-23412, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23412,-22926,-23412,-22926,-23412,-22926,-23412,-22926, - -23650,-22680,-23650,-22680,-23650,-22680,-23650,-22680, - -23887,-22431,-23887,-22431,-23887,-22431,-23887,-22431, - -24120,-22180,-24120,-22180,-24120,-22180,-24120,-22180, - -24351,-21926,-24351,-21926,-24351,-21926,-24351,-21926, - -24579,-21670,-24579,-21670,-24579,-21670,-24579,-21670, - -24805,-21411,-24805,-21411,-24805,-21411,-24805,-21411, - -25028,-21150,-25028,-21150,-25028,-21150,-25028,-21150, - -25248,-20887,-25248,-20887,-25248,-20887,-25248,-20887, - -25465,-20621,-25465,-20621,-25465,-20621,-25465,-20621, - -25680,-20354,-25680,-20354,-25680,-20354,-25680,-20354, - -25892,-20084,-25892,-20084,-25892,-20084,-25892,-20084, - -26100,-19811,-26100,-19811,-26100,-19811,-26100,-19811, - -26306,-19537,-26306,-19537,-26306,-19537,-26306,-19537, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26710,-18982,-26710,-18982,-26710,-18982,-26710,-18982, - -26907,-18701,-26907,-18701,-26907,-18701,-26907,-18701, - -27101,-18418,-27101,-18418,-27101,-18418,-27101,-18418, - -27293,-18133,-27293,-18133,-27293,-18133,-27293,-18133, - -27481,-17847,-27481,-17847,-27481,-17847,-27481,-17847, - -27667,-17558,-27667,-17558,-27667,-17558,-27667,-17558, - -27849,-17267,-27849,-17267,-27849,-17267,-27849,-17267, - -28028,-16975,-28028,-16975,-28028,-16975,-28028,-16975, - -28204,-16680,-28204,-16680,-28204,-16680,-28204,-16680, - -28378,-16384,-28378,-16384,-28378,-16384,-28378,-16384, - -28548,-16086,-28548,-16086,-28548,-16086,-28548,-16086, - -28714,-15786,-28714,-15786,-28714,-15786,-28714,-15786, - -28878,-15485,-28878,-15485,-28878,-15485,-28878,-15485, - -29039,-15181,-29039,-15181,-29039,-15181,-29039,-15181, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29350,-14570,-29350,-14570,-29350,-14570,-29350,-14570, - -29501,-14262,-29501,-14262,-29501,-14262,-29501,-14262, - -29649,-13952,-29649,-13952,-29649,-13952,-29649,-13952, - -29793,-13641,-29793,-13641,-29793,-13641,-29793,-13641, - -29935,-13328,-29935,-13328,-29935,-13328,-29935,-13328, - -30073,-13014,-30073,-13014,-30073,-13014,-30073,-13014, - -30207,-12698,-30207,-12698,-30207,-12698,-30207,-12698, - -30339,-12381,-30339,-12381,-30339,-12381,-30339,-12381, - -30466,-12063,-30466,-12063,-30466,-12063,-30466,-12063, - -30591,-11743,-30591,-11743,-30591,-11743,-30591,-11743, - -30712,-11422,-30712,-11422,-30712,-11422,-30712,-11422, - -30830,-11100,-30830,-11100,-30830,-11100,-30830,-11100, - -30945,-10776,-30945,-10776,-30945,-10776,-30945,-10776, - -31056,-10452,-31056,-10452,-31056,-10452,-31056,-10452, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31268,-9799,-31268,-9799,-31268,-9799,-31268,-9799, - -31369,-9471,-31369,-9471,-31369,-9471,-31369,-9471, - -31466,-9142,-31466,-9142,-31466,-9142,-31466,-9142, - -31560,-8812,-31560,-8812,-31560,-8812,-31560,-8812, - -31651,-8481,-31651,-8481,-31651,-8481,-31651,-8481, - -31738,-8149,-31738,-8149,-31738,-8149,-31738,-8149, - -31822,-7817,-31822,-7817,-31822,-7817,-31822,-7817, - -31902,-7483,-31902,-7483,-31902,-7483,-31902,-7483, - -31978,-7148,-31978,-7148,-31978,-7148,-31978,-7148, - -32051,-6813,-32051,-6813,-32051,-6813,-32051,-6813, - -32121,-6477,-32121,-6477,-32121,-6477,-32121,-6477, - -32187,-6140,-32187,-6140,-32187,-6140,-32187,-6140, - -32250,-5803,-32250,-5803,-32250,-5803,-32250,-5803, - -32309,-5465,-32309,-5465,-32309,-5465,-32309,-5465, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32416,-4787,-32416,-4787,-32416,-4787,-32416,-4787, - -32464,-4447,-32464,-4447,-32464,-4447,-32464,-4447, - -32509,-4107,-32509,-4107,-32509,-4107,-32509,-4107, - -32550,-3767,-32550,-3767,-32550,-3767,-32550,-3767, - -32588,-3426,-32588,-3426,-32588,-3426,-32588,-3426, - -32622,-3084,-32622,-3084,-32622,-3084,-32622,-3084, - -32653,-2742,-32653,-2742,-32653,-2742,-32653,-2742, - -32680,-2400,-32680,-2400,-32680,-2400,-32680,-2400, - -32703,-2058,-32703,-2058,-32703,-2058,-32703,-2058, - -32723,-1715,-32723,-1715,-32723,-1715,-32723,-1715, - -32739,-1373,-32739,-1373,-32739,-1373,-32739,-1373, - -32751,-1030,-32751,-1030,-32751,-1030,-32751,-1030, - -32760,-687,-32760,-687,-32760,-687,-32760,-687, - -32766,-344,-32766,-344,-32766,-344,-32766,-344 - }; - -int16_t twc1200[4784] = { 32762,-515,32762,-515,32762,-515,32762,-515, - 32750,-1030,32750,-1030,32750,-1030,32750,-1030, - 32730,-1544,32730,-1544,32730,-1544,32730,-1544, - 32702,-2058,32702,-2058,32702,-2058,32702,-2058, - 32665,-2571,32665,-2571,32665,-2571,32665,-2571, - 32621,-3084,32621,-3084,32621,-3084,32621,-3084, - 32569,-3596,32569,-3596,32569,-3596,32569,-3596, - 32508,-4107,32508,-4107,32508,-4107,32508,-4107, - 32440,-4617,32440,-4617,32440,-4617,32440,-4617, - 32363,-5126,32363,-5126,32363,-5126,32363,-5126, - 32279,-5634,32279,-5634,32279,-5634,32279,-5634, - 32186,-6140,32186,-6140,32186,-6140,32186,-6140, - 32086,-6645,32086,-6645,32086,-6645,32086,-6645, - 31977,-7148,31977,-7148,31977,-7148,31977,-7148, - 31861,-7650,31861,-7650,31861,-7650,31861,-7650, - 31737,-8149,31737,-8149,31737,-8149,31737,-8149, - 31605,-8647,31605,-8647,31605,-8647,31605,-8647, - 31465,-9142,31465,-9142,31465,-9142,31465,-9142, - 31318,-9635,31318,-9635,31318,-9635,31318,-9635, - 31163,-10126,31163,-10126,31163,-10126,31163,-10126, - 31000,-10614,31000,-10614,31000,-10614,31000,-10614, - 30829,-11100,30829,-11100,30829,-11100,30829,-11100, - 30651,-11583,30651,-11583,30651,-11583,30651,-11583, - 30465,-12063,30465,-12063,30465,-12063,30465,-12063, - 30272,-12540,30272,-12540,30272,-12540,30272,-12540, - 30072,-13014,30072,-13014,30072,-13014,30072,-13014, - 29863,-13485,29863,-13485,29863,-13485,29863,-13485, - 29648,-13952,29648,-13952,29648,-13952,29648,-13952, - 29425,-14416,29425,-14416,29425,-14416,29425,-14416, - 29195,-14876,29195,-14876,29195,-14876,29195,-14876, - 28958,-15333,28958,-15333,28958,-15333,28958,-15333, - 28713,-15786,28713,-15786,28713,-15786,28713,-15786, - 28462,-16235,28462,-16235,28462,-16235,28462,-16235, - 28203,-16680,28203,-16680,28203,-16680,28203,-16680, - 27938,-17121,27938,-17121,27938,-17121,27938,-17121, - 27666,-17558,27666,-17558,27666,-17558,27666,-17558, - 27386,-17990,27386,-17990,27386,-17990,27386,-17990, - 27100,-18418,27100,-18418,27100,-18418,27100,-18418, - 26808,-18842,26808,-18842,26808,-18842,26808,-18842, - 26509,-19260,26509,-19260,26509,-19260,26509,-19260, - 26203,-19674,26203,-19674,26203,-19674,26203,-19674, - 25891,-20084,25891,-20084,25891,-20084,25891,-20084, - 25572,-20488,25572,-20488,25572,-20488,25572,-20488, - 25247,-20887,25247,-20887,25247,-20887,25247,-20887, - 24916,-21281,24916,-21281,24916,-21281,24916,-21281, - 24578,-21670,24578,-21670,24578,-21670,24578,-21670, - 24235,-22053,24235,-22053,24235,-22053,24235,-22053, - 23886,-22431,23886,-22431,23886,-22431,23886,-22431, - 23530,-22803,23530,-22803,23530,-22803,23530,-22803, - 23169,-23170,23169,-23170,23169,-23170,23169,-23170, - 22802,-23531,22802,-23531,22802,-23531,22802,-23531, - 22430,-23887,22430,-23887,22430,-23887,22430,-23887, - 22052,-24236,22052,-24236,22052,-24236,22052,-24236, - 21669,-24579,21669,-24579,21669,-24579,21669,-24579, - 21280,-24917,21280,-24917,21280,-24917,21280,-24917, - 20886,-25248,20886,-25248,20886,-25248,20886,-25248, - 20487,-25573,20487,-25573,20487,-25573,20487,-25573, - 20083,-25892,20083,-25892,20083,-25892,20083,-25892, - 19673,-26204,19673,-26204,19673,-26204,19673,-26204, - 19259,-26510,19259,-26510,19259,-26510,19259,-26510, - 18841,-26809,18841,-26809,18841,-26809,18841,-26809, - 18417,-27101,18417,-27101,18417,-27101,18417,-27101, - 17989,-27387,17989,-27387,17989,-27387,17989,-27387, - 17557,-27667,17557,-27667,17557,-27667,17557,-27667, - 17120,-27939,17120,-27939,17120,-27939,17120,-27939, - 16679,-28204,16679,-28204,16679,-28204,16679,-28204, - 16234,-28463,16234,-28463,16234,-28463,16234,-28463, - 15785,-28714,15785,-28714,15785,-28714,15785,-28714, - 15332,-28959,15332,-28959,15332,-28959,15332,-28959, - 14875,-29196,14875,-29196,14875,-29196,14875,-29196, - 14415,-29426,14415,-29426,14415,-29426,14415,-29426, - 13951,-29649,13951,-29649,13951,-29649,13951,-29649, - 13484,-29864,13484,-29864,13484,-29864,13484,-29864, - 13013,-30073,13013,-30073,13013,-30073,13013,-30073, - 12539,-30273,12539,-30273,12539,-30273,12539,-30273, - 12062,-30466,12062,-30466,12062,-30466,12062,-30466, - 11582,-30652,11582,-30652,11582,-30652,11582,-30652, - 11099,-30830,11099,-30830,11099,-30830,11099,-30830, - 10613,-31001,10613,-31001,10613,-31001,10613,-31001, - 10125,-31164,10125,-31164,10125,-31164,10125,-31164, - 9634,-31319,9634,-31319,9634,-31319,9634,-31319, - 9141,-31466,9141,-31466,9141,-31466,9141,-31466, - 8646,-31606,8646,-31606,8646,-31606,8646,-31606, - 8148,-31738,8148,-31738,8148,-31738,8148,-31738, - 7649,-31862,7649,-31862,7649,-31862,7649,-31862, - 7147,-31978,7147,-31978,7147,-31978,7147,-31978, - 6644,-32087,6644,-32087,6644,-32087,6644,-32087, - 6139,-32187,6139,-32187,6139,-32187,6139,-32187, - 5633,-32280,5633,-32280,5633,-32280,5633,-32280, - 5125,-32364,5125,-32364,5125,-32364,5125,-32364, - 4616,-32441,4616,-32441,4616,-32441,4616,-32441, - 4106,-32509,4106,-32509,4106,-32509,4106,-32509, - 3595,-32570,3595,-32570,3595,-32570,3595,-32570, - 3083,-32622,3083,-32622,3083,-32622,3083,-32622, - 2570,-32666,2570,-32666,2570,-32666,2570,-32666, - 2057,-32703,2057,-32703,2057,-32703,2057,-32703, - 1543,-32731,1543,-32731,1543,-32731,1543,-32731, - 1029,-32751,1029,-32751,1029,-32751,1029,-32751, - 514,-32763,514,-32763,514,-32763,514,-32763, - 0,-32767,0,-32767,0,-32767,0,-32767, - -515,-32763,-515,-32763,-515,-32763,-515,-32763, - -1030,-32751,-1030,-32751,-1030,-32751,-1030,-32751, - -1544,-32731,-1544,-32731,-1544,-32731,-1544,-32731, - -2058,-32703,-2058,-32703,-2058,-32703,-2058,-32703, - -2571,-32666,-2571,-32666,-2571,-32666,-2571,-32666, - -3084,-32622,-3084,-32622,-3084,-32622,-3084,-32622, - -3596,-32570,-3596,-32570,-3596,-32570,-3596,-32570, - -4107,-32509,-4107,-32509,-4107,-32509,-4107,-32509, - -4617,-32441,-4617,-32441,-4617,-32441,-4617,-32441, - -5126,-32364,-5126,-32364,-5126,-32364,-5126,-32364, - -5634,-32280,-5634,-32280,-5634,-32280,-5634,-32280, - -6140,-32187,-6140,-32187,-6140,-32187,-6140,-32187, - -6645,-32087,-6645,-32087,-6645,-32087,-6645,-32087, - -7148,-31978,-7148,-31978,-7148,-31978,-7148,-31978, - -7650,-31862,-7650,-31862,-7650,-31862,-7650,-31862, - -8149,-31738,-8149,-31738,-8149,-31738,-8149,-31738, - -8647,-31606,-8647,-31606,-8647,-31606,-8647,-31606, - -9142,-31466,-9142,-31466,-9142,-31466,-9142,-31466, - -9635,-31319,-9635,-31319,-9635,-31319,-9635,-31319, - -10126,-31164,-10126,-31164,-10126,-31164,-10126,-31164, - -10614,-31001,-10614,-31001,-10614,-31001,-10614,-31001, - -11100,-30830,-11100,-30830,-11100,-30830,-11100,-30830, - -11583,-30652,-11583,-30652,-11583,-30652,-11583,-30652, - -12063,-30466,-12063,-30466,-12063,-30466,-12063,-30466, - -12540,-30273,-12540,-30273,-12540,-30273,-12540,-30273, - -13014,-30073,-13014,-30073,-13014,-30073,-13014,-30073, - -13485,-29864,-13485,-29864,-13485,-29864,-13485,-29864, - -13952,-29649,-13952,-29649,-13952,-29649,-13952,-29649, - -14416,-29426,-14416,-29426,-14416,-29426,-14416,-29426, - -14876,-29196,-14876,-29196,-14876,-29196,-14876,-29196, - -15333,-28959,-15333,-28959,-15333,-28959,-15333,-28959, - -15786,-28714,-15786,-28714,-15786,-28714,-15786,-28714, - -16235,-28463,-16235,-28463,-16235,-28463,-16235,-28463, - -16680,-28204,-16680,-28204,-16680,-28204,-16680,-28204, - -17121,-27939,-17121,-27939,-17121,-27939,-17121,-27939, - -17558,-27667,-17558,-27667,-17558,-27667,-17558,-27667, - -17990,-27387,-17990,-27387,-17990,-27387,-17990,-27387, - -18418,-27101,-18418,-27101,-18418,-27101,-18418,-27101, - -18842,-26809,-18842,-26809,-18842,-26809,-18842,-26809, - -19260,-26510,-19260,-26510,-19260,-26510,-19260,-26510, - -19674,-26204,-19674,-26204,-19674,-26204,-19674,-26204, - -20084,-25892,-20084,-25892,-20084,-25892,-20084,-25892, - -20488,-25573,-20488,-25573,-20488,-25573,-20488,-25573, - -20887,-25248,-20887,-25248,-20887,-25248,-20887,-25248, - -21281,-24917,-21281,-24917,-21281,-24917,-21281,-24917, - -21670,-24579,-21670,-24579,-21670,-24579,-21670,-24579, - -22053,-24236,-22053,-24236,-22053,-24236,-22053,-24236, - -22431,-23887,-22431,-23887,-22431,-23887,-22431,-23887, - -22803,-23531,-22803,-23531,-22803,-23531,-22803,-23531, - -23170,-23170,-23170,-23170,-23170,-23170,-23170,-23170, - -23531,-22803,-23531,-22803,-23531,-22803,-23531,-22803, - -23887,-22431,-23887,-22431,-23887,-22431,-23887,-22431, - -24236,-22053,-24236,-22053,-24236,-22053,-24236,-22053, - -24579,-21670,-24579,-21670,-24579,-21670,-24579,-21670, - -24917,-21281,-24917,-21281,-24917,-21281,-24917,-21281, - -25248,-20887,-25248,-20887,-25248,-20887,-25248,-20887, - -25573,-20488,-25573,-20488,-25573,-20488,-25573,-20488, - -25892,-20084,-25892,-20084,-25892,-20084,-25892,-20084, - -26204,-19674,-26204,-19674,-26204,-19674,-26204,-19674, - -26510,-19260,-26510,-19260,-26510,-19260,-26510,-19260, - -26809,-18842,-26809,-18842,-26809,-18842,-26809,-18842, - -27101,-18418,-27101,-18418,-27101,-18418,-27101,-18418, - -27387,-17990,-27387,-17990,-27387,-17990,-27387,-17990, - -27667,-17558,-27667,-17558,-27667,-17558,-27667,-17558, - -27939,-17121,-27939,-17121,-27939,-17121,-27939,-17121, - -28204,-16680,-28204,-16680,-28204,-16680,-28204,-16680, - -28463,-16235,-28463,-16235,-28463,-16235,-28463,-16235, - -28714,-15786,-28714,-15786,-28714,-15786,-28714,-15786, - -28959,-15333,-28959,-15333,-28959,-15333,-28959,-15333, - -29196,-14876,-29196,-14876,-29196,-14876,-29196,-14876, - -29426,-14416,-29426,-14416,-29426,-14416,-29426,-14416, - -29649,-13952,-29649,-13952,-29649,-13952,-29649,-13952, - -29864,-13485,-29864,-13485,-29864,-13485,-29864,-13485, - -30073,-13014,-30073,-13014,-30073,-13014,-30073,-13014, - -30273,-12540,-30273,-12540,-30273,-12540,-30273,-12540, - -30466,-12063,-30466,-12063,-30466,-12063,-30466,-12063, - -30652,-11583,-30652,-11583,-30652,-11583,-30652,-11583, - -30830,-11100,-30830,-11100,-30830,-11100,-30830,-11100, - -31001,-10614,-31001,-10614,-31001,-10614,-31001,-10614, - -31164,-10126,-31164,-10126,-31164,-10126,-31164,-10126, - -31319,-9635,-31319,-9635,-31319,-9635,-31319,-9635, - -31466,-9142,-31466,-9142,-31466,-9142,-31466,-9142, - -31606,-8647,-31606,-8647,-31606,-8647,-31606,-8647, - -31738,-8149,-31738,-8149,-31738,-8149,-31738,-8149, - -31862,-7650,-31862,-7650,-31862,-7650,-31862,-7650, - -31978,-7148,-31978,-7148,-31978,-7148,-31978,-7148, - -32087,-6645,-32087,-6645,-32087,-6645,-32087,-6645, - -32187,-6140,-32187,-6140,-32187,-6140,-32187,-6140, - -32280,-5634,-32280,-5634,-32280,-5634,-32280,-5634, - -32364,-5126,-32364,-5126,-32364,-5126,-32364,-5126, - -32441,-4617,-32441,-4617,-32441,-4617,-32441,-4617, - -32509,-4107,-32509,-4107,-32509,-4107,-32509,-4107, - -32570,-3596,-32570,-3596,-32570,-3596,-32570,-3596, - -32622,-3084,-32622,-3084,-32622,-3084,-32622,-3084, - -32666,-2571,-32666,-2571,-32666,-2571,-32666,-2571, - -32703,-2058,-32703,-2058,-32703,-2058,-32703,-2058, - -32731,-1544,-32731,-1544,-32731,-1544,-32731,-1544, - -32751,-1030,-32751,-1030,-32751,-1030,-32751,-1030, - -32763,-515,-32763,-515,-32763,-515,-32763,-515, - -32767,-1,-32767,-1,-32767,-1,-32767,-1, - -32763,514,-32763,514,-32763,514,-32763,514, - -32751,1029,-32751,1029,-32751,1029,-32751,1029, - -32731,1543,-32731,1543,-32731,1543,-32731,1543, - -32703,2057,-32703,2057,-32703,2057,-32703,2057, - -32666,2570,-32666,2570,-32666,2570,-32666,2570, - -32622,3083,-32622,3083,-32622,3083,-32622,3083, - -32570,3595,-32570,3595,-32570,3595,-32570,3595, - -32509,4106,-32509,4106,-32509,4106,-32509,4106, - -32441,4616,-32441,4616,-32441,4616,-32441,4616, - -32364,5125,-32364,5125,-32364,5125,-32364,5125, - -32280,5633,-32280,5633,-32280,5633,-32280,5633, - -32187,6139,-32187,6139,-32187,6139,-32187,6139, - -32087,6644,-32087,6644,-32087,6644,-32087,6644, - -31978,7147,-31978,7147,-31978,7147,-31978,7147, - -31862,7649,-31862,7649,-31862,7649,-31862,7649, - -31738,8148,-31738,8148,-31738,8148,-31738,8148, - -31606,8646,-31606,8646,-31606,8646,-31606,8646, - -31466,9141,-31466,9141,-31466,9141,-31466,9141, - -31319,9634,-31319,9634,-31319,9634,-31319,9634, - -31164,10125,-31164,10125,-31164,10125,-31164,10125, - -31001,10613,-31001,10613,-31001,10613,-31001,10613, - -30830,11099,-30830,11099,-30830,11099,-30830,11099, - -30652,11582,-30652,11582,-30652,11582,-30652,11582, - -30466,12062,-30466,12062,-30466,12062,-30466,12062, - -30273,12539,-30273,12539,-30273,12539,-30273,12539, - -30073,13013,-30073,13013,-30073,13013,-30073,13013, - -29864,13484,-29864,13484,-29864,13484,-29864,13484, - -29649,13951,-29649,13951,-29649,13951,-29649,13951, - -29426,14415,-29426,14415,-29426,14415,-29426,14415, - -29196,14875,-29196,14875,-29196,14875,-29196,14875, - -28959,15332,-28959,15332,-28959,15332,-28959,15332, - -28714,15785,-28714,15785,-28714,15785,-28714,15785, - -28463,16234,-28463,16234,-28463,16234,-28463,16234, - -28204,16679,-28204,16679,-28204,16679,-28204,16679, - -27939,17120,-27939,17120,-27939,17120,-27939,17120, - -27667,17557,-27667,17557,-27667,17557,-27667,17557, - -27387,17989,-27387,17989,-27387,17989,-27387,17989, - -27101,18417,-27101,18417,-27101,18417,-27101,18417, - -26809,18841,-26809,18841,-26809,18841,-26809,18841, - -26510,19259,-26510,19259,-26510,19259,-26510,19259, - -26204,19673,-26204,19673,-26204,19673,-26204,19673, - -25892,20083,-25892,20083,-25892,20083,-25892,20083, - -25573,20487,-25573,20487,-25573,20487,-25573,20487, - -25248,20886,-25248,20886,-25248,20886,-25248,20886, - -24917,21280,-24917,21280,-24917,21280,-24917,21280, - -24579,21669,-24579,21669,-24579,21669,-24579,21669, - -24236,22052,-24236,22052,-24236,22052,-24236,22052, - -23887,22430,-23887,22430,-23887,22430,-23887,22430, - -23531,22802,-23531,22802,-23531,22802,-23531,22802, - -23170,23169,-23170,23169,-23170,23169,-23170,23169, - -22803,23530,-22803,23530,-22803,23530,-22803,23530, - -22431,23886,-22431,23886,-22431,23886,-22431,23886, - -22053,24235,-22053,24235,-22053,24235,-22053,24235, - -21670,24578,-21670,24578,-21670,24578,-21670,24578, - -21281,24916,-21281,24916,-21281,24916,-21281,24916, - -20887,25247,-20887,25247,-20887,25247,-20887,25247, - -20488,25572,-20488,25572,-20488,25572,-20488,25572, - -20084,25891,-20084,25891,-20084,25891,-20084,25891, - -19674,26203,-19674,26203,-19674,26203,-19674,26203, - -19260,26509,-19260,26509,-19260,26509,-19260,26509, - -18842,26808,-18842,26808,-18842,26808,-18842,26808, - -18418,27100,-18418,27100,-18418,27100,-18418,27100, - -17990,27386,-17990,27386,-17990,27386,-17990,27386, - -17558,27666,-17558,27666,-17558,27666,-17558,27666, - -17121,27938,-17121,27938,-17121,27938,-17121,27938, - -16680,28203,-16680,28203,-16680,28203,-16680,28203, - -16235,28462,-16235,28462,-16235,28462,-16235,28462, - -15786,28713,-15786,28713,-15786,28713,-15786,28713, - -15333,28958,-15333,28958,-15333,28958,-15333,28958, - -14876,29195,-14876,29195,-14876,29195,-14876,29195, - -14416,29425,-14416,29425,-14416,29425,-14416,29425, - -13952,29648,-13952,29648,-13952,29648,-13952,29648, - -13485,29863,-13485,29863,-13485,29863,-13485,29863, - -13014,30072,-13014,30072,-13014,30072,-13014,30072, - -12540,30272,-12540,30272,-12540,30272,-12540,30272, - -12063,30465,-12063,30465,-12063,30465,-12063,30465, - -11583,30651,-11583,30651,-11583,30651,-11583,30651, - -11100,30829,-11100,30829,-11100,30829,-11100,30829, - -10614,31000,-10614,31000,-10614,31000,-10614,31000, - -10126,31163,-10126,31163,-10126,31163,-10126,31163, - -9635,31318,-9635,31318,-9635,31318,-9635,31318, - -9142,31465,-9142,31465,-9142,31465,-9142,31465, - -8647,31605,-8647,31605,-8647,31605,-8647,31605, - -8149,31737,-8149,31737,-8149,31737,-8149,31737, - -7650,31861,-7650,31861,-7650,31861,-7650,31861, - -7148,31977,-7148,31977,-7148,31977,-7148,31977, - -6645,32086,-6645,32086,-6645,32086,-6645,32086, - -6140,32186,-6140,32186,-6140,32186,-6140,32186, - -5634,32279,-5634,32279,-5634,32279,-5634,32279, - -5126,32363,-5126,32363,-5126,32363,-5126,32363, - -4617,32440,-4617,32440,-4617,32440,-4617,32440, - -4107,32508,-4107,32508,-4107,32508,-4107,32508, - -3596,32569,-3596,32569,-3596,32569,-3596,32569, - -3084,32621,-3084,32621,-3084,32621,-3084,32621, - -2571,32665,-2571,32665,-2571,32665,-2571,32665, - -2058,32702,-2058,32702,-2058,32702,-2058,32702, - -1544,32730,-1544,32730,-1544,32730,-1544,32730, - -1030,32750,-1030,32750,-1030,32750,-1030,32750, - -515,32762,-515,32762,-515,32762,-515,32762 - }; - +int16_t twa1200[4784]; +int16_t twb1200[4784]; +int16_t twc1200[4784]; void dft1200(int16_t *x,int16_t *y,unsigned char scale_flag) { @@ -18504,11 +8498,335 @@ void dft1200(int16_t *x,int16_t *y,unsigned char scale_flag) } +void init_rad4(int N,int16_t *tw) { + + int16_t *twa = tw; + int16_t *twb = twa+(N/2); + int16_t *twc = twb+(N/2); + int i; + + for (i=0;i<(N/4);i++) { + *twa = (int16_t)round(32767.0*cos(2*M_PI*i/N)); twa++; + *twa = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); twa++; + *twb = (int16_t)round(32767.0*cos(2*M_PI*2*i/N)); twb++; + *twb = -(int16_t)round(32767.0*sin(2*M_PI*2*i/N)); twb++; + *twc = (int16_t)round(32767.0*cos(2*M_PI*3*i/N)); twc++; + *twc = -(int16_t)round(32767.0*sin(2*M_PI*3*i/N)); twc++; + } +} +void init_rad4_rep(int N,int16_t *twa,int16_t *twb,int16_t *twc) { + + int i,j; + + for (i=1;i<(N/4);i++) { + twa[0] = (int16_t)round(32767.0*cos(2*M_PI*i/N)); + twa[1] = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); + twb[0] = (int16_t)round(32767.0*cos(2*M_PI*2*i/N)); + twb[1] = -(int16_t)round(32767.0*sin(2*M_PI*2*i/N)); + twc[0] = (int16_t)round(32767.0*cos(2*M_PI*3*i/N)); + twc[1] = -(int16_t)round(32767.0*sin(2*M_PI*3*i/N)); + for (j=1;j<4;j++) { + ((int32_t*)twa)[j]=((int32_t*)twa)[0]; + ((int32_t*)twb)[j]=((int32_t*)twb)[0]; + ((int32_t*)twc)[j]=((int32_t*)twc)[0]; + } + twa+=8; + twb+=8; + twc+=8; + } +} + +void init_rad2(int N,int16_t *tw) { + + int16_t *twa = tw; + int i; + + for (i=0;i<(N>>1);i++) { + *twa = (int16_t)round(32767.0*cos(2*M_PI*i/N)); twa++; + *twa = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); twa++; + } +} + +void init_rad2_rep(int N,int16_t *twa) { + + int i,j; + + for (i=1;i<(N/2);i++) { + twa[0] = (int16_t)round(32767.0*cos(2*M_PI*i/N)); + twa[1] = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); + for (j=1;j<4;j++) { + ((int32_t*)twa)[j]=((int32_t*)twa)[0]; + } + twa+=8; + } +} + +void init_rad3(int N,int16_t *twa,int16_t *twb) { + + int i; + + for (i=0;i<(N/3);i++) { + *twa = (int16_t)round(32767.0*cos(2*M_PI*i/N)); twa++; + *twa = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); twa++; + *twb = (int16_t)round(32767.0*cos(2*M_PI*2*i/N)); twb++; + *twb = -(int16_t)round(32767.0*sin(2*M_PI*2*i/N)); twb++; + } +} + +void init_rad3_rep(int N,int16_t *twa,int16_t *twb) { + + int i,j; + + for (i=1;i<(N/3);i++) { + twa[0] = (int16_t)round(32767.0*cos(2*M_PI*i/N)); + twa[1] = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); + twb[0] = (int16_t)round(32767.0*cos(2*M_PI*2*i/N)); + twb[1] = -(int16_t)round(32767.0*sin(2*M_PI*2*i/N)); + for (j=1;j<4;j++) { + ((int32_t*)twa)[j]=((int32_t*)twa)[0]; + ((int32_t*)twb)[j]=((int32_t*)twb)[0]; + } + twa+=8; + twb+=8; + } +} + +void init_rad5_rep(int N,int16_t *twa,int16_t *twb,int16_t *twc,int16_t *twd) { + + int i,j; + + for (i=1;i<(N/5);i++) { + twa[0] = (int16_t)round(32767.0*cos(2*M_PI*i/N)); + twa[1] = -(int16_t)round(32767.0*sin(2*M_PI*i/N)); + twb[0] = (int16_t)round(32767.0*cos(2*M_PI*2*i/N)); + twb[1] = -(int16_t)round(32767.0*sin(2*M_PI*2*i/N)); + twc[0] = (int16_t)round(32767.0*cos(2*M_PI*3*i/N)); + twc[1] = -(int16_t)round(32767.0*sin(2*M_PI*3*i/N)); + twd[0] = (int16_t)round(32767.0*cos(2*M_PI*4*i/N)); + twd[1] = -(int16_t)round(32767.0*sin(2*M_PI*4*i/N)); + for (j=1;j<4;j++) { + ((int32_t*)twa)[j]=((int32_t*)twa)[0]; + ((int32_t*)twb)[j]=((int32_t*)twb)[0]; + ((int32_t*)twc)[j]=((int32_t*)twc)[0]; + ((int32_t*)twd)[j]=((int32_t*)twd)[0]; + } + twa+=8; + twb+=8; + twc+=8; + twd+=8; + } +} + + +init_dfts() { + + init_rad4(1024,tw1024); + init_rad2(2048,tw2048); + init_rad4(4096,tw4096); + init_rad2(8192,tw8192); + + init_rad3(1536,twa1536,twb1536); + init_rad3(3072,twa3072,twb3072); + init_rad3(6144,twa6144,twb6144); + init_rad3(12288,twa12288,twb12288); + init_rad3(18432,twa18432,twb18432); + init_rad3(24576,twa24576,twb24576); + + init_rad2_rep(24,tw24); + init_rad3_rep(36,twa36,twb36); + init_rad4_rep(48,twa48,twb48,twc48); + init_rad5_rep(60,twa60,twb60,twc60,twd60); + init_rad2_rep(72,tw72); + init_rad2_rep(96,tw96); + init_rad3_rep(108,twa108,twb108); + init_rad2_rep(120,tw120); + init_rad3_rep(144,twa144,twb144); + init_rad3_rep(180,twa180,twb180); + init_rad4_rep(192,twa192,twb192,twc192); + init_rad3_rep(216,twa216,twb216); + init_rad4_rep(240,twa240,twb240,twc240); + init_rad3_rep(288,twa288,twb288); + init_rad5_rep(300,twa300,twb300,twc300,twd300); + init_rad3_rep(324,twa324,twb324); + init_rad3_rep(360,twa360,twb360); + init_rad4_rep(384,twa384,twb384,twc384); + init_rad4_rep(432,twa432,twb432,twc432); + init_rad4_rep(480,twa480,twb480,twc480); + init_rad3_rep(540,twa540,twb540); + init_rad3_rep(576,twa576,twb576); + init_rad2_rep(600,twa600); + init_rad3_rep(648,twa648,twb648); + init_rad4_rep(720,twa720,twb720,twc720); + init_rad4_rep(768,twa768,twb768,twc768); + init_rad3_rep(864,twa864,twb864); + init_rad3_rep(900,twa900,twb900); + init_rad4_rep(960,twa960,twb960,twc960); + init_rad3_rep(972,twa972,twb972); + init_rad3_rep(1080,twa1080,twb1080); + init_rad4_rep(1152,twa1152,twb1152,twc1152); + init_rad4_rep(1200,twa1200,twb1200,twc1200); +} #ifdef MR_MAIN #include <string.h> #include <stdio.h> +#define LOG_M write_output +int write_output(const char *fname,const char *vname,void *data,int length,int dec,char format) +{ + + FILE *fp=NULL; + int i; + + + printf("Writing %d elements of type %d to %s\n",length,format,fname); + + + if (format == 10 || format ==11 || format == 12 || format == 13 || format == 14) { + fp = fopen(fname,"a+"); + } else if (format != 10 && format !=11 && format != 12 && format != 13 && format != 14) { + fp = fopen(fname,"w+"); + } + + + + if (fp== NULL) { + printf("[OPENAIR][FILE OUTPUT] Cannot open file %s\n",fname); + return(-1); + } + + if (format != 10 && format !=11 && format != 12 && format != 13 && format != 14) + fprintf(fp,"%s = [",vname); + + + switch (format) { + case 0: // real 16-bit + + for (i=0; i<length; i+=dec) { + fprintf(fp,"%d\n",((short *)data)[i]); + } + + break; + + case 1: // complex 16-bit + case 13: + case 14: + case 15: + + for (i=0; i<length<<1; i+=(2*dec)) { + fprintf(fp,"%d + j*(%d)\n",((short *)data)[i],((short *)data)[i+1]); + + } + + + break; + + case 2: // real 32-bit + for (i=0; i<length; i+=dec) { + fprintf(fp,"%d\n",((int *)data)[i]); + } + + break; + + case 3: // complex 32-bit + for (i=0; i<length<<1; i+=(2*dec)) { + fprintf(fp,"%d + j*(%d)\n",((int *)data)[i],((int *)data)[i+1]); + } + + break; + + case 4: // real 8-bit + for (i=0; i<length; i+=dec) { + fprintf(fp,"%d\n",((char *)data)[i]); + } + + break; + + case 5: // complex 8-bit + for (i=0; i<length<<1; i+=(2*dec)) { + fprintf(fp,"%d + j*(%d)\n",((char *)data)[i],((char *)data)[i+1]); + } + + break; + + case 6: // real 64-bit + for (i=0; i<length; i+=dec) { + fprintf(fp,"%lld\n",((long long*)data)[i]); + } + + break; + + case 7: // real double + for (i=0; i<length; i+=dec) { + fprintf(fp,"%g\n",((double *)data)[i]); + } + + break; + + case 8: // complex double + for (i=0; i<length<<1; i+=2*dec) { + fprintf(fp,"%g + j*(%g)\n",((double *)data)[i], ((double *)data)[i+1]); + } + + break; + + case 9: // real unsigned 8-bit + for (i=0; i<length; i+=dec) { + fprintf(fp,"%d\n",((unsigned char *)data)[i]); + } + + break; + + + case 10 : // case eren 16 bit complex : + + for (i=0; i<length<<1; i+=(2*dec)) { + + if((i < 2*(length-1)) && (i > 0)) + fprintf(fp,"%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]); + else if (i == 2*(length-1)) + fprintf(fp,"%d + j*(%d);",((short *)data)[i],((short *)data)[i+1]); + else if (i == 0) + fprintf(fp,"\n%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]); + + + + } + + break; + + case 11 : //case eren 16 bit real for channel magnitudes: + for (i=0; i<length; i+=dec) { + + if((i <(length-1))&& (i > 0)) + fprintf(fp,"%d,",((short *)data)[i]); + else if (i == (length-1)) + fprintf(fp,"%d;",((short *)data)[i]); + else if (i == 0) + fprintf(fp,"\n%d,",((short *)data)[i]); + } + + printf("\n erennnnnnnnnnnnnnn: length :%d",length); + break; + + case 12 : // case eren for log2_maxh real unsigned 8 bit + fprintf(fp,"%d \n",((unsigned char *)&data)[0]); + break; + + } + + if (format != 10 && format !=11 && format !=12 && format != 13 && format != 15) { + fprintf(fp,"];\n"); + fclose(fp); + return(0); + } else if (format == 10 || format ==11 || format == 12 || format == 13 || format == 15) { + fclose(fp); + return(0); + } + + return 0; +} + int main(int argc, char**argv) { @@ -18516,12 +8834,14 @@ int main(int argc, char**argv) time_stats_t ts; #ifdef __AVX2__ - simd256_q15_t x[2048],y[2048],tw0,tw1,tw2,tw3; + simd256_q15_t x[4096],y[4096],tw0,tw1,tw2,tw3; #else - simd_q15_t x[4096],y[4096],tw0,tw1,tw2,tw3; + simd_q15_t x[8192],y[8192],tw0,tw1,tw2,tw3; #endif int i; - simd_q15_t *x128=x,*y128=y; + simd_q15_t *x128=(simd_q15_t*)x,*y128=(simd_q15_t*)y; + + init_dfts(); set_taus_seed(0); opp_enabled = 1; @@ -18688,155 +9008,7 @@ int main(int argc, char**argv) printf("%d,%d,",((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); printf("\n"); - dft24((int16_t *)x,(int16_t *)y,1); - printf("\n\n24-point\n"); - printf("X: "); - for (i=0;i<24;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<24;i++) - printf("%d,%d,",((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft36((int16_t *)x,(int16_t *)y,1); - printf("\n\n36-point\n"); - printf("X: "); - for (i=0;i<36;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<36;i++) - printf("%d,%d,",((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft48((int16_t *)x,(int16_t *)y,1); - printf("\n\n48-point\n"); - printf("X: "); - for (i=0;i<48;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<48;i++) - printf("%d,%d,",((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); */ - dft60((int16_t *)x,(int16_t *)y,1); - printf("\n\n60-point\n"); - printf("X: "); - for (i=0;i<60;i++) - printf("%d,%d,",((int16_t*)(&x128[i]))[0],((int16_t *)(&x128[i]))[1]); - printf("\nY:"); - for (i=0;i<60;i++) - printf("%d,%d,",((int16_t*)(&y128[i]))[0],((int16_t *)(&y128[i]))[1]); - printf("\n"); - - dft72((int16_t *)x,(int16_t *)y,1); - printf("\n\n72-point\n"); - printf("X: "); - for (i=0;i<72;i++) - printf("%d,%d,",((int16_t*)(&x128[i]))[0],((int16_t *)(&x128[i]))[1]); - printf("\nY:"); - for (i=0;i<72;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y128[i]))[0],((int16_t *)(&y128[i]))[1]); - printf("\n"); - /* - dft96((int16_t *)x,(int16_t *)y,1); - printf("\n\n96-point\n"); - printf("X: "); - for (i=0;i<96;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<96;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft108((int16_t *)x,(int16_t *)y,1); - printf("\n\n108-point\n"); - printf("X: "); - for (i=0;i<108;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<108;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - */ - dft120((int16_t *)x,(int16_t *)y,1); - printf("\n\n120-point\n"); - printf("X: "); - for (i=0;i<120;i++) - printf("%d,%d,",((int16_t*)(&x128[i]))[0],((int16_t *)(&x128[i]))[1]); - printf("\nY:"); - for (i=0;i<120;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y128[i]))[0],((int16_t *)(&y128[i]))[1]); - printf("\n"); - /* - dft144((int16_t *)x,(int16_t *)y,1); - printf("\n\n144-point\n"); - printf("X: "); - for (i=0;i<144;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<144;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft180((int16_t *)x,(int16_t *)y,1); - printf("\n\n180-point\n"); - printf("X: "); - for (i=0;i<180;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<180;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft192((int16_t *)x,(int16_t *)y,1); - printf("\n\n192-point\n"); - printf("X: "); - for (i=0;i<192;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<192;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft216((int16_t *)x,(int16_t *)y,1); - printf("\n\n216-point\n"); - printf("X: "); - for (i=0;i<216;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<216;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft240((int16_t *)x,(int16_t *)y,1); - printf("\n\n240-point\n"); - printf("X: "); - for (i=0;i<240;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<240;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft288((int16_t *)x,(int16_t *)y,1); - printf("\n\n288-point\n"); - printf("X: "); - for (i=0;i<288;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<288;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); - - dft300((int16_t *)x,(int16_t *)y,1); - printf("\n\n300-point\n"); - printf("X: "); - for (i=0;i<300;i++) - printf("%d,%d,",((int16_t*)(&x[i]))[0],((int16_t *)(&x[i]))[1]); - printf("\nY:"); - for (i=0;i<300;i++) - printf("%d: %d,%d\n",i,((int16_t*)(&y[i]))[0],((int16_t *)(&y[i]))[1]); - printf("\n"); for (i=0;i<32;i++) { ((int16_t*)x)[i] = (int16_t)((taus()&0xffff))>>5; @@ -18852,7 +9024,7 @@ int main(int argc, char**argv) for (i=0;i<4;i++) printf("%d,%d,%d,%d,%d,%d,%d,%d,",((int16_t*)&y[i])[0],((int16_t *)&y[i])[1],((int16_t*)&y[i])[2],((int16_t *)&y[i])[3],((int16_t*)&y[i])[4],((int16_t *)&y[i])[5],((int16_t*)&y[i])[6],((int16_t *)&y[i])[7]); printf("\n"); - */ + memset((void*)&x[0],0,2048*4); for (i=0; i<2048; i+=4) { @@ -18918,12 +9090,12 @@ int main(int argc, char**argv) stop_meas(&ts); } - + /* printf("\n\n64-point (%f cycles, #trials %d)\n",(double)ts.diff/(double)ts.trials,ts.trials); // LOG_M("x64.m","x64",x,64,1,1); LOG_M("y64.m","y64",y,64,1,1); LOG_M("x64.m","x64",x,64,1,1); - + * /* printf("X: "); for (i=0;i<16;i++) @@ -19128,7 +9300,7 @@ int main(int argc, char**argv) else ((int16_t*)x)[i] = -364; } - for (i=2*(4096-1200);i<8192;i++) { + for (i=2*(8192-2400);i<16384;i++) { if ((taus() & 1)==0) ((int16_t*)x)[i] = 364; else @@ -19141,10 +9313,192 @@ int main(int argc, char**argv) stop_meas(&ts); } - printf("\n\n8192-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + printf("\n\n1536-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); LOG_M("y8192.m","y8192",y,8192,1,1); LOG_M("x8192.m","x8192",x,8192,1,1); + memset((void*)x,0,1536*sizeof(int32_t)); + for (i=2;i<1202;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + for (i=2*(1536-600);i<3072;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + reset_meas(&ts); + for (i=0; i<10000; i++) { + start_meas(&ts); + idft1536((int16_t *)x,(int16_t *)y,1); + stop_meas(&ts); + } + + printf("\n\n1536-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + LOG_M("y1536.m","y1536",y,1536,1,1); + LOG_M("x1536.m","x1536",x,1536,1,1); + + printf("\n\n1536-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + LOG_M("y8192.m","y8192",y,8192,1,1); + LOG_M("x8192.m","x8192",x,8192,1,1); + + memset((void*)x,0,3072*sizeof(int32_t)); + for (i=2;i<1202;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + for (i=2*(3072-600);i<3072;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + reset_meas(&ts); + for (i=0; i<10000; i++) { + start_meas(&ts); + idft3072((int16_t *)x,(int16_t *)y,1); + stop_meas(&ts); + } + + printf("\n\n3072-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + LOG_M("y3072.m","y3072",y,3072,1,1); + LOG_M("x3072.m","x3072",x,3072,1,1); + + memset((void*)x,0,6144*sizeof(int32_t)); + for (i=2;i<4802;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + for (i=2*(6144-2400);i<12288;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + reset_meas(&ts); + for (i=0; i<10000; i++) { + start_meas(&ts); + idft6144((int16_t *)x,(int16_t *)y,1); + stop_meas(&ts); + } + + printf("\n\n6144-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + LOG_M("y6144.m","y6144",y,6144,1,1); + LOG_M("x6144.m","x6144",x,6144,1,1); + + memset((void*)x,0,12288*sizeof(int32_t)); + for (i=2;i<9602;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + for (i=2*(12288-4800);i<24576;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + reset_meas(&ts); + for (i=0; i<10000; i++) { + start_meas(&ts); + idft12288((int16_t *)x,(int16_t *)y,1); + stop_meas(&ts); + } + + printf("\n\n12288-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + LOG_M("y12288.m","y12288",y,12288,1,1); + LOG_M("x12288.m","x12288",x,12288,1,1); + + memset((void*)x,0,18432*sizeof(int32_t)); + for (i=2;i<14402;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + for (i=2*(18432-7200);i<36864;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + reset_meas(&ts); + for (i=0; i<10000; i++) { + start_meas(&ts); + idft18432((int16_t *)x,(int16_t *)y,1); + stop_meas(&ts); + } + + printf("\n\n18432-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + LOG_M("y18432.m","y18432",y,18432,1,1); + LOG_M("x18432.m","x18432",x,18432,1,1); + + memset((void*)x,0,24576*sizeof(int32_t)); + for (i=2;i<19202;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + for (i=2*(24576-19200);i<49152;i++) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + } + reset_meas(&ts); + for (i=0; i<10000; i++) { + start_meas(&ts); + idft24576((int16_t *)x,(int16_t *)y,1); + stop_meas(&ts); + } + + printf("\n\n24576-point(%f cycles)\n",(double)ts.diff/(double)ts.trials); + LOG_M("y24576.m","y24576",y,24576,1,1); + LOG_M("x24576.m","x24576",x,24576,1,1); + + int dftsizes[33]={24,36,48,60,72,96,108,120,144,180,192,216,240,288,300,324,360,384,432,480,540,576,600,648,720,768,864,900,960,972,1080,1152,1200}; + void (*dft[33])(int16_t *x,int16_t *y,uint8_t scale) = {dft24,dft36,dft48,dft60,dft72,dft96,dft108,dft120,dft144,dft180,dft192,dft216,dft240,dft288,dft300,dft324,dft360,dft384,dft432,dft480,dft540,dft576,dft600,dft648,dft720,dft768,dft864,dft900,dft960,dft972,dft1080,dft1152,dft1200}; + for (int n=0;n<33;n++) { + // 4xN-point DFT + memset((void*)x,0,dftsizes[n]*8*sizeof(int16_t)); + for (i=0;i<dftsizes[n]*8;i+=8) { + if ((taus() & 1)==0) + ((int16_t*)x)[i] = 364; + else + ((int16_t*)x)[i] = -364; + if ((taus() & 1)==0) + ((int16_t*)x)[i+1] = 364; + else + ((int16_t*)x)[i+1] = -364; + } + + reset_meas(&ts); + for (i=0; i<10000; i++) { + start_meas(&ts); + (dft[n])((int16_t *)x,(int16_t *)y,1); + stop_meas(&ts); + } + + printf("\n\n4x%d-point(%f cycles)\n",dftsizes[n],(double)ts.diff/(double)ts.trials); + char ystr[5],xstr[5],ystr2[5],xstr2[5]; + sprintf(ystr,"y%d.m",dftsizes[n]); + sprintf(xstr,"x%d.m",dftsizes[n]); + sprintf(ystr2,"y%d",dftsizes[n]); + sprintf(xstr2,"x%d",dftsizes[n]); + LOG_M(ystr,ystr2,y,dftsizes[n]*4,1,1); + LOG_M(xstr,xstr2,x,dftsizes[n]*4,1,1); + } + + return(0); } diff --git a/openair1/PHY/TOOLS/tools_defs.h b/openair1/PHY/TOOLS/tools_defs.h index e09cfb5ed84ee65a272f9ceb0f1b3bef2cb72215..a5e8d49eb7d95eeeca4120fe5705eeb80fc3df61 100644 --- a/openair1/PHY/TOOLS/tools_defs.h +++ b/openair1/PHY/TOOLS/tools_defs.h @@ -174,27 +174,27 @@ This function performs optimized fixed-point radix-2 FFT/IFFT. void idft1536(int16_t *sigF,int16_t *sig,int scale); -void idft6144(int16_t *sigF,int16_t *sig); +void idft6144(int16_t *sigF,int16_t *sig,int scale); -void idft12288(int16_t *sigF,int16_t *sig); +void idft12288(int16_t *sigF,int16_t *sig,int scale); -void idft18432(int16_t *sigF,int16_t *sig); +void idft18432(int16_t *sigF,int16_t *sig,int scale); -void idft3072(int16_t *sigF,int16_t *sig); +void idft3072(int16_t *sigF,int16_t *sig,int scale); -void idft24576(int16_t *sigF,int16_t *sig); +void idft24576(int16_t *sigF,int16_t *sig,int scale); void dft1536(int16_t *sigF,int16_t *sig,int scale); -void dft6144(int16_t *sigF,int16_t *sig); +void dft6144(int16_t *sigF,int16_t *sig,int scale); -void dft12288(int16_t *sigF,int16_t *sig); +void dft12288(int16_t *sigF,int16_t *sig,int scale); -void dft18432(int16_t *sigF,int16_t *sig); +void dft18432(int16_t *sigF,int16_t *sig,int scale); -void dft3072(int16_t *sigF,int16_t *sig); +void dft3072(int16_t *sigF,int16_t *sig,int scale); -void dft24576(int16_t *sigF,int16_t *sig); +void dft24576(int16_t *sigF,int16_t *sig,int scale); /*!\fn int32_t rotate_cpx_vector(int16_t *x,int16_t *alpha,int16_t *y,uint32_t N,uint16_t output_shift) diff --git a/openair1/PHY/TOOLS/twiddle12288.h b/openair1/PHY/TOOLS/twiddle12288.h deleted file mode 100644 index 17fa92f4e9b341ccb0dd05cc44e83817ed6a2475..0000000000000000000000000000000000000000 --- a/openair1/PHY/TOOLS/twiddle12288.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:4095)/12288)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*(0:2:8190)/12288)); -twa2 = zeros(1,8192); -twb2 = zeros(1,8192); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); - - - */ - -int16_t twa12288[8192] __attribute__((aligned(32))) = {32767,0,32766,-17,32766,-34,32766,-51,32766,-68,32766,-84,32766,-101,32766,-118,32766,-135,32766,-151,32766,-168,32766,-185,32766,-202,32766,-218,32766,-235,32766,-252,32765,-269,32765,-285,32765,-302,32765,-319,32765,-336,32765,-352,32764,-369,32764,-386,32764,-403,32764,-419,32764,-436,32763,-453,32763,-470,32763,-486,32763,-503,32762,-520,32762,-537,32762,-553,32762,-570,32761,-587,32761,-604,32761,-620,32760,-637,32760,-654,32760,-671,32759,-687,32759,-704,32759,-721,32758,-738,32758,-754,32757,-771,32757,-788,32757,-805,32756,-821,32756,-838,32755,-855,32755,-872,32754,-888,32754,-905,32754,-922,32753,-939,32753,-955,32752,-972,32752,-989,32751,-1006,32751,-1022,32750,-1039,32750,-1056,32749,-1073,32748,-1089,32748,-1106,32747,-1123,32747,-1140,32746,-1156,32746,-1173,32745,-1190,32744,-1207,32744,-1223,32743,-1240,32742,-1257,32742,-1274,32741,-1290,32740,-1307,32740,-1324,32739,-1340,32738,-1357,32738,-1374,32737,-1391,32736,-1407,32736,-1424,32735,-1441,32734,-1458,32733,-1474,32733,-1491,32732,-1508,32731,-1525,32730,-1541,32729,-1558,32729,-1575,32728,-1592,32727,-1608,32726,-1625,32725,-1642,32725,-1659,32724,-1675,32723,-1692,32722,-1709,32721,-1725,32720,-1742,32719,-1759,32718,-1776,32717,-1792,32717,-1809,32716,-1826,32715,-1843,32714,-1859,32713,-1876,32712,-1893,32711,-1909,32710,-1926,32709,-1943,32708,-1960,32707,-1976,32706,-1993,32705,-2010,32704,-2027,32703,-2043,32702,-2060,32701,-2077,32700,-2093,32699,-2110,32697,-2127,32696,-2144,32695,-2160,32694,-2177,32693,-2194,32692,-2210,32691,-2227,32690,-2244,32688,-2261,32687,-2277,32686,-2294,32685,-2311,32684,-2327,32683,-2344,32681,-2361,32680,-2378,32679,-2394,32678,-2411,32676,-2428,32675,-2444,32674,-2461,32673,-2478,32671,-2495,32670,-2511,32669,-2528,32668,-2545,32666,-2561,32665,-2578,32664,-2595,32662,-2611,32661,-2628,32660,-2645,32658,-2662,32657,-2678,32656,-2695,32654,-2712,32653,-2728,32651,-2745,32650,-2762,32649,-2778,32647,-2795,32646,-2812,32644,-2829,32643,-2845,32641,-2862,32640,-2879,32638,-2895,32637,-2912,32635,-2929,32634,-2945,32632,-2962,32631,-2979,32629,-2995,32628,-3012,32626,-3029,32625,-3045,32623,-3062,32622,-3079,32620,-3095,32618,-3112,32617,-3129,32615,-3146,32614,-3162,32612,-3179,32610,-3196,32609,-3212,32607,-3229,32605,-3246,32604,-3262,32602,-3279,32600,-3296,32599,-3312,32597,-3329,32595,-3346,32594,-3362,32592,-3379,32590,-3396,32588,-3412,32587,-3429,32585,-3446,32583,-3462,32581,-3479,32580,-3496,32578,-3512,32576,-3529,32574,-3546,32572,-3562,32571,-3579,32569,-3595,32567,-3612,32565,-3629,32563,-3645,32561,-3662,32559,-3679,32558,-3695,32556,-3712,32554,-3729,32552,-3745,32550,-3762,32548,-3779,32546,-3795,32544,-3812,32542,-3829,32540,-3845,32538,-3862,32536,-3878,32534,-3895,32532,-3912,32530,-3928,32528,-3945,32526,-3962,32524,-3978,32522,-3995,32520,-4012,32518,-4028,32516,-4045,32514,-4061,32512,-4078,32510,-4095,32508,-4111,32506,-4128,32503,-4145,32501,-4161,32499,-4178,32497,-4194,32495,-4211,32493,-4228,32491,-4244,32488,-4261,32486,-4277,32484,-4294,32482,-4311,32480,-4327,32477,-4344,32475,-4360,32473,-4377,32471,-4394,32468,-4410,32466,-4427,32464,-4444,32462,-4460,32459,-4477,32457,-4493,32455,-4510,32452,-4526,32450,-4543,32448,-4560,32445,-4576,32443,-4593,32441,-4609,32438,-4626,32436,-4643,32434,-4659,32431,-4676,32429,-4692,32426,-4709,32424,-4726,32422,-4742,32419,-4759,32417,-4775,32414,-4792,32412,-4808,32409,-4825,32407,-4842,32404,-4858,32402,-4875,32399,-4891,32397,-4908,32394,-4924,32392,-4941,32389,-4958,32387,-4974,32384,-4991,32382,-5007,32379,-5024,32377,-5040,32374,-5057,32371,-5073,32369,-5090,32366,-5107,32364,-5123,32361,-5140,32358,-5156,32356,-5173,32353,-5189,32350,-5206,32348,-5222,32345,-5239,32342,-5255,32340,-5272,32337,-5288,32334,-5305,32332,-5322,32329,-5338,32326,-5355,32323,-5371,32321,-5388,32318,-5404,32315,-5421,32312,-5437,32310,-5454,32307,-5470,32304,-5487,32301,-5503,32298,-5520,32295,-5536,32293,-5553,32290,-5569,32287,-5586,32284,-5602,32281,-5619,32278,-5635,32275,-5652,32273,-5668,32270,-5685,32267,-5701,32264,-5718,32261,-5734,32258,-5751,32255,-5767,32252,-5784,32249,-5800,32246,-5817,32243,-5833,32240,-5850,32237,-5866,32234,-5883,32231,-5899,32228,-5916,32225,-5932,32222,-5949,32219,-5965,32216,-5982,32213,-5998,32210,-6015,32207,-6031,32204,-6048,32201,-6064,32197,-6081,32194,-6097,32191,-6113,32188,-6130,32185,-6146,32182,-6163,32179,-6179,32176,-6196,32172,-6212,32169,-6229,32166,-6245,32163,-6262,32160,-6278,32156,-6294,32153,-6311,32150,-6327,32147,-6344,32143,-6360,32140,-6377,32137,-6393,32134,-6409,32130,-6426,32127,-6442,32124,-6459,32120,-6475,32117,-6492,32114,-6508,32110,-6524,32107,-6541,32104,-6557,32100,-6574,32097,-6590,32094,-6607,32090,-6623,32087,-6639,32084,-6656,32080,-6672,32077,-6689,32073,-6705,32070,-6721,32066,-6738,32063,-6754,32059,-6771,32056,-6787,32053,-6803,32049,-6820,32046,-6836,32042,-6852,32039,-6869,32035,-6885,32032,-6902,32028,-6918,32024,-6934,32021,-6951,32017,-6967,32014,-6983,32010,-7000,32007,-7016,32003,-7033,31999,-7049,31996,-7065,31992,-7082,31989,-7098,31985,-7114,31981,-7131,31978,-7147,31974,-7163,31970,-7180,31967,-7196,31963,-7212,31959,-7229,31956,-7245,31952,-7262,31948,-7278,31944,-7294,31941,-7311,31937,-7327,31933,-7343,31929,-7359,31926,-7376,31922,-7392,31918,-7408,31914,-7425,31911,-7441,31907,-7457,31903,-7474,31899,-7490,31895,-7506,31891,-7523,31888,-7539,31884,-7555,31880,-7572,31876,-7588,31872,-7604,31868,-7620,31864,-7637,31860,-7653,31856,-7669,31853,-7686,31849,-7702,31845,-7718,31841,-7734,31837,-7751,31833,-7767,31829,-7783,31825,-7800,31821,-7816,31817,-7832,31813,-7848,31809,-7865,31805,-7881,31801,-7897,31797,-7913,31793,-7930,31789,-7946,31785,-7962,31780,-7978,31776,-7995,31772,-8011,31768,-8027,31764,-8043,31760,-8060,31756,-8076,31752,-8092,31748,-8108,31743,-8125,31739,-8141,31735,-8157,31731,-8173,31727,-8190,31723,-8206,31718,-8222,31714,-8238,31710,-8254,31706,-8271,31701,-8287,31697,-8303,31693,-8319,31689,-8335,31684,-8352,31680,-8368,31676,-8384,31672,-8400,31667,-8416,31663,-8433,31659,-8449,31654,-8465,31650,-8481,31646,-8497,31641,-8514,31637,-8530,31633,-8546,31628,-8562,31624,-8578,31619,-8594,31615,-8611,31611,-8627,31606,-8643,31602,-8659,31597,-8675,31593,-8691,31588,-8708,31584,-8724,31580,-8740,31575,-8756,31571,-8772,31566,-8788,31562,-8804,31557,-8821,31553,-8837,31548,-8853,31544,-8869,31539,-8885,31534,-8901,31530,-8917,31525,-8933,31521,-8950,31516,-8966,31512,-8982,31507,-8998,31502,-9014,31498,-9030,31493,-9046,31489,-9062,31484,-9078,31479,-9095,31475,-9111,31470,-9127,31465,-9143,31461,-9159,31456,-9175,31451,-9191,31446,-9207,31442,-9223,31437,-9239,31432,-9255,31428,-9271,31423,-9288,31418,-9304,31413,-9320,31409,-9336,31404,-9352,31399,-9368,31394,-9384,31389,-9400,31385,-9416,31380,-9432,31375,-9448,31370,-9464,31365,-9480,31360,-9496,31356,-9512,31351,-9528,31346,-9544,31341,-9560,31336,-9576,31331,-9592,31326,-9608,31321,-9624,31316,-9640,31311,-9656,31307,-9672,31302,-9688,31297,-9704,31292,-9720,31287,-9736,31282,-9752,31277,-9768,31272,-9784,31267,-9800,31262,-9816,31257,-9832,31252,-9848,31247,-9864,31242,-9880,31236,-9896,31231,-9912,31226,-9928,31221,-9944,31216,-9960,31211,-9976,31206,-9992,31201,-10008,31196,-10024,31191,-10040,31185,-10056,31180,-10072,31175,-10088,31170,-10104,31165,-10120,31160,-10136,31154,-10152,31149,-10167,31144,-10183,31139,-10199,31134,-10215,31128,-10231,31123,-10247,31118,-10263,31113,-10279,31107,-10295,31102,-10311,31097,-10327,31092,-10343,31086,-10358,31081,-10374,31076,-10390,31070,-10406,31065,-10422,31060,-10438,31054,-10454,31049,-10470,31044,-10485,31038,-10501,31033,-10517,31028,-10533,31022,-10549,31017,-10565,31011,-10581,31006,-10597,31001,-10612,30995,-10628,30990,-10644,30984,-10660,30979,-10676,30973,-10692,30968,-10707,30962,-10723,30957,-10739,30951,-10755,30946,-10771,30940,-10787,30935,-10802,30929,-10818,30924,-10834,30918,-10850,30913,-10866,30907,-10881,30902,-10897,30896,-10913,30890,-10929,30885,-10945,30879,-10960,30874,-10976,30868,-10992,30862,-11008,30857,-11024,30851,-11039,30845,-11055,30840,-11071,30834,-11087,30828,-11102,30823,-11118,30817,-11134,30811,-11150,30806,-11165,30800,-11181,30794,-11197,30788,-11213,30783,-11228,30777,-11244,30771,-11260,30766,-11276,30760,-11291,30754,-11307,30748,-11323,30742,-11339,30737,-11354,30731,-11370,30725,-11386,30719,-11401,30713,-11417,30707,-11433,30702,-11449,30696,-11464,30690,-11480,30684,-11496,30678,-11511,30672,-11527,30666,-11543,30660,-11558,30655,-11574,30649,-11590,30643,-11605,30637,-11621,30631,-11637,30625,-11652,30619,-11668,30613,-11684,30607,-11699,30601,-11715,30595,-11731,30589,-11746,30583,-11762,30577,-11778,30571,-11793,30565,-11809,30559,-11824,30553,-11840,30547,-11856,30541,-11871,30535,-11887,30528,-11903,30522,-11918,30516,-11934,30510,-11949,30504,-11965,30498,-11981,30492,-11996,30486,-12012,30480,-12027,30473,-12043,30467,-12058,30461,-12074,30455,-12090,30449,-12105,30442,-12121,30436,-12136,30430,-12152,30424,-12167,30418,-12183,30411,-12199,30405,-12214,30399,-12230,30393,-12245,30386,-12261,30380,-12276,30374,-12292,30368,-12307,30361,-12323,30355,-12338,30349,-12354,30342,-12369,30336,-12385,30330,-12400,30323,-12416,30317,-12431,30311,-12447,30304,-12462,30298,-12478,30291,-12493,30285,-12509,30279,-12524,30272,-12540,30266,-12555,30259,-12571,30253,-12586,30247,-12602,30240,-12617,30234,-12633,30227,-12648,30221,-12664,30214,-12679,30208,-12695,30201,-12710,30195,-12725,30188,-12741,30182,-12756,30175,-12772,30169,-12787,30162,-12803,30156,-12818,30149,-12833,30142,-12849,30136,-12864,30129,-12880,30123,-12895,30116,-12910,30109,-12926,30103,-12941,30096,-12957,30090,-12972,30083,-12987,30076,-13003,30070,-13018,30063,-13034,30056,-13049,30050,-13064,30043,-13080,30036,-13095,30030,-13110,30023,-13126,30016,-13141,30009,-13156,30003,-13172,29996,-13187,29989,-13202,29983,-13218,29976,-13233,29969,-13248,29962,-13264,29955,-13279,29949,-13294,29942,-13310,29935,-13325,29928,-13340,29921,-13356,29915,-13371,29908,-13386,29901,-13401,29894,-13417,29887,-13432,29880,-13447,29873,-13463,29866,-13478,29860,-13493,29853,-13508,29846,-13524,29839,-13539,29832,-13554,29825,-13569,29818,-13585,29811,-13600,29804,-13615,29797,-13630,29790,-13646,29783,-13661,29776,-13676,29769,-13691,29762,-13707,29755,-13722,29748,-13737,29741,-13752,29734,-13767,29727,-13783,29720,-13798,29713,-13813,29706,-13828,29699,-13843,29692,-13859,29685,-13874,29678,-13889,29670,-13904,29663,-13919,29656,-13934,29649,-13950,29642,-13965,29635,-13980,29628,-13995,29621,-14010,29613,-14025,29606,-14040,29599,-14056,29592,-14071,29585,-14086,29577,-14101,29570,-14116,29563,-14131,29556,-14146,29548,-14161,29541,-14177,29534,-14192,29527,-14207,29519,-14222,29512,-14237,29505,-14252,29498,-14267,29490,-14282,29483,-14297,29476,-14312,29468,-14327,29461,-14343,29454,-14358,29446,-14373,29439,-14388,29432,-14403,29424,-14418,29417,-14433,29410,-14448,29402,-14463,29395,-14478,29387,-14493,29380,-14508,29372,-14523,29365,-14538,29358,-14553,29350,-14568,29343,-14583,29335,-14598,29328,-14613,29320,-14628,29313,-14643,29305,-14658,29298,-14673,29290,-14688,29283,-14703,29275,-14718,29268,-14733,29260,-14748,29253,-14763,29245,-14778,29238,-14793,29230,-14808,29222,-14823,29215,-14838,29207,-14853,29200,-14867,29192,-14882,29184,-14897,29177,-14912,29169,-14927,29162,-14942,29154,-14957,29146,-14972,29139,-14987,29131,-15002,29123,-15017,29116,-15031,29108,-15046,29100,-15061,29092,-15076,29085,-15091,29077,-15106,29069,-15121,29062,-15136,29054,-15150,29046,-15165,29038,-15180,29031,-15195,29023,-15210,29015,-15225,29007,-15239,28999,-15254,28992,-15269,28984,-15284,28976,-15299,28968,-15314,28960,-15328,28953,-15343,28945,-15358,28937,-15373,28929,-15388,28921,-15402,28913,-15417,28905,-15432,28897,-15447,28890,-15462,28882,-15476,28874,-15491,28866,-15506,28858,-15521,28850,-15535,28842,-15550,28834,-15565,28826,-15580,28818,-15594,28810,-15609,28802,-15624,28794,-15639,28786,-15653,28778,-15668,28770,-15683,28762,-15697,28754,-15712,28746,-15727,28738,-15741,28730,-15756,28722,-15771,28714,-15786,28706,-15800,28698,-15815,28690,-15830,28681,-15844,28673,-15859,28665,-15874,28657,-15888,28649,-15903,28641,-15918,28633,-15932,28625,-15947,28616,-15961,28608,-15976,28600,-15991,28592,-16005,28584,-16020,28575,-16035,28567,-16049,28559,-16064,28551,-16078,28543,-16093,28534,-16108,28526,-16122,28518,-16137,28510,-16151,28501,-16166,28493,-16180,28485,-16195,28477,-16210,28468,-16224,28460,-16239,28452,-16253,28443,-16268,28435,-16282,28427,-16297,28418,-16311,28410,-16326,28402,-16340,28393,-16355,28385,-16369,28377,-16384,28368,-16399,28360,-16413,28351,-16428,28343,-16442,28335,-16456,28326,-16471,28318,-16485,28309,-16500,28301,-16514,28292,-16529,28284,-16543,28275,-16558,28267,-16572,28259,-16587,28250,-16601,28242,-16616,28233,-16630,28225,-16644,28216,-16659,28208,-16673,28199,-16688,28190,-16702,28182,-16717,28173,-16731,28165,-16745,28156,-16760,28148,-16774,28139,-16789,28131,-16803,28122,-16817,28113,-16832,28105,-16846,28096,-16860,28087,-16875,28079,-16889,28070,-16904,28062,-16918,28053,-16932,28044,-16947,28036,-16961,28027,-16975,28018,-16990,28009,-17004,28001,-17018,27992,-17033,27983,-17047,27975,-17061,27966,-17075,27957,-17090,27948,-17104,27940,-17118,27931,-17133,27922,-17147,27913,-17161,27905,-17175,27896,-17190,27887,-17204,27878,-17218,27869,-17233,27861,-17247,27852,-17261,27843,-17275,27834,-17289,27825,-17304,27816,-17318,27808,-17332,27799,-17346,27790,-17361,27781,-17375,27772,-17389,27763,-17403,27754,-17417,27745,-17432,27736,-17446,27728,-17460,27719,-17474,27710,-17488,27701,-17502,27692,-17517,27683,-17531,27674,-17545,27665,-17559,27656,-17573,27647,-17587,27638,-17601,27629,-17616,27620,-17630,27611,-17644,27602,-17658,27593,-17672,27584,-17686,27575,-17700,27566,-17714,27557,-17728,27548,-17743,27538,-17757,27529,-17771,27520,-17785,27511,-17799,27502,-17813,27493,-17827,27484,-17841,27475,-17855,27466,-17869,27456,-17883,27447,-17897,27438,-17911,27429,-17925,27420,-17939,27411,-17953,27401,-17967,27392,-17981,27383,-17995,27374,-18009,27365,-18023,27355,-18037,27346,-18051,27337,-18065,27328,-18079,27319,-18093,27309,-18107,27300,-18121,27291,-18135,27281,-18149,27272,-18163,27263,-18177,27254,-18191,27244,-18205,27235,-18219,27226,-18233,27216,-18247,27207,-18261,27198,-18274,27188,-18288,27179,-18302,27170,-18316,27160,-18330,27151,-18344,27141,-18358,27132,-18372,27123,-18386,27113,-18399,27104,-18413,27094,-18427,27085,-18441,27076,-18455,27066,-18469,27057,-18483,27047,-18496,27038,-18510,27028,-18524,27019,-18538,27009,-18552,27000,-18565,26990,-18579,26981,-18593,26971,-18607,26962,-18621,26952,-18634,26943,-18648,26933,-18662,26924,-18676,26914,-18690,26905,-18703,26895,-18717,26885,-18731,26876,-18745,26866,-18758,26857,-18772,26847,-18786,26837,-18799,26828,-18813,26818,-18827,26809,-18841,26799,-18854,26789,-18868,26780,-18882,26770,-18895,26760,-18909,26751,-18923,26741,-18936,26731,-18950,26722,-18964,26712,-18977,26702,-18991,26692,-19005,26683,-19018,26673,-19032,26663,-19046,26654,-19059,26644,-19073,26634,-19087,26624,-19100,26615,-19114,26605,-19127,26595,-19141,26585,-19155,26575,-19168,26566,-19182,26556,-19195,26546,-19209,26536,-19222,26526,-19236,26516,-19250,26507,-19263,26497,-19277,26487,-19290,26477,-19304,26467,-19317,26457,-19331,26447,-19344,26437,-19358,26428,-19371,26418,-19385,26408,-19398,26398,-19412,26388,-19425,26378,-19439,26368,-19452,26358,-19466,26348,-19479,26338,-19493,26328,-19506,26318,-19520,26308,-19533,26298,-19547,26288,-19560,26278,-19574,26268,-19587,26258,-19600,26248,-19614,26238,-19627,26228,-19641,26218,-19654,26208,-19668,26198,-19681,26188,-19694,26178,-19708,26168,-19721,26158,-19734,26148,-19748,26137,-19761,26127,-19775,26117,-19788,26107,-19801,26097,-19815,26087,-19828,26077,-19841,26067,-19855,26056,-19868,26046,-19881,26036,-19895,26026,-19908,26016,-19921,26006,-19934,25995,-19948,25985,-19961,25975,-19974,25965,-19988,25954,-20001,25944,-20014,25934,-20027,25924,-20041,25913,-20054,25903,-20067,25893,-20080,25883,-20094,25872,-20107,25862,-20120,25852,-20133,25842,-20147,25831,-20160,25821,-20173,25811,-20186,25800,-20199,25790,-20213,25780,-20226,25769,-20239,25759,-20252,25749,-20265,25738,-20278,25728,-20292,25717,-20305,25707,-20318,25697,-20331,25686,-20344,25676,-20357,25665,-20370,25655,-20384,25645,-20397,25634,-20410,25624,-20423,25613,-20436,25603,-20449,25592,-20462,25582,-20475,25571,-20488,25561,-20501,25550,-20514,25540,-20528,25529,-20541,25519,-20554,25508,-20567,25498,-20580,25487,-20593,25477,-20606,25466,-20619,25456,-20632,25445,-20645,25435,-20658,25424,-20671,25414,-20684,25403,-20697,25392,-20710,25382,-20723,25371,-20736,25361,-20749,25350,-20762,25339,-20775,25329,-20788,25318,-20801,25307,-20814,25297,-20826,25286,-20839,25276,-20852,25265,-20865,25254,-20878,25243,-20891,25233,-20904,25222,-20917,25211,-20930,25201,-20943,25190,-20956,25179,-20968,25169,-20981,25158,-20994,25147,-21007,25136,-21020,25126,-21033,25115,-21046,25104,-21058,25093,-21071,25083,-21084,25072,-21097,25061,-21110,25050,-21123,25039,-21135,25029,-21148,25018,-21161,25007,-21174,24996,-21187,24985,-21199,24974,-21212,24964,-21225,24953,-21238,24942,-21250,24931,-21263,24920,-21276,24909,-21289,24898,-21301,24887,-21314,24877,-21327,24866,-21340,24855,-21352,24844,-21365,24833,-21378,24822,-21390,24811,-21403,24800,-21416,24789,-21428,24778,-21441,24767,-21454,24756,-21466,24745,-21479,24734,-21492,24723,-21504,24712,-21517,24701,-21530,24690,-21542,24679,-21555,24668,-21567,24657,-21580,24646,-21593,24635,-21605,24624,-21618,24613,-21630,24602,-21643,24591,-21656,24580,-21668,24569,-21681,24558,-21693,24546,-21706,24535,-21718,24524,-21731,24513,-21744,24502,-21756,24491,-21769,24480,-21781,24469,-21794,24457,-21806,24446,-21819,24435,-21831,24424,-21844,24413,-21856,24402,-21869,24390,-21881,24379,-21894,24368,-21906,24357,-21918,24346,-21931,24334,-21943,24323,-21956,24312,-21968,24301,-21981,24289,-21993,24278,-22005,24267,-22018,24256,-22030,24244,-22043,24233,-22055,24222,-22067,24211,-22080,24199,-22092,24188,-22105,24177,-22117,24165,-22129,24154,-22142,24143,-22154,24131,-22166,24120,-22179,24109,-22191,24097,-22203,24086,-22216,24075,-22228,24063,-22240,24052,-22253,24041,-22265,24029,-22277,24018,-22289,24006,-22302,23995,-22314,23984,-22326,23972,-22339,23961,-22351,23949,-22363,23938,-22375,23926,-22388,23915,-22400,23903,-22412,23892,-22424,23881,-22436,23869,-22449,23858,-22461,23846,-22473,23835,-22485,23823,-22497,23812,-22510,23800,-22522,23789,-22534,23777,-22546,23766,-22558,23754,-22570,23742,-22583,23731,-22595,23719,-22607,23708,-22619,23696,-22631,23685,-22643,23673,-22655,23661,-22667,23650,-22679,23638,-22692,23627,-22704,23615,-22716,23603,-22728,23592,-22740,23580,-22752,23569,-22764,23557,-22776,23545,-22788,23534,-22800,23522,-22812,23510,-22824,23499,-22836,23487,-22848,23475,-22860,23464,-22872,23452,-22884,23440,-22896,23428,-22908,23417,-22920,23405,-22932,23393,-22944,23382,-22956,23370,-22968,23358,-22980,23346,-22992,23335,-23004,23323,-23016,23311,-23028,23299,-23040,23287,-23051,23276,-23063,23264,-23075,23252,-23087,23240,-23099,23228,-23111,23217,-23123,23205,-23135,23193,-23147,23181,-23158,23169,-23170,23157,-23182,23146,-23194,23134,-23206,23122,-23218,23110,-23229,23098,-23241,23086,-23253,23074,-23265,23062,-23277,23050,-23288,23039,-23300,23027,-23312,23015,-23324,23003,-23336,22991,-23347,22979,-23359,22967,-23371,22955,-23383,22943,-23394,22931,-23406,22919,-23418,22907,-23429,22895,-23441,22883,-23453,22871,-23465,22859,-23476,22847,-23488,22835,-23500,22823,-23511,22811,-23523,22799,-23535,22787,-23546,22775,-23558,22763,-23570,22751,-23581,22739,-23593,22727,-23604,22715,-23616,22703,-23628,22691,-23639,22678,-23651,22666,-23662,22654,-23674,22642,-23686,22630,-23697,22618,-23709,22606,-23720,22594,-23732,22582,-23743,22569,-23755,22557,-23767,22545,-23778,22533,-23790,22521,-23801,22509,-23813,22496,-23824,22484,-23836,22472,-23847,22460,-23859,22448,-23870,22435,-23882,22423,-23893,22411,-23904,22399,-23916,22387,-23927,22374,-23939,22362,-23950,22350,-23962,22338,-23973,22325,-23985,22313,-23996,22301,-24007,22288,-24019,22276,-24030,22264,-24042,22252,-24053,22239,-24064,22227,-24076,22215,-24087,22202,-24098,22190,-24110,22178,-24121,22165,-24132,22153,-24144,22141,-24155,22128,-24166,22116,-24178,22104,-24189,22091,-24200,22079,-24212,22066,-24223,22054,-24234,22042,-24245,22029,-24257,22017,-24268,22004,-24279,21992,-24290,21980,-24302,21967,-24313,21955,-24324,21942,-24335,21930,-24347,21917,-24358,21905,-24369,21893,-24380,21880,-24391,21868,-24403,21855,-24414,21843,-24425,21830,-24436,21818,-24447,21805,-24458,21793,-24470,21780,-24481,21768,-24492,21755,-24503,21743,-24514,21730,-24525,21717,-24536,21705,-24547,21692,-24559,21680,-24570,21667,-24581,21655,-24592,21642,-24603,21629,-24614,21617,-24625,21604,-24636,21592,-24647,21579,-24658,21566,-24669,21554,-24680,21541,-24691,21529,-24702,21516,-24713,21503,-24724,21491,-24735,21478,-24746,21465,-24757,21453,-24768,21440,-24779,21427,-24790,21415,-24801,21402,-24812,21389,-24823,21377,-24834,21364,-24845,21351,-24856,21339,-24867,21326,-24878,21313,-24888,21300,-24899,21288,-24910,21275,-24921,21262,-24932,21249,-24943,21237,-24954,21224,-24965,21211,-24975,21198,-24986,21186,-24997,21173,-25008,21160,-25019,21147,-25030,21134,-25040,21122,-25051,21109,-25062,21096,-25073,21083,-25084,21070,-25094,21057,-25105,21045,-25116,21032,-25127,21019,-25137,21006,-25148,20993,-25159,20980,-25170,20967,-25180,20955,-25191,20942,-25202,20929,-25212,20916,-25223,20903,-25234,20890,-25244,20877,-25255,20864,-25266,20851,-25277,20838,-25287,20825,-25298,20813,-25308,20800,-25319,20787,-25330,20774,-25340,20761,-25351,20748,-25362,20735,-25372,20722,-25383,20709,-25393,20696,-25404,20683,-25415,20670,-25425,20657,-25436,20644,-25446,20631,-25457,20618,-25467,20605,-25478,20592,-25488,20579,-25499,20566,-25509,20553,-25520,20540,-25530,20527,-25541,20513,-25551,20500,-25562,20487,-25572,20474,-25583,20461,-25593,20448,-25604,20435,-25614,20422,-25625,20409,-25635,20396,-25646,20383,-25656,20369,-25666,20356,-25677,20343,-25687,20330,-25698,20317,-25708,20304,-25718,20291,-25729,20277,-25739,20264,-25750,20251,-25760,20238,-25770,20225,-25781,20212,-25791,20198,-25801,20185,-25812,20172,-25822,20159,-25832,20146,-25843,20132,-25853,20119,-25863,20106,-25873,20093,-25884,20079,-25894,20066,-25904,20053,-25914,20040,-25925,20026,-25935,20013,-25945,20000,-25955,19987,-25966,19973,-25976,19960,-25986,19947,-25996,19933,-26007,19920,-26017,19907,-26027,19894,-26037,19880,-26047,19867,-26057,19854,-26068,19840,-26078,19827,-26088,19814,-26098,19800,-26108,19787,-26118,19774,-26128,19760,-26138,19747,-26149,19733,-26159,19720,-26169,19707,-26179,19693,-26189,19680,-26199,19667,-26209,19653,-26219,19640,-26229,19626,-26239,19613,-26249,19599,-26259,19586,-26269,19573,-26279,19559,-26289,19546,-26299,19532,-26309,19519,-26319,19505,-26329,19492,-26339,19478,-26349,19465,-26359,19451,-26369,19438,-26379,19424,-26389,19411,-26399,19397,-26409,19384,-26419,19370,-26429,19357,-26438,19343,-26448,19330,-26458,19316,-26468,19303,-26478,19289,-26488,19276,-26498,19262,-26508,19249,-26517,19235,-26527,19221,-26537,19208,-26547,19194,-26557,19181,-26567,19167,-26576,19154,-26586,19140,-26596,19126,-26606,19113,-26616,19099,-26625,19086,-26635,19072,-26645,19058,-26655,19045,-26664,19031,-26674,19017,-26684,19004,-26693,18990,-26703,18976,-26713,18963,-26723,18949,-26732,18935,-26742,18922,-26752,18908,-26761,18894,-26771,18881,-26781,18867,-26790,18853,-26800,18840,-26810,18826,-26819,18812,-26829,18798,-26838,18785,-26848,18771,-26858,18757,-26867,18744,-26877,18730,-26886,18716,-26896,18702,-26906,18689,-26915,18675,-26925,18661,-26934,18647,-26944,18633,-26953,18620,-26963,18606,-26972,18592,-26982,18578,-26991,18564,-27001,18551,-27010,18537,-27020,18523,-27029,18509,-27039,18495,-27048,18482,-27058,18468,-27067,18454,-27077,18440,-27086,18426,-27095,18412,-27105,18398,-27114,18385,-27124,18371,-27133,18357,-27142,18343,-27152,18329,-27161,18315,-27171,18301,-27180,18287,-27189,18273,-27199,18260,-27208,18246,-27217,18232,-27227,18218,-27236,18204,-27245,18190,-27255,18176,-27264,18162,-27273,18148,-27282,18134,-27292,18120,-27301,18106,-27310,18092,-27320,18078,-27329,18064,-27338,18050,-27347,18036,-27356,18022,-27366,18008,-27375,17994,-27384,17980,-27393,17966,-27402,17952,-27412,17938,-27421,17924,-27430,17910,-27439,17896,-27448,17882,-27457,17868,-27467,17854,-27476,17840,-27485,17826,-27494,17812,-27503,17798,-27512,17784,-27521,17770,-27530,17756,-27539,17742,-27549,17727,-27558,17713,-27567,17699,-27576,17685,-27585,17671,-27594,17657,-27603,17643,-27612,17629,-27621,17615,-27630,17600,-27639,17586,-27648,17572,-27657,17558,-27666,17544,-27675,17530,-27684,17516,-27693,17501,-27702,17487,-27711,17473,-27720,17459,-27729,17445,-27737,17431,-27746,17416,-27755,17402,-27764,17388,-27773,17374,-27782,17360,-27791,17345,-27800,17331,-27809,17317,-27817,17303,-27826,17288,-27835,17274,-27844,17260,-27853,17246,-27862,17232,-27870,17217,-27879,17203,-27888,17189,-27897,17174,-27906,17160,-27914,17146,-27923,17132,-27932,17117,-27941,17103,-27949,17089,-27958,17074,-27967,17060,-27976,17046,-27984,17032,-27993,17017,-28002,17003,-28010,16989,-28019,16974,-28028,16960,-28037,16946,-28045,16931,-28054,16917,-28063,16903,-28071,16888,-28080,16874,-28088,16859,-28097,16845,-28106,16831,-28114,16816,-28123,16802,-28132,16788,-28140,16773,-28149,16759,-28157,16744,-28166,16730,-28174,16716,-28183,16701,-28191,16687,-28200,16672,-28209,16658,-28217,16643,-28226,16629,-28234,16615,-28243,16600,-28251,16586,-28260,16571,-28268,16557,-28276,16542,-28285,16528,-28293,16513,-28302,16499,-28310,16484,-28319,16470,-28327,16455,-28336,16441,-28344,16427,-28352,16412,-28361,16398,-28369,16383,-28378,16368,-28386,16354,-28394,16339,-28403,16325,-28411,16310,-28419,16296,-28428,16281,-28436,16267,-28444,16252,-28453,16238,-28461,16223,-28469,16209,-28478,16194,-28486,16179,-28494,16165,-28502,16150,-28511,16136,-28519,16121,-28527,16107,-28535,16092,-28544,16077,-28552,16063,-28560,16048,-28568,16034,-28576,16019,-28585,16004,-28593,15990,-28601,15975,-28609,15960,-28617,15946,-28626,15931,-28634,15917,-28642,15902,-28650,15887,-28658,15873,-28666,15858,-28674,15843,-28682,15829,-28691,15814,-28699,15799,-28707,15785,-28715,15770,-28723,15755,-28731,15740,-28739,15726,-28747,15711,-28755,15696,-28763,15682,-28771,15667,-28779,15652,-28787,15638,-28795,15623,-28803,15608,-28811,15593,-28819,15579,-28827,15564,-28835,15549,-28843,15534,-28851,15520,-28859,15505,-28867,15490,-28875,15475,-28883,15461,-28891,15446,-28898,15431,-28906,15416,-28914,15401,-28922,15387,-28930,15372,-28938,15357,-28946,15342,-28954,15327,-28961,15313,-28969,15298,-28977,15283,-28985,15268,-28993,15253,-29000,15238,-29008,15224,-29016,15209,-29024,15194,-29032,15179,-29039,15164,-29047,15149,-29055,15135,-29063,15120,-29070,15105,-29078,15090,-29086,15075,-29093,15060,-29101,15045,-29109,15030,-29117,15016,-29124,15001,-29132,14986,-29140,14971,-29147,14956,-29155,14941,-29163,14926,-29170,14911,-29178,14896,-29185,14881,-29193,14866,-29201,14852,-29208,14837,-29216,14822,-29223,14807,-29231,14792,-29239,14777,-29246,14762,-29254,14747,-29261,14732,-29269,14717,-29276,14702,-29284,14687,-29291,14672,-29299,14657,-29306,14642,-29314,14627,-29321,14612,-29329,14597,-29336,14582,-29344,14567,-29351,14552,-29359,14537,-29366,14522,-29373,14507,-29381,14492,-29388,14477,-29396,14462,-29403,14447,-29411,14432,-29418,14417,-29425,14402,-29433,14387,-29440,14372,-29447,14357,-29455,14342,-29462,14326,-29469,14311,-29477,14296,-29484,14281,-29491,14266,-29499,14251,-29506,14236,-29513,14221,-29520,14206,-29528,14191,-29535,14176,-29542,14160,-29549,14145,-29557,14130,-29564,14115,-29571,14100,-29578,14085,-29586,14070,-29593,14055,-29600,14039,-29607,14024,-29614,14009,-29622,13994,-29629,13979,-29636,13964,-29643,13949,-29650,13933,-29657,13918,-29664,13903,-29671,13888,-29679,13873,-29686,13858,-29693,13842,-29700,13827,-29707,13812,-29714,13797,-29721,13782,-29728,13766,-29735,13751,-29742,13736,-29749,13721,-29756,13706,-29763,13690,-29770,13675,-29777,13660,-29784,13645,-29791,13629,-29798,13614,-29805,13599,-29812,13584,-29819,13568,-29826,13553,-29833,13538,-29840,13523,-29847,13507,-29854,13492,-29861,13477,-29867,13462,-29874,13446,-29881,13431,-29888,13416,-29895,13400,-29902,13385,-29909,13370,-29916,13355,-29922,13339,-29929,13324,-29936,13309,-29943,13293,-29950,13278,-29956,13263,-29963,13247,-29970,13232,-29977,13217,-29984,13201,-29990,13186,-29997,13171,-30004,13155,-30010,13140,-30017,13125,-30024,13109,-30031,13094,-30037,13079,-30044,13063,-30051,13048,-30057,13033,-30064,13017,-30071,13002,-30077,12986,-30084,12971,-30091,12956,-30097,12940,-30104,12925,-30110,12909,-30117,12894,-30124,12879,-30130,12863,-30137,12848,-30143,12832,-30150,12817,-30157,12802,-30163,12786,-30170,12771,-30176,12755,-30183,12740,-30189,12724,-30196,12709,-30202,12694,-30209,12678,-30215,12663,-30222,12647,-30228,12632,-30235,12616,-30241,12601,-30248,12585,-30254,12570,-30260,12554,-30267,12539,-30273,12523,-30280,12508,-30286,12492,-30292,12477,-30299,12461,-30305,12446,-30312,12430,-30318,12415,-30324,12399,-30331,12384,-30337,12368,-30343,12353,-30350,12337,-30356,12322,-30362,12306,-30369,12291,-30375,12275,-30381,12260,-30387,12244,-30394,12229,-30400,12213,-30406,12198,-30412,12182,-30419,12166,-30425,12151,-30431,12135,-30437,12120,-30443,12104,-30450,12089,-30456,12073,-30462,12057,-30468,12042,-30474,12026,-30481,12011,-30487,11995,-30493,11980,-30499,11964,-30505,11948,-30511,11933,-30517,11917,-30523,11902,-30529,11886,-30536,11870,-30542,11855,-30548,11839,-30554,11823,-30560,11808,-30566,11792,-30572,11777,-30578,11761,-30584,11745,-30590,11730,-30596,11714,-30602,11698,-30608,11683,-30614,11667,-30620,11651,-30626,11636,-30632,11620,-30638,11604,-30644,11589,-30650,11573,-30656,11557,-30661,11542,-30667,11526,-30673,11510,-30679,11495,-30685,11479,-30691,11463,-30697,11448,-30703,11432,-30708,11416,-30714,11400,-30720,11385,-30726,11369,-30732,11353,-30738,11338,-30743,11322,-30749,11306,-30755,11290,-30761,11275,-30767,11259,-30772,11243,-30778,11227,-30784,11212,-30789,11196,-30795,11180,-30801,11164,-30807,11149,-30812,11133,-30818,11117,-30824,11101,-30829,11086,-30835,11070,-30841,11054,-30846,11038,-30852,11023,-30858,11007,-30863,10991,-30869,10975,-30875,10959,-30880,10944,-30886,10928,-30891,10912,-30897,10896,-30903,10880,-30908,10865,-30914,10849,-30919,10833,-30925,10817,-30930,10801,-30936,10786,-30941,10770,-30947,10754,-30952,10738,-30958,10722,-30963,10706,-30969,10691,-30974,10675,-30980,10659,-30985,10643,-30991,10627,-30996,10611,-31002,10596,-31007,10580,-31012,10564,-31018,10548,-31023,10532,-31029,10516,-31034,10500,-31039,10484,-31045,10469,-31050,10453,-31055,10437,-31061,10421,-31066,10405,-31071,10389,-31077,10373,-31082,10357,-31087,10342,-31093,10326,-31098,10310,-31103,10294,-31108,10278,-31114,10262,-31119,10246,-31124,10230,-31129,10214,-31135,10198,-31140,10182,-31145,10166,-31150,10151,-31155,10135,-31161,10119,-31166,10103,-31171,10087,-31176,10071,-31181,10055,-31186,10039,-31192,10023,-31197,10007,-31202,9991,-31207,9975,-31212,9959,-31217,9943,-31222,9927,-31227,9911,-31232,9895,-31237,9879,-31243,9863,-31248,9847,-31253,9831,-31258,9815,-31263,9799,-31268,9783,-31273,9767,-31278,9751,-31283,9735,-31288,9719,-31293,9703,-31298,9687,-31303,9671,-31308,9655,-31312,9639,-31317,9623,-31322,9607,-31327,9591,-31332,9575,-31337,9559,-31342,9543,-31347,9527,-31352,9511,-31357,9495,-31361,9479,-31366,9463,-31371,9447,-31376,9431,-31381,9415,-31386,9399,-31390,9383,-31395,9367,-31400,9351,-31405,9335,-31410,9319,-31414,9303,-31419,9287,-31424,9270,-31429,9254,-31433,9238,-31438,9222,-31443,9206,-31447,9190,-31452,9174,-31457,9158,-31462,9142,-31466,9126,-31471,9110,-31476,9094,-31480,9077,-31485,9061,-31490,9045,-31494,9029,-31499,9013,-31503,8997,-31508,8981,-31513,8965,-31517,8949,-31522,8932,-31526,8916,-31531,8900,-31535,8884,-31540,8868,-31545,8852,-31549,8836,-31554,8820,-31558,8803,-31563,8787,-31567,8771,-31572,8755,-31576,8739,-31581,8723,-31585,8707,-31589,8690,-31594,8674,-31598,8658,-31603,8642,-31607,8626,-31612,8610,-31616,8593,-31620,8577,-31625,8561,-31629,8545,-31634,8529,-31638,8513,-31642,8496,-31647,8480,-31651,8464,-31655,8448,-31660,8432,-31664,8415,-31668,8399,-31673,8383,-31677,8367,-31681,8351,-31685,8334,-31690,8318,-31694,8302,-31698,8286,-31702,8270,-31707,8253,-31711,8237,-31715,8221,-31719,8205,-31724,8189,-31728,8172,-31732,8156,-31736,8140,-31740,8124,-31744,8107,-31749,8091,-31753,8075,-31757,8059,-31761,8042,-31765,8026,-31769,8010,-31773,7994,-31777,7977,-31781,7961,-31786,7945,-31790,7929,-31794,7912,-31798,7896,-31802,7880,-31806,7864,-31810,7847,-31814,7831,-31818,7815,-31822,7799,-31826,7782,-31830,7766,-31834,7750,-31838,7733,-31842,7717,-31846,7701,-31850,7685,-31854,7668,-31857,7652,-31861,7636,-31865,7619,-31869,7603,-31873,7587,-31877,7571,-31881,7554,-31885,7538,-31889,7522,-31892,7505,-31896,7489,-31900,7473,-31904,7456,-31908,7440,-31912,7424,-31915,7407,-31919,7391,-31923,7375,-31927,7358,-31930,7342,-31934,7326,-31938,7310,-31942,7293,-31945,7277,-31949,7261,-31953,7244,-31957,7228,-31960,7211,-31964,7195,-31968,7179,-31971,7162,-31975,7146,-31979,7130,-31982,7113,-31986,7097,-31990,7081,-31993,7064,-31997,7048,-32000,7032,-32004,7015,-32008,6999,-32011,6982,-32015,6966,-32018,6950,-32022,6933,-32025,6917,-32029,6901,-32033,6884,-32036,6868,-32040,6851,-32043,6835,-32047,6819,-32050,6802,-32054,6786,-32057,6770,-32060,6753,-32064,6737,-32067,6720,-32071,6704,-32074,6688,-32078,6671,-32081,6655,-32085,6638,-32088,6622,-32091,6606,-32095,6589,-32098,6573,-32101,6556,-32105,6540,-32108,6523,-32111,6507,-32115,6491,-32118,6474,-32121,6458,-32125,6441,-32128,6425,-32131,6408,-32135,6392,-32138,6376,-32141,6359,-32144,6343,-32148,6326,-32151,6310,-32154,6293,-32157,6277,-32161,6261,-32164,6244,-32167,6228,-32170,6211,-32173,6195,-32177,6178,-32180,6162,-32183,6145,-32186,6129,-32189,6112,-32192,6096,-32195,6080,-32198,6063,-32202,6047,-32205,6030,-32208,6014,-32211,5997,-32214,5981,-32217,5964,-32220,5948,-32223,5931,-32226,5915,-32229,5898,-32232,5882,-32235,5865,-32238,5849,-32241,5832,-32244,5816,-32247,5799,-32250,5783,-32253,5766,-32256,5750,-32259,5733,-32262,5717,-32265,5700,-32268,5684,-32271,5667,-32274,5651,-32276,5634,-32279,5618,-32282,5601,-32285,5585,-32288,5568,-32291,5552,-32294,5535,-32296,5519,-32299,5502,-32302,5486,-32305,5469,-32308,5453,-32311,5436,-32313,5420,-32316,5403,-32319,5387,-32322,5370,-32324,5354,-32327,5337,-32330,5321,-32333,5304,-32335,5287,-32338,5271,-32341,5254,-32343,5238,-32346,5221,-32349,5205,-32351,5188,-32354,5172,-32357,5155,-32359,5139,-32362,5122,-32365,5106,-32367,5089,-32370,5072,-32372,5056,-32375,5039,-32378,5023,-32380,5006,-32383,4990,-32385,4973,-32388,4957,-32390,4940,-32393,4923,-32395,4907,-32398,4890,-32400,4874,-32403,4857,-32405,4841,-32408,4824,-32410,4807,-32413,4791,-32415,4774,-32418,4758,-32420,4741,-32423,4725,-32425,4708,-32427,4691,-32430,4675,-32432,4658,-32435,4642,-32437,4625,-32439,4608,-32442,4592,-32444,4575,-32446,4559,-32449,4542,-32451,4525,-32453,4509,-32456,4492,-32458,4476,-32460,4459,-32463,4443,-32465,4426,-32467,4409,-32469,4393,-32472,4376,-32474,4359,-32476,4343,-32478,4326,-32481,4310,-32483,4293,-32485,4276,-32487,4260,-32489,4243,-32492,4227,-32494,4210,-32496,4193,-32498,4177,-32500,4160,-32502,4144,-32504,4127,-32507,4110,-32509,4094,-32511,4077,-32513,4060,-32515,4044,-32517,4027,-32519,4011,-32521,3994,-32523,3977,-32525,3961,-32527,3944,-32529,3927,-32531,3911,-32533,3894,-32535,3877,-32537,3861,-32539,3844,-32541,3828,-32543,3811,-32545,3794,-32547,3778,-32549,3761,-32551,3744,-32553,3728,-32555,3711,-32557,3694,-32559,3678,-32560,3661,-32562,3644,-32564,3628,-32566,3611,-32568,3594,-32570,3578,-32572,3561,-32573,3545,-32575,3528,-32577,3511,-32579,3495,-32581,3478,-32582,3461,-32584,3445,-32586,3428,-32588,3411,-32589,3395,-32591,3378,-32593,3361,-32595,3345,-32596,3328,-32598,3311,-32600,3295,-32601,3278,-32603,3261,-32605,3245,-32606,3228,-32608,3211,-32610,3195,-32611,3178,-32613,3161,-32615,3145,-32616,3128,-32618,3111,-32619,3094,-32621,3078,-32623,3061,-32624,3044,-32626,3028,-32627,3011,-32629,2994,-32630,2978,-32632,2961,-32633,2944,-32635,2928,-32636,2911,-32638,2894,-32639,2878,-32641,2861,-32642,2844,-32644,2828,-32645,2811,-32647,2794,-32648,2777,-32650,2761,-32651,2744,-32652,2727,-32654,2711,-32655,2694,-32657,2677,-32658,2661,-32659,2644,-32661,2627,-32662,2610,-32663,2594,-32665,2577,-32666,2560,-32667,2544,-32669,2527,-32670,2510,-32671,2494,-32672,2477,-32674,2460,-32675,2443,-32676,2427,-32677,2410,-32679,2393,-32680,2377,-32681,2360,-32682,2343,-32684,2326,-32685,2310,-32686,2293,-32687,2276,-32688,2260,-32689,2243,-32691,2226,-32692,2209,-32693,2193,-32694,2176,-32695,2159,-32696,2143,-32697,2126,-32698,2109,-32700,2092,-32701,2076,-32702,2059,-32703,2042,-32704,2026,-32705,2009,-32706,1992,-32707,1975,-32708,1959,-32709,1942,-32710,1925,-32711,1908,-32712,1892,-32713,1875,-32714,1858,-32715,1842,-32716,1825,-32717,1808,-32718,1791,-32718,1775,-32719,1758,-32720,1741,-32721,1724,-32722,1708,-32723,1691,-32724,1674,-32725,1658,-32726,1641,-32726,1624,-32727,1607,-32728,1591,-32729,1574,-32730,1557,-32730,1540,-32731,1524,-32732,1507,-32733,1490,-32734,1473,-32734,1457,-32735,1440,-32736,1423,-32737,1406,-32737,1390,-32738,1373,-32739,1356,-32739,1339,-32740,1323,-32741,1306,-32741,1289,-32742,1273,-32743,1256,-32743,1239,-32744,1222,-32745,1206,-32745,1189,-32746,1172,-32747,1155,-32747,1139,-32748,1122,-32748,1105,-32749,1088,-32749,1072,-32750,1055,-32751,1038,-32751,1021,-32752,1005,-32752,988,-32753,971,-32753,954,-32754,938,-32754,921,-32755,904,-32755,887,-32755,871,-32756,854,-32756,837,-32757,820,-32757,804,-32758,787,-32758,770,-32758,753,-32759,737,-32759,720,-32760,703,-32760,686,-32760,670,-32761,653,-32761,636,-32761,619,-32762,603,-32762,586,-32762,569,-32763,552,-32763,536,-32763,519,-32763,502,-32764,485,-32764,469,-32764,452,-32764,435,-32765,418,-32765,402,-32765,385,-32765,368,-32765,351,-32766,335,-32766,318,-32766,301,-32766,284,-32766,268,-32766,251,-32767,234,-32767,217,-32767,201,-32767,184,-32767,167,-32767,150,-32767,134,-32767,117,-32767,100,-32767,83,-32767,67,-32767,50,-32767,33,-32767,16,-32767,0,-32767,-17,-32767,-34,-32767,-51,-32767,-68,-32767,-84,-32767,-101,-32767,-118,-32767,-135,-32767,-151,-32767,-168,-32767,-185,-32767,-202,-32767,-218,-32767,-235,-32767,-252,-32767,-269,-32766,-285,-32766,-302,-32766,-319,-32766,-336,-32766,-352,-32766,-369,-32765,-386,-32765,-403,-32765,-419,-32765,-436,-32765,-453,-32764,-470,-32764,-486,-32764,-503,-32764,-520,-32763,-537,-32763,-553,-32763,-570,-32763,-587,-32762,-604,-32762,-620,-32762,-637,-32761,-654,-32761,-671,-32761,-687,-32760,-704,-32760,-721,-32760,-738,-32759,-754,-32759,-771,-32758,-788,-32758,-805,-32758,-821,-32757,-838,-32757,-855,-32756,-872,-32756,-888,-32755,-905,-32755,-922,-32755,-939,-32754,-955,-32754,-972,-32753,-989,-32753,-1006,-32752,-1022,-32752,-1039,-32751,-1056,-32751,-1073,-32750,-1089,-32749,-1106,-32749,-1123,-32748,-1140,-32748,-1156,-32747,-1173,-32747,-1190,-32746,-1207,-32745,-1223,-32745,-1240,-32744,-1257,-32743,-1274,-32743,-1290,-32742,-1307,-32741,-1324,-32741,-1340,-32740,-1357,-32739,-1374,-32739,-1391,-32738,-1407,-32737,-1424,-32737,-1441,-32736,-1458,-32735,-1474,-32734,-1491,-32734,-1508,-32733,-1525,-32732,-1541,-32731,-1558,-32730,-1575,-32730,-1592,-32729,-1608,-32728,-1625,-32727,-1642,-32726,-1659,-32726,-1675,-32725,-1692,-32724,-1709,-32723,-1725,-32722,-1742,-32721,-1759,-32720,-1776,-32719,-1792,-32718,-1809,-32718,-1826,-32717,-1843,-32716,-1859,-32715,-1876,-32714,-1893,-32713,-1909,-32712,-1926,-32711,-1943,-32710,-1960,-32709,-1976,-32708,-1993,-32707,-2010,-32706,-2027,-32705,-2043,-32704,-2060,-32703,-2077,-32702,-2093,-32701,-2110,-32700,-2127,-32698,-2144,-32697,-2160,-32696,-2177,-32695,-2194,-32694,-2210,-32693,-2227,-32692,-2244,-32691,-2261,-32689,-2277,-32688,-2294,-32687,-2311,-32686,-2327,-32685,-2344,-32684,-2361,-32682,-2378,-32681,-2394,-32680,-2411,-32679,-2428,-32677,-2444,-32676,-2461,-32675,-2478,-32674,-2495,-32672,-2511,-32671,-2528,-32670,-2545,-32669,-2561,-32667,-2578,-32666,-2595,-32665,-2611,-32663,-2628,-32662,-2645,-32661,-2662,-32659,-2678,-32658,-2695,-32657,-2712,-32655,-2728,-32654,-2745,-32652,-2762,-32651,-2778,-32650,-2795,-32648,-2812,-32647,-2829,-32645,-2845,-32644,-2862,-32642,-2879,-32641,-2895,-32639,-2912,-32638,-2929,-32636,-2945,-32635,-2962,-32633,-2979,-32632,-2995,-32630,-3012,-32629,-3029,-32627,-3045,-32626,-3062,-32624,-3079,-32623,-3095,-32621,-3112,-32619,-3129,-32618,-3146,-32616,-3162,-32615,-3179,-32613,-3196,-32611,-3212,-32610,-3229,-32608,-3246,-32606,-3262,-32605,-3279,-32603,-3296,-32601,-3312,-32600,-3329,-32598,-3346,-32596,-3362,-32595,-3379,-32593,-3396,-32591,-3412,-32589,-3429,-32588,-3446,-32586,-3462,-32584,-3479,-32582,-3496,-32581,-3512,-32579,-3529,-32577,-3546,-32575,-3562,-32573,-3579,-32572,-3595,-32570,-3612,-32568,-3629,-32566,-3645,-32564,-3662,-32562,-3679,-32560,-3695,-32559,-3712,-32557,-3729,-32555,-3745,-32553,-3762,-32551,-3779,-32549,-3795,-32547,-3812,-32545,-3829,-32543,-3845,-32541,-3862,-32539,-3878,-32537,-3895,-32535,-3912,-32533,-3928,-32531,-3945,-32529,-3962,-32527,-3978,-32525,-3995,-32523,-4012,-32521,-4028,-32519,-4045,-32517,-4061,-32515,-4078,-32513,-4095,-32511,-4111,-32509,-4128,-32507,-4145,-32504,-4161,-32502,-4178,-32500,-4194,-32498,-4211,-32496,-4228,-32494,-4244,-32492,-4261,-32489,-4277,-32487,-4294,-32485,-4311,-32483,-4327,-32481,-4344,-32478,-4360,-32476,-4377,-32474,-4394,-32472,-4410,-32469,-4427,-32467,-4444,-32465,-4460,-32463,-4477,-32460,-4493,-32458,-4510,-32456,-4526,-32453,-4543,-32451,-4560,-32449,-4576,-32446,-4593,-32444,-4609,-32442,-4626,-32439,-4643,-32437,-4659,-32435,-4676,-32432,-4692,-32430,-4709,-32427,-4726,-32425,-4742,-32423,-4759,-32420,-4775,-32418,-4792,-32415,-4808,-32413,-4825,-32410,-4842,-32408,-4858,-32405,-4875,-32403,-4891,-32400,-4908,-32398,-4924,-32395,-4941,-32393,-4958,-32390,-4974,-32388,-4991,-32385,-5007,-32383,-5024,-32380,-5040,-32378,-5057,-32375,-5073,-32372,-5090,-32370,-5107,-32367,-5123,-32365,-5140,-32362,-5156,-32359,-5173,-32357,-5189,-32354,-5206,-32351,-5222,-32349,-5239,-32346,-5255,-32343,-5272,-32341,-5288,-32338,-5305,-32335,-5322,-32333,-5338,-32330,-5355,-32327,-5371,-32324,-5388,-32322,-5404,-32319,-5421,-32316,-5437,-32313,-5454,-32311,-5470,-32308,-5487,-32305,-5503,-32302,-5520,-32299,-5536,-32296,-5553,-32294,-5569,-32291,-5586,-32288,-5602,-32285,-5619,-32282,-5635,-32279,-5652,-32276,-5668,-32274,-5685,-32271,-5701,-32268,-5718,-32265,-5734,-32262,-5751,-32259,-5767,-32256,-5784,-32253,-5800,-32250,-5817,-32247,-5833,-32244,-5850,-32241,-5866,-32238,-5883,-32235,-5899,-32232,-5916,-32229,-5932,-32226,-5949,-32223,-5965,-32220,-5982,-32217,-5998,-32214,-6015,-32211,-6031,-32208,-6048,-32205,-6064,-32202,-6081,-32198,-6097,-32195,-6113,-32192,-6130,-32189,-6146,-32186,-6163,-32183,-6179,-32180,-6196,-32177,-6212,-32173,-6229,-32170,-6245,-32167,-6262,-32164,-6278,-32161,-6294,-32157,-6311,-32154,-6327,-32151,-6344,-32148,-6360,-32144,-6377,-32141,-6393,-32138,-6409,-32135,-6426,-32131,-6442,-32128,-6459,-32125,-6475,-32121,-6492,-32118,-6508,-32115,-6524,-32111,-6541,-32108,-6557,-32105,-6574,-32101,-6590,-32098,-6607,-32095,-6623,-32091,-6639,-32088,-6656,-32085,-6672,-32081,-6689,-32078,-6705,-32074,-6721,-32071,-6738,-32067,-6754,-32064,-6771,-32060,-6787,-32057,-6803,-32054,-6820,-32050,-6836,-32047,-6852,-32043,-6869,-32040,-6885,-32036,-6902,-32033,-6918,-32029,-6934,-32025,-6951,-32022,-6967,-32018,-6983,-32015,-7000,-32011,-7016,-32008,-7033,-32004,-7049,-32000,-7065,-31997,-7082,-31993,-7098,-31990,-7114,-31986,-7131,-31982,-7147,-31979,-7163,-31975,-7180,-31971,-7196,-31968,-7212,-31964,-7229,-31960,-7245,-31957,-7262,-31953,-7278,-31949,-7294,-31945,-7311,-31942,-7327,-31938,-7343,-31934,-7359,-31930,-7376,-31927,-7392,-31923,-7408,-31919,-7425,-31915,-7441,-31912,-7457,-31908,-7474,-31904,-7490,-31900,-7506,-31896,-7523,-31892,-7539,-31889,-7555,-31885,-7572,-31881,-7588,-31877,-7604,-31873,-7620,-31869,-7637,-31865,-7653,-31861,-7669,-31857,-7686,-31854,-7702,-31850,-7718,-31846,-7734,-31842,-7751,-31838,-7767,-31834,-7783,-31830,-7800,-31826,-7816,-31822,-7832,-31818,-7848,-31814,-7865,-31810,-7881,-31806,-7897,-31802,-7913,-31798,-7930,-31794,-7946,-31790,-7962,-31786,-7978,-31781,-7995,-31777,-8011,-31773,-8027,-31769,-8043,-31765,-8060,-31761,-8076,-31757,-8092,-31753,-8108,-31749,-8125,-31744,-8141,-31740,-8157,-31736,-8173,-31732,-8190,-31728,-8206,-31724,-8222,-31719,-8238,-31715,-8254,-31711,-8271,-31707,-8287,-31702,-8303,-31698,-8319,-31694,-8335,-31690,-8352,-31685,-8368,-31681,-8384,-31677,-8400,-31673,-8416,-31668,-8433,-31664,-8449,-31660,-8465,-31655,-8481,-31651,-8497,-31647,-8514,-31642,-8530,-31638,-8546,-31634,-8562,-31629,-8578,-31625,-8594,-31620,-8611,-31616,-8627,-31612,-8643,-31607,-8659,-31603,-8675,-31598,-8691,-31594,-8708,-31589,-8724,-31585,-8740,-31581,-8756,-31576,-8772,-31572,-8788,-31567,-8804,-31563,-8821,-31558,-8837,-31554,-8853,-31549,-8869,-31545,-8885,-31540,-8901,-31535,-8917,-31531,-8933,-31526,-8950,-31522,-8966,-31517,-8982,-31513,-8998,-31508,-9014,-31503,-9030,-31499,-9046,-31494,-9062,-31490,-9078,-31485,-9095,-31480,-9111,-31476,-9127,-31471,-9143,-31466,-9159,-31462,-9175,-31457,-9191,-31452,-9207,-31447,-9223,-31443,-9239,-31438,-9255,-31433,-9271,-31429,-9288,-31424,-9304,-31419,-9320,-31414,-9336,-31410,-9352,-31405,-9368,-31400,-9384,-31395,-9400,-31390,-9416,-31386,-9432,-31381,-9448,-31376,-9464,-31371,-9480,-31366,-9496,-31361,-9512,-31357,-9528,-31352,-9544,-31347,-9560,-31342,-9576,-31337,-9592,-31332,-9608,-31327,-9624,-31322,-9640,-31317,-9656,-31312,-9672,-31308,-9688,-31303,-9704,-31298,-9720,-31293,-9736,-31288,-9752,-31283,-9768,-31278,-9784,-31273,-9800,-31268,-9816,-31263,-9832,-31258,-9848,-31253,-9864,-31248,-9880,-31243,-9896,-31237,-9912,-31232,-9928,-31227,-9944,-31222,-9960,-31217,-9976,-31212,-9992,-31207,-10008,-31202,-10024,-31197,-10040,-31192,-10056,-31186,-10072,-31181,-10088,-31176,-10104,-31171,-10120,-31166,-10136,-31161,-10152,-31155,-10167,-31150,-10183,-31145,-10199,-31140,-10215,-31135,-10231,-31129,-10247,-31124,-10263,-31119,-10279,-31114,-10295,-31108,-10311,-31103,-10327,-31098,-10343,-31093,-10358,-31087,-10374,-31082,-10390,-31077,-10406,-31071,-10422,-31066,-10438,-31061,-10454,-31055,-10470,-31050,-10485,-31045,-10501,-31039,-10517,-31034,-10533,-31029,-10549,-31023,-10565,-31018,-10581,-31012,-10597,-31007,-10612,-31002,-10628,-30996,-10644,-30991,-10660,-30985,-10676,-30980,-10692,-30974,-10707,-30969,-10723,-30963,-10739,-30958,-10755,-30952,-10771,-30947,-10787,-30941,-10802,-30936,-10818,-30930,-10834,-30925,-10850,-30919,-10866,-30914,-10881,-30908,-10897,-30903,-10913,-30897,-10929,-30891,-10945,-30886,-10960,-30880,-10976,-30875,-10992,-30869,-11008,-30863,-11024,-30858,-11039,-30852,-11055,-30846,-11071,-30841,-11087,-30835,-11102,-30829,-11118,-30824,-11134,-30818,-11150,-30812,-11165,-30807,-11181,-30801,-11197,-30795,-11213,-30789,-11228,-30784,-11244,-30778,-11260,-30772,-11276,-30767,-11291,-30761,-11307,-30755,-11323,-30749,-11339,-30743,-11354,-30738,-11370,-30732,-11386,-30726,-11401,-30720,-11417,-30714,-11433,-30708,-11449,-30703,-11464,-30697,-11480,-30691,-11496,-30685,-11511,-30679,-11527,-30673,-11543,-30667,-11558,-30661,-11574,-30656,-11590,-30650,-11605,-30644,-11621,-30638,-11637,-30632,-11652,-30626,-11668,-30620,-11684,-30614,-11699,-30608,-11715,-30602,-11731,-30596,-11746,-30590,-11762,-30584,-11778,-30578,-11793,-30572,-11809,-30566,-11824,-30560,-11840,-30554,-11856,-30548,-11871,-30542,-11887,-30536,-11903,-30529,-11918,-30523,-11934,-30517,-11949,-30511,-11965,-30505,-11981,-30499,-11996,-30493,-12012,-30487,-12027,-30481,-12043,-30474,-12058,-30468,-12074,-30462,-12090,-30456,-12105,-30450,-12121,-30443,-12136,-30437,-12152,-30431,-12167,-30425,-12183,-30419,-12199,-30412,-12214,-30406,-12230,-30400,-12245,-30394,-12261,-30387,-12276,-30381,-12292,-30375,-12307,-30369,-12323,-30362,-12338,-30356,-12354,-30350,-12369,-30343,-12385,-30337,-12400,-30331,-12416,-30324,-12431,-30318,-12447,-30312,-12462,-30305,-12478,-30299,-12493,-30292,-12509,-30286,-12524,-30280,-12540,-30273,-12555,-30267,-12571,-30260,-12586,-30254,-12602,-30248,-12617,-30241,-12633,-30235,-12648,-30228,-12664,-30222,-12679,-30215,-12695,-30209,-12710,-30202,-12725,-30196,-12741,-30189,-12756,-30183,-12772,-30176,-12787,-30170,-12803,-30163,-12818,-30157,-12833,-30150,-12849,-30143,-12864,-30137,-12880,-30130,-12895,-30124,-12910,-30117,-12926,-30110,-12941,-30104,-12957,-30097,-12972,-30091,-12987,-30084,-13003,-30077,-13018,-30071,-13034,-30064,-13049,-30057,-13064,-30051,-13080,-30044,-13095,-30037,-13110,-30031,-13126,-30024,-13141,-30017,-13156,-30010,-13172,-30004,-13187,-29997,-13202,-29990,-13218,-29984,-13233,-29977,-13248,-29970,-13264,-29963,-13279,-29956,-13294,-29950,-13310,-29943,-13325,-29936,-13340,-29929,-13356,-29922,-13371,-29916,-13386,-29909,-13401,-29902,-13417,-29895,-13432,-29888,-13447,-29881,-13463,-29874,-13478,-29867,-13493,-29861,-13508,-29854,-13524,-29847,-13539,-29840,-13554,-29833,-13569,-29826,-13585,-29819,-13600,-29812,-13615,-29805,-13630,-29798,-13646,-29791,-13661,-29784,-13676,-29777,-13691,-29770,-13707,-29763,-13722,-29756,-13737,-29749,-13752,-29742,-13767,-29735,-13783,-29728,-13798,-29721,-13813,-29714,-13828,-29707,-13843,-29700,-13859,-29693,-13874,-29686,-13889,-29679,-13904,-29671,-13919,-29664,-13934,-29657,-13950,-29650,-13965,-29643,-13980,-29636,-13995,-29629,-14010,-29622,-14025,-29614,-14040,-29607,-14056,-29600,-14071,-29593,-14086,-29586,-14101,-29578,-14116,-29571,-14131,-29564,-14146,-29557,-14161,-29549,-14177,-29542,-14192,-29535,-14207,-29528,-14222,-29520,-14237,-29513,-14252,-29506,-14267,-29499,-14282,-29491,-14297,-29484,-14312,-29477,-14327,-29469,-14343,-29462,-14358,-29455,-14373,-29447,-14388,-29440,-14403,-29433,-14418,-29425,-14433,-29418,-14448,-29411,-14463,-29403,-14478,-29396,-14493,-29388,-14508,-29381,-14523,-29373,-14538,-29366,-14553,-29359,-14568,-29351,-14583,-29344,-14598,-29336,-14613,-29329,-14628,-29321,-14643,-29314,-14658,-29306,-14673,-29299,-14688,-29291,-14703,-29284,-14718,-29276,-14733,-29269,-14748,-29261,-14763,-29254,-14778,-29246,-14793,-29239,-14808,-29231,-14823,-29223,-14838,-29216,-14853,-29208,-14867,-29201,-14882,-29193,-14897,-29185,-14912,-29178,-14927,-29170,-14942,-29163,-14957,-29155,-14972,-29147,-14987,-29140,-15002,-29132,-15017,-29124,-15031,-29117,-15046,-29109,-15061,-29101,-15076,-29093,-15091,-29086,-15106,-29078,-15121,-29070,-15136,-29063,-15150,-29055,-15165,-29047,-15180,-29039,-15195,-29032,-15210,-29024,-15225,-29016,-15239,-29008,-15254,-29000,-15269,-28993,-15284,-28985,-15299,-28977,-15314,-28969,-15328,-28961,-15343,-28954,-15358,-28946,-15373,-28938,-15388,-28930,-15402,-28922,-15417,-28914,-15432,-28906,-15447,-28898,-15462,-28891,-15476,-28883,-15491,-28875,-15506,-28867,-15521,-28859,-15535,-28851,-15550,-28843,-15565,-28835,-15580,-28827,-15594,-28819,-15609,-28811,-15624,-28803,-15639,-28795,-15653,-28787,-15668,-28779,-15683,-28771,-15697,-28763,-15712,-28755,-15727,-28747,-15741,-28739,-15756,-28731,-15771,-28723,-15786,-28715,-15800,-28707,-15815,-28699,-15830,-28691,-15844,-28682,-15859,-28674,-15874,-28666,-15888,-28658,-15903,-28650,-15918,-28642,-15932,-28634,-15947,-28626,-15961,-28617,-15976,-28609,-15991,-28601,-16005,-28593,-16020,-28585,-16035,-28576,-16049,-28568,-16064,-28560,-16078,-28552,-16093,-28544,-16108,-28535,-16122,-28527,-16137,-28519,-16151,-28511,-16166,-28502,-16180,-28494,-16195,-28486,-16210,-28478,-16224,-28469,-16239,-28461,-16253,-28453,-16268,-28444,-16282,-28436,-16297,-28428,-16311,-28419,-16326,-28411,-16340,-28403,-16355,-28394,-16369,-28386}; - -int16_t twb12288[8192] __attribute__((aligned(32))) = {32767,0,32766,-34,32766,-68,32766,-101,32766,-135,32766,-168,32766,-202,32766,-235,32765,-269,32765,-302,32765,-336,32764,-369,32764,-403,32764,-436,32763,-470,32763,-503,32762,-537,32762,-570,32761,-604,32760,-637,32760,-671,32759,-704,32758,-738,32757,-771,32757,-805,32756,-838,32755,-872,32754,-905,32753,-939,32752,-972,32751,-1006,32750,-1039,32749,-1073,32748,-1106,32747,-1140,32746,-1173,32744,-1207,32743,-1240,32742,-1274,32740,-1307,32739,-1340,32738,-1374,32736,-1407,32735,-1441,32733,-1474,32732,-1508,32730,-1541,32729,-1575,32727,-1608,32725,-1642,32724,-1675,32722,-1709,32720,-1742,32718,-1776,32717,-1809,32715,-1843,32713,-1876,32711,-1909,32709,-1943,32707,-1976,32705,-2010,32703,-2043,32701,-2077,32699,-2110,32696,-2144,32694,-2177,32692,-2210,32690,-2244,32687,-2277,32685,-2311,32683,-2344,32680,-2378,32678,-2411,32675,-2444,32673,-2478,32670,-2511,32668,-2545,32665,-2578,32662,-2611,32660,-2645,32657,-2678,32654,-2712,32651,-2745,32649,-2778,32646,-2812,32643,-2845,32640,-2879,32637,-2912,32634,-2945,32631,-2979,32628,-3012,32625,-3045,32622,-3079,32618,-3112,32615,-3146,32612,-3179,32609,-3212,32605,-3246,32602,-3279,32599,-3312,32595,-3346,32592,-3379,32588,-3412,32585,-3446,32581,-3479,32578,-3512,32574,-3546,32571,-3579,32567,-3612,32563,-3645,32559,-3679,32556,-3712,32552,-3745,32548,-3779,32544,-3812,32540,-3845,32536,-3878,32532,-3912,32528,-3945,32524,-3978,32520,-4012,32516,-4045,32512,-4078,32508,-4111,32503,-4145,32499,-4178,32495,-4211,32491,-4244,32486,-4277,32482,-4311,32477,-4344,32473,-4377,32468,-4410,32464,-4444,32459,-4477,32455,-4510,32450,-4543,32445,-4576,32441,-4609,32436,-4643,32431,-4676,32426,-4709,32422,-4742,32417,-4775,32412,-4808,32407,-4842,32402,-4875,32397,-4908,32392,-4941,32387,-4974,32382,-5007,32377,-5040,32371,-5073,32366,-5107,32361,-5140,32356,-5173,32350,-5206,32345,-5239,32340,-5272,32334,-5305,32329,-5338,32323,-5371,32318,-5404,32312,-5437,32307,-5470,32301,-5503,32295,-5536,32290,-5569,32284,-5602,32278,-5635,32273,-5668,32267,-5701,32261,-5734,32255,-5767,32249,-5800,32243,-5833,32237,-5866,32231,-5899,32225,-5932,32219,-5965,32213,-5998,32207,-6031,32201,-6064,32194,-6097,32188,-6130,32182,-6163,32176,-6196,32169,-6229,32163,-6262,32156,-6294,32150,-6327,32143,-6360,32137,-6393,32130,-6426,32124,-6459,32117,-6492,32110,-6524,32104,-6557,32097,-6590,32090,-6623,32084,-6656,32077,-6689,32070,-6721,32063,-6754,32056,-6787,32049,-6820,32042,-6852,32035,-6885,32028,-6918,32021,-6951,32014,-6983,32007,-7016,31999,-7049,31992,-7082,31985,-7114,31978,-7147,31970,-7180,31963,-7212,31956,-7245,31948,-7278,31941,-7311,31933,-7343,31926,-7376,31918,-7408,31911,-7441,31903,-7474,31895,-7506,31888,-7539,31880,-7572,31872,-7604,31864,-7637,31856,-7669,31849,-7702,31841,-7734,31833,-7767,31825,-7800,31817,-7832,31809,-7865,31801,-7897,31793,-7930,31785,-7962,31776,-7995,31768,-8027,31760,-8060,31752,-8092,31743,-8125,31735,-8157,31727,-8190,31718,-8222,31710,-8254,31701,-8287,31693,-8319,31684,-8352,31676,-8384,31667,-8416,31659,-8449,31650,-8481,31641,-8514,31633,-8546,31624,-8578,31615,-8611,31606,-8643,31597,-8675,31588,-8708,31580,-8740,31571,-8772,31562,-8804,31553,-8837,31544,-8869,31534,-8901,31525,-8933,31516,-8966,31507,-8998,31498,-9030,31489,-9062,31479,-9095,31470,-9127,31461,-9159,31451,-9191,31442,-9223,31432,-9255,31423,-9288,31413,-9320,31404,-9352,31394,-9384,31385,-9416,31375,-9448,31365,-9480,31356,-9512,31346,-9544,31336,-9576,31326,-9608,31316,-9640,31307,-9672,31297,-9704,31287,-9736,31277,-9768,31267,-9800,31257,-9832,31247,-9864,31236,-9896,31226,-9928,31216,-9960,31206,-9992,31196,-10024,31185,-10056,31175,-10088,31165,-10120,31154,-10152,31144,-10183,31134,-10215,31123,-10247,31113,-10279,31102,-10311,31092,-10343,31081,-10374,31070,-10406,31060,-10438,31049,-10470,31038,-10501,31028,-10533,31017,-10565,31006,-10597,30995,-10628,30984,-10660,30973,-10692,30962,-10723,30951,-10755,30940,-10787,30929,-10818,30918,-10850,30907,-10881,30896,-10913,30885,-10945,30874,-10976,30862,-11008,30851,-11039,30840,-11071,30828,-11102,30817,-11134,30806,-11165,30794,-11197,30783,-11228,30771,-11260,30760,-11291,30748,-11323,30737,-11354,30725,-11386,30713,-11417,30702,-11449,30690,-11480,30678,-11511,30666,-11543,30655,-11574,30643,-11605,30631,-11637,30619,-11668,30607,-11699,30595,-11731,30583,-11762,30571,-11793,30559,-11824,30547,-11856,30535,-11887,30522,-11918,30510,-11949,30498,-11981,30486,-12012,30473,-12043,30461,-12074,30449,-12105,30436,-12136,30424,-12167,30411,-12199,30399,-12230,30386,-12261,30374,-12292,30361,-12323,30349,-12354,30336,-12385,30323,-12416,30311,-12447,30298,-12478,30285,-12509,30272,-12540,30259,-12571,30247,-12602,30234,-12633,30221,-12664,30208,-12695,30195,-12725,30182,-12756,30169,-12787,30156,-12818,30142,-12849,30129,-12880,30116,-12910,30103,-12941,30090,-12972,30076,-13003,30063,-13034,30050,-13064,30036,-13095,30023,-13126,30009,-13156,29996,-13187,29983,-13218,29969,-13248,29955,-13279,29942,-13310,29928,-13340,29915,-13371,29901,-13401,29887,-13432,29873,-13463,29860,-13493,29846,-13524,29832,-13554,29818,-13585,29804,-13615,29790,-13646,29776,-13676,29762,-13707,29748,-13737,29734,-13767,29720,-13798,29706,-13828,29692,-13859,29678,-13889,29663,-13919,29649,-13950,29635,-13980,29621,-14010,29606,-14040,29592,-14071,29577,-14101,29563,-14131,29548,-14161,29534,-14192,29519,-14222,29505,-14252,29490,-14282,29476,-14312,29461,-14343,29446,-14373,29432,-14403,29417,-14433,29402,-14463,29387,-14493,29372,-14523,29358,-14553,29343,-14583,29328,-14613,29313,-14643,29298,-14673,29283,-14703,29268,-14733,29253,-14763,29238,-14793,29222,-14823,29207,-14853,29192,-14882,29177,-14912,29162,-14942,29146,-14972,29131,-15002,29116,-15031,29100,-15061,29085,-15091,29069,-15121,29054,-15150,29038,-15180,29023,-15210,29007,-15239,28992,-15269,28976,-15299,28960,-15328,28945,-15358,28929,-15388,28913,-15417,28897,-15447,28882,-15476,28866,-15506,28850,-15535,28834,-15565,28818,-15594,28802,-15624,28786,-15653,28770,-15683,28754,-15712,28738,-15741,28722,-15771,28706,-15800,28690,-15830,28673,-15859,28657,-15888,28641,-15918,28625,-15947,28608,-15976,28592,-16005,28575,-16035,28559,-16064,28543,-16093,28526,-16122,28510,-16151,28493,-16180,28477,-16210,28460,-16239,28443,-16268,28427,-16297,28410,-16326,28393,-16355,28377,-16384,28360,-16413,28343,-16442,28326,-16471,28309,-16500,28292,-16529,28275,-16558,28259,-16587,28242,-16616,28225,-16644,28208,-16673,28190,-16702,28173,-16731,28156,-16760,28139,-16789,28122,-16817,28105,-16846,28087,-16875,28070,-16904,28053,-16932,28036,-16961,28018,-16990,28001,-17018,27983,-17047,27966,-17075,27948,-17104,27931,-17133,27913,-17161,27896,-17190,27878,-17218,27861,-17247,27843,-17275,27825,-17304,27808,-17332,27790,-17361,27772,-17389,27754,-17417,27736,-17446,27719,-17474,27701,-17502,27683,-17531,27665,-17559,27647,-17587,27629,-17616,27611,-17644,27593,-17672,27575,-17700,27557,-17728,27538,-17757,27520,-17785,27502,-17813,27484,-17841,27466,-17869,27447,-17897,27429,-17925,27411,-17953,27392,-17981,27374,-18009,27355,-18037,27337,-18065,27319,-18093,27300,-18121,27281,-18149,27263,-18177,27244,-18205,27226,-18233,27207,-18261,27188,-18288,27170,-18316,27151,-18344,27132,-18372,27113,-18399,27094,-18427,27076,-18455,27057,-18483,27038,-18510,27019,-18538,27000,-18565,26981,-18593,26962,-18621,26943,-18648,26924,-18676,26905,-18703,26885,-18731,26866,-18758,26847,-18786,26828,-18813,26809,-18841,26789,-18868,26770,-18895,26751,-18923,26731,-18950,26712,-18977,26692,-19005,26673,-19032,26654,-19059,26634,-19087,26615,-19114,26595,-19141,26575,-19168,26556,-19195,26536,-19222,26516,-19250,26497,-19277,26477,-19304,26457,-19331,26437,-19358,26418,-19385,26398,-19412,26378,-19439,26358,-19466,26338,-19493,26318,-19520,26298,-19547,26278,-19574,26258,-19600,26238,-19627,26218,-19654,26198,-19681,26178,-19708,26158,-19734,26137,-19761,26117,-19788,26097,-19815,26077,-19841,26056,-19868,26036,-19895,26016,-19921,25995,-19948,25975,-19974,25954,-20001,25934,-20027,25913,-20054,25893,-20080,25872,-20107,25852,-20133,25831,-20160,25811,-20186,25790,-20213,25769,-20239,25749,-20265,25728,-20292,25707,-20318,25686,-20344,25665,-20370,25645,-20397,25624,-20423,25603,-20449,25582,-20475,25561,-20501,25540,-20528,25519,-20554,25498,-20580,25477,-20606,25456,-20632,25435,-20658,25414,-20684,25392,-20710,25371,-20736,25350,-20762,25329,-20788,25307,-20814,25286,-20839,25265,-20865,25243,-20891,25222,-20917,25201,-20943,25179,-20968,25158,-20994,25136,-21020,25115,-21046,25093,-21071,25072,-21097,25050,-21123,25029,-21148,25007,-21174,24985,-21199,24964,-21225,24942,-21250,24920,-21276,24898,-21301,24877,-21327,24855,-21352,24833,-21378,24811,-21403,24789,-21428,24767,-21454,24745,-21479,24723,-21504,24701,-21530,24679,-21555,24657,-21580,24635,-21605,24613,-21630,24591,-21656,24569,-21681,24546,-21706,24524,-21731,24502,-21756,24480,-21781,24457,-21806,24435,-21831,24413,-21856,24390,-21881,24368,-21906,24346,-21931,24323,-21956,24301,-21981,24278,-22005,24256,-22030,24233,-22055,24211,-22080,24188,-22105,24165,-22129,24143,-22154,24120,-22179,24097,-22203,24075,-22228,24052,-22253,24029,-22277,24006,-22302,23984,-22326,23961,-22351,23938,-22375,23915,-22400,23892,-22424,23869,-22449,23846,-22473,23823,-22497,23800,-22522,23777,-22546,23754,-22570,23731,-22595,23708,-22619,23685,-22643,23661,-22667,23638,-22692,23615,-22716,23592,-22740,23569,-22764,23545,-22788,23522,-22812,23499,-22836,23475,-22860,23452,-22884,23428,-22908,23405,-22932,23382,-22956,23358,-22980,23335,-23004,23311,-23028,23287,-23051,23264,-23075,23240,-23099,23217,-23123,23193,-23147,23169,-23170,23146,-23194,23122,-23218,23098,-23241,23074,-23265,23050,-23288,23027,-23312,23003,-23336,22979,-23359,22955,-23383,22931,-23406,22907,-23429,22883,-23453,22859,-23476,22835,-23500,22811,-23523,22787,-23546,22763,-23570,22739,-23593,22715,-23616,22691,-23639,22666,-23662,22642,-23686,22618,-23709,22594,-23732,22569,-23755,22545,-23778,22521,-23801,22496,-23824,22472,-23847,22448,-23870,22423,-23893,22399,-23916,22374,-23939,22350,-23962,22325,-23985,22301,-24007,22276,-24030,22252,-24053,22227,-24076,22202,-24098,22178,-24121,22153,-24144,22128,-24166,22104,-24189,22079,-24212,22054,-24234,22029,-24257,22004,-24279,21980,-24302,21955,-24324,21930,-24347,21905,-24369,21880,-24391,21855,-24414,21830,-24436,21805,-24458,21780,-24481,21755,-24503,21730,-24525,21705,-24547,21680,-24570,21655,-24592,21629,-24614,21604,-24636,21579,-24658,21554,-24680,21529,-24702,21503,-24724,21478,-24746,21453,-24768,21427,-24790,21402,-24812,21377,-24834,21351,-24856,21326,-24878,21300,-24899,21275,-24921,21249,-24943,21224,-24965,21198,-24986,21173,-25008,21147,-25030,21122,-25051,21096,-25073,21070,-25094,21045,-25116,21019,-25137,20993,-25159,20967,-25180,20942,-25202,20916,-25223,20890,-25244,20864,-25266,20838,-25287,20813,-25308,20787,-25330,20761,-25351,20735,-25372,20709,-25393,20683,-25415,20657,-25436,20631,-25457,20605,-25478,20579,-25499,20553,-25520,20527,-25541,20500,-25562,20474,-25583,20448,-25604,20422,-25625,20396,-25646,20369,-25666,20343,-25687,20317,-25708,20291,-25729,20264,-25750,20238,-25770,20212,-25791,20185,-25812,20159,-25832,20132,-25853,20106,-25873,20079,-25894,20053,-25914,20026,-25935,20000,-25955,19973,-25976,19947,-25996,19920,-26017,19894,-26037,19867,-26057,19840,-26078,19814,-26098,19787,-26118,19760,-26138,19733,-26159,19707,-26179,19680,-26199,19653,-26219,19626,-26239,19599,-26259,19573,-26279,19546,-26299,19519,-26319,19492,-26339,19465,-26359,19438,-26379,19411,-26399,19384,-26419,19357,-26438,19330,-26458,19303,-26478,19276,-26498,19249,-26517,19221,-26537,19194,-26557,19167,-26576,19140,-26596,19113,-26616,19086,-26635,19058,-26655,19031,-26674,19004,-26693,18976,-26713,18949,-26732,18922,-26752,18894,-26771,18867,-26790,18840,-26810,18812,-26829,18785,-26848,18757,-26867,18730,-26886,18702,-26906,18675,-26925,18647,-26944,18620,-26963,18592,-26982,18564,-27001,18537,-27020,18509,-27039,18482,-27058,18454,-27077,18426,-27095,18398,-27114,18371,-27133,18343,-27152,18315,-27171,18287,-27189,18260,-27208,18232,-27227,18204,-27245,18176,-27264,18148,-27282,18120,-27301,18092,-27320,18064,-27338,18036,-27356,18008,-27375,17980,-27393,17952,-27412,17924,-27430,17896,-27448,17868,-27467,17840,-27485,17812,-27503,17784,-27521,17756,-27539,17727,-27558,17699,-27576,17671,-27594,17643,-27612,17615,-27630,17586,-27648,17558,-27666,17530,-27684,17501,-27702,17473,-27720,17445,-27737,17416,-27755,17388,-27773,17360,-27791,17331,-27809,17303,-27826,17274,-27844,17246,-27862,17217,-27879,17189,-27897,17160,-27914,17132,-27932,17103,-27949,17074,-27967,17046,-27984,17017,-28002,16989,-28019,16960,-28037,16931,-28054,16903,-28071,16874,-28088,16845,-28106,16816,-28123,16788,-28140,16759,-28157,16730,-28174,16701,-28191,16672,-28209,16643,-28226,16615,-28243,16586,-28260,16557,-28276,16528,-28293,16499,-28310,16470,-28327,16441,-28344,16412,-28361,16383,-28378,16354,-28394,16325,-28411,16296,-28428,16267,-28444,16238,-28461,16209,-28478,16179,-28494,16150,-28511,16121,-28527,16092,-28544,16063,-28560,16034,-28576,16004,-28593,15975,-28609,15946,-28626,15917,-28642,15887,-28658,15858,-28674,15829,-28691,15799,-28707,15770,-28723,15740,-28739,15711,-28755,15682,-28771,15652,-28787,15623,-28803,15593,-28819,15564,-28835,15534,-28851,15505,-28867,15475,-28883,15446,-28898,15416,-28914,15387,-28930,15357,-28946,15327,-28961,15298,-28977,15268,-28993,15238,-29008,15209,-29024,15179,-29039,15149,-29055,15120,-29070,15090,-29086,15060,-29101,15030,-29117,15001,-29132,14971,-29147,14941,-29163,14911,-29178,14881,-29193,14852,-29208,14822,-29223,14792,-29239,14762,-29254,14732,-29269,14702,-29284,14672,-29299,14642,-29314,14612,-29329,14582,-29344,14552,-29359,14522,-29373,14492,-29388,14462,-29403,14432,-29418,14402,-29433,14372,-29447,14342,-29462,14311,-29477,14281,-29491,14251,-29506,14221,-29520,14191,-29535,14160,-29549,14130,-29564,14100,-29578,14070,-29593,14039,-29607,14009,-29622,13979,-29636,13949,-29650,13918,-29664,13888,-29679,13858,-29693,13827,-29707,13797,-29721,13766,-29735,13736,-29749,13706,-29763,13675,-29777,13645,-29791,13614,-29805,13584,-29819,13553,-29833,13523,-29847,13492,-29861,13462,-29874,13431,-29888,13400,-29902,13370,-29916,13339,-29929,13309,-29943,13278,-29956,13247,-29970,13217,-29984,13186,-29997,13155,-30010,13125,-30024,13094,-30037,13063,-30051,13033,-30064,13002,-30077,12971,-30091,12940,-30104,12909,-30117,12879,-30130,12848,-30143,12817,-30157,12786,-30170,12755,-30183,12724,-30196,12694,-30209,12663,-30222,12632,-30235,12601,-30248,12570,-30260,12539,-30273,12508,-30286,12477,-30299,12446,-30312,12415,-30324,12384,-30337,12353,-30350,12322,-30362,12291,-30375,12260,-30387,12229,-30400,12198,-30412,12166,-30425,12135,-30437,12104,-30450,12073,-30462,12042,-30474,12011,-30487,11980,-30499,11948,-30511,11917,-30523,11886,-30536,11855,-30548,11823,-30560,11792,-30572,11761,-30584,11730,-30596,11698,-30608,11667,-30620,11636,-30632,11604,-30644,11573,-30656,11542,-30667,11510,-30679,11479,-30691,11448,-30703,11416,-30714,11385,-30726,11353,-30738,11322,-30749,11290,-30761,11259,-30772,11227,-30784,11196,-30795,11164,-30807,11133,-30818,11101,-30829,11070,-30841,11038,-30852,11007,-30863,10975,-30875,10944,-30886,10912,-30897,10880,-30908,10849,-30919,10817,-30930,10786,-30941,10754,-30952,10722,-30963,10691,-30974,10659,-30985,10627,-30996,10596,-31007,10564,-31018,10532,-31029,10500,-31039,10469,-31050,10437,-31061,10405,-31071,10373,-31082,10342,-31093,10310,-31103,10278,-31114,10246,-31124,10214,-31135,10182,-31145,10151,-31155,10119,-31166,10087,-31176,10055,-31186,10023,-31197,9991,-31207,9959,-31217,9927,-31227,9895,-31237,9863,-31248,9831,-31258,9799,-31268,9767,-31278,9735,-31288,9703,-31298,9671,-31308,9639,-31317,9607,-31327,9575,-31337,9543,-31347,9511,-31357,9479,-31366,9447,-31376,9415,-31386,9383,-31395,9351,-31405,9319,-31414,9287,-31424,9254,-31433,9222,-31443,9190,-31452,9158,-31462,9126,-31471,9094,-31480,9061,-31490,9029,-31499,8997,-31508,8965,-31517,8932,-31526,8900,-31535,8868,-31545,8836,-31554,8803,-31563,8771,-31572,8739,-31581,8707,-31589,8674,-31598,8642,-31607,8610,-31616,8577,-31625,8545,-31634,8513,-31642,8480,-31651,8448,-31660,8415,-31668,8383,-31677,8351,-31685,8318,-31694,8286,-31702,8253,-31711,8221,-31719,8189,-31728,8156,-31736,8124,-31744,8091,-31753,8059,-31761,8026,-31769,7994,-31777,7961,-31786,7929,-31794,7896,-31802,7864,-31810,7831,-31818,7799,-31826,7766,-31834,7733,-31842,7701,-31850,7668,-31857,7636,-31865,7603,-31873,7571,-31881,7538,-31889,7505,-31896,7473,-31904,7440,-31912,7407,-31919,7375,-31927,7342,-31934,7310,-31942,7277,-31949,7244,-31957,7211,-31964,7179,-31971,7146,-31979,7113,-31986,7081,-31993,7048,-32000,7015,-32008,6982,-32015,6950,-32022,6917,-32029,6884,-32036,6851,-32043,6819,-32050,6786,-32057,6753,-32064,6720,-32071,6688,-32078,6655,-32085,6622,-32091,6589,-32098,6556,-32105,6523,-32111,6491,-32118,6458,-32125,6425,-32131,6392,-32138,6359,-32144,6326,-32151,6293,-32157,6261,-32164,6228,-32170,6195,-32177,6162,-32183,6129,-32189,6096,-32195,6063,-32202,6030,-32208,5997,-32214,5964,-32220,5931,-32226,5898,-32232,5865,-32238,5832,-32244,5799,-32250,5766,-32256,5733,-32262,5700,-32268,5667,-32274,5634,-32279,5601,-32285,5568,-32291,5535,-32296,5502,-32302,5469,-32308,5436,-32313,5403,-32319,5370,-32324,5337,-32330,5304,-32335,5271,-32341,5238,-32346,5205,-32351,5172,-32357,5139,-32362,5106,-32367,5072,-32372,5039,-32378,5006,-32383,4973,-32388,4940,-32393,4907,-32398,4874,-32403,4841,-32408,4807,-32413,4774,-32418,4741,-32423,4708,-32427,4675,-32432,4642,-32437,4608,-32442,4575,-32446,4542,-32451,4509,-32456,4476,-32460,4443,-32465,4409,-32469,4376,-32474,4343,-32478,4310,-32483,4276,-32487,4243,-32492,4210,-32496,4177,-32500,4144,-32504,4110,-32509,4077,-32513,4044,-32517,4011,-32521,3977,-32525,3944,-32529,3911,-32533,3877,-32537,3844,-32541,3811,-32545,3778,-32549,3744,-32553,3711,-32557,3678,-32560,3644,-32564,3611,-32568,3578,-32572,3545,-32575,3511,-32579,3478,-32582,3445,-32586,3411,-32589,3378,-32593,3345,-32596,3311,-32600,3278,-32603,3245,-32606,3211,-32610,3178,-32613,3145,-32616,3111,-32619,3078,-32623,3044,-32626,3011,-32629,2978,-32632,2944,-32635,2911,-32638,2878,-32641,2844,-32644,2811,-32647,2777,-32650,2744,-32652,2711,-32655,2677,-32658,2644,-32661,2610,-32663,2577,-32666,2544,-32669,2510,-32671,2477,-32674,2443,-32676,2410,-32679,2377,-32681,2343,-32684,2310,-32686,2276,-32688,2243,-32691,2209,-32693,2176,-32695,2143,-32697,2109,-32700,2076,-32702,2042,-32704,2009,-32706,1975,-32708,1942,-32710,1908,-32712,1875,-32714,1842,-32716,1808,-32718,1775,-32719,1741,-32721,1708,-32723,1674,-32725,1641,-32726,1607,-32728,1574,-32730,1540,-32731,1507,-32733,1473,-32734,1440,-32736,1406,-32737,1373,-32739,1339,-32740,1306,-32741,1273,-32743,1239,-32744,1206,-32745,1172,-32747,1139,-32748,1105,-32749,1072,-32750,1038,-32751,1005,-32752,971,-32753,938,-32754,904,-32755,871,-32756,837,-32757,804,-32758,770,-32758,737,-32759,703,-32760,670,-32761,636,-32761,603,-32762,569,-32763,536,-32763,502,-32764,469,-32764,435,-32765,402,-32765,368,-32765,335,-32766,301,-32766,268,-32766,234,-32767,201,-32767,167,-32767,134,-32767,100,-32767,67,-32767,33,-32767,0,-32767,-34,-32767,-68,-32767,-101,-32767,-135,-32767,-168,-32767,-202,-32767,-235,-32767,-269,-32766,-302,-32766,-336,-32766,-369,-32765,-403,-32765,-436,-32765,-470,-32764,-503,-32764,-537,-32763,-570,-32763,-604,-32762,-637,-32761,-671,-32761,-704,-32760,-738,-32759,-771,-32758,-805,-32758,-838,-32757,-872,-32756,-905,-32755,-939,-32754,-972,-32753,-1006,-32752,-1039,-32751,-1073,-32750,-1106,-32749,-1140,-32748,-1173,-32747,-1207,-32745,-1240,-32744,-1274,-32743,-1307,-32741,-1340,-32740,-1374,-32739,-1407,-32737,-1441,-32736,-1474,-32734,-1508,-32733,-1541,-32731,-1575,-32730,-1608,-32728,-1642,-32726,-1675,-32725,-1709,-32723,-1742,-32721,-1776,-32719,-1809,-32718,-1843,-32716,-1876,-32714,-1909,-32712,-1943,-32710,-1976,-32708,-2010,-32706,-2043,-32704,-2077,-32702,-2110,-32700,-2144,-32697,-2177,-32695,-2210,-32693,-2244,-32691,-2277,-32688,-2311,-32686,-2344,-32684,-2378,-32681,-2411,-32679,-2444,-32676,-2478,-32674,-2511,-32671,-2545,-32669,-2578,-32666,-2611,-32663,-2645,-32661,-2678,-32658,-2712,-32655,-2745,-32652,-2778,-32650,-2812,-32647,-2845,-32644,-2879,-32641,-2912,-32638,-2945,-32635,-2979,-32632,-3012,-32629,-3045,-32626,-3079,-32623,-3112,-32619,-3146,-32616,-3179,-32613,-3212,-32610,-3246,-32606,-3279,-32603,-3312,-32600,-3346,-32596,-3379,-32593,-3412,-32589,-3446,-32586,-3479,-32582,-3512,-32579,-3546,-32575,-3579,-32572,-3612,-32568,-3645,-32564,-3679,-32560,-3712,-32557,-3745,-32553,-3779,-32549,-3812,-32545,-3845,-32541,-3878,-32537,-3912,-32533,-3945,-32529,-3978,-32525,-4012,-32521,-4045,-32517,-4078,-32513,-4111,-32509,-4145,-32504,-4178,-32500,-4211,-32496,-4244,-32492,-4277,-32487,-4311,-32483,-4344,-32478,-4377,-32474,-4410,-32469,-4444,-32465,-4477,-32460,-4510,-32456,-4543,-32451,-4576,-32446,-4609,-32442,-4643,-32437,-4676,-32432,-4709,-32427,-4742,-32423,-4775,-32418,-4808,-32413,-4842,-32408,-4875,-32403,-4908,-32398,-4941,-32393,-4974,-32388,-5007,-32383,-5040,-32378,-5073,-32372,-5107,-32367,-5140,-32362,-5173,-32357,-5206,-32351,-5239,-32346,-5272,-32341,-5305,-32335,-5338,-32330,-5371,-32324,-5404,-32319,-5437,-32313,-5470,-32308,-5503,-32302,-5536,-32296,-5569,-32291,-5602,-32285,-5635,-32279,-5668,-32274,-5701,-32268,-5734,-32262,-5767,-32256,-5800,-32250,-5833,-32244,-5866,-32238,-5899,-32232,-5932,-32226,-5965,-32220,-5998,-32214,-6031,-32208,-6064,-32202,-6097,-32195,-6130,-32189,-6163,-32183,-6196,-32177,-6229,-32170,-6262,-32164,-6294,-32157,-6327,-32151,-6360,-32144,-6393,-32138,-6426,-32131,-6459,-32125,-6492,-32118,-6524,-32111,-6557,-32105,-6590,-32098,-6623,-32091,-6656,-32085,-6689,-32078,-6721,-32071,-6754,-32064,-6787,-32057,-6820,-32050,-6852,-32043,-6885,-32036,-6918,-32029,-6951,-32022,-6983,-32015,-7016,-32008,-7049,-32000,-7082,-31993,-7114,-31986,-7147,-31979,-7180,-31971,-7212,-31964,-7245,-31957,-7278,-31949,-7311,-31942,-7343,-31934,-7376,-31927,-7408,-31919,-7441,-31912,-7474,-31904,-7506,-31896,-7539,-31889,-7572,-31881,-7604,-31873,-7637,-31865,-7669,-31857,-7702,-31850,-7734,-31842,-7767,-31834,-7800,-31826,-7832,-31818,-7865,-31810,-7897,-31802,-7930,-31794,-7962,-31786,-7995,-31777,-8027,-31769,-8060,-31761,-8092,-31753,-8125,-31744,-8157,-31736,-8190,-31728,-8222,-31719,-8254,-31711,-8287,-31702,-8319,-31694,-8352,-31685,-8384,-31677,-8416,-31668,-8449,-31660,-8481,-31651,-8514,-31642,-8546,-31634,-8578,-31625,-8611,-31616,-8643,-31607,-8675,-31598,-8708,-31589,-8740,-31581,-8772,-31572,-8804,-31563,-8837,-31554,-8869,-31545,-8901,-31535,-8933,-31526,-8966,-31517,-8998,-31508,-9030,-31499,-9062,-31490,-9095,-31480,-9127,-31471,-9159,-31462,-9191,-31452,-9223,-31443,-9255,-31433,-9288,-31424,-9320,-31414,-9352,-31405,-9384,-31395,-9416,-31386,-9448,-31376,-9480,-31366,-9512,-31357,-9544,-31347,-9576,-31337,-9608,-31327,-9640,-31317,-9672,-31308,-9704,-31298,-9736,-31288,-9768,-31278,-9800,-31268,-9832,-31258,-9864,-31248,-9896,-31237,-9928,-31227,-9960,-31217,-9992,-31207,-10024,-31197,-10056,-31186,-10088,-31176,-10120,-31166,-10152,-31155,-10183,-31145,-10215,-31135,-10247,-31124,-10279,-31114,-10311,-31103,-10343,-31093,-10374,-31082,-10406,-31071,-10438,-31061,-10470,-31050,-10501,-31039,-10533,-31029,-10565,-31018,-10597,-31007,-10628,-30996,-10660,-30985,-10692,-30974,-10723,-30963,-10755,-30952,-10787,-30941,-10818,-30930,-10850,-30919,-10881,-30908,-10913,-30897,-10945,-30886,-10976,-30875,-11008,-30863,-11039,-30852,-11071,-30841,-11102,-30829,-11134,-30818,-11165,-30807,-11197,-30795,-11228,-30784,-11260,-30772,-11291,-30761,-11323,-30749,-11354,-30738,-11386,-30726,-11417,-30714,-11449,-30703,-11480,-30691,-11511,-30679,-11543,-30667,-11574,-30656,-11605,-30644,-11637,-30632,-11668,-30620,-11699,-30608,-11731,-30596,-11762,-30584,-11793,-30572,-11824,-30560,-11856,-30548,-11887,-30536,-11918,-30523,-11949,-30511,-11981,-30499,-12012,-30487,-12043,-30474,-12074,-30462,-12105,-30450,-12136,-30437,-12167,-30425,-12199,-30412,-12230,-30400,-12261,-30387,-12292,-30375,-12323,-30362,-12354,-30350,-12385,-30337,-12416,-30324,-12447,-30312,-12478,-30299,-12509,-30286,-12540,-30273,-12571,-30260,-12602,-30248,-12633,-30235,-12664,-30222,-12695,-30209,-12725,-30196,-12756,-30183,-12787,-30170,-12818,-30157,-12849,-30143,-12880,-30130,-12910,-30117,-12941,-30104,-12972,-30091,-13003,-30077,-13034,-30064,-13064,-30051,-13095,-30037,-13126,-30024,-13156,-30010,-13187,-29997,-13218,-29984,-13248,-29970,-13279,-29956,-13310,-29943,-13340,-29929,-13371,-29916,-13401,-29902,-13432,-29888,-13463,-29874,-13493,-29861,-13524,-29847,-13554,-29833,-13585,-29819,-13615,-29805,-13646,-29791,-13676,-29777,-13707,-29763,-13737,-29749,-13767,-29735,-13798,-29721,-13828,-29707,-13859,-29693,-13889,-29679,-13919,-29664,-13950,-29650,-13980,-29636,-14010,-29622,-14040,-29607,-14071,-29593,-14101,-29578,-14131,-29564,-14161,-29549,-14192,-29535,-14222,-29520,-14252,-29506,-14282,-29491,-14312,-29477,-14343,-29462,-14373,-29447,-14403,-29433,-14433,-29418,-14463,-29403,-14493,-29388,-14523,-29373,-14553,-29359,-14583,-29344,-14613,-29329,-14643,-29314,-14673,-29299,-14703,-29284,-14733,-29269,-14763,-29254,-14793,-29239,-14823,-29223,-14853,-29208,-14882,-29193,-14912,-29178,-14942,-29163,-14972,-29147,-15002,-29132,-15031,-29117,-15061,-29101,-15091,-29086,-15121,-29070,-15150,-29055,-15180,-29039,-15210,-29024,-15239,-29008,-15269,-28993,-15299,-28977,-15328,-28961,-15358,-28946,-15388,-28930,-15417,-28914,-15447,-28898,-15476,-28883,-15506,-28867,-15535,-28851,-15565,-28835,-15594,-28819,-15624,-28803,-15653,-28787,-15683,-28771,-15712,-28755,-15741,-28739,-15771,-28723,-15800,-28707,-15830,-28691,-15859,-28674,-15888,-28658,-15918,-28642,-15947,-28626,-15976,-28609,-16005,-28593,-16035,-28576,-16064,-28560,-16093,-28544,-16122,-28527,-16151,-28511,-16180,-28494,-16210,-28478,-16239,-28461,-16268,-28444,-16297,-28428,-16326,-28411,-16355,-28394,-16384,-28378,-16413,-28361,-16442,-28344,-16471,-28327,-16500,-28310,-16529,-28293,-16558,-28276,-16587,-28260,-16616,-28243,-16644,-28226,-16673,-28209,-16702,-28191,-16731,-28174,-16760,-28157,-16789,-28140,-16817,-28123,-16846,-28106,-16875,-28088,-16904,-28071,-16932,-28054,-16961,-28037,-16990,-28019,-17018,-28002,-17047,-27984,-17075,-27967,-17104,-27949,-17133,-27932,-17161,-27914,-17190,-27897,-17218,-27879,-17247,-27862,-17275,-27844,-17304,-27826,-17332,-27809,-17361,-27791,-17389,-27773,-17417,-27755,-17446,-27737,-17474,-27720,-17502,-27702,-17531,-27684,-17559,-27666,-17587,-27648,-17616,-27630,-17644,-27612,-17672,-27594,-17700,-27576,-17728,-27558,-17757,-27539,-17785,-27521,-17813,-27503,-17841,-27485,-17869,-27467,-17897,-27448,-17925,-27430,-17953,-27412,-17981,-27393,-18009,-27375,-18037,-27356,-18065,-27338,-18093,-27320,-18121,-27301,-18149,-27282,-18177,-27264,-18205,-27245,-18233,-27227,-18261,-27208,-18288,-27189,-18316,-27171,-18344,-27152,-18372,-27133,-18399,-27114,-18427,-27095,-18455,-27077,-18483,-27058,-18510,-27039,-18538,-27020,-18565,-27001,-18593,-26982,-18621,-26963,-18648,-26944,-18676,-26925,-18703,-26906,-18731,-26886,-18758,-26867,-18786,-26848,-18813,-26829,-18841,-26810,-18868,-26790,-18895,-26771,-18923,-26752,-18950,-26732,-18977,-26713,-19005,-26693,-19032,-26674,-19059,-26655,-19087,-26635,-19114,-26616,-19141,-26596,-19168,-26576,-19195,-26557,-19222,-26537,-19250,-26517,-19277,-26498,-19304,-26478,-19331,-26458,-19358,-26438,-19385,-26419,-19412,-26399,-19439,-26379,-19466,-26359,-19493,-26339,-19520,-26319,-19547,-26299,-19574,-26279,-19600,-26259,-19627,-26239,-19654,-26219,-19681,-26199,-19708,-26179,-19734,-26159,-19761,-26138,-19788,-26118,-19815,-26098,-19841,-26078,-19868,-26057,-19895,-26037,-19921,-26017,-19948,-25996,-19974,-25976,-20001,-25955,-20027,-25935,-20054,-25914,-20080,-25894,-20107,-25873,-20133,-25853,-20160,-25832,-20186,-25812,-20213,-25791,-20239,-25770,-20265,-25750,-20292,-25729,-20318,-25708,-20344,-25687,-20370,-25666,-20397,-25646,-20423,-25625,-20449,-25604,-20475,-25583,-20501,-25562,-20528,-25541,-20554,-25520,-20580,-25499,-20606,-25478,-20632,-25457,-20658,-25436,-20684,-25415,-20710,-25393,-20736,-25372,-20762,-25351,-20788,-25330,-20814,-25308,-20839,-25287,-20865,-25266,-20891,-25244,-20917,-25223,-20943,-25202,-20968,-25180,-20994,-25159,-21020,-25137,-21046,-25116,-21071,-25094,-21097,-25073,-21123,-25051,-21148,-25030,-21174,-25008,-21199,-24986,-21225,-24965,-21250,-24943,-21276,-24921,-21301,-24899,-21327,-24878,-21352,-24856,-21378,-24834,-21403,-24812,-21428,-24790,-21454,-24768,-21479,-24746,-21504,-24724,-21530,-24702,-21555,-24680,-21580,-24658,-21605,-24636,-21630,-24614,-21656,-24592,-21681,-24570,-21706,-24547,-21731,-24525,-21756,-24503,-21781,-24481,-21806,-24458,-21831,-24436,-21856,-24414,-21881,-24391,-21906,-24369,-21931,-24347,-21956,-24324,-21981,-24302,-22005,-24279,-22030,-24257,-22055,-24234,-22080,-24212,-22105,-24189,-22129,-24166,-22154,-24144,-22179,-24121,-22203,-24098,-22228,-24076,-22253,-24053,-22277,-24030,-22302,-24007,-22326,-23985,-22351,-23962,-22375,-23939,-22400,-23916,-22424,-23893,-22449,-23870,-22473,-23847,-22497,-23824,-22522,-23801,-22546,-23778,-22570,-23755,-22595,-23732,-22619,-23709,-22643,-23686,-22667,-23662,-22692,-23639,-22716,-23616,-22740,-23593,-22764,-23570,-22788,-23546,-22812,-23523,-22836,-23500,-22860,-23476,-22884,-23453,-22908,-23429,-22932,-23406,-22956,-23383,-22980,-23359,-23004,-23336,-23028,-23312,-23051,-23288,-23075,-23265,-23099,-23241,-23123,-23218,-23147,-23194,-23170,-23170,-23194,-23147,-23218,-23123,-23241,-23099,-23265,-23075,-23288,-23051,-23312,-23028,-23336,-23004,-23359,-22980,-23383,-22956,-23406,-22932,-23429,-22908,-23453,-22884,-23476,-22860,-23500,-22836,-23523,-22812,-23546,-22788,-23570,-22764,-23593,-22740,-23616,-22716,-23639,-22692,-23662,-22667,-23686,-22643,-23709,-22619,-23732,-22595,-23755,-22570,-23778,-22546,-23801,-22522,-23824,-22497,-23847,-22473,-23870,-22449,-23893,-22424,-23916,-22400,-23939,-22375,-23962,-22351,-23985,-22326,-24007,-22302,-24030,-22277,-24053,-22253,-24076,-22228,-24098,-22203,-24121,-22179,-24144,-22154,-24166,-22129,-24189,-22105,-24212,-22080,-24234,-22055,-24257,-22030,-24279,-22005,-24302,-21981,-24324,-21956,-24347,-21931,-24369,-21906,-24391,-21881,-24414,-21856,-24436,-21831,-24458,-21806,-24481,-21781,-24503,-21756,-24525,-21731,-24547,-21706,-24570,-21681,-24592,-21656,-24614,-21630,-24636,-21605,-24658,-21580,-24680,-21555,-24702,-21530,-24724,-21504,-24746,-21479,-24768,-21454,-24790,-21428,-24812,-21403,-24834,-21378,-24856,-21352,-24878,-21327,-24899,-21301,-24921,-21276,-24943,-21250,-24965,-21225,-24986,-21199,-25008,-21174,-25030,-21148,-25051,-21123,-25073,-21097,-25094,-21071,-25116,-21046,-25137,-21020,-25159,-20994,-25180,-20968,-25202,-20943,-25223,-20917,-25244,-20891,-25266,-20865,-25287,-20839,-25308,-20814,-25330,-20788,-25351,-20762,-25372,-20736,-25393,-20710,-25415,-20684,-25436,-20658,-25457,-20632,-25478,-20606,-25499,-20580,-25520,-20554,-25541,-20528,-25562,-20501,-25583,-20475,-25604,-20449,-25625,-20423,-25646,-20397,-25666,-20370,-25687,-20344,-25708,-20318,-25729,-20292,-25750,-20265,-25770,-20239,-25791,-20213,-25812,-20186,-25832,-20160,-25853,-20133,-25873,-20107,-25894,-20080,-25914,-20054,-25935,-20027,-25955,-20001,-25976,-19974,-25996,-19948,-26017,-19921,-26037,-19895,-26057,-19868,-26078,-19841,-26098,-19815,-26118,-19788,-26138,-19761,-26159,-19734,-26179,-19708,-26199,-19681,-26219,-19654,-26239,-19627,-26259,-19600,-26279,-19574,-26299,-19547,-26319,-19520,-26339,-19493,-26359,-19466,-26379,-19439,-26399,-19412,-26419,-19385,-26438,-19358,-26458,-19331,-26478,-19304,-26498,-19277,-26517,-19250,-26537,-19222,-26557,-19195,-26576,-19168,-26596,-19141,-26616,-19114,-26635,-19087,-26655,-19059,-26674,-19032,-26693,-19005,-26713,-18977,-26732,-18950,-26752,-18923,-26771,-18895,-26790,-18868,-26810,-18841,-26829,-18813,-26848,-18786,-26867,-18758,-26886,-18731,-26906,-18703,-26925,-18676,-26944,-18648,-26963,-18621,-26982,-18593,-27001,-18565,-27020,-18538,-27039,-18510,-27058,-18483,-27077,-18455,-27095,-18427,-27114,-18399,-27133,-18372,-27152,-18344,-27171,-18316,-27189,-18288,-27208,-18261,-27227,-18233,-27245,-18205,-27264,-18177,-27282,-18149,-27301,-18121,-27320,-18093,-27338,-18065,-27356,-18037,-27375,-18009,-27393,-17981,-27412,-17953,-27430,-17925,-27448,-17897,-27467,-17869,-27485,-17841,-27503,-17813,-27521,-17785,-27539,-17757,-27558,-17728,-27576,-17700,-27594,-17672,-27612,-17644,-27630,-17616,-27648,-17587,-27666,-17559,-27684,-17531,-27702,-17502,-27720,-17474,-27737,-17446,-27755,-17417,-27773,-17389,-27791,-17361,-27809,-17332,-27826,-17304,-27844,-17275,-27862,-17247,-27879,-17218,-27897,-17190,-27914,-17161,-27932,-17133,-27949,-17104,-27967,-17075,-27984,-17047,-28002,-17018,-28019,-16990,-28037,-16961,-28054,-16932,-28071,-16904,-28088,-16875,-28106,-16846,-28123,-16817,-28140,-16789,-28157,-16760,-28174,-16731,-28191,-16702,-28209,-16673,-28226,-16644,-28243,-16616,-28260,-16587,-28276,-16558,-28293,-16529,-28310,-16500,-28327,-16471,-28344,-16442,-28361,-16413,-28378,-16384,-28394,-16355,-28411,-16326,-28428,-16297,-28444,-16268,-28461,-16239,-28478,-16210,-28494,-16180,-28511,-16151,-28527,-16122,-28544,-16093,-28560,-16064,-28576,-16035,-28593,-16005,-28609,-15976,-28626,-15947,-28642,-15918,-28658,-15888,-28674,-15859,-28691,-15830,-28707,-15800,-28723,-15771,-28739,-15741,-28755,-15712,-28771,-15683,-28787,-15653,-28803,-15624,-28819,-15594,-28835,-15565,-28851,-15535,-28867,-15506,-28883,-15476,-28898,-15447,-28914,-15417,-28930,-15388,-28946,-15358,-28961,-15328,-28977,-15299,-28993,-15269,-29008,-15239,-29024,-15210,-29039,-15180,-29055,-15150,-29070,-15121,-29086,-15091,-29101,-15061,-29117,-15031,-29132,-15002,-29147,-14972,-29163,-14942,-29178,-14912,-29193,-14882,-29208,-14853,-29223,-14823,-29239,-14793,-29254,-14763,-29269,-14733,-29284,-14703,-29299,-14673,-29314,-14643,-29329,-14613,-29344,-14583,-29359,-14553,-29373,-14523,-29388,-14493,-29403,-14463,-29418,-14433,-29433,-14403,-29447,-14373,-29462,-14343,-29477,-14312,-29491,-14282,-29506,-14252,-29520,-14222,-29535,-14192,-29549,-14161,-29564,-14131,-29578,-14101,-29593,-14071,-29607,-14040,-29622,-14010,-29636,-13980,-29650,-13950,-29664,-13919,-29679,-13889,-29693,-13859,-29707,-13828,-29721,-13798,-29735,-13767,-29749,-13737,-29763,-13707,-29777,-13676,-29791,-13646,-29805,-13615,-29819,-13585,-29833,-13554,-29847,-13524,-29861,-13493,-29874,-13463,-29888,-13432,-29902,-13401,-29916,-13371,-29929,-13340,-29943,-13310,-29956,-13279,-29970,-13248,-29984,-13218,-29997,-13187,-30010,-13156,-30024,-13126,-30037,-13095,-30051,-13064,-30064,-13034,-30077,-13003,-30091,-12972,-30104,-12941,-30117,-12910,-30130,-12880,-30143,-12849,-30157,-12818,-30170,-12787,-30183,-12756,-30196,-12725,-30209,-12695,-30222,-12664,-30235,-12633,-30248,-12602,-30260,-12571,-30273,-12540,-30286,-12509,-30299,-12478,-30312,-12447,-30324,-12416,-30337,-12385,-30350,-12354,-30362,-12323,-30375,-12292,-30387,-12261,-30400,-12230,-30412,-12199,-30425,-12167,-30437,-12136,-30450,-12105,-30462,-12074,-30474,-12043,-30487,-12012,-30499,-11981,-30511,-11949,-30523,-11918,-30536,-11887,-30548,-11856,-30560,-11824,-30572,-11793,-30584,-11762,-30596,-11731,-30608,-11699,-30620,-11668,-30632,-11637,-30644,-11605,-30656,-11574,-30667,-11543,-30679,-11511,-30691,-11480,-30703,-11449,-30714,-11417,-30726,-11386,-30738,-11354,-30749,-11323,-30761,-11291,-30772,-11260,-30784,-11228,-30795,-11197,-30807,-11165,-30818,-11134,-30829,-11102,-30841,-11071,-30852,-11039,-30863,-11008,-30875,-10976,-30886,-10945,-30897,-10913,-30908,-10881,-30919,-10850,-30930,-10818,-30941,-10787,-30952,-10755,-30963,-10723,-30974,-10692,-30985,-10660,-30996,-10628,-31007,-10597,-31018,-10565,-31029,-10533,-31039,-10501,-31050,-10470,-31061,-10438,-31071,-10406,-31082,-10374,-31093,-10343,-31103,-10311,-31114,-10279,-31124,-10247,-31135,-10215,-31145,-10183,-31155,-10152,-31166,-10120,-31176,-10088,-31186,-10056,-31197,-10024,-31207,-9992,-31217,-9960,-31227,-9928,-31237,-9896,-31248,-9864,-31258,-9832,-31268,-9800,-31278,-9768,-31288,-9736,-31298,-9704,-31308,-9672,-31317,-9640,-31327,-9608,-31337,-9576,-31347,-9544,-31357,-9512,-31366,-9480,-31376,-9448,-31386,-9416,-31395,-9384,-31405,-9352,-31414,-9320,-31424,-9288,-31433,-9255,-31443,-9223,-31452,-9191,-31462,-9159,-31471,-9127,-31480,-9095,-31490,-9062,-31499,-9030,-31508,-8998,-31517,-8966,-31526,-8933,-31535,-8901,-31545,-8869,-31554,-8837,-31563,-8804,-31572,-8772,-31581,-8740,-31589,-8708,-31598,-8675,-31607,-8643,-31616,-8611,-31625,-8578,-31634,-8546,-31642,-8514,-31651,-8481,-31660,-8449,-31668,-8416,-31677,-8384,-31685,-8352,-31694,-8319,-31702,-8287,-31711,-8254,-31719,-8222,-31728,-8190,-31736,-8157,-31744,-8125,-31753,-8092,-31761,-8060,-31769,-8027,-31777,-7995,-31786,-7962,-31794,-7930,-31802,-7897,-31810,-7865,-31818,-7832,-31826,-7800,-31834,-7767,-31842,-7734,-31850,-7702,-31857,-7669,-31865,-7637,-31873,-7604,-31881,-7572,-31889,-7539,-31896,-7506,-31904,-7474,-31912,-7441,-31919,-7408,-31927,-7376,-31934,-7343,-31942,-7311,-31949,-7278,-31957,-7245,-31964,-7212,-31971,-7180,-31979,-7147,-31986,-7114,-31993,-7082,-32000,-7049,-32008,-7016,-32015,-6983,-32022,-6951,-32029,-6918,-32036,-6885,-32043,-6852,-32050,-6820,-32057,-6787,-32064,-6754,-32071,-6721,-32078,-6689,-32085,-6656,-32091,-6623,-32098,-6590,-32105,-6557,-32111,-6524,-32118,-6492,-32125,-6459,-32131,-6426,-32138,-6393,-32144,-6360,-32151,-6327,-32157,-6294,-32164,-6262,-32170,-6229,-32177,-6196,-32183,-6163,-32189,-6130,-32195,-6097,-32202,-6064,-32208,-6031,-32214,-5998,-32220,-5965,-32226,-5932,-32232,-5899,-32238,-5866,-32244,-5833,-32250,-5800,-32256,-5767,-32262,-5734,-32268,-5701,-32274,-5668,-32279,-5635,-32285,-5602,-32291,-5569,-32296,-5536,-32302,-5503,-32308,-5470,-32313,-5437,-32319,-5404,-32324,-5371,-32330,-5338,-32335,-5305,-32341,-5272,-32346,-5239,-32351,-5206,-32357,-5173,-32362,-5140,-32367,-5107,-32372,-5073,-32378,-5040,-32383,-5007,-32388,-4974,-32393,-4941,-32398,-4908,-32403,-4875,-32408,-4842,-32413,-4808,-32418,-4775,-32423,-4742,-32427,-4709,-32432,-4676,-32437,-4643,-32442,-4609,-32446,-4576,-32451,-4543,-32456,-4510,-32460,-4477,-32465,-4444,-32469,-4410,-32474,-4377,-32478,-4344,-32483,-4311,-32487,-4277,-32492,-4244,-32496,-4211,-32500,-4178,-32504,-4145,-32509,-4111,-32513,-4078,-32517,-4045,-32521,-4012,-32525,-3978,-32529,-3945,-32533,-3912,-32537,-3878,-32541,-3845,-32545,-3812,-32549,-3779,-32553,-3745,-32557,-3712,-32560,-3679,-32564,-3645,-32568,-3612,-32572,-3579,-32575,-3546,-32579,-3512,-32582,-3479,-32586,-3446,-32589,-3412,-32593,-3379,-32596,-3346,-32600,-3312,-32603,-3279,-32606,-3246,-32610,-3212,-32613,-3179,-32616,-3146,-32619,-3112,-32623,-3079,-32626,-3045,-32629,-3012,-32632,-2979,-32635,-2945,-32638,-2912,-32641,-2879,-32644,-2845,-32647,-2812,-32650,-2778,-32652,-2745,-32655,-2712,-32658,-2678,-32661,-2645,-32663,-2611,-32666,-2578,-32669,-2545,-32671,-2511,-32674,-2478,-32676,-2444,-32679,-2411,-32681,-2378,-32684,-2344,-32686,-2311,-32688,-2277,-32691,-2244,-32693,-2210,-32695,-2177,-32697,-2144,-32700,-2110,-32702,-2077,-32704,-2043,-32706,-2010,-32708,-1976,-32710,-1943,-32712,-1909,-32714,-1876,-32716,-1843,-32718,-1809,-32719,-1776,-32721,-1742,-32723,-1709,-32725,-1675,-32726,-1642,-32728,-1608,-32730,-1575,-32731,-1541,-32733,-1508,-32734,-1474,-32736,-1441,-32737,-1407,-32739,-1374,-32740,-1340,-32741,-1307,-32743,-1274,-32744,-1240,-32745,-1207,-32747,-1173,-32748,-1140,-32749,-1106,-32750,-1073,-32751,-1039,-32752,-1006,-32753,-972,-32754,-939,-32755,-905,-32756,-872,-32757,-838,-32758,-805,-32758,-771,-32759,-738,-32760,-704,-32761,-671,-32761,-637,-32762,-604,-32763,-570,-32763,-537,-32764,-503,-32764,-470,-32765,-436,-32765,-403,-32765,-369,-32766,-336,-32766,-302,-32766,-269,-32767,-235,-32767,-202,-32767,-168,-32767,-135,-32767,-101,-32767,-68,-32767,-34,-32767,-1,-32767,33,-32767,67,-32767,100,-32767,134,-32767,167,-32767,201,-32767,234,-32766,268,-32766,301,-32766,335,-32765,368,-32765,402,-32765,435,-32764,469,-32764,502,-32763,536,-32763,569,-32762,603,-32761,636,-32761,670,-32760,703,-32759,737,-32758,770,-32758,804,-32757,837,-32756,871,-32755,904,-32754,938,-32753,971,-32752,1005,-32751,1038,-32750,1072,-32749,1105,-32748,1139,-32747,1172,-32745,1206,-32744,1239,-32743,1273,-32741,1306,-32740,1339,-32739,1373,-32737,1406,-32736,1440,-32734,1473,-32733,1507,-32731,1540,-32730,1574,-32728,1607,-32726,1641,-32725,1674,-32723,1708,-32721,1741,-32719,1775,-32718,1808,-32716,1842,-32714,1875,-32712,1908,-32710,1942,-32708,1975,-32706,2009,-32704,2042,-32702,2076,-32700,2109,-32697,2143,-32695,2176,-32693,2209,-32691,2243,-32688,2276,-32686,2310,-32684,2343,-32681,2377,-32679,2410,-32676,2443,-32674,2477,-32671,2510,-32669,2544,-32666,2577,-32663,2610,-32661,2644,-32658,2677,-32655,2711,-32652,2744,-32650,2777,-32647,2811,-32644,2844,-32641,2878,-32638,2911,-32635,2944,-32632,2978,-32629,3011,-32626,3044,-32623,3078,-32619,3111,-32616,3145,-32613,3178,-32610,3211,-32606,3245,-32603,3278,-32600,3311,-32596,3345,-32593,3378,-32589,3411,-32586,3445,-32582,3478,-32579,3511,-32575,3545,-32572,3578,-32568,3611,-32564,3644,-32560,3678,-32557,3711,-32553,3744,-32549,3778,-32545,3811,-32541,3844,-32537,3877,-32533,3911,-32529,3944,-32525,3977,-32521,4011,-32517,4044,-32513,4077,-32509,4110,-32504,4144,-32500,4177,-32496,4210,-32492,4243,-32487,4276,-32483,4310,-32478,4343,-32474,4376,-32469,4409,-32465,4443,-32460,4476,-32456,4509,-32451,4542,-32446,4575,-32442,4608,-32437,4642,-32432,4675,-32427,4708,-32423,4741,-32418,4774,-32413,4807,-32408,4841,-32403,4874,-32398,4907,-32393,4940,-32388,4973,-32383,5006,-32378,5039,-32372,5072,-32367,5106,-32362,5139,-32357,5172,-32351,5205,-32346,5238,-32341,5271,-32335,5304,-32330,5337,-32324,5370,-32319,5403,-32313,5436,-32308,5469,-32302,5502,-32296,5535,-32291,5568,-32285,5601,-32279,5634,-32274,5667,-32268,5700,-32262,5733,-32256,5766,-32250,5799,-32244,5832,-32238,5865,-32232,5898,-32226,5931,-32220,5964,-32214,5997,-32208,6030,-32202,6063,-32195,6096,-32189,6129,-32183,6162,-32177,6195,-32170,6228,-32164,6261,-32157,6293,-32151,6326,-32144,6359,-32138,6392,-32131,6425,-32125,6458,-32118,6491,-32111,6523,-32105,6556,-32098,6589,-32091,6622,-32085,6655,-32078,6688,-32071,6720,-32064,6753,-32057,6786,-32050,6819,-32043,6851,-32036,6884,-32029,6917,-32022,6950,-32015,6982,-32008,7015,-32000,7048,-31993,7081,-31986,7113,-31979,7146,-31971,7179,-31964,7211,-31957,7244,-31949,7277,-31942,7310,-31934,7342,-31927,7375,-31919,7407,-31912,7440,-31904,7473,-31896,7505,-31889,7538,-31881,7571,-31873,7603,-31865,7636,-31857,7668,-31850,7701,-31842,7733,-31834,7766,-31826,7799,-31818,7831,-31810,7864,-31802,7896,-31794,7929,-31786,7961,-31777,7994,-31769,8026,-31761,8059,-31753,8091,-31744,8124,-31736,8156,-31728,8189,-31719,8221,-31711,8253,-31702,8286,-31694,8318,-31685,8351,-31677,8383,-31668,8415,-31660,8448,-31651,8480,-31642,8513,-31634,8545,-31625,8577,-31616,8610,-31607,8642,-31598,8674,-31589,8707,-31581,8739,-31572,8771,-31563,8803,-31554,8836,-31545,8868,-31535,8900,-31526,8932,-31517,8965,-31508,8997,-31499,9029,-31490,9061,-31480,9094,-31471,9126,-31462,9158,-31452,9190,-31443,9222,-31433,9254,-31424,9287,-31414,9319,-31405,9351,-31395,9383,-31386,9415,-31376,9447,-31366,9479,-31357,9511,-31347,9543,-31337,9575,-31327,9607,-31317,9639,-31308,9671,-31298,9703,-31288,9735,-31278,9767,-31268,9799,-31258,9831,-31248,9863,-31237,9895,-31227,9927,-31217,9959,-31207,9991,-31197,10023,-31186,10055,-31176,10087,-31166,10119,-31155,10151,-31145,10182,-31135,10214,-31124,10246,-31114,10278,-31103,10310,-31093,10342,-31082,10373,-31071,10405,-31061,10437,-31050,10469,-31039,10500,-31029,10532,-31018,10564,-31007,10596,-30996,10627,-30985,10659,-30974,10691,-30963,10722,-30952,10754,-30941,10786,-30930,10817,-30919,10849,-30908,10880,-30897,10912,-30886,10944,-30875,10975,-30863,11007,-30852,11038,-30841,11070,-30829,11101,-30818,11133,-30807,11164,-30795,11196,-30784,11227,-30772,11259,-30761,11290,-30749,11322,-30738,11353,-30726,11385,-30714,11416,-30703,11448,-30691,11479,-30679,11510,-30667,11542,-30656,11573,-30644,11604,-30632,11636,-30620,11667,-30608,11698,-30596,11730,-30584,11761,-30572,11792,-30560,11823,-30548,11855,-30536,11886,-30523,11917,-30511,11948,-30499,11980,-30487,12011,-30474,12042,-30462,12073,-30450,12104,-30437,12135,-30425,12166,-30412,12198,-30400,12229,-30387,12260,-30375,12291,-30362,12322,-30350,12353,-30337,12384,-30324,12415,-30312,12446,-30299,12477,-30286,12508,-30273,12539,-30260,12570,-30248,12601,-30235,12632,-30222,12663,-30209,12694,-30196,12724,-30183,12755,-30170,12786,-30157,12817,-30143,12848,-30130,12879,-30117,12909,-30104,12940,-30091,12971,-30077,13002,-30064,13033,-30051,13063,-30037,13094,-30024,13125,-30010,13155,-29997,13186,-29984,13217,-29970,13247,-29956,13278,-29943,13309,-29929,13339,-29916,13370,-29902,13400,-29888,13431,-29874,13462,-29861,13492,-29847,13523,-29833,13553,-29819,13584,-29805,13614,-29791,13645,-29777,13675,-29763,13706,-29749,13736,-29735,13766,-29721,13797,-29707,13827,-29693,13858,-29679,13888,-29664,13918,-29650,13949,-29636,13979,-29622,14009,-29607,14039,-29593,14070,-29578,14100,-29564,14130,-29549,14160,-29535,14191,-29520,14221,-29506,14251,-29491,14281,-29477,14311,-29462,14342,-29447,14372,-29433,14402,-29418,14432,-29403,14462,-29388,14492,-29373,14522,-29359,14552,-29344,14582,-29329,14612,-29314,14642,-29299,14672,-29284,14702,-29269,14732,-29254,14762,-29239,14792,-29223,14822,-29208,14852,-29193,14881,-29178,14911,-29163,14941,-29147,14971,-29132,15001,-29117,15030,-29101,15060,-29086,15090,-29070,15120,-29055,15149,-29039,15179,-29024,15209,-29008,15238,-28993,15268,-28977,15298,-28961,15327,-28946,15357,-28930,15387,-28914,15416,-28898,15446,-28883,15475,-28867,15505,-28851,15534,-28835,15564,-28819,15593,-28803,15623,-28787,15652,-28771,15682,-28755,15711,-28739,15740,-28723,15770,-28707,15799,-28691,15829,-28674,15858,-28658,15887,-28642,15917,-28626,15946,-28609,15975,-28593,16004,-28576,16034,-28560,16063,-28544,16092,-28527,16121,-28511,16150,-28494,16179,-28478,16209,-28461,16238,-28444,16267,-28428,16296,-28411,16325,-28394,16354,-28378,16383,-28361,16412,-28344,16441,-28327,16470,-28310,16499,-28293,16528,-28276,16557,-28260,16586,-28243,16615,-28226,16643,-28209,16672,-28191,16701,-28174,16730,-28157,16759,-28140,16788,-28123,16816,-28106,16845,-28088,16874,-28071,16903,-28054,16931,-28037,16960,-28019,16989,-28002,17017,-27984,17046,-27967,17074,-27949,17103,-27932,17132,-27914,17160,-27897,17189,-27879,17217,-27862,17246,-27844,17274,-27826,17303,-27809,17331,-27791,17360,-27773,17388,-27755,17416,-27737,17445,-27720,17473,-27702,17501,-27684,17530,-27666,17558,-27648,17586,-27630,17615,-27612,17643,-27594,17671,-27576,17699,-27558,17727,-27539,17756,-27521,17784,-27503,17812,-27485,17840,-27467,17868,-27448,17896,-27430,17924,-27412,17952,-27393,17980,-27375,18008,-27356,18036,-27338,18064,-27320,18092,-27301,18120,-27282,18148,-27264,18176,-27245,18204,-27227,18232,-27208,18260,-27189,18287,-27171,18315,-27152,18343,-27133,18371,-27114,18398,-27095,18426,-27077,18454,-27058,18482,-27039,18509,-27020,18537,-27001,18564,-26982,18592,-26963,18620,-26944,18647,-26925,18675,-26906,18702,-26886,18730,-26867,18757,-26848,18785,-26829,18812,-26810,18840,-26790,18867,-26771,18894,-26752,18922,-26732,18949,-26713,18976,-26693,19004,-26674,19031,-26655,19058,-26635,19086,-26616,19113,-26596,19140,-26576,19167,-26557,19194,-26537,19221,-26517,19249,-26498,19276,-26478,19303,-26458,19330,-26438,19357,-26419,19384,-26399,19411,-26379,19438,-26359,19465,-26339,19492,-26319,19519,-26299,19546,-26279,19573,-26259,19599,-26239,19626,-26219,19653,-26199,19680,-26179,19707,-26159,19733,-26138,19760,-26118,19787,-26098,19814,-26078,19840,-26057,19867,-26037,19894,-26017,19920,-25996,19947,-25976,19973,-25955,20000,-25935,20026,-25914,20053,-25894,20079,-25873,20106,-25853,20132,-25832,20159,-25812,20185,-25791,20212,-25770,20238,-25750,20264,-25729,20291,-25708,20317,-25687,20343,-25666,20369,-25646,20396,-25625,20422,-25604,20448,-25583,20474,-25562,20500,-25541,20527,-25520,20553,-25499,20579,-25478,20605,-25457,20631,-25436,20657,-25415,20683,-25393,20709,-25372,20735,-25351,20761,-25330,20787,-25308,20813,-25287,20838,-25266,20864,-25244,20890,-25223,20916,-25202,20942,-25180,20967,-25159,20993,-25137,21019,-25116,21045,-25094,21070,-25073,21096,-25051,21122,-25030,21147,-25008,21173,-24986,21198,-24965,21224,-24943,21249,-24921,21275,-24899,21300,-24878,21326,-24856,21351,-24834,21377,-24812,21402,-24790,21427,-24768,21453,-24746,21478,-24724,21503,-24702,21529,-24680,21554,-24658,21579,-24636,21604,-24614,21629,-24592,21655,-24570,21680,-24547,21705,-24525,21730,-24503,21755,-24481,21780,-24458,21805,-24436,21830,-24414,21855,-24391,21880,-24369,21905,-24347,21930,-24324,21955,-24302,21980,-24279,22004,-24257,22029,-24234,22054,-24212,22079,-24189,22104,-24166,22128,-24144,22153,-24121,22178,-24098,22202,-24076,22227,-24053,22252,-24030,22276,-24007,22301,-23985,22325,-23962,22350,-23939,22374,-23916,22399,-23893,22423,-23870,22448,-23847,22472,-23824,22496,-23801,22521,-23778,22545,-23755,22569,-23732,22594,-23709,22618,-23686,22642,-23662,22666,-23639,22691,-23616,22715,-23593,22739,-23570,22763,-23546,22787,-23523,22811,-23500,22835,-23476,22859,-23453,22883,-23429,22907,-23406,22931,-23383,22955,-23359,22979,-23336,23003,-23312,23027,-23288,23050,-23265,23074,-23241,23098,-23218,23122,-23194,23146,-23170,23169,-23147,23193,-23123,23217,-23099,23240,-23075,23264,-23051,23287,-23028,23311,-23004,23335,-22980,23358,-22956,23382,-22932,23405,-22908,23428,-22884,23452,-22860,23475,-22836,23499,-22812,23522,-22788,23545,-22764,23569,-22740,23592,-22716,23615,-22692,23638,-22667,23661,-22643,23685,-22619,23708,-22595,23731,-22570,23754,-22546,23777,-22522,23800,-22497,23823,-22473,23846,-22449,23869,-22424,23892,-22400,23915,-22375,23938,-22351,23961,-22326,23984,-22302,24006,-22277,24029,-22253,24052,-22228,24075,-22203,24097,-22179,24120,-22154,24143,-22129,24165,-22105,24188,-22080,24211,-22055,24233,-22030,24256,-22005,24278,-21981,24301,-21956,24323,-21931,24346,-21906,24368,-21881,24390,-21856,24413,-21831,24435,-21806,24457,-21781,24480,-21756,24502,-21731,24524,-21706,24546,-21681,24569,-21656,24591,-21630,24613,-21605,24635,-21580,24657,-21555,24679,-21530,24701,-21504,24723,-21479,24745,-21454,24767,-21428,24789,-21403,24811,-21378,24833,-21352,24855,-21327,24877,-21301,24898,-21276,24920,-21250,24942,-21225,24964,-21199,24985,-21174,25007,-21148,25029,-21123,25050,-21097,25072,-21071,25093,-21046,25115,-21020,25136,-20994,25158,-20968,25179,-20943,25201,-20917,25222,-20891,25243,-20865,25265,-20839,25286,-20814,25307,-20788,25329,-20762,25350,-20736,25371,-20710,25392,-20684,25414,-20658,25435,-20632,25456,-20606,25477,-20580,25498,-20554,25519,-20528,25540,-20501,25561,-20475,25582,-20449,25603,-20423,25624,-20397,25645,-20370,25665,-20344,25686,-20318,25707,-20292,25728,-20265,25749,-20239,25769,-20213,25790,-20186,25811,-20160,25831,-20133,25852,-20107,25872,-20080,25893,-20054,25913,-20027,25934,-20001,25954,-19974,25975,-19948,25995,-19921,26016,-19895,26036,-19868,26056,-19841,26077,-19815,26097,-19788,26117,-19761,26137,-19734,26158,-19708,26178,-19681,26198,-19654,26218,-19627,26238,-19600,26258,-19574,26278,-19547,26298,-19520,26318,-19493,26338,-19466,26358,-19439,26378,-19412,26398,-19385,26418,-19358,26437,-19331,26457,-19304,26477,-19277,26497,-19250,26516,-19222,26536,-19195,26556,-19168,26575,-19141,26595,-19114,26615,-19087,26634,-19059,26654,-19032,26673,-19005,26692,-18977,26712,-18950,26731,-18923,26751,-18895,26770,-18868,26789,-18841,26809,-18813,26828,-18786,26847,-18758,26866,-18731,26885,-18703,26905,-18676,26924,-18648,26943,-18621,26962,-18593,26981,-18565,27000,-18538,27019,-18510,27038,-18483,27057,-18455,27076,-18427,27094,-18399,27113,-18372,27132,-18344,27151,-18316,27170,-18288,27188,-18261,27207,-18233,27226,-18205,27244,-18177,27263,-18149,27281,-18121,27300,-18093,27319,-18065,27337,-18037,27355,-18009,27374,-17981,27392,-17953,27411,-17925,27429,-17897,27447,-17869,27466,-17841,27484,-17813,27502,-17785,27520,-17757,27538,-17728,27557,-17700,27575,-17672,27593,-17644,27611,-17616,27629,-17587,27647,-17559,27665,-17531,27683,-17502,27701,-17474,27719,-17446,27736,-17417,27754,-17389,27772,-17361,27790,-17332,27808,-17304,27825,-17275,27843,-17247,27861,-17218,27878,-17190,27896,-17161,27913,-17133,27931,-17104,27948,-17075,27966,-17047,27983,-17018,28001,-16990,28018,-16961,28036,-16932,28053,-16904,28070,-16875,28087,-16846,28105,-16817,28122,-16789,28139,-16760,28156,-16731,28173,-16702,28190,-16673,28208,-16644,28225,-16616,28242,-16587,28259,-16558,28275,-16529,28292,-16500,28309,-16471,28326,-16442,28343,-16413,28360}; - diff --git a/openair1/PHY/TOOLS/twiddle1536.h b/openair1/PHY/TOOLS/twiddle1536.h deleted file mode 100644 index 304766caaf13fc507afa08a357b82c5562f50dae..0000000000000000000000000000000000000000 --- a/openair1/PHY/TOOLS/twiddle1536.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -#include <stdint.h> - -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:511)/1536)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*(0:2:1022)/1536)); -twa2 = zeros(1,1024); -twb2 = zeros(1,1024); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); - - - */ - -int16_t twa1536[1024] __attribute__((aligned(16))) = {32767,0,32766,-135,32765,-269,32764,-403,32762,-537,32760,-671,32757,-805,32753,-939,32749,-1073,32744,-1207,32739,-1340,32733,-1474,32727,-1608,32720,-1742,32713,-1876,32705,-2010,32696,-2144,32687,-2277,32678,-2411,32668,-2545,32657,-2678,32646,-2812,32634,-2945,32622,-3079,32609,-3212,32595,-3346,32581,-3479,32567,-3612,32552,-3745,32536,-3878,32520,-4012,32503,-4145,32486,-4277,32468,-4410,32450,-4543,32431,-4676,32412,-4808,32392,-4941,32371,-5073,32350,-5206,32329,-5338,32307,-5470,32284,-5602,32261,-5734,32237,-5866,32213,-5998,32188,-6130,32163,-6262,32137,-6393,32110,-6524,32084,-6656,32056,-6787,32028,-6918,31999,-7049,31970,-7180,31941,-7311,31911,-7441,31880,-7572,31849,-7702,31817,-7832,31785,-7962,31752,-8092,31718,-8222,31684,-8352,31650,-8481,31615,-8611,31580,-8740,31544,-8869,31507,-8998,31470,-9127,31432,-9255,31394,-9384,31356,-9512,31316,-9640,31277,-9768,31236,-9896,31196,-10024,31154,-10152,31113,-10279,31070,-10406,31028,-10533,30984,-10660,30940,-10787,30896,-10913,30851,-11039,30806,-11165,30760,-11291,30713,-11417,30666,-11543,30619,-11668,30571,-11793,30522,-11918,30473,-12043,30424,-12167,30374,-12292,30323,-12416,30272,-12540,30221,-12664,30169,-12787,30116,-12910,30063,-13034,30009,-13156,29955,-13279,29901,-13401,29846,-13524,29790,-13646,29734,-13767,29678,-13889,29621,-14010,29563,-14131,29505,-14252,29446,-14373,29387,-14493,29328,-14613,29268,-14733,29207,-14853,29146,-14972,29085,-15091,29023,-15210,28960,-15328,28897,-15447,28834,-15565,28770,-15683,28706,-15800,28641,-15918,28575,-16035,28510,-16151,28443,-16268,28377,-16384,28309,-16500,28242,-16616,28173,-16731,28105,-16846,28036,-16961,27966,-17075,27896,-17190,27825,-17304,27754,-17417,27683,-17531,27611,-17644,27538,-17757,27466,-17869,27392,-17981,27319,-18093,27244,-18205,27170,-18316,27094,-18427,27019,-18538,26943,-18648,26866,-18758,26789,-18868,26712,-18977,26634,-19087,26556,-19195,26477,-19304,26398,-19412,26318,-19520,26238,-19627,26158,-19734,26077,-19841,25995,-19948,25913,-20054,25831,-20160,25749,-20265,25665,-20370,25582,-20475,25498,-20580,25414,-20684,25329,-20788,25243,-20891,25158,-20994,25072,-21097,24985,-21199,24898,-21301,24811,-21403,24723,-21504,24635,-21605,24546,-21706,24457,-21806,24368,-21906,24278,-22005,24188,-22105,24097,-22203,24006,-22302,23915,-22400,23823,-22497,23731,-22595,23638,-22692,23545,-22788,23452,-22884,23358,-22980,23264,-23075,23169,-23170,23074,-23265,22979,-23359,22883,-23453,22787,-23546,22691,-23639,22594,-23732,22496,-23824,22399,-23916,22301,-24007,22202,-24098,22104,-24189,22004,-24279,21905,-24369,21805,-24458,21705,-24547,21604,-24636,21503,-24724,21402,-24812,21300,-24899,21198,-24986,21096,-25073,20993,-25159,20890,-25244,20787,-25330,20683,-25415,20579,-25499,20474,-25583,20369,-25666,20264,-25750,20159,-25832,20053,-25914,19947,-25996,19840,-26078,19733,-26159,19626,-26239,19519,-26319,19411,-26399,19303,-26478,19194,-26557,19086,-26635,18976,-26713,18867,-26790,18757,-26867,18647,-26944,18537,-27020,18426,-27095,18315,-27171,18204,-27245,18092,-27320,17980,-27393,17868,-27467,17756,-27539,17643,-27612,17530,-27684,17416,-27755,17303,-27826,17189,-27897,17074,-27967,16960,-28037,16845,-28106,16730,-28174,16615,-28243,16499,-28310,16383,-28378,16267,-28444,16150,-28511,16034,-28576,15917,-28642,15799,-28707,15682,-28771,15564,-28835,15446,-28898,15327,-28961,15209,-29024,15090,-29086,14971,-29147,14852,-29208,14732,-29269,14612,-29329,14492,-29388,14372,-29447,14251,-29506,14130,-29564,14009,-29622,13888,-29679,13766,-29735,13645,-29791,13523,-29847,13400,-29902,13278,-29956,13155,-30010,13033,-30064,12909,-30117,12786,-30170,12663,-30222,12539,-30273,12415,-30324,12291,-30375,12166,-30425,12042,-30474,11917,-30523,11792,-30572,11667,-30620,11542,-30667,11416,-30714,11290,-30761,11164,-30807,11038,-30852,10912,-30897,10786,-30941,10659,-30985,10532,-31029,10405,-31071,10278,-31114,10151,-31155,10023,-31197,9895,-31237,9767,-31278,9639,-31317,9511,-31357,9383,-31395,9254,-31433,9126,-31471,8997,-31508,8868,-31545,8739,-31581,8610,-31616,8480,-31651,8351,-31685,8221,-31719,8091,-31753,7961,-31786,7831,-31818,7701,-31850,7571,-31881,7440,-31912,7310,-31942,7179,-31971,7048,-32000,6917,-32029,6786,-32057,6655,-32085,6523,-32111,6392,-32138,6261,-32164,6129,-32189,5997,-32214,5865,-32238,5733,-32262,5601,-32285,5469,-32308,5337,-32330,5205,-32351,5072,-32372,4940,-32393,4807,-32413,4675,-32432,4542,-32451,4409,-32469,4276,-32487,4144,-32504,4011,-32521,3877,-32537,3744,-32553,3611,-32568,3478,-32582,3345,-32596,3211,-32610,3078,-32623,2944,-32635,2811,-32647,2677,-32658,2544,-32669,2410,-32679,2276,-32688,2143,-32697,2009,-32706,1875,-32714,1741,-32721,1607,-32728,1473,-32734,1339,-32740,1206,-32745,1072,-32750,938,-32754,804,-32758,670,-32761,536,-32763,402,-32765,268,-32766,134,-32767,0,-32767,-135,-32767,-269,-32766,-403,-32765,-537,-32763,-671,-32761,-805,-32758,-939,-32754,-1073,-32750,-1207,-32745,-1340,-32740,-1474,-32734,-1608,-32728,-1742,-32721,-1876,-32714,-2010,-32706,-2144,-32697,-2277,-32688,-2411,-32679,-2545,-32669,-2678,-32658,-2812,-32647,-2945,-32635,-3079,-32623,-3212,-32610,-3346,-32596,-3479,-32582,-3612,-32568,-3745,-32553,-3878,-32537,-4012,-32521,-4145,-32504,-4277,-32487,-4410,-32469,-4543,-32451,-4676,-32432,-4808,-32413,-4941,-32393,-5073,-32372,-5206,-32351,-5338,-32330,-5470,-32308,-5602,-32285,-5734,-32262,-5866,-32238,-5998,-32214,-6130,-32189,-6262,-32164,-6393,-32138,-6524,-32111,-6656,-32085,-6787,-32057,-6918,-32029,-7049,-32000,-7180,-31971,-7311,-31942,-7441,-31912,-7572,-31881,-7702,-31850,-7832,-31818,-7962,-31786,-8092,-31753,-8222,-31719,-8352,-31685,-8481,-31651,-8611,-31616,-8740,-31581,-8869,-31545,-8998,-31508,-9127,-31471,-9255,-31433,-9384,-31395,-9512,-31357,-9640,-31317,-9768,-31278,-9896,-31237,-10024,-31197,-10152,-31155,-10279,-31114,-10406,-31071,-10533,-31029,-10660,-30985,-10787,-30941,-10913,-30897,-11039,-30852,-11165,-30807,-11291,-30761,-11417,-30714,-11543,-30667,-11668,-30620,-11793,-30572,-11918,-30523,-12043,-30474,-12167,-30425,-12292,-30375,-12416,-30324,-12540,-30273,-12664,-30222,-12787,-30170,-12910,-30117,-13034,-30064,-13156,-30010,-13279,-29956,-13401,-29902,-13524,-29847,-13646,-29791,-13767,-29735,-13889,-29679,-14010,-29622,-14131,-29564,-14252,-29506,-14373,-29447,-14493,-29388,-14613,-29329,-14733,-29269,-14853,-29208,-14972,-29147,-15091,-29086,-15210,-29024,-15328,-28961,-15447,-28898,-15565,-28835,-15683,-28771,-15800,-28707,-15918,-28642,-16035,-28576,-16151,-28511,-16268,-28444}; - -int16_t twb1536[1024] __attribute__((aligned(16))) = {32767,0,32765,-269,32762,-537,32757,-805,32749,-1073,32739,-1340,32727,-1608,32713,-1876,32696,-2144,32678,-2411,32657,-2678,32634,-2945,32609,-3212,32581,-3479,32552,-3745,32520,-4012,32486,-4277,32450,-4543,32412,-4808,32371,-5073,32329,-5338,32284,-5602,32237,-5866,32188,-6130,32137,-6393,32084,-6656,32028,-6918,31970,-7180,31911,-7441,31849,-7702,31785,-7962,31718,-8222,31650,-8481,31580,-8740,31507,-8998,31432,-9255,31356,-9512,31277,-9768,31196,-10024,31113,-10279,31028,-10533,30940,-10787,30851,-11039,30760,-11291,30666,-11543,30571,-11793,30473,-12043,30374,-12292,30272,-12540,30169,-12787,30063,-13034,29955,-13279,29846,-13524,29734,-13767,29621,-14010,29505,-14252,29387,-14493,29268,-14733,29146,-14972,29023,-15210,28897,-15447,28770,-15683,28641,-15918,28510,-16151,28377,-16384,28242,-16616,28105,-16846,27966,-17075,27825,-17304,27683,-17531,27538,-17757,27392,-17981,27244,-18205,27094,-18427,26943,-18648,26789,-18868,26634,-19087,26477,-19304,26318,-19520,26158,-19734,25995,-19948,25831,-20160,25665,-20370,25498,-20580,25329,-20788,25158,-20994,24985,-21199,24811,-21403,24635,-21605,24457,-21806,24278,-22005,24097,-22203,23915,-22400,23731,-22595,23545,-22788,23358,-22980,23169,-23170,22979,-23359,22787,-23546,22594,-23732,22399,-23916,22202,-24098,22004,-24279,21805,-24458,21604,-24636,21402,-24812,21198,-24986,20993,-25159,20787,-25330,20579,-25499,20369,-25666,20159,-25832,19947,-25996,19733,-26159,19519,-26319,19303,-26478,19086,-26635,18867,-26790,18647,-26944,18426,-27095,18204,-27245,17980,-27393,17756,-27539,17530,-27684,17303,-27826,17074,-27967,16845,-28106,16615,-28243,16383,-28378,16150,-28511,15917,-28642,15682,-28771,15446,-28898,15209,-29024,14971,-29147,14732,-29269,14492,-29388,14251,-29506,14009,-29622,13766,-29735,13523,-29847,13278,-29956,13033,-30064,12786,-30170,12539,-30273,12291,-30375,12042,-30474,11792,-30572,11542,-30667,11290,-30761,11038,-30852,10786,-30941,10532,-31029,10278,-31114,10023,-31197,9767,-31278,9511,-31357,9254,-31433,8997,-31508,8739,-31581,8480,-31651,8221,-31719,7961,-31786,7701,-31850,7440,-31912,7179,-31971,6917,-32029,6655,-32085,6392,-32138,6129,-32189,5865,-32238,5601,-32285,5337,-32330,5072,-32372,4807,-32413,4542,-32451,4276,-32487,4011,-32521,3744,-32553,3478,-32582,3211,-32610,2944,-32635,2677,-32658,2410,-32679,2143,-32697,1875,-32714,1607,-32728,1339,-32740,1072,-32750,804,-32758,536,-32763,268,-32766,0,-32767,-269,-32766,-537,-32763,-805,-32758,-1073,-32750,-1340,-32740,-1608,-32728,-1876,-32714,-2144,-32697,-2411,-32679,-2678,-32658,-2945,-32635,-3212,-32610,-3479,-32582,-3745,-32553,-4012,-32521,-4277,-32487,-4543,-32451,-4808,-32413,-5073,-32372,-5338,-32330,-5602,-32285,-5866,-32238,-6130,-32189,-6393,-32138,-6656,-32085,-6918,-32029,-7180,-31971,-7441,-31912,-7702,-31850,-7962,-31786,-8222,-31719,-8481,-31651,-8740,-31581,-8998,-31508,-9255,-31433,-9512,-31357,-9768,-31278,-10024,-31197,-10279,-31114,-10533,-31029,-10787,-30941,-11039,-30852,-11291,-30761,-11543,-30667,-11793,-30572,-12043,-30474,-12292,-30375,-12540,-30273,-12787,-30170,-13034,-30064,-13279,-29956,-13524,-29847,-13767,-29735,-14010,-29622,-14252,-29506,-14493,-29388,-14733,-29269,-14972,-29147,-15210,-29024,-15447,-28898,-15683,-28771,-15918,-28642,-16151,-28511,-16384,-28378,-16616,-28243,-16846,-28106,-17075,-27967,-17304,-27826,-17531,-27684,-17757,-27539,-17981,-27393,-18205,-27245,-18427,-27095,-18648,-26944,-18868,-26790,-19087,-26635,-19304,-26478,-19520,-26319,-19734,-26159,-19948,-25996,-20160,-25832,-20370,-25666,-20580,-25499,-20788,-25330,-20994,-25159,-21199,-24986,-21403,-24812,-21605,-24636,-21806,-24458,-22005,-24279,-22203,-24098,-22400,-23916,-22595,-23732,-22788,-23546,-22980,-23359,-23170,-23170,-23359,-22980,-23546,-22788,-23732,-22595,-23916,-22400,-24098,-22203,-24279,-22005,-24458,-21806,-24636,-21605,-24812,-21403,-24986,-21199,-25159,-20994,-25330,-20788,-25499,-20580,-25666,-20370,-25832,-20160,-25996,-19948,-26159,-19734,-26319,-19520,-26478,-19304,-26635,-19087,-26790,-18868,-26944,-18648,-27095,-18427,-27245,-18205,-27393,-17981,-27539,-17757,-27684,-17531,-27826,-17304,-27967,-17075,-28106,-16846,-28243,-16616,-28378,-16384,-28511,-16151,-28642,-15918,-28771,-15683,-28898,-15447,-29024,-15210,-29147,-14972,-29269,-14733,-29388,-14493,-29506,-14252,-29622,-14010,-29735,-13767,-29847,-13524,-29956,-13279,-30064,-13034,-30170,-12787,-30273,-12540,-30375,-12292,-30474,-12043,-30572,-11793,-30667,-11543,-30761,-11291,-30852,-11039,-30941,-10787,-31029,-10533,-31114,-10279,-31197,-10024,-31278,-9768,-31357,-9512,-31433,-9255,-31508,-8998,-31581,-8740,-31651,-8481,-31719,-8222,-31786,-7962,-31850,-7702,-31912,-7441,-31971,-7180,-32029,-6918,-32085,-6656,-32138,-6393,-32189,-6130,-32238,-5866,-32285,-5602,-32330,-5338,-32372,-5073,-32413,-4808,-32451,-4543,-32487,-4277,-32521,-4012,-32553,-3745,-32582,-3479,-32610,-3212,-32635,-2945,-32658,-2678,-32679,-2411,-32697,-2144,-32714,-1876,-32728,-1608,-32740,-1340,-32750,-1073,-32758,-805,-32763,-537,-32766,-269,-32767,-1,-32766,268,-32763,536,-32758,804,-32750,1072,-32740,1339,-32728,1607,-32714,1875,-32697,2143,-32679,2410,-32658,2677,-32635,2944,-32610,3211,-32582,3478,-32553,3744,-32521,4011,-32487,4276,-32451,4542,-32413,4807,-32372,5072,-32330,5337,-32285,5601,-32238,5865,-32189,6129,-32138,6392,-32085,6655,-32029,6917,-31971,7179,-31912,7440,-31850,7701,-31786,7961,-31719,8221,-31651,8480,-31581,8739,-31508,8997,-31433,9254,-31357,9511,-31278,9767,-31197,10023,-31114,10278,-31029,10532,-30941,10786,-30852,11038,-30761,11290,-30667,11542,-30572,11792,-30474,12042,-30375,12291,-30273,12539,-30170,12786,-30064,13033,-29956,13278,-29847,13523,-29735,13766,-29622,14009,-29506,14251,-29388,14492,-29269,14732,-29147,14971,-29024,15209,-28898,15446,-28771,15682,-28642,15917,-28511,16150,-28378,16383,-28243,16615,-28106,16845,-27967,17074,-27826,17303,-27684,17530,-27539,17756,-27393,17980,-27245,18204,-27095,18426,-26944,18647,-26790,18867,-26635,19086,-26478,19303,-26319,19519,-26159,19733,-25996,19947,-25832,20159,-25666,20369,-25499,20579,-25330,20787,-25159,20993,-24986,21198,-24812,21402,-24636,21604,-24458,21805,-24279,22004,-24098,22202,-23916,22399,-23732,22594,-23546,22787,-23359,22979,-23170,23169,-22980,23358,-22788,23545,-22595,23731,-22400,23915,-22203,24097,-22005,24278,-21806,24457,-21605,24635,-21403,24811,-21199,24985,-20994,25158,-20788,25329,-20580,25498,-20370,25665,-20160,25831,-19948,25995,-19734,26158,-19520,26318,-19304,26477,-19087,26634,-18868,26789,-18648,26943,-18427,27094,-18205,27244,-17981,27392,-17757,27538,-17531,27683,-17304,27825,-17075,27966,-16846,28105,-16616,28242}; diff --git a/openair1/PHY/TOOLS/twiddle18432.h b/openair1/PHY/TOOLS/twiddle18432.h deleted file mode 100644 index 696c7f37aeb2fe25dbc4edabc6bccaef1d53fdc7..0000000000000000000000000000000000000000 --- a/openair1/PHY/TOOLS/twiddle18432.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:6143)/18432)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*(0:2:12286)/18432)); -twa2 = zeros(1,12288); -twb2 = zeros(1,12288); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -*/ - -int16_t twa18432[12288] = {32767,0,32766,-12,32766,-23,32766,-34,32766,-45,32766,-56,32766,-68,32766,-79,32766,-90,32766,-101,32766,-112,32766,-123,32766,-135,32766,-146,32766,-157,32766,-168,32766,-179,32766,-190,32766,-202,32766,-213,32766,-224,32766,-235,32766,-246,32765,-257,32765,-269,32765,-280,32765,-291,32765,-302,32765,-313,32765,-324,32765,-336,32765,-347,32765,-358,32764,-369,32764,-380,32764,-391,32764,-403,32764,-414,32764,-425,32764,-436,32763,-447,32763,-458,32763,-470,32763,-481,32763,-492,32763,-503,32762,-514,32762,-525,32762,-537,32762,-548,32762,-559,32762,-570,32761,-581,32761,-592,32761,-604,32761,-615,32761,-626,32760,-637,32760,-648,32760,-659,32760,-671,32759,-682,32759,-693,32759,-704,32759,-715,32758,-726,32758,-738,32758,-749,32758,-760,32757,-771,32757,-782,32757,-793,32757,-805,32756,-816,32756,-827,32756,-838,32756,-849,32755,-860,32755,-872,32755,-883,32754,-894,32754,-905,32754,-916,32753,-927,32753,-939,32753,-950,32752,-961,32752,-972,32752,-983,32751,-994,32751,-1006,32751,-1017,32750,-1028,32750,-1039,32750,-1050,32749,-1061,32749,-1073,32749,-1084,32748,-1095,32748,-1106,32747,-1117,32747,-1128,32747,-1140,32746,-1151,32746,-1162,32746,-1173,32745,-1184,32745,-1195,32744,-1207,32744,-1218,32743,-1229,32743,-1240,32743,-1251,32742,-1262,32742,-1274,32741,-1285,32741,-1296,32740,-1307,32740,-1318,32740,-1329,32739,-1340,32739,-1352,32738,-1363,32738,-1374,32737,-1385,32737,-1396,32736,-1407,32736,-1419,32735,-1430,32735,-1441,32734,-1452,32734,-1463,32733,-1474,32733,-1486,32732,-1497,32732,-1508,32731,-1519,32731,-1530,32730,-1541,32730,-1553,32729,-1564,32729,-1575,32728,-1586,32728,-1597,32727,-1608,32726,-1619,32726,-1631,32725,-1642,32725,-1653,32724,-1664,32724,-1675,32723,-1686,32723,-1698,32722,-1709,32721,-1720,32721,-1731,32720,-1742,32720,-1753,32719,-1764,32718,-1776,32718,-1787,32717,-1798,32717,-1809,32716,-1820,32715,-1831,32715,-1843,32714,-1854,32713,-1865,32713,-1876,32712,-1887,32711,-1898,32711,-1909,32710,-1921,32710,-1932,32709,-1943,32708,-1954,32708,-1965,32707,-1976,32706,-1987,32706,-1999,32705,-2010,32704,-2021,32703,-2032,32703,-2043,32702,-2054,32701,-2066,32701,-2077,32700,-2088,32699,-2099,32699,-2110,32698,-2121,32697,-2132,32696,-2144,32696,-2155,32695,-2166,32694,-2177,32693,-2188,32693,-2199,32692,-2210,32691,-2222,32690,-2233,32690,-2244,32689,-2255,32688,-2266,32687,-2277,32687,-2288,32686,-2300,32685,-2311,32684,-2322,32683,-2333,32683,-2344,32682,-2355,32681,-2366,32680,-2378,32679,-2389,32679,-2400,32678,-2411,32677,-2422,32676,-2433,32675,-2444,32674,-2456,32674,-2467,32673,-2478,32672,-2489,32671,-2500,32670,-2511,32669,-2522,32668,-2534,32668,-2545,32667,-2556,32666,-2567,32665,-2578,32664,-2589,32663,-2600,32662,-2611,32661,-2623,32661,-2634,32660,-2645,32659,-2656,32658,-2667,32657,-2678,32656,-2689,32655,-2701,32654,-2712,32653,-2723,32652,-2734,32651,-2745,32650,-2756,32649,-2767,32649,-2778,32648,-2790,32647,-2801,32646,-2812,32645,-2823,32644,-2834,32643,-2845,32642,-2856,32641,-2867,32640,-2879,32639,-2890,32638,-2901,32637,-2912,32636,-2923,32635,-2934,32634,-2945,32633,-2956,32632,-2968,32631,-2979,32630,-2990,32629,-3001,32628,-3012,32627,-3023,32626,-3034,32625,-3045,32624,-3057,32623,-3068,32622,-3079,32621,-3090,32619,-3101,32618,-3112,32617,-3123,32616,-3134,32615,-3146,32614,-3157,32613,-3168,32612,-3179,32611,-3190,32610,-3201,32609,-3212,32608,-3223,32607,-3234,32605,-3246,32604,-3257,32603,-3268,32602,-3279,32601,-3290,32600,-3301,32599,-3312,32598,-3323,32596,-3334,32595,-3346,32594,-3357,32593,-3368,32592,-3379,32591,-3390,32590,-3401,32588,-3412,32587,-3423,32586,-3434,32585,-3446,32584,-3457,32583,-3468,32581,-3479,32580,-3490,32579,-3501,32578,-3512,32577,-3523,32575,-3534,32574,-3546,32573,-3557,32572,-3568,32571,-3579,32569,-3590,32568,-3601,32567,-3612,32566,-3623,32564,-3634,32563,-3645,32562,-3657,32561,-3668,32559,-3679,32558,-3690,32557,-3701,32556,-3712,32554,-3723,32553,-3734,32552,-3745,32551,-3756,32549,-3768,32548,-3779,32547,-3790,32545,-3801,32544,-3812,32543,-3823,32541,-3834,32540,-3845,32539,-3856,32538,-3867,32536,-3878,32535,-3890,32534,-3901,32532,-3912,32531,-3923,32530,-3934,32528,-3945,32527,-3956,32526,-3967,32524,-3978,32523,-3989,32521,-4000,32520,-4012,32519,-4023,32517,-4034,32516,-4045,32515,-4056,32513,-4067,32512,-4078,32510,-4089,32509,-4100,32508,-4111,32506,-4122,32505,-4133,32503,-4145,32502,-4156,32501,-4167,32499,-4178,32498,-4189,32496,-4200,32495,-4211,32493,-4222,32492,-4233,32491,-4244,32489,-4255,32488,-4266,32486,-4277,32485,-4289,32483,-4300,32482,-4311,32480,-4322,32479,-4333,32477,-4344,32476,-4355,32474,-4366,32473,-4377,32471,-4388,32470,-4399,32468,-4410,32467,-4421,32465,-4432,32464,-4444,32462,-4455,32461,-4466,32459,-4477,32458,-4488,32456,-4499,32455,-4510,32453,-4521,32452,-4532,32450,-4543,32449,-4554,32447,-4565,32445,-4576,32444,-4587,32442,-4598,32441,-4609,32439,-4621,32438,-4632,32436,-4643,32434,-4654,32433,-4665,32431,-4676,32430,-4687,32428,-4698,32426,-4709,32425,-4720,32423,-4731,32422,-4742,32420,-4753,32418,-4764,32417,-4775,32415,-4786,32413,-4797,32412,-4808,32410,-4819,32409,-4831,32407,-4842,32405,-4853,32404,-4864,32402,-4875,32400,-4886,32399,-4897,32397,-4908,32395,-4919,32394,-4930,32392,-4941,32390,-4952,32389,-4963,32387,-4974,32385,-4985,32383,-4996,32382,-5007,32380,-5018,32378,-5029,32377,-5040,32375,-5051,32373,-5062,32371,-5073,32370,-5084,32368,-5095,32366,-5107,32364,-5118,32363,-5129,32361,-5140,32359,-5151,32357,-5162,32356,-5173,32354,-5184,32352,-5195,32350,-5206,32349,-5217,32347,-5228,32345,-5239,32343,-5250,32341,-5261,32340,-5272,32338,-5283,32336,-5294,32334,-5305,32332,-5316,32331,-5327,32329,-5338,32327,-5349,32325,-5360,32323,-5371,32322,-5382,32320,-5393,32318,-5404,32316,-5415,32314,-5426,32312,-5437,32310,-5448,32309,-5459,32307,-5470,32305,-5481,32303,-5492,32301,-5503,32299,-5514,32297,-5525,32295,-5536,32294,-5547,32292,-5558,32290,-5569,32288,-5580,32286,-5591,32284,-5602,32282,-5613,32280,-5624,32278,-5635,32276,-5646,32274,-5657,32273,-5668,32271,-5679,32269,-5690,32267,-5701,32265,-5712,32263,-5723,32261,-5734,32259,-5745,32257,-5756,32255,-5767,32253,-5778,32251,-5789,32249,-5800,32247,-5811,32245,-5822,32243,-5833,32241,-5844,32239,-5855,32237,-5866,32235,-5877,32233,-5888,32231,-5899,32229,-5910,32227,-5921,32225,-5932,32223,-5943,32221,-5954,32219,-5965,32217,-5976,32215,-5987,32213,-5998,32211,-6009,32209,-6020,32207,-6031,32205,-6042,32203,-6053,32201,-6064,32199,-6075,32196,-6086,32194,-6097,32192,-6108,32190,-6119,32188,-6130,32186,-6141,32184,-6152,32182,-6163,32180,-6174,32178,-6185,32176,-6196,32173,-6207,32171,-6218,32169,-6229,32167,-6240,32165,-6251,32163,-6262,32161,-6272,32158,-6283,32156,-6294,32154,-6305,32152,-6316,32150,-6327,32148,-6338,32146,-6349,32143,-6360,32141,-6371,32139,-6382,32137,-6393,32135,-6404,32133,-6415,32130,-6426,32128,-6437,32126,-6448,32124,-6459,32122,-6470,32119,-6481,32117,-6492,32115,-6503,32113,-6513,32110,-6524,32108,-6535,32106,-6546,32104,-6557,32102,-6568,32099,-6579,32097,-6590,32095,-6601,32093,-6612,32090,-6623,32088,-6634,32086,-6645,32084,-6656,32081,-6667,32079,-6678,32077,-6689,32074,-6699,32072,-6710,32070,-6721,32068,-6732,32065,-6743,32063,-6754,32061,-6765,32058,-6776,32056,-6787,32054,-6798,32051,-6809,32049,-6820,32047,-6831,32044,-6842,32042,-6852,32040,-6863,32037,-6874,32035,-6885,32033,-6896,32030,-6907,32028,-6918,32026,-6929,32023,-6940,32021,-6951,32019,-6962,32016,-6973,32014,-6983,32011,-6994,32009,-7005,32007,-7016,32004,-7027,32002,-7038,31999,-7049,31997,-7060,31995,-7071,31992,-7082,31990,-7093,31987,-7103,31985,-7114,31983,-7125,31980,-7136,31978,-7147,31975,-7158,31973,-7169,31970,-7180,31968,-7191,31965,-7202,31963,-7212,31961,-7223,31958,-7234,31956,-7245,31953,-7256,31951,-7267,31948,-7278,31946,-7289,31943,-7300,31941,-7311,31938,-7321,31936,-7332,31933,-7343,31931,-7354,31928,-7365,31926,-7376,31923,-7387,31921,-7398,31918,-7408,31916,-7419,31913,-7430,31911,-7441,31908,-7452,31905,-7463,31903,-7474,31900,-7485,31898,-7495,31895,-7506,31893,-7517,31890,-7528,31888,-7539,31885,-7550,31882,-7561,31880,-7572,31877,-7582,31875,-7593,31872,-7604,31869,-7615,31867,-7626,31864,-7637,31862,-7648,31859,-7658,31856,-7669,31854,-7680,31851,-7691,31849,-7702,31846,-7713,31843,-7724,31841,-7734,31838,-7745,31835,-7756,31833,-7767,31830,-7778,31827,-7789,31825,-7800,31822,-7810,31819,-7821,31817,-7832,31814,-7843,31811,-7854,31809,-7865,31806,-7876,31803,-7886,31801,-7897,31798,-7908,31795,-7919,31793,-7930,31790,-7941,31787,-7951,31785,-7962,31782,-7973,31779,-7984,31776,-7995,31774,-8006,31771,-8016,31768,-8027,31765,-8038,31763,-8049,31760,-8060,31757,-8071,31754,-8081,31752,-8092,31749,-8103,31746,-8114,31743,-8125,31741,-8135,31738,-8146,31735,-8157,31732,-8168,31729,-8179,31727,-8190,31724,-8200,31721,-8211,31718,-8222,31716,-8233,31713,-8244,31710,-8254,31707,-8265,31704,-8276,31701,-8287,31699,-8298,31696,-8308,31693,-8319,31690,-8330,31687,-8341,31684,-8352,31682,-8362,31679,-8373,31676,-8384,31673,-8395,31670,-8406,31667,-8416,31664,-8427,31662,-8438,31659,-8449,31656,-8460,31653,-8470,31650,-8481,31647,-8492,31644,-8503,31641,-8514,31638,-8524,31635,-8535,31633,-8546,31630,-8557,31627,-8568,31624,-8578,31621,-8589,31618,-8600,31615,-8611,31612,-8621,31609,-8632,31606,-8643,31603,-8654,31600,-8664,31597,-8675,31594,-8686,31591,-8697,31588,-8708,31586,-8718,31583,-8729,31580,-8740,31577,-8751,31574,-8761,31571,-8772,31568,-8783,31565,-8794,31562,-8804,31559,-8815,31556,-8826,31553,-8837,31550,-8847,31547,-8858,31544,-8869,31541,-8880,31537,-8890,31534,-8901,31531,-8912,31528,-8923,31525,-8933,31522,-8944,31519,-8955,31516,-8966,31513,-8976,31510,-8987,31507,-8998,31504,-9009,31501,-9019,31498,-9030,31495,-9041,31492,-9052,31489,-9062,31485,-9073,31482,-9084,31479,-9095,31476,-9105,31473,-9116,31470,-9127,31467,-9137,31464,-9148,31461,-9159,31457,-9170,31454,-9180,31451,-9191,31448,-9202,31445,-9213,31442,-9223,31439,-9234,31435,-9245,31432,-9255,31429,-9266,31426,-9277,31423,-9288,31420,-9298,31417,-9309,31413,-9320,31410,-9330,31407,-9341,31404,-9352,31401,-9363,31397,-9373,31394,-9384,31391,-9395,31388,-9405,31385,-9416,31381,-9427,31378,-9437,31375,-9448,31372,-9459,31369,-9469,31365,-9480,31362,-9491,31359,-9502,31356,-9512,31352,-9523,31349,-9534,31346,-9544,31343,-9555,31339,-9566,31336,-9576,31333,-9587,31330,-9598,31326,-9608,31323,-9619,31320,-9630,31316,-9640,31313,-9651,31310,-9662,31307,-9672,31303,-9683,31300,-9694,31297,-9704,31293,-9715,31290,-9726,31287,-9736,31283,-9747,31280,-9758,31277,-9768,31273,-9779,31270,-9790,31267,-9800,31263,-9811,31260,-9822,31257,-9832,31253,-9843,31250,-9854,31247,-9864,31243,-9875,31240,-9886,31236,-9896,31233,-9907,31230,-9918,31226,-9928,31223,-9939,31220,-9950,31216,-9960,31213,-9971,31209,-9981,31206,-9992,31203,-10003,31199,-10013,31196,-10024,31192,-10035,31189,-10045,31185,-10056,31182,-10067,31179,-10077,31175,-10088,31172,-10098,31168,-10109,31165,-10120,31161,-10130,31158,-10141,31154,-10152,31151,-10162,31148,-10173,31144,-10183,31141,-10194,31137,-10205,31134,-10215,31130,-10226,31127,-10236,31123,-10247,31120,-10258,31116,-10268,31113,-10279,31109,-10290,31106,-10300,31102,-10311,31099,-10321,31095,-10332,31092,-10343,31088,-10353,31085,-10364,31081,-10374,31077,-10385,31074,-10396,31070,-10406,31067,-10417,31063,-10427,31060,-10438,31056,-10448,31053,-10459,31049,-10470,31045,-10480,31042,-10491,31038,-10501,31035,-10512,31031,-10523,31028,-10533,31024,-10544,31020,-10554,31017,-10565,31013,-10575,31010,-10586,31006,-10597,31002,-10607,30999,-10618,30995,-10628,30991,-10639,30988,-10649,30984,-10660,30981,-10671,30977,-10681,30973,-10692,30970,-10702,30966,-10713,30962,-10723,30959,-10734,30955,-10744,30951,-10755,30948,-10766,30944,-10776,30940,-10787,30937,-10797,30933,-10808,30929,-10818,30926,-10829,30922,-10839,30918,-10850,30915,-10860,30911,-10871,30907,-10881,30903,-10892,30900,-10903,30896,-10913,30892,-10924,30889,-10934,30885,-10945,30881,-10955,30877,-10966,30874,-10976,30870,-10987,30866,-10997,30862,-11008,30859,-11018,30855,-11029,30851,-11039,30847,-11050,30844,-11060,30840,-11071,30836,-11081,30832,-11092,30828,-11102,30825,-11113,30821,-11123,30817,-11134,30813,-11144,30809,-11155,30806,-11165,30802,-11176,30798,-11186,30794,-11197,30790,-11207,30787,-11218,30783,-11228,30779,-11239,30775,-11249,30771,-11260,30767,-11270,30764,-11281,30760,-11291,30756,-11302,30752,-11312,30748,-11323,30744,-11333,30740,-11344,30737,-11354,30733,-11365,30729,-11375,30725,-11386,30721,-11396,30717,-11407,30713,-11417,30709,-11428,30705,-11438,30702,-11449,30698,-11459,30694,-11469,30690,-11480,30686,-11490,30682,-11501,30678,-11511,30674,-11522,30670,-11532,30666,-11543,30662,-11553,30658,-11564,30655,-11574,30651,-11584,30647,-11595,30643,-11605,30639,-11616,30635,-11626,30631,-11637,30627,-11647,30623,-11658,30619,-11668,30615,-11678,30611,-11689,30607,-11699,30603,-11710,30599,-11720,30595,-11731,30591,-11741,30587,-11751,30583,-11762,30579,-11772,30575,-11783,30571,-11793,30567,-11804,30563,-11814,30559,-11824,30555,-11835,30551,-11845,30547,-11856,30543,-11866,30539,-11877,30535,-11887,30530,-11897,30526,-11908,30522,-11918,30518,-11929,30514,-11939,30510,-11949,30506,-11960,30502,-11970,30498,-11981,30494,-11991,30490,-12001,30486,-12012,30482,-12022,30477,-12033,30473,-12043,30469,-12053,30465,-12064,30461,-12074,30457,-12084,30453,-12095,30449,-12105,30445,-12116,30440,-12126,30436,-12136,30432,-12147,30428,-12157,30424,-12167,30420,-12178,30416,-12188,30411,-12199,30407,-12209,30403,-12219,30399,-12230,30395,-12240,30391,-12250,30386,-12261,30382,-12271,30378,-12281,30374,-12292,30370,-12302,30365,-12313,30361,-12323,30357,-12333,30353,-12344,30349,-12354,30344,-12364,30340,-12375,30336,-12385,30332,-12395,30328,-12406,30323,-12416,30319,-12426,30315,-12437,30311,-12447,30306,-12457,30302,-12468,30298,-12478,30294,-12488,30289,-12499,30285,-12509,30281,-12519,30277,-12530,30272,-12540,30268,-12550,30264,-12561,30259,-12571,30255,-12581,30251,-12591,30247,-12602,30242,-12612,30238,-12622,30234,-12633,30229,-12643,30225,-12653,30221,-12664,30216,-12674,30212,-12684,30208,-12695,30203,-12705,30199,-12715,30195,-12725,30190,-12736,30186,-12746,30182,-12756,30177,-12767,30173,-12777,30169,-12787,30164,-12797,30160,-12808,30156,-12818,30151,-12828,30147,-12839,30142,-12849,30138,-12859,30134,-12869,30129,-12880,30125,-12890,30121,-12900,30116,-12910,30112,-12921,30107,-12931,30103,-12941,30098,-12951,30094,-12962,30090,-12972,30085,-12982,30081,-12993,30076,-13003,30072,-13013,30067,-13023,30063,-13034,30059,-13044,30054,-13054,30050,-13064,30045,-13075,30041,-13085,30036,-13095,30032,-13105,30027,-13115,30023,-13126,30018,-13136,30014,-13146,30009,-13156,30005,-13167,30001,-13177,29996,-13187,29992,-13197,29987,-13208,29983,-13218,29978,-13228,29973,-13238,29969,-13248,29964,-13259,29960,-13269,29955,-13279,29951,-13289,29946,-13299,29942,-13310,29937,-13320,29933,-13330,29928,-13340,29924,-13350,29919,-13361,29915,-13371,29910,-13381,29905,-13391,29901,-13401,29896,-13412,29892,-13422,29887,-13432,29883,-13442,29878,-13452,29873,-13463,29869,-13473,29864,-13483,29860,-13493,29855,-13503,29850,-13513,29846,-13524,29841,-13534,29837,-13544,29832,-13554,29827,-13564,29823,-13575,29818,-13585,29813,-13595,29809,-13605,29804,-13615,29800,-13625,29795,-13635,29790,-13646,29786,-13656,29781,-13666,29776,-13676,29772,-13686,29767,-13696,29762,-13707,29758,-13717,29753,-13727,29748,-13737,29744,-13747,29739,-13757,29734,-13767,29729,-13778,29725,-13788,29720,-13798,29715,-13808,29711,-13818,29706,-13828,29701,-13838,29696,-13848,29692,-13859,29687,-13869,29682,-13879,29678,-13889,29673,-13899,29668,-13909,29663,-13919,29659,-13929,29654,-13939,29649,-13950,29644,-13960,29640,-13970,29635,-13980,29630,-13990,29625,-14000,29621,-14010,29616,-14020,29611,-14030,29606,-14040,29601,-14051,29597,-14061,29592,-14071,29587,-14081,29582,-14091,29577,-14101,29573,-14111,29568,-14121,29563,-14131,29558,-14141,29553,-14151,29548,-14161,29544,-14172,29539,-14182,29534,-14192,29529,-14202,29524,-14212,29519,-14222,29515,-14232,29510,-14242,29505,-14252,29500,-14262,29495,-14272,29490,-14282,29485,-14292,29481,-14302,29476,-14312,29471,-14322,29466,-14332,29461,-14343,29456,-14353,29451,-14363,29446,-14373,29441,-14383,29437,-14393,29432,-14403,29427,-14413,29422,-14423,29417,-14433,29412,-14443,29407,-14453,29402,-14463,29397,-14473,29392,-14483,29387,-14493,29382,-14503,29377,-14513,29372,-14523,29368,-14533,29363,-14543,29358,-14553,29353,-14563,29348,-14573,29343,-14583,29338,-14593,29333,-14603,29328,-14613,29323,-14623,29318,-14633,29313,-14643,29308,-14653,29303,-14663,29298,-14673,29293,-14683,29288,-14693,29283,-14703,29278,-14713,29273,-14723,29268,-14733,29263,-14743,29258,-14753,29253,-14763,29248,-14773,29243,-14783,29238,-14793,29233,-14803,29227,-14813,29222,-14823,29217,-14833,29212,-14843,29207,-14853,29202,-14862,29197,-14872,29192,-14882,29187,-14892,29182,-14902,29177,-14912,29172,-14922,29167,-14932,29162,-14942,29156,-14952,29151,-14962,29146,-14972,29141,-14982,29136,-14992,29131,-15002,29126,-15012,29121,-15022,29116,-15031,29110,-15041,29105,-15051,29100,-15061,29095,-15071,29090,-15081,29085,-15091,29080,-15101,29074,-15111,29069,-15121,29064,-15131,29059,-15141,29054,-15150,29049,-15160,29044,-15170,29038,-15180,29033,-15190,29028,-15200,29023,-15210,29018,-15220,29012,-15230,29007,-15239,29002,-15249,28997,-15259,28992,-15269,28986,-15279,28981,-15289,28976,-15299,28971,-15309,28966,-15319,28960,-15328,28955,-15338,28950,-15348,28945,-15358,28939,-15368,28934,-15378,28929,-15388,28924,-15397,28918,-15407,28913,-15417,28908,-15427,28903,-15437,28897,-15447,28892,-15457,28887,-15466,28882,-15476,28876,-15486,28871,-15496,28866,-15506,28860,-15516,28855,-15526,28850,-15535,28845,-15545,28839,-15555,28834,-15565,28829,-15575,28823,-15584,28818,-15594,28813,-15604,28807,-15614,28802,-15624,28797,-15634,28791,-15643,28786,-15653,28781,-15663,28775,-15673,28770,-15683,28765,-15692,28759,-15702,28754,-15712,28749,-15722,28743,-15732,28738,-15741,28733,-15751,28727,-15761,28722,-15771,28716,-15781,28711,-15790,28706,-15800,28700,-15810,28695,-15820,28690,-15830,28684,-15839,28679,-15849,28673,-15859,28668,-15869,28662,-15878,28657,-15888,28652,-15898,28646,-15908,28641,-15918,28635,-15927,28630,-15937,28625,-15947,28619,-15957,28614,-15966,28608,-15976,28603,-15986,28597,-15996,28592,-16005,28586,-16015,28581,-16025,28575,-16035,28570,-16044,28565,-16054,28559,-16064,28554,-16073,28548,-16083,28543,-16093,28537,-16103,28532,-16112,28526,-16122,28521,-16132,28515,-16142,28510,-16151,28504,-16161,28499,-16171,28493,-16180,28488,-16190,28482,-16200,28477,-16210,28471,-16219,28465,-16229,28460,-16239,28454,-16248,28449,-16258,28443,-16268,28438,-16277,28432,-16287,28427,-16297,28421,-16307,28416,-16316,28410,-16326,28404,-16336,28399,-16345,28393,-16355,28388,-16365,28382,-16374,28377,-16384,28371,-16394,28365,-16403,28360,-16413,28354,-16423,28349,-16432,28343,-16442,28337,-16452,28332,-16461,28326,-16471,28321,-16481,28315,-16490,28309,-16500,28304,-16510,28298,-16519,28292,-16529,28287,-16539,28281,-16548,28275,-16558,28270,-16567,28264,-16577,28259,-16587,28253,-16596,28247,-16606,28242,-16616,28236,-16625,28230,-16635,28225,-16644,28219,-16654,28213,-16664,28208,-16673,28202,-16683,28196,-16693,28190,-16702,28185,-16712,28179,-16721,28173,-16731,28168,-16741,28162,-16750,28156,-16760,28151,-16769,28145,-16779,28139,-16789,28133,-16798,28128,-16808,28122,-16817,28116,-16827,28110,-16837,28105,-16846,28099,-16856,28093,-16865,28087,-16875,28082,-16884,28076,-16894,28070,-16904,28064,-16913,28059,-16923,28053,-16932,28047,-16942,28041,-16951,28036,-16961,28030,-16970,28024,-16980,28018,-16990,28012,-16999,28007,-17009,28001,-17018,27995,-17028,27989,-17037,27983,-17047,27978,-17056,27972,-17066,27966,-17075,27960,-17085,27954,-17095,27948,-17104,27943,-17114,27937,-17123,27931,-17133,27925,-17142,27919,-17152,27913,-17161,27908,-17171,27902,-17180,27896,-17190,27890,-17199,27884,-17209,27878,-17218,27872,-17228,27867,-17237,27861,-17247,27855,-17256,27849,-17266,27843,-17275,27837,-17285,27831,-17294,27825,-17304,27819,-17313,27814,-17323,27808,-17332,27802,-17342,27796,-17351,27790,-17361,27784,-17370,27778,-17380,27772,-17389,27766,-17398,27760,-17408,27754,-17417,27748,-17427,27742,-17436,27736,-17446,27731,-17455,27725,-17465,27719,-17474,27713,-17484,27707,-17493,27701,-17502,27695,-17512,27689,-17521,27683,-17531,27677,-17540,27671,-17550,27665,-17559,27659,-17568,27653,-17578,27647,-17587,27641,-17597,27635,-17606,27629,-17616,27623,-17625,27617,-17634,27611,-17644,27605,-17653,27599,-17663,27593,-17672,27587,-17681,27581,-17691,27575,-17700,27569,-17710,27563,-17719,27557,-17728,27551,-17738,27545,-17747,27538,-17757,27532,-17766,27526,-17775,27520,-17785,27514,-17794,27508,-17804,27502,-17813,27496,-17822,27490,-17832,27484,-17841,27478,-17850,27472,-17860,27466,-17869,27460,-17879,27453,-17888,27447,-17897,27441,-17907,27435,-17916,27429,-17925,27423,-17935,27417,-17944,27411,-17953,27405,-17963,27398,-17972,27392,-17981,27386,-17991,27380,-18000,27374,-18009,27368,-18019,27362,-18028,27355,-18037,27349,-18047,27343,-18056,27337,-18065,27331,-18075,27325,-18084,27319,-18093,27312,-18103,27306,-18112,27300,-18121,27294,-18131,27288,-18140,27281,-18149,27275,-18158,27269,-18168,27263,-18177,27257,-18186,27250,-18196,27244,-18205,27238,-18214,27232,-18223,27226,-18233,27219,-18242,27213,-18251,27207,-18261,27201,-18270,27195,-18279,27188,-18288,27182,-18298,27176,-18307,27170,-18316,27163,-18325,27157,-18335,27151,-18344,27145,-18353,27138,-18362,27132,-18372,27126,-18381,27120,-18390,27113,-18399,27107,-18409,27101,-18418,27094,-18427,27088,-18436,27082,-18446,27076,-18455,27069,-18464,27063,-18473,27057,-18483,27050,-18492,27044,-18501,27038,-18510,27031,-18519,27025,-18529,27019,-18538,27012,-18547,27006,-18556,27000,-18565,26994,-18575,26987,-18584,26981,-18593,26975,-18602,26968,-18611,26962,-18621,26955,-18630,26949,-18639,26943,-18648,26936,-18657,26930,-18667,26924,-18676,26917,-18685,26911,-18694,26905,-18703,26898,-18712,26892,-18722,26885,-18731,26879,-18740,26873,-18749,26866,-18758,26860,-18767,26853,-18777,26847,-18786,26841,-18795,26834,-18804,26828,-18813,26821,-18822,26815,-18831,26809,-18841,26802,-18850,26796,-18859,26789,-18868,26783,-18877,26776,-18886,26770,-18895,26764,-18905,26757,-18914,26751,-18923,26744,-18932,26738,-18941,26731,-18950,26725,-18959,26718,-18968,26712,-18977,26705,-18987,26699,-18996,26692,-19005,26686,-19014,26680,-19023,26673,-19032,26667,-19041,26660,-19050,26654,-19059,26647,-19068,26641,-19077,26634,-19087,26628,-19096,26621,-19105,26615,-19114,26608,-19123,26601,-19132,26595,-19141,26588,-19150,26582,-19159,26575,-19168,26569,-19177,26562,-19186,26556,-19195,26549,-19204,26543,-19213,26536,-19222,26530,-19232,26523,-19241,26516,-19250,26510,-19259,26503,-19268,26497,-19277,26490,-19286,26484,-19295,26477,-19304,26470,-19313,26464,-19322,26457,-19331,26451,-19340,26444,-19349,26437,-19358,26431,-19367,26424,-19376,26418,-19385,26411,-19394,26404,-19403,26398,-19412,26391,-19421,26385,-19430,26378,-19439,26371,-19448,26365,-19457,26358,-19466,26351,-19475,26345,-19484,26338,-19493,26332,-19502,26325,-19511,26318,-19520,26312,-19529,26305,-19538,26298,-19547,26292,-19556,26285,-19565,26278,-19574,26272,-19583,26265,-19591,26258,-19600,26252,-19609,26245,-19618,26238,-19627,26231,-19636,26225,-19645,26218,-19654,26211,-19663,26205,-19672,26198,-19681,26191,-19690,26185,-19699,26178,-19708,26171,-19717,26164,-19726,26158,-19734,26151,-19743,26144,-19752,26137,-19761,26131,-19770,26124,-19779,26117,-19788,26110,-19797,26104,-19806,26097,-19815,26090,-19823,26083,-19832,26077,-19841,26070,-19850,26063,-19859,26056,-19868,26050,-19877,26043,-19886,26036,-19895,26029,-19903,26022,-19912,26016,-19921,26009,-19930,26002,-19939,25995,-19948,25989,-19957,25982,-19966,25975,-19974,25968,-19983,25961,-19992,25954,-20001,25948,-20010,25941,-20019,25934,-20027,25927,-20036,25920,-20045,25913,-20054,25907,-20063,25900,-20072,25893,-20080,25886,-20089,25879,-20098,25872,-20107,25866,-20116,25859,-20125,25852,-20133,25845,-20142,25838,-20151,25831,-20160,25824,-20169,25817,-20177,25811,-20186,25804,-20195,25797,-20204,25790,-20213,25783,-20221,25776,-20230,25769,-20239,25762,-20248,25755,-20257,25749,-20265,25742,-20274,25735,-20283,25728,-20292,25721,-20300,25714,-20309,25707,-20318,25700,-20327,25693,-20335,25686,-20344,25679,-20353,25672,-20362,25665,-20370,25659,-20379,25652,-20388,25645,-20397,25638,-20405,25631,-20414,25624,-20423,25617,-20432,25610,-20440,25603,-20449,25596,-20458,25589,-20467,25582,-20475,25575,-20484,25568,-20493,25561,-20501,25554,-20510,25547,-20519,25540,-20528,25533,-20536,25526,-20545,25519,-20554,25512,-20562,25505,-20571,25498,-20580,25491,-20588,25484,-20597,25477,-20606,25470,-20614,25463,-20623,25456,-20632,25449,-20641,25442,-20649,25435,-20658,25428,-20667,25421,-20675,25414,-20684,25407,-20693,25399,-20701,25392,-20710,25385,-20719,25378,-20727,25371,-20736,25364,-20744,25357,-20753,25350,-20762,25343,-20770,25336,-20779,25329,-20788,25322,-20796,25315,-20805,25307,-20814,25300,-20822,25293,-20831,25286,-20839,25279,-20848,25272,-20857,25265,-20865,25258,-20874,25251,-20882,25243,-20891,25236,-20900,25229,-20908,25222,-20917,25215,-20926,25208,-20934,25201,-20943,25194,-20951,25186,-20960,25179,-20968,25172,-20977,25165,-20986,25158,-20994,25151,-21003,25144,-21011,25136,-21020,25129,-21028,25122,-21037,25115,-21046,25108,-21054,25100,-21063,25093,-21071,25086,-21080,25079,-21088,25072,-21097,25065,-21105,25057,-21114,25050,-21123,25043,-21131,25036,-21140,25029,-21148,25021,-21157,25014,-21165,25007,-21174,25000,-21182,24992,-21191,24985,-21199,24978,-21208,24971,-21216,24964,-21225,24956,-21233,24949,-21242,24942,-21250,24935,-21259,24927,-21267,24920,-21276,24913,-21284,24906,-21293,24898,-21301,24891,-21310,24884,-21318,24877,-21327,24869,-21335,24862,-21344,24855,-21352,24847,-21361,24840,-21369,24833,-21378,24826,-21386,24818,-21395,24811,-21403,24804,-21411,24796,-21420,24789,-21428,24782,-21437,24774,-21445,24767,-21454,24760,-21462,24753,-21471,24745,-21479,24738,-21487,24731,-21496,24723,-21504,24716,-21513,24709,-21521,24701,-21530,24694,-21538,24687,-21546,24679,-21555,24672,-21563,24664,-21572,24657,-21580,24650,-21588,24642,-21597,24635,-21605,24628,-21614,24620,-21622,24613,-21630,24606,-21639,24598,-21647,24591,-21656,24583,-21664,24576,-21672,24569,-21681,24561,-21689,24554,-21698,24546,-21706,24539,-21714,24532,-21723,24524,-21731,24517,-21739,24509,-21748,24502,-21756,24495,-21764,24487,-21773,24480,-21781,24472,-21789,24465,-21798,24457,-21806,24450,-21814,24443,-21823,24435,-21831,24428,-21839,24420,-21848,24413,-21856,24405,-21864,24398,-21873,24390,-21881,24383,-21889,24376,-21898,24368,-21906,24361,-21914,24353,-21923,24346,-21931,24338,-21939,24331,-21947,24323,-21956,24316,-21964,24308,-21972,24301,-21981,24293,-21989,24286,-21997,24278,-22005,24271,-22014,24263,-22022,24256,-22030,24248,-22039,24241,-22047,24233,-22055,24226,-22063,24218,-22072,24211,-22080,24203,-22088,24196,-22096,24188,-22105,24180,-22113,24173,-22121,24165,-22129,24158,-22138,24150,-22146,24143,-22154,24135,-22162,24128,-22170,24120,-22179,24113,-22187,24105,-22195,24097,-22203,24090,-22212,24082,-22220,24075,-22228,24067,-22236,24060,-22244,24052,-22253,24044,-22261,24037,-22269,24029,-22277,24022,-22285,24014,-22294,24006,-22302,23999,-22310,23991,-22318,23984,-22326,23976,-22334,23968,-22343,23961,-22351,23953,-22359,23945,-22367,23938,-22375,23930,-22383,23923,-22392,23915,-22400,23907,-22408,23900,-22416,23892,-22424,23884,-22432,23877,-22440,23869,-22449,23861,-22457,23854,-22465,23846,-22473,23838,-22481,23831,-22489,23823,-22497,23815,-22506,23808,-22514,23800,-22522,23792,-22530,23785,-22538,23777,-22546,23769,-22554,23762,-22562,23754,-22570,23746,-22578,23739,-22587,23731,-22595,23723,-22603,23715,-22611,23708,-22619,23700,-22627,23692,-22635,23685,-22643,23677,-22651,23669,-22659,23661,-22667,23654,-22675,23646,-22684,23638,-22692,23631,-22700,23623,-22708,23615,-22716,23607,-22724,23600,-22732,23592,-22740,23584,-22748,23576,-22756,23569,-22764,23561,-22772,23553,-22780,23545,-22788,23537,-22796,23530,-22804,23522,-22812,23514,-22820,23506,-22828,23499,-22836,23491,-22844,23483,-22852,23475,-22860,23467,-22868,23460,-22876,23452,-22884,23444,-22892,23436,-22900,23428,-22908,23421,-22916,23413,-22924,23405,-22932,23397,-22940,23389,-22948,23382,-22956,23374,-22964,23366,-22972,23358,-22980,23350,-22988,23342,-22996,23335,-23004,23327,-23012,23319,-23020,23311,-23028,23303,-23036,23295,-23044,23287,-23051,23280,-23059,23272,-23067,23264,-23075,23256,-23083,23248,-23091,23240,-23099,23232,-23107,23224,-23115,23217,-23123,23209,-23131,23201,-23139,23193,-23147,23185,-23154,23177,-23162,23169,-23170,23161,-23178,23153,-23186,23146,-23194,23138,-23202,23130,-23210,23122,-23218,23114,-23225,23106,-23233,23098,-23241,23090,-23249,23082,-23257,23074,-23265,23066,-23273,23058,-23281,23050,-23288,23043,-23296,23035,-23304,23027,-23312,23019,-23320,23011,-23328,23003,-23336,22995,-23343,22987,-23351,22979,-23359,22971,-23367,22963,-23375,22955,-23383,22947,-23390,22939,-23398,22931,-23406,22923,-23414,22915,-23422,22907,-23429,22899,-23437,22891,-23445,22883,-23453,22875,-23461,22867,-23468,22859,-23476,22851,-23484,22843,-23492,22835,-23500,22827,-23507,22819,-23515,22811,-23523,22803,-23531,22795,-23538,22787,-23546,22779,-23554,22771,-23562,22763,-23570,22755,-23577,22747,-23585,22739,-23593,22731,-23601,22723,-23608,22715,-23616,22707,-23624,22699,-23632,22691,-23639,22683,-23647,22674,-23655,22666,-23662,22658,-23670,22650,-23678,22642,-23686,22634,-23693,22626,-23701,22618,-23709,22610,-23716,22602,-23724,22594,-23732,22586,-23740,22577,-23747,22569,-23755,22561,-23763,22553,-23770,22545,-23778,22537,-23786,22529,-23793,22521,-23801,22513,-23809,22505,-23816,22496,-23824,22488,-23832,22480,-23839,22472,-23847,22464,-23855,22456,-23862,22448,-23870,22439,-23878,22431,-23885,22423,-23893,22415,-23901,22407,-23908,22399,-23916,22391,-23924,22382,-23931,22374,-23939,22366,-23946,22358,-23954,22350,-23962,22342,-23969,22333,-23977,22325,-23985,22317,-23992,22309,-24000,22301,-24007,22293,-24015,22284,-24023,22276,-24030,22268,-24038,22260,-24045,22252,-24053,22243,-24061,22235,-24068,22227,-24076,22219,-24083,22211,-24091,22202,-24098,22194,-24106,22186,-24114,22178,-24121,22169,-24129,22161,-24136,22153,-24144,22145,-24151,22137,-24159,22128,-24166,22120,-24174,22112,-24181,22104,-24189,22095,-24197,22087,-24204,22079,-24212,22071,-24219,22062,-24227,22054,-24234,22046,-24242,22038,-24249,22029,-24257,22021,-24264,22013,-24272,22004,-24279,21996,-24287,21988,-24294,21980,-24302,21971,-24309,21963,-24317,21955,-24324,21946,-24332,21938,-24339,21930,-24347,21922,-24354,21913,-24362,21905,-24369,21897,-24377,21888,-24384,21880,-24391,21872,-24399,21863,-24406,21855,-24414,21847,-24421,21838,-24429,21830,-24436,21822,-24444,21813,-24451,21805,-24458,21797,-24466,21788,-24473,21780,-24481,21772,-24488,21763,-24496,21755,-24503,21747,-24510,21738,-24518,21730,-24525,21722,-24533,21713,-24540,21705,-24547,21697,-24555,21688,-24562,21680,-24570,21671,-24577,21663,-24584,21655,-24592,21646,-24599,21638,-24607,21629,-24614,21621,-24621,21613,-24629,21604,-24636,21596,-24643,21587,-24651,21579,-24658,21571,-24665,21562,-24673,21554,-24680,21545,-24688,21537,-24695,21529,-24702,21520,-24710,21512,-24717,21503,-24724,21495,-24732,21486,-24739,21478,-24746,21470,-24754,21461,-24761,21453,-24768,21444,-24775,21436,-24783,21427,-24790,21419,-24797,21410,-24805,21402,-24812,21394,-24819,21385,-24827,21377,-24834,21368,-24841,21360,-24848,21351,-24856,21343,-24863,21334,-24870,21326,-24878,21317,-24885,21309,-24892,21300,-24899,21292,-24907,21283,-24914,21275,-24921,21266,-24928,21258,-24936,21249,-24943,21241,-24950,21232,-24957,21224,-24965,21215,-24972,21207,-24979,21198,-24986,21190,-24993,21181,-25001,21173,-25008,21164,-25015,21156,-25022,21147,-25030,21139,-25037,21130,-25044,21122,-25051,21113,-25058,21104,-25066,21096,-25073,21087,-25080,21079,-25087,21070,-25094,21062,-25101,21053,-25109,21045,-25116,21036,-25123,21027,-25130,21019,-25137,21010,-25145,21002,-25152,20993,-25159,20985,-25166,20976,-25173,20967,-25180,20959,-25187,20950,-25195,20942,-25202,20933,-25209,20925,-25216,20916,-25223,20907,-25230,20899,-25237,20890,-25244,20881,-25252,20873,-25259,20864,-25266,20856,-25273,20847,-25280,20838,-25287,20830,-25294,20821,-25301,20813,-25308,20804,-25316,20795,-25323,20787,-25330,20778,-25337,20769,-25344,20761,-25351,20752,-25358,20743,-25365,20735,-25372,20726,-25379,20718,-25386,20709,-25393,20700,-25400,20692,-25408,20683,-25415,20674,-25422,20666,-25429,20657,-25436,20648,-25443,20640,-25450,20631,-25457,20622,-25464,20613,-25471,20605,-25478,20596,-25485,20587,-25492,20579,-25499,20570,-25506,20561,-25513,20553,-25520,20544,-25527,20535,-25534,20527,-25541,20518,-25548,20509,-25555,20500,-25562,20492,-25569,20483,-25576,20474,-25583,20466,-25590,20457,-25597,20448,-25604,20439,-25611,20431,-25618,20422,-25625,20413,-25632,20404,-25639,20396,-25646,20387,-25653,20378,-25660,20369,-25666,20361,-25673,20352,-25680,20343,-25687,20334,-25694,20326,-25701,20317,-25708,20308,-25715,20299,-25722,20291,-25729,20282,-25736,20273,-25743,20264,-25750,20256,-25756,20247,-25763,20238,-25770,20229,-25777,20220,-25784,20212,-25791,20203,-25798,20194,-25805,20185,-25812,20176,-25818,20168,-25825,20159,-25832,20150,-25839,20141,-25846,20132,-25853,20124,-25860,20115,-25867,20106,-25873,20097,-25880,20088,-25887,20079,-25894,20071,-25901,20062,-25908,20053,-25914,20044,-25921,20035,-25928,20026,-25935,20018,-25942,20009,-25949,20000,-25955,19991,-25962,19982,-25969,19973,-25976,19965,-25983,19956,-25990,19947,-25996,19938,-26003,19929,-26010,19920,-26017,19911,-26023,19902,-26030,19894,-26037,19885,-26044,19876,-26051,19867,-26057,19858,-26064,19849,-26071,19840,-26078,19831,-26084,19822,-26091,19814,-26098,19805,-26105,19796,-26111,19787,-26118,19778,-26125,19769,-26132,19760,-26138,19751,-26145,19742,-26152,19733,-26159,19725,-26165,19716,-26172,19707,-26179,19698,-26186,19689,-26192,19680,-26199,19671,-26206,19662,-26212,19653,-26219,19644,-26226,19635,-26232,19626,-26239,19617,-26246,19608,-26253,19599,-26259,19590,-26266,19582,-26273,19573,-26279,19564,-26286,19555,-26293,19546,-26299,19537,-26306,19528,-26313,19519,-26319,19510,-26326,19501,-26333,19492,-26339,19483,-26346,19474,-26352,19465,-26359,19456,-26366,19447,-26372,19438,-26379,19429,-26386,19420,-26392,19411,-26399,19402,-26405,19393,-26412,19384,-26419,19375,-26425,19366,-26432,19357,-26438,19348,-26445,19339,-26452,19330,-26458,19321,-26465,19312,-26471,19303,-26478,19294,-26485,19285,-26491,19276,-26498,19267,-26504,19258,-26511,19249,-26517,19240,-26524,19231,-26531,19221,-26537,19212,-26544,19203,-26550,19194,-26557,19185,-26563,19176,-26570,19167,-26576,19158,-26583,19149,-26589,19140,-26596,19131,-26602,19122,-26609,19113,-26616,19104,-26622,19095,-26629,19086,-26635,19076,-26642,19067,-26648,19058,-26655,19049,-26661,19040,-26668,19031,-26674,19022,-26681,19013,-26687,19004,-26693,18995,-26700,18986,-26706,18976,-26713,18967,-26719,18958,-26726,18949,-26732,18940,-26739,18931,-26745,18922,-26752,18913,-26758,18904,-26765,18894,-26771,18885,-26777,18876,-26784,18867,-26790,18858,-26797,18849,-26803,18840,-26810,18830,-26816,18821,-26822,18812,-26829,18803,-26835,18794,-26842,18785,-26848,18776,-26854,18766,-26861,18757,-26867,18748,-26874,18739,-26880,18730,-26886,18721,-26893,18711,-26899,18702,-26906,18693,-26912,18684,-26918,18675,-26925,18666,-26931,18656,-26937,18647,-26944,18638,-26950,18629,-26956,18620,-26963,18610,-26969,18601,-26976,18592,-26982,18583,-26988,18574,-26995,18564,-27001,18555,-27007,18546,-27013,18537,-27020,18528,-27026,18518,-27032,18509,-27039,18500,-27045,18491,-27051,18482,-27058,18472,-27064,18463,-27070,18454,-27077,18445,-27083,18435,-27089,18426,-27095,18417,-27102,18408,-27108,18398,-27114,18389,-27121,18380,-27127,18371,-27133,18361,-27139,18352,-27146,18343,-27152,18334,-27158,18324,-27164,18315,-27171,18306,-27177,18297,-27183,18287,-27189,18278,-27196,18269,-27202,18260,-27208,18250,-27214,18241,-27220,18232,-27227,18222,-27233,18213,-27239,18204,-27245,18195,-27251,18185,-27258,18176,-27264,18167,-27270,18157,-27276,18148,-27282,18139,-27289,18130,-27295,18120,-27301,18111,-27307,18102,-27313,18092,-27320,18083,-27326,18074,-27332,18064,-27338,18055,-27344,18046,-27350,18036,-27356,18027,-27363,18018,-27369,18008,-27375,17999,-27381,17990,-27387,17980,-27393,17971,-27399,17962,-27406,17952,-27412,17943,-27418,17934,-27424,17924,-27430,17915,-27436,17906,-27442,17896,-27448,17887,-27454,17878,-27461,17868,-27467,17859,-27473,17849,-27479,17840,-27485,17831,-27491,17821,-27497,17812,-27503,17803,-27509,17793,-27515,17784,-27521,17774,-27527,17765,-27533,17756,-27539,17746,-27546,17737,-27552,17727,-27558,17718,-27564,17709,-27570,17699,-27576,17690,-27582,17680,-27588,17671,-27594,17662,-27600,17652,-27606,17643,-27612,17633,-27618,17624,-27624,17615,-27630,17605,-27636,17596,-27642,17586,-27648,17577,-27654,17567,-27660,17558,-27666,17549,-27672,17539,-27678,17530,-27684,17520,-27690,17511,-27696,17501,-27702,17492,-27708,17483,-27714,17473,-27720,17464,-27726,17454,-27732,17445,-27737,17435,-27743,17426,-27749,17416,-27755,17407,-27761,17397,-27767,17388,-27773,17379,-27779,17369,-27785,17360,-27791,17350,-27797,17341,-27803,17331,-27809,17322,-27815,17312,-27820,17303,-27826,17293,-27832,17284,-27838,17274,-27844,17265,-27850,17255,-27856,17246,-27862,17236,-27868,17227,-27873,17217,-27879,17208,-27885,17198,-27891,17189,-27897,17179,-27903,17170,-27909,17160,-27914,17151,-27920,17141,-27926,17132,-27932,17122,-27938,17113,-27944,17103,-27949,17094,-27955,17084,-27961,17074,-27967,17065,-27973,17055,-27979,17046,-27984,17036,-27990,17027,-27996,17017,-28002,17008,-28008,16998,-28013,16989,-28019,16979,-28025,16969,-28031,16960,-28037,16950,-28042,16941,-28048,16931,-28054,16922,-28060,16912,-28065,16903,-28071,16893,-28077,16883,-28083,16874,-28088,16864,-28094,16855,-28100,16845,-28106,16836,-28111,16826,-28117,16816,-28123,16807,-28129,16797,-28134,16788,-28140,16778,-28146,16768,-28152,16759,-28157,16749,-28163,16740,-28169,16730,-28174,16720,-28180,16711,-28186,16701,-28191,16692,-28197,16682,-28203,16672,-28209,16663,-28214,16653,-28220,16643,-28226,16634,-28231,16624,-28237,16615,-28243,16605,-28248,16595,-28254,16586,-28260,16576,-28265,16566,-28271,16557,-28276,16547,-28282,16538,-28288,16528,-28293,16518,-28299,16509,-28305,16499,-28310,16489,-28316,16480,-28322,16470,-28327,16460,-28333,16451,-28338,16441,-28344,16431,-28350,16422,-28355,16412,-28361,16402,-28366,16393,-28372,16383,-28378,16373,-28383,16364,-28389,16354,-28394,16344,-28400,16335,-28405,16325,-28411,16315,-28417,16306,-28422,16296,-28428,16286,-28433,16276,-28439,16267,-28444,16257,-28450,16247,-28455,16238,-28461,16228,-28466,16218,-28472,16209,-28478,16199,-28483,16189,-28489,16179,-28494,16170,-28500,16160,-28505,16150,-28511,16141,-28516,16131,-28522,16121,-28527,16111,-28533,16102,-28538,16092,-28544,16082,-28549,16072,-28555,16063,-28560,16053,-28566,16043,-28571,16034,-28576,16024,-28582,16014,-28587,16004,-28593,15995,-28598,15985,-28604,15975,-28609,15965,-28615,15956,-28620,15946,-28626,15936,-28631,15926,-28636,15917,-28642,15907,-28647,15897,-28653,15887,-28658,15877,-28663,15868,-28669,15858,-28674,15848,-28680,15838,-28685,15829,-28691,15819,-28696,15809,-28701,15799,-28707,15789,-28712,15780,-28717,15770,-28723,15760,-28728,15750,-28734,15740,-28739,15731,-28744,15721,-28750,15711,-28755,15701,-28760,15691,-28766,15682,-28771,15672,-28776,15662,-28782,15652,-28787,15642,-28792,15633,-28798,15623,-28803,15613,-28808,15603,-28814,15593,-28819,15583,-28824,15574,-28830,15564,-28835,15554,-28840,15544,-28846,15534,-28851,15525,-28856,15515,-28861,15505,-28867,15495,-28872,15485,-28877,15475,-28883,15465,-28888,15456,-28893,15446,-28898,15436,-28904,15426,-28909,15416,-28914,15406,-28919,15396,-28925,15387,-28930,15377,-28935,15367,-28940,15357,-28946,15347,-28951,15337,-28956,15327,-28961,15318,-28967,15308,-28972,15298,-28977,15288,-28982,15278,-28987,15268,-28993,15258,-28998,15248,-29003,15238,-29008,15229,-29013,15219,-29019,15209,-29024,15199,-29029,15189,-29034,15179,-29039,15169,-29045,15159,-29050,15149,-29055,15140,-29060,15130,-29065,15120,-29070,15110,-29075,15100,-29081,15090,-29086,15080,-29091,15070,-29096,15060,-29101,15050,-29106,15040,-29111,15030,-29117,15021,-29122,15011,-29127,15001,-29132,14991,-29137,14981,-29142,14971,-29147,14961,-29152,14951,-29157,14941,-29163,14931,-29168,14921,-29173,14911,-29178,14901,-29183,14891,-29188,14881,-29193,14871,-29198,14861,-29203,14852,-29208,14842,-29213,14832,-29218,14822,-29223,14812,-29228,14802,-29234,14792,-29239,14782,-29244,14772,-29249,14762,-29254,14752,-29259,14742,-29264,14732,-29269,14722,-29274,14712,-29279,14702,-29284,14692,-29289,14682,-29294,14672,-29299,14662,-29304,14652,-29309,14642,-29314,14632,-29319,14622,-29324,14612,-29329,14602,-29334,14592,-29339,14582,-29344,14572,-29349,14562,-29354,14552,-29359,14542,-29364,14532,-29369,14522,-29373,14512,-29378,14502,-29383,14492,-29388,14482,-29393,14472,-29398,14462,-29403,14452,-29408,14442,-29413,14432,-29418,14422,-29423,14412,-29428,14402,-29433,14392,-29438,14382,-29442,14372,-29447,14362,-29452,14352,-29457,14342,-29462,14331,-29467,14321,-29472,14311,-29477,14301,-29482,14291,-29486,14281,-29491,14271,-29496,14261,-29501,14251,-29506,14241,-29511,14231,-29516,14221,-29520,14211,-29525,14201,-29530,14191,-29535,14181,-29540,14171,-29545,14160,-29549,14150,-29554,14140,-29559,14130,-29564,14120,-29569,14110,-29574,14100,-29578,14090,-29583,14080,-29588,14070,-29593,14060,-29598,14050,-29602,14039,-29607,14029,-29612,14019,-29617,14009,-29622,13999,-29626,13989,-29631,13979,-29636,13969,-29641,13959,-29645,13949,-29650,13938,-29655,13928,-29660,13918,-29664,13908,-29669,13898,-29674,13888,-29679,13878,-29683,13868,-29688,13858,-29693,13847,-29697,13837,-29702,13827,-29707,13817,-29712,13807,-29716,13797,-29721,13787,-29726,13777,-29730,13766,-29735,13756,-29740,13746,-29745,13736,-29749,13726,-29754,13716,-29759,13706,-29763,13695,-29768,13685,-29773,13675,-29777,13665,-29782,13655,-29787,13645,-29791,13634,-29796,13624,-29801,13614,-29805,13604,-29810,13594,-29814,13584,-29819,13574,-29824,13563,-29828,13553,-29833,13543,-29838,13533,-29842,13523,-29847,13512,-29851,13502,-29856,13492,-29861,13482,-29865,13472,-29870,13462,-29874,13451,-29879,13441,-29884,13431,-29888,13421,-29893,13411,-29897,13400,-29902,13390,-29906,13380,-29911,13370,-29916,13360,-29920,13349,-29925,13339,-29929,13329,-29934,13319,-29938,13309,-29943,13298,-29947,13288,-29952,13278,-29956,13268,-29961,13258,-29965,13247,-29970,13237,-29974,13227,-29979,13217,-29984,13207,-29988,13196,-29993,13186,-29997,13176,-30002,13166,-30006,13155,-30010,13145,-30015,13135,-30019,13125,-30024,13114,-30028,13104,-30033,13094,-30037,13084,-30042,13074,-30046,13063,-30051,13053,-30055,13043,-30060,13033,-30064,13022,-30068,13012,-30073,13002,-30077,12992,-30082,12981,-30086,12971,-30091,12961,-30095,12950,-30099,12940,-30104,12930,-30108,12920,-30113,12909,-30117,12899,-30122,12889,-30126,12879,-30130,12868,-30135,12858,-30139,12848,-30143,12838,-30148,12827,-30152,12817,-30157,12807,-30161,12796,-30165,12786,-30170,12776,-30174,12766,-30178,12755,-30183,12745,-30187,12735,-30191,12724,-30196,12714,-30200,12704,-30204,12694,-30209,12683,-30213,12673,-30217,12663,-30222,12652,-30226,12642,-30230,12632,-30235,12621,-30239,12611,-30243,12601,-30248,12590,-30252,12580,-30256,12570,-30260,12560,-30265,12549,-30269,12539,-30273,12529,-30278,12518,-30282,12508,-30286,12498,-30290,12487,-30295,12477,-30299,12467,-30303,12456,-30307,12446,-30312,12436,-30316,12425,-30320,12415,-30324,12405,-30329,12394,-30333,12384,-30337,12374,-30341,12363,-30345,12353,-30350,12343,-30354,12332,-30358,12322,-30362,12312,-30366,12301,-30371,12291,-30375,12280,-30379,12270,-30383,12260,-30387,12249,-30392,12239,-30396,12229,-30400,12218,-30404,12208,-30408,12198,-30412,12187,-30417,12177,-30421,12166,-30425,12156,-30429,12146,-30433,12135,-30437,12125,-30441,12115,-30446,12104,-30450,12094,-30454,12083,-30458,12073,-30462,12063,-30466,12052,-30470,12042,-30474,12032,-30478,12021,-30483,12011,-30487,12000,-30491,11990,-30495,11980,-30499,11969,-30503,11959,-30507,11948,-30511,11938,-30515,11928,-30519,11917,-30523,11907,-30527,11896,-30531,11886,-30536,11876,-30540,11865,-30544,11855,-30548,11844,-30552,11834,-30556,11823,-30560,11813,-30564,11803,-30568,11792,-30572,11782,-30576,11771,-30580,11761,-30584,11750,-30588,11740,-30592,11730,-30596,11719,-30600,11709,-30604,11698,-30608,11688,-30612,11677,-30616,11667,-30620,11657,-30624,11646,-30628,11636,-30632,11625,-30636,11615,-30640,11604,-30644,11594,-30648,11583,-30652,11573,-30656,11563,-30659,11552,-30663,11542,-30667,11531,-30671,11521,-30675,11510,-30679,11500,-30683,11489,-30687,11479,-30691,11468,-30695,11458,-30699,11448,-30703,11437,-30706,11427,-30710,11416,-30714,11406,-30718,11395,-30722,11385,-30726,11374,-30730,11364,-30734,11353,-30738,11343,-30741,11332,-30745,11322,-30749,11311,-30753,11301,-30757,11290,-30761,11280,-30765,11269,-30768,11259,-30772,11248,-30776,11238,-30780,11227,-30784,11217,-30788,11206,-30791,11196,-30795,11185,-30799,11175,-30803,11164,-30807,11154,-30810,11143,-30814,11133,-30818,11122,-30822,11112,-30826,11101,-30829,11091,-30833,11080,-30837,11070,-30841,11059,-30845,11049,-30848,11038,-30852,11028,-30856,11017,-30860,11007,-30863,10996,-30867,10986,-30871,10975,-30875,10965,-30878,10954,-30882,10944,-30886,10933,-30890,10923,-30893,10912,-30897,10902,-30901,10891,-30904,10880,-30908,10870,-30912,10859,-30916,10849,-30919,10838,-30923,10828,-30927,10817,-30930,10807,-30934,10796,-30938,10786,-30941,10775,-30945,10765,-30949,10754,-30952,10743,-30956,10733,-30960,10722,-30963,10712,-30967,10701,-30971,10691,-30974,10680,-30978,10670,-30982,10659,-30985,10648,-30989,10638,-30992,10627,-30996,10617,-31000,10606,-31003,10596,-31007,10585,-31011,10574,-31014,10564,-31018,10553,-31021,10543,-31025,10532,-31029,10522,-31032,10511,-31036,10500,-31039,10490,-31043,10479,-31046,10469,-31050,10458,-31054,10447,-31057,10437,-31061,10426,-31064,10416,-31068,10405,-31071,10395,-31075,10384,-31078,10373,-31082,10363,-31086,10352,-31089,10342,-31093,10331,-31096,10320,-31100,10310,-31103,10299,-31107,10289,-31110,10278,-31114,10267,-31117,10257,-31121,10246,-31124,10235,-31128,10225,-31131,10214,-31135,10204,-31138,10193,-31142,10182,-31145,10172,-31149,10161,-31152,10151,-31155,10140,-31159,10129,-31162,10119,-31166,10108,-31169,10097,-31173,10087,-31176,10076,-31180,10066,-31183,10055,-31186,10044,-31190,10034,-31193,10023,-31197,10012,-31200,10002,-31204,9991,-31207,9980,-31210,9970,-31214,9959,-31217,9949,-31221,9938,-31224,9927,-31227,9917,-31231,9906,-31234,9895,-31237,9885,-31241,9874,-31244,9863,-31248,9853,-31251,9842,-31254,9831,-31258,9821,-31261,9810,-31264,9799,-31268,9789,-31271,9778,-31274,9767,-31278,9757,-31281,9746,-31284,9735,-31288,9725,-31291,9714,-31294,9703,-31298,9693,-31301,9682,-31304,9671,-31308,9661,-31311,9650,-31314,9639,-31317,9629,-31321,9618,-31324,9607,-31327,9597,-31331,9586,-31334,9575,-31337,9565,-31340,9554,-31344,9543,-31347,9533,-31350,9522,-31353,9511,-31357,9501,-31360,9490,-31363,9479,-31366,9468,-31370,9458,-31373,9447,-31376,9436,-31379,9426,-31382,9415,-31386,9404,-31389,9394,-31392,9383,-31395,9372,-31398,9362,-31402,9351,-31405,9340,-31408,9329,-31411,9319,-31414,9308,-31418,9297,-31421,9287,-31424,9276,-31427,9265,-31430,9254,-31433,9244,-31436,9233,-31440,9222,-31443,9212,-31446,9201,-31449,9190,-31452,9179,-31455,9169,-31458,9158,-31462,9147,-31465,9136,-31468,9126,-31471,9115,-31474,9104,-31477,9094,-31480,9083,-31483,9072,-31486,9061,-31490,9051,-31493,9040,-31496,9029,-31499,9018,-31502,9008,-31505,8997,-31508,8986,-31511,8975,-31514,8965,-31517,8954,-31520,8943,-31523,8932,-31526,8922,-31529,8911,-31532,8900,-31535,8889,-31538,8879,-31542,8868,-31545,8857,-31548,8846,-31551,8836,-31554,8825,-31557,8814,-31560,8803,-31563,8793,-31566,8782,-31569,8771,-31572,8760,-31575,8750,-31578,8739,-31581,8728,-31584,8717,-31587,8707,-31589,8696,-31592,8685,-31595,8674,-31598,8663,-31601,8653,-31604,8642,-31607,8631,-31610,8620,-31613,8610,-31616,8599,-31619,8588,-31622,8577,-31625,8567,-31628,8556,-31631,8545,-31634,8534,-31636,8523,-31639,8513,-31642,8502,-31645,8491,-31648,8480,-31651,8469,-31654,8459,-31657,8448,-31660,8437,-31663,8426,-31665,8415,-31668,8405,-31671,8394,-31674,8383,-31677,8372,-31680,8361,-31683,8351,-31685,8340,-31688,8329,-31691,8318,-31694,8307,-31697,8297,-31700,8286,-31702,8275,-31705,8264,-31708,8253,-31711,8243,-31714,8232,-31717,8221,-31719,8210,-31722,8199,-31725,8189,-31728,8178,-31730,8167,-31733,8156,-31736,8145,-31739,8134,-31742,8124,-31744,8113,-31747,8102,-31750,8091,-31753,8080,-31755,8070,-31758,8059,-31761,8048,-31764,8037,-31766,8026,-31769,8015,-31772,8005,-31775,7994,-31777,7983,-31780,7972,-31783,7961,-31786,7950,-31788,7940,-31791,7929,-31794,7918,-31796,7907,-31799,7896,-31802,7885,-31804,7875,-31807,7864,-31810,7853,-31812,7842,-31815,7831,-31818,7820,-31820,7809,-31823,7799,-31826,7788,-31828,7777,-31831,7766,-31834,7755,-31836,7744,-31839,7733,-31842,7723,-31844,7712,-31847,7701,-31850,7690,-31852,7679,-31855,7668,-31857,7657,-31860,7647,-31863,7636,-31865,7625,-31868,7614,-31870,7603,-31873,7592,-31876,7581,-31878,7571,-31881,7560,-31883,7549,-31886,7538,-31889,7527,-31891,7516,-31894,7505,-31896,7494,-31899,7484,-31901,7473,-31904,7462,-31906,7451,-31909,7440,-31912,7429,-31914,7418,-31917,7407,-31919,7397,-31922,7386,-31924,7375,-31927,7364,-31929,7353,-31932,7342,-31934,7331,-31937,7320,-31939,7310,-31942,7299,-31944,7288,-31947,7277,-31949,7266,-31952,7255,-31954,7244,-31957,7233,-31959,7222,-31962,7211,-31964,7201,-31966,7190,-31969,7179,-31971,7168,-31974,7157,-31976,7146,-31979,7135,-31981,7124,-31984,7113,-31986,7102,-31988,7092,-31991,7081,-31993,7070,-31996,7059,-31998,7048,-32000,7037,-32003,7026,-32005,7015,-32008,7004,-32010,6993,-32012,6982,-32015,6972,-32017,6961,-32020,6950,-32022,6939,-32024,6928,-32027,6917,-32029,6906,-32031,6895,-32034,6884,-32036,6873,-32038,6862,-32041,6851,-32043,6841,-32045,6830,-32048,6819,-32050,6808,-32052,6797,-32055,6786,-32057,6775,-32059,6764,-32062,6753,-32064,6742,-32066,6731,-32069,6720,-32071,6709,-32073,6698,-32075,6688,-32078,6677,-32080,6666,-32082,6655,-32085,6644,-32087,6633,-32089,6622,-32091,6611,-32094,6600,-32096,6589,-32098,6578,-32100,6567,-32103,6556,-32105,6545,-32107,6534,-32109,6523,-32111,6512,-32114,6502,-32116,6491,-32118,6480,-32120,6469,-32123,6458,-32125,6447,-32127,6436,-32129,6425,-32131,6414,-32134,6403,-32136,6392,-32138,6381,-32140,6370,-32142,6359,-32144,6348,-32147,6337,-32149,6326,-32151,6315,-32153,6304,-32155,6293,-32157,6282,-32159,6271,-32162,6261,-32164,6250,-32166,6239,-32168,6228,-32170,6217,-32172,6206,-32174,6195,-32177,6184,-32179,6173,-32181,6162,-32183,6151,-32185,6140,-32187,6129,-32189,6118,-32191,6107,-32193,6096,-32195,6085,-32197,6074,-32200,6063,-32202,6052,-32204,6041,-32206,6030,-32208,6019,-32210,6008,-32212,5997,-32214,5986,-32216,5975,-32218,5964,-32220,5953,-32222,5942,-32224,5931,-32226,5920,-32228,5909,-32230,5898,-32232,5887,-32234,5876,-32236,5865,-32238,5854,-32240,5843,-32242,5832,-32244,5821,-32246,5810,-32248,5799,-32250,5788,-32252,5777,-32254,5766,-32256,5755,-32258,5744,-32260,5733,-32262,5722,-32264,5711,-32266,5700,-32268,5689,-32270,5678,-32272,5667,-32274,5656,-32275,5645,-32277,5634,-32279,5623,-32281,5612,-32283,5601,-32285,5590,-32287,5579,-32289,5568,-32291,5557,-32293,5546,-32295,5535,-32296,5524,-32298,5513,-32300,5502,-32302,5491,-32304,5480,-32306,5469,-32308,5458,-32310,5447,-32311,5436,-32313,5425,-32315,5414,-32317,5403,-32319,5392,-32321,5381,-32323,5370,-32324,5359,-32326,5348,-32328,5337,-32330,5326,-32332,5315,-32333,5304,-32335,5293,-32337,5282,-32339,5271,-32341,5260,-32342,5249,-32344,5238,-32346,5227,-32348,5216,-32350,5205,-32351,5194,-32353,5183,-32355,5172,-32357,5161,-32358,5150,-32360,5139,-32362,5128,-32364,5117,-32365,5106,-32367,5094,-32369,5083,-32371,5072,-32372,5061,-32374,5050,-32376,5039,-32378,5028,-32379,5017,-32381,5006,-32383,4995,-32384,4984,-32386,4973,-32388,4962,-32390,4951,-32391,4940,-32393,4929,-32395,4918,-32396,4907,-32398,4896,-32400,4885,-32401,4874,-32403,4863,-32405,4852,-32406,4841,-32408,4830,-32410,4818,-32411,4807,-32413,4796,-32414,4785,-32416,4774,-32418,4763,-32419,4752,-32421,4741,-32423,4730,-32424,4719,-32426,4708,-32427,4697,-32429,4686,-32431,4675,-32432,4664,-32434,4653,-32435,4642,-32437,4631,-32439,4620,-32440,4608,-32442,4597,-32443,4586,-32445,4575,-32446,4564,-32448,4553,-32450,4542,-32451,4531,-32453,4520,-32454,4509,-32456,4498,-32457,4487,-32459,4476,-32460,4465,-32462,4454,-32463,4443,-32465,4431,-32466,4420,-32468,4409,-32469,4398,-32471,4387,-32472,4376,-32474,4365,-32475,4354,-32477,4343,-32478,4332,-32480,4321,-32481,4310,-32483,4299,-32484,4288,-32486,4276,-32487,4265,-32489,4254,-32490,4243,-32492,4232,-32493,4221,-32494,4210,-32496,4199,-32497,4188,-32499,4177,-32500,4166,-32502,4155,-32503,4144,-32504,4132,-32506,4121,-32507,4110,-32509,4099,-32510,4088,-32511,4077,-32513,4066,-32514,4055,-32516,4044,-32517,4033,-32518,4022,-32520,4011,-32521,3999,-32522,3988,-32524,3977,-32525,3966,-32527,3955,-32528,3944,-32529,3933,-32531,3922,-32532,3911,-32533,3900,-32535,3889,-32536,3877,-32537,3866,-32539,3855,-32540,3844,-32541,3833,-32542,3822,-32544,3811,-32545,3800,-32546,3789,-32548,3778,-32549,3767,-32550,3755,-32552,3744,-32553,3733,-32554,3722,-32555,3711,-32557,3700,-32558,3689,-32559,3678,-32560,3667,-32562,3656,-32563,3644,-32564,3633,-32565,3622,-32567,3611,-32568,3600,-32569,3589,-32570,3578,-32572,3567,-32573,3556,-32574,3545,-32575,3533,-32576,3522,-32578,3511,-32579,3500,-32580,3489,-32581,3478,-32582,3467,-32584,3456,-32585,3445,-32586,3433,-32587,3422,-32588,3411,-32589,3400,-32591,3389,-32592,3378,-32593,3367,-32594,3356,-32595,3345,-32596,3333,-32597,3322,-32599,3311,-32600,3300,-32601,3289,-32602,3278,-32603,3267,-32604,3256,-32605,3245,-32606,3233,-32608,3222,-32609,3211,-32610,3200,-32611,3189,-32612,3178,-32613,3167,-32614,3156,-32615,3145,-32616,3133,-32617,3122,-32618,3111,-32619,3100,-32620,3089,-32622,3078,-32623,3067,-32624,3056,-32625,3044,-32626,3033,-32627,3022,-32628,3011,-32629,3000,-32630,2989,-32631,2978,-32632,2967,-32633,2955,-32634,2944,-32635,2933,-32636,2922,-32637,2911,-32638,2900,-32639,2889,-32640,2878,-32641,2866,-32642,2855,-32643,2844,-32644,2833,-32645,2822,-32646,2811,-32647,2800,-32648,2789,-32649,2777,-32650,2766,-32650,2755,-32651,2744,-32652,2733,-32653,2722,-32654,2711,-32655,2700,-32656,2688,-32657,2677,-32658,2666,-32659,2655,-32660,2644,-32661,2633,-32662,2622,-32662,2610,-32663,2599,-32664,2588,-32665,2577,-32666,2566,-32667,2555,-32668,2544,-32669,2533,-32669,2521,-32670,2510,-32671,2499,-32672,2488,-32673,2477,-32674,2466,-32675,2455,-32675,2443,-32676,2432,-32677,2421,-32678,2410,-32679,2399,-32680,2388,-32680,2377,-32681,2365,-32682,2354,-32683,2343,-32684,2332,-32684,2321,-32685,2310,-32686,2299,-32687,2287,-32688,2276,-32688,2265,-32689,2254,-32690,2243,-32691,2232,-32691,2221,-32692,2209,-32693,2198,-32694,2187,-32694,2176,-32695,2165,-32696,2154,-32697,2143,-32697,2131,-32698,2120,-32699,2109,-32700,2098,-32700,2087,-32701,2076,-32702,2065,-32702,2053,-32703,2042,-32704,2031,-32704,2020,-32705,2009,-32706,1998,-32707,1986,-32707,1975,-32708,1964,-32709,1953,-32709,1942,-32710,1931,-32711,1920,-32711,1908,-32712,1897,-32712,1886,-32713,1875,-32714,1864,-32714,1853,-32715,1842,-32716,1830,-32716,1819,-32717,1808,-32718,1797,-32718,1786,-32719,1775,-32719,1763,-32720,1752,-32721,1741,-32721,1730,-32722,1719,-32722,1708,-32723,1697,-32724,1685,-32724,1674,-32725,1663,-32725,1652,-32726,1641,-32726,1630,-32727,1618,-32727,1607,-32728,1596,-32729,1585,-32729,1574,-32730,1563,-32730,1552,-32731,1540,-32731,1529,-32732,1518,-32732,1507,-32733,1496,-32733,1485,-32734,1473,-32734,1462,-32735,1451,-32735,1440,-32736,1429,-32736,1418,-32737,1406,-32737,1395,-32738,1384,-32738,1373,-32739,1362,-32739,1351,-32740,1339,-32740,1328,-32741,1317,-32741,1306,-32741,1295,-32742,1284,-32742,1273,-32743,1261,-32743,1250,-32744,1239,-32744,1228,-32744,1217,-32745,1206,-32745,1194,-32746,1183,-32746,1172,-32747,1161,-32747,1150,-32747,1139,-32748,1127,-32748,1116,-32748,1105,-32749,1094,-32749,1083,-32750,1072,-32750,1060,-32750,1049,-32751,1038,-32751,1027,-32751,1016,-32752,1005,-32752,993,-32752,982,-32753,971,-32753,960,-32753,949,-32754,938,-32754,926,-32754,915,-32755,904,-32755,893,-32755,882,-32756,871,-32756,859,-32756,848,-32757,837,-32757,826,-32757,815,-32757,804,-32758,792,-32758,781,-32758,770,-32758,759,-32759,748,-32759,737,-32759,725,-32759,714,-32760,703,-32760,692,-32760,681,-32760,670,-32761,658,-32761,647,-32761,636,-32761,625,-32762,614,-32762,603,-32762,591,-32762,580,-32762,569,-32763,558,-32763,547,-32763,536,-32763,524,-32763,513,-32763,502,-32764,491,-32764,480,-32764,469,-32764,457,-32764,446,-32764,435,-32765,424,-32765,413,-32765,402,-32765,390,-32765,379,-32765,368,-32765,357,-32766,346,-32766,335,-32766,323,-32766,312,-32766,301,-32766,290,-32766,279,-32766,268,-32766,256,-32766,245,-32767,234,-32767,223,-32767,212,-32767,201,-32767,189,-32767,178,-32767,167,-32767,156,-32767,145,-32767,134,-32767,122,-32767,111,-32767,100,-32767,89,-32767,78,-32767,67,-32767,55,-32767,44,-32767,33,-32767,22,-32767,11,-32767,0,-32767,-12,-32767,-23,-32767,-34,-32767,-45,-32767,-56,-32767,-68,-32767,-79,-32767,-90,-32767,-101,-32767,-112,-32767,-123,-32767,-135,-32767,-146,-32767,-157,-32767,-168,-32767,-179,-32767,-190,-32767,-202,-32767,-213,-32767,-224,-32767,-235,-32767,-246,-32767,-257,-32766,-269,-32766,-280,-32766,-291,-32766,-302,-32766,-313,-32766,-324,-32766,-336,-32766,-347,-32766,-358,-32766,-369,-32765,-380,-32765,-391,-32765,-403,-32765,-414,-32765,-425,-32765,-436,-32765,-447,-32764,-458,-32764,-470,-32764,-481,-32764,-492,-32764,-503,-32764,-514,-32763,-525,-32763,-537,-32763,-548,-32763,-559,-32763,-570,-32763,-581,-32762,-592,-32762,-604,-32762,-615,-32762,-626,-32762,-637,-32761,-648,-32761,-659,-32761,-671,-32761,-682,-32760,-693,-32760,-704,-32760,-715,-32760,-726,-32759,-738,-32759,-749,-32759,-760,-32759,-771,-32758,-782,-32758,-793,-32758,-805,-32758,-816,-32757,-827,-32757,-838,-32757,-849,-32757,-860,-32756,-872,-32756,-883,-32756,-894,-32755,-905,-32755,-916,-32755,-927,-32754,-939,-32754,-950,-32754,-961,-32753,-972,-32753,-983,-32753,-994,-32752,-1006,-32752,-1017,-32752,-1028,-32751,-1039,-32751,-1050,-32751,-1061,-32750,-1073,-32750,-1084,-32750,-1095,-32749,-1106,-32749,-1117,-32748,-1128,-32748,-1140,-32748,-1151,-32747,-1162,-32747,-1173,-32747,-1184,-32746,-1195,-32746,-1207,-32745,-1218,-32745,-1229,-32744,-1240,-32744,-1251,-32744,-1262,-32743,-1274,-32743,-1285,-32742,-1296,-32742,-1307,-32741,-1318,-32741,-1329,-32741,-1340,-32740,-1352,-32740,-1363,-32739,-1374,-32739,-1385,-32738,-1396,-32738,-1407,-32737,-1419,-32737,-1430,-32736,-1441,-32736,-1452,-32735,-1463,-32735,-1474,-32734,-1486,-32734,-1497,-32733,-1508,-32733,-1519,-32732,-1530,-32732,-1541,-32731,-1553,-32731,-1564,-32730,-1575,-32730,-1586,-32729,-1597,-32729,-1608,-32728,-1619,-32727,-1631,-32727,-1642,-32726,-1653,-32726,-1664,-32725,-1675,-32725,-1686,-32724,-1698,-32724,-1709,-32723,-1720,-32722,-1731,-32722,-1742,-32721,-1753,-32721,-1764,-32720,-1776,-32719,-1787,-32719,-1798,-32718,-1809,-32718,-1820,-32717,-1831,-32716,-1843,-32716,-1854,-32715,-1865,-32714,-1876,-32714,-1887,-32713,-1898,-32712,-1909,-32712,-1921,-32711,-1932,-32711,-1943,-32710,-1954,-32709,-1965,-32709,-1976,-32708,-1987,-32707,-1999,-32707,-2010,-32706,-2021,-32705,-2032,-32704,-2043,-32704,-2054,-32703,-2066,-32702,-2077,-32702,-2088,-32701,-2099,-32700,-2110,-32700,-2121,-32699,-2132,-32698,-2144,-32697,-2155,-32697,-2166,-32696,-2177,-32695,-2188,-32694,-2199,-32694,-2210,-32693,-2222,-32692,-2233,-32691,-2244,-32691,-2255,-32690,-2266,-32689,-2277,-32688,-2288,-32688,-2300,-32687,-2311,-32686,-2322,-32685,-2333,-32684,-2344,-32684,-2355,-32683,-2366,-32682,-2378,-32681,-2389,-32680,-2400,-32680,-2411,-32679,-2422,-32678,-2433,-32677,-2444,-32676,-2456,-32675,-2467,-32675,-2478,-32674,-2489,-32673,-2500,-32672,-2511,-32671,-2522,-32670,-2534,-32669,-2545,-32669,-2556,-32668,-2567,-32667,-2578,-32666,-2589,-32665,-2600,-32664,-2611,-32663,-2623,-32662,-2634,-32662,-2645,-32661,-2656,-32660,-2667,-32659,-2678,-32658,-2689,-32657,-2701,-32656,-2712,-32655,-2723,-32654,-2734,-32653,-2745,-32652,-2756,-32651,-2767,-32650,-2778,-32650,-2790,-32649,-2801,-32648,-2812,-32647,-2823,-32646,-2834,-32645,-2845,-32644,-2856,-32643,-2867,-32642,-2879,-32641,-2890,-32640,-2901,-32639,-2912,-32638,-2923,-32637,-2934,-32636,-2945,-32635,-2956,-32634,-2968,-32633,-2979,-32632,-2990,-32631,-3001,-32630,-3012,-32629,-3023,-32628,-3034,-32627,-3045,-32626,-3057,-32625,-3068,-32624,-3079,-32623,-3090,-32622,-3101,-32620,-3112,-32619,-3123,-32618,-3134,-32617,-3146,-32616,-3157,-32615,-3168,-32614,-3179,-32613,-3190,-32612,-3201,-32611,-3212,-32610,-3223,-32609,-3234,-32608,-3246,-32606,-3257,-32605,-3268,-32604,-3279,-32603,-3290,-32602,-3301,-32601,-3312,-32600,-3323,-32599,-3334,-32597,-3346,-32596,-3357,-32595,-3368,-32594,-3379,-32593,-3390,-32592,-3401,-32591,-3412,-32589,-3423,-32588,-3434,-32587,-3446,-32586,-3457,-32585,-3468,-32584,-3479,-32582,-3490,-32581,-3501,-32580,-3512,-32579,-3523,-32578,-3534,-32576,-3546,-32575,-3557,-32574,-3568,-32573,-3579,-32572,-3590,-32570,-3601,-32569,-3612,-32568,-3623,-32567,-3634,-32565,-3645,-32564,-3657,-32563,-3668,-32562,-3679,-32560,-3690,-32559,-3701,-32558,-3712,-32557,-3723,-32555,-3734,-32554,-3745,-32553,-3756,-32552,-3768,-32550,-3779,-32549,-3790,-32548,-3801,-32546,-3812,-32545,-3823,-32544,-3834,-32542,-3845,-32541,-3856,-32540,-3867,-32539,-3878,-32537,-3890,-32536,-3901,-32535,-3912,-32533,-3923,-32532,-3934,-32531,-3945,-32529,-3956,-32528,-3967,-32527,-3978,-32525,-3989,-32524,-4000,-32522,-4012,-32521,-4023,-32520,-4034,-32518,-4045,-32517,-4056,-32516,-4067,-32514,-4078,-32513,-4089,-32511,-4100,-32510,-4111,-32509,-4122,-32507,-4133,-32506,-4145,-32504,-4156,-32503,-4167,-32502,-4178,-32500,-4189,-32499,-4200,-32497,-4211,-32496,-4222,-32494,-4233,-32493,-4244,-32492,-4255,-32490,-4266,-32489,-4277,-32487,-4289,-32486,-4300,-32484,-4311,-32483,-4322,-32481,-4333,-32480,-4344,-32478,-4355,-32477,-4366,-32475,-4377,-32474,-4388,-32472,-4399,-32471,-4410,-32469,-4421,-32468,-4432,-32466,-4444,-32465,-4455,-32463,-4466,-32462,-4477,-32460,-4488,-32459,-4499,-32457,-4510,-32456,-4521,-32454,-4532,-32453,-4543,-32451,-4554,-32450,-4565,-32448,-4576,-32446,-4587,-32445,-4598,-32443,-4609,-32442,-4621,-32440,-4632,-32439,-4643,-32437,-4654,-32435,-4665,-32434,-4676,-32432,-4687,-32431,-4698,-32429,-4709,-32427,-4720,-32426,-4731,-32424,-4742,-32423,-4753,-32421,-4764,-32419,-4775,-32418,-4786,-32416,-4797,-32414,-4808,-32413,-4819,-32411,-4831,-32410,-4842,-32408,-4853,-32406,-4864,-32405,-4875,-32403,-4886,-32401,-4897,-32400,-4908,-32398,-4919,-32396,-4930,-32395,-4941,-32393,-4952,-32391,-4963,-32390,-4974,-32388,-4985,-32386,-4996,-32384,-5007,-32383,-5018,-32381,-5029,-32379,-5040,-32378,-5051,-32376,-5062,-32374,-5073,-32372,-5084,-32371,-5095,-32369,-5107,-32367,-5118,-32365,-5129,-32364,-5140,-32362,-5151,-32360,-5162,-32358,-5173,-32357,-5184,-32355,-5195,-32353,-5206,-32351,-5217,-32350,-5228,-32348,-5239,-32346,-5250,-32344,-5261,-32342,-5272,-32341,-5283,-32339,-5294,-32337,-5305,-32335,-5316,-32333,-5327,-32332,-5338,-32330,-5349,-32328,-5360,-32326,-5371,-32324,-5382,-32323,-5393,-32321,-5404,-32319,-5415,-32317,-5426,-32315,-5437,-32313,-5448,-32311,-5459,-32310,-5470,-32308,-5481,-32306,-5492,-32304,-5503,-32302,-5514,-32300,-5525,-32298,-5536,-32296,-5547,-32295,-5558,-32293,-5569,-32291,-5580,-32289,-5591,-32287,-5602,-32285,-5613,-32283,-5624,-32281,-5635,-32279,-5646,-32277,-5657,-32275,-5668,-32274,-5679,-32272,-5690,-32270,-5701,-32268,-5712,-32266,-5723,-32264,-5734,-32262,-5745,-32260,-5756,-32258,-5767,-32256,-5778,-32254,-5789,-32252,-5800,-32250,-5811,-32248,-5822,-32246,-5833,-32244,-5844,-32242,-5855,-32240,-5866,-32238,-5877,-32236,-5888,-32234,-5899,-32232,-5910,-32230,-5921,-32228,-5932,-32226,-5943,-32224,-5954,-32222,-5965,-32220,-5976,-32218,-5987,-32216,-5998,-32214,-6009,-32212,-6020,-32210,-6031,-32208,-6042,-32206,-6053,-32204,-6064,-32202,-6075,-32200,-6086,-32197,-6097,-32195,-6108,-32193,-6119,-32191,-6130,-32189,-6141,-32187,-6152,-32185,-6163,-32183,-6174,-32181,-6185,-32179,-6196,-32177,-6207,-32174,-6218,-32172,-6229,-32170,-6240,-32168,-6251,-32166,-6262,-32164,-6272,-32162,-6283,-32159,-6294,-32157,-6305,-32155,-6316,-32153,-6327,-32151,-6338,-32149,-6349,-32147,-6360,-32144,-6371,-32142,-6382,-32140,-6393,-32138,-6404,-32136,-6415,-32134,-6426,-32131,-6437,-32129,-6448,-32127,-6459,-32125,-6470,-32123,-6481,-32120,-6492,-32118,-6503,-32116,-6513,-32114,-6524,-32111,-6535,-32109,-6546,-32107,-6557,-32105,-6568,-32103,-6579,-32100,-6590,-32098,-6601,-32096,-6612,-32094,-6623,-32091,-6634,-32089,-6645,-32087,-6656,-32085,-6667,-32082,-6678,-32080,-6689,-32078,-6699,-32075,-6710,-32073,-6721,-32071,-6732,-32069,-6743,-32066,-6754,-32064,-6765,-32062,-6776,-32059,-6787,-32057,-6798,-32055,-6809,-32052,-6820,-32050,-6831,-32048,-6842,-32045,-6852,-32043,-6863,-32041,-6874,-32038,-6885,-32036,-6896,-32034,-6907,-32031,-6918,-32029,-6929,-32027,-6940,-32024,-6951,-32022,-6962,-32020,-6973,-32017,-6983,-32015,-6994,-32012,-7005,-32010,-7016,-32008,-7027,-32005,-7038,-32003,-7049,-32000,-7060,-31998,-7071,-31996,-7082,-31993,-7093,-31991,-7103,-31988,-7114,-31986,-7125,-31984,-7136,-31981,-7147,-31979,-7158,-31976,-7169,-31974,-7180,-31971,-7191,-31969,-7202,-31966,-7212,-31964,-7223,-31962,-7234,-31959,-7245,-31957,-7256,-31954,-7267,-31952,-7278,-31949,-7289,-31947,-7300,-31944,-7311,-31942,-7321,-31939,-7332,-31937,-7343,-31934,-7354,-31932,-7365,-31929,-7376,-31927,-7387,-31924,-7398,-31922,-7408,-31919,-7419,-31917,-7430,-31914,-7441,-31912,-7452,-31909,-7463,-31906,-7474,-31904,-7485,-31901,-7495,-31899,-7506,-31896,-7517,-31894,-7528,-31891,-7539,-31889,-7550,-31886,-7561,-31883,-7572,-31881,-7582,-31878,-7593,-31876,-7604,-31873,-7615,-31870,-7626,-31868,-7637,-31865,-7648,-31863,-7658,-31860,-7669,-31857,-7680,-31855,-7691,-31852,-7702,-31850,-7713,-31847,-7724,-31844,-7734,-31842,-7745,-31839,-7756,-31836,-7767,-31834,-7778,-31831,-7789,-31828,-7800,-31826,-7810,-31823,-7821,-31820,-7832,-31818,-7843,-31815,-7854,-31812,-7865,-31810,-7876,-31807,-7886,-31804,-7897,-31802,-7908,-31799,-7919,-31796,-7930,-31794,-7941,-31791,-7951,-31788,-7962,-31786,-7973,-31783,-7984,-31780,-7995,-31777,-8006,-31775,-8016,-31772,-8027,-31769,-8038,-31766,-8049,-31764,-8060,-31761,-8071,-31758,-8081,-31755,-8092,-31753,-8103,-31750,-8114,-31747,-8125,-31744,-8135,-31742,-8146,-31739,-8157,-31736,-8168,-31733,-8179,-31730,-8190,-31728,-8200,-31725,-8211,-31722,-8222,-31719,-8233,-31717,-8244,-31714,-8254,-31711,-8265,-31708,-8276,-31705,-8287,-31702,-8298,-31700,-8308,-31697,-8319,-31694,-8330,-31691,-8341,-31688,-8352,-31685,-8362,-31683,-8373,-31680,-8384,-31677,-8395,-31674,-8406,-31671,-8416,-31668,-8427,-31665,-8438,-31663,-8449,-31660,-8460,-31657,-8470,-31654,-8481,-31651,-8492,-31648,-8503,-31645,-8514,-31642,-8524,-31639,-8535,-31636,-8546,-31634,-8557,-31631,-8568,-31628,-8578,-31625,-8589,-31622,-8600,-31619,-8611,-31616,-8621,-31613,-8632,-31610,-8643,-31607,-8654,-31604,-8664,-31601,-8675,-31598,-8686,-31595,-8697,-31592,-8708,-31589,-8718,-31587,-8729,-31584,-8740,-31581,-8751,-31578,-8761,-31575,-8772,-31572,-8783,-31569,-8794,-31566,-8804,-31563,-8815,-31560,-8826,-31557,-8837,-31554,-8847,-31551,-8858,-31548,-8869,-31545,-8880,-31542,-8890,-31538,-8901,-31535,-8912,-31532,-8923,-31529,-8933,-31526,-8944,-31523,-8955,-31520,-8966,-31517,-8976,-31514,-8987,-31511,-8998,-31508,-9009,-31505,-9019,-31502,-9030,-31499,-9041,-31496,-9052,-31493,-9062,-31490,-9073,-31486,-9084,-31483,-9095,-31480,-9105,-31477,-9116,-31474,-9127,-31471,-9137,-31468,-9148,-31465,-9159,-31462,-9170,-31458,-9180,-31455,-9191,-31452,-9202,-31449,-9213,-31446,-9223,-31443,-9234,-31440,-9245,-31436,-9255,-31433,-9266,-31430,-9277,-31427,-9288,-31424,-9298,-31421,-9309,-31418,-9320,-31414,-9330,-31411,-9341,-31408,-9352,-31405,-9363,-31402,-9373,-31398,-9384,-31395,-9395,-31392,-9405,-31389,-9416,-31386,-9427,-31382,-9437,-31379,-9448,-31376,-9459,-31373,-9469,-31370,-9480,-31366,-9491,-31363,-9502,-31360,-9512,-31357,-9523,-31353,-9534,-31350,-9544,-31347,-9555,-31344,-9566,-31340,-9576,-31337,-9587,-31334,-9598,-31331,-9608,-31327,-9619,-31324,-9630,-31321,-9640,-31317,-9651,-31314,-9662,-31311,-9672,-31308,-9683,-31304,-9694,-31301,-9704,-31298,-9715,-31294,-9726,-31291,-9736,-31288,-9747,-31284,-9758,-31281,-9768,-31278,-9779,-31274,-9790,-31271,-9800,-31268,-9811,-31264,-9822,-31261,-9832,-31258,-9843,-31254,-9854,-31251,-9864,-31248,-9875,-31244,-9886,-31241,-9896,-31237,-9907,-31234,-9918,-31231,-9928,-31227,-9939,-31224,-9950,-31221,-9960,-31217,-9971,-31214,-9981,-31210,-9992,-31207,-10003,-31204,-10013,-31200,-10024,-31197,-10035,-31193,-10045,-31190,-10056,-31186,-10067,-31183,-10077,-31180,-10088,-31176,-10098,-31173,-10109,-31169,-10120,-31166,-10130,-31162,-10141,-31159,-10152,-31155,-10162,-31152,-10173,-31149,-10183,-31145,-10194,-31142,-10205,-31138,-10215,-31135,-10226,-31131,-10236,-31128,-10247,-31124,-10258,-31121,-10268,-31117,-10279,-31114,-10290,-31110,-10300,-31107,-10311,-31103,-10321,-31100,-10332,-31096,-10343,-31093,-10353,-31089,-10364,-31086,-10374,-31082,-10385,-31078,-10396,-31075,-10406,-31071,-10417,-31068,-10427,-31064,-10438,-31061,-10448,-31057,-10459,-31054,-10470,-31050,-10480,-31046,-10491,-31043,-10501,-31039,-10512,-31036,-10523,-31032,-10533,-31029,-10544,-31025,-10554,-31021,-10565,-31018,-10575,-31014,-10586,-31011,-10597,-31007,-10607,-31003,-10618,-31000,-10628,-30996,-10639,-30992,-10649,-30989,-10660,-30985,-10671,-30982,-10681,-30978,-10692,-30974,-10702,-30971,-10713,-30967,-10723,-30963,-10734,-30960,-10744,-30956,-10755,-30952,-10766,-30949,-10776,-30945,-10787,-30941,-10797,-30938,-10808,-30934,-10818,-30930,-10829,-30927,-10839,-30923,-10850,-30919,-10860,-30916,-10871,-30912,-10881,-30908,-10892,-30904,-10903,-30901,-10913,-30897,-10924,-30893,-10934,-30890,-10945,-30886,-10955,-30882,-10966,-30878,-10976,-30875,-10987,-30871,-10997,-30867,-11008,-30863,-11018,-30860,-11029,-30856,-11039,-30852,-11050,-30848,-11060,-30845,-11071,-30841,-11081,-30837,-11092,-30833,-11102,-30829,-11113,-30826,-11123,-30822,-11134,-30818,-11144,-30814,-11155,-30810,-11165,-30807,-11176,-30803,-11186,-30799,-11197,-30795,-11207,-30791,-11218,-30788,-11228,-30784,-11239,-30780,-11249,-30776,-11260,-30772,-11270,-30768,-11281,-30765,-11291,-30761,-11302,-30757,-11312,-30753,-11323,-30749,-11333,-30745,-11344,-30741,-11354,-30738,-11365,-30734,-11375,-30730,-11386,-30726,-11396,-30722,-11407,-30718,-11417,-30714,-11428,-30710,-11438,-30706,-11449,-30703,-11459,-30699,-11469,-30695,-11480,-30691,-11490,-30687,-11501,-30683,-11511,-30679,-11522,-30675,-11532,-30671,-11543,-30667,-11553,-30663,-11564,-30659,-11574,-30656,-11584,-30652,-11595,-30648,-11605,-30644,-11616,-30640,-11626,-30636,-11637,-30632,-11647,-30628,-11658,-30624,-11668,-30620,-11678,-30616,-11689,-30612,-11699,-30608,-11710,-30604,-11720,-30600,-11731,-30596,-11741,-30592,-11751,-30588,-11762,-30584,-11772,-30580,-11783,-30576,-11793,-30572,-11804,-30568,-11814,-30564,-11824,-30560,-11835,-30556,-11845,-30552,-11856,-30548,-11866,-30544,-11877,-30540,-11887,-30536,-11897,-30531,-11908,-30527,-11918,-30523,-11929,-30519,-11939,-30515,-11949,-30511,-11960,-30507,-11970,-30503,-11981,-30499,-11991,-30495,-12001,-30491,-12012,-30487,-12022,-30483,-12033,-30478,-12043,-30474,-12053,-30470,-12064,-30466,-12074,-30462,-12084,-30458,-12095,-30454,-12105,-30450,-12116,-30446,-12126,-30441,-12136,-30437,-12147,-30433,-12157,-30429,-12167,-30425,-12178,-30421,-12188,-30417,-12199,-30412,-12209,-30408,-12219,-30404,-12230,-30400,-12240,-30396,-12250,-30392,-12261,-30387,-12271,-30383,-12281,-30379,-12292,-30375,-12302,-30371,-12313,-30366,-12323,-30362,-12333,-30358,-12344,-30354,-12354,-30350,-12364,-30345,-12375,-30341,-12385,-30337,-12395,-30333,-12406,-30329,-12416,-30324,-12426,-30320,-12437,-30316,-12447,-30312,-12457,-30307,-12468,-30303,-12478,-30299,-12488,-30295,-12499,-30290,-12509,-30286,-12519,-30282,-12530,-30278,-12540,-30273,-12550,-30269,-12561,-30265,-12571,-30260,-12581,-30256,-12591,-30252,-12602,-30248,-12612,-30243,-12622,-30239,-12633,-30235,-12643,-30230,-12653,-30226,-12664,-30222,-12674,-30217,-12684,-30213,-12695,-30209,-12705,-30204,-12715,-30200,-12725,-30196,-12736,-30191,-12746,-30187,-12756,-30183,-12767,-30178,-12777,-30174,-12787,-30170,-12797,-30165,-12808,-30161,-12818,-30157,-12828,-30152,-12839,-30148,-12849,-30143,-12859,-30139,-12869,-30135,-12880,-30130,-12890,-30126,-12900,-30122,-12910,-30117,-12921,-30113,-12931,-30108,-12941,-30104,-12951,-30099,-12962,-30095,-12972,-30091,-12982,-30086,-12993,-30082,-13003,-30077,-13013,-30073,-13023,-30068,-13034,-30064,-13044,-30060,-13054,-30055,-13064,-30051,-13075,-30046,-13085,-30042,-13095,-30037,-13105,-30033,-13115,-30028,-13126,-30024,-13136,-30019,-13146,-30015,-13156,-30010,-13167,-30006,-13177,-30002,-13187,-29997,-13197,-29993,-13208,-29988,-13218,-29984,-13228,-29979,-13238,-29974,-13248,-29970,-13259,-29965,-13269,-29961,-13279,-29956,-13289,-29952,-13299,-29947,-13310,-29943,-13320,-29938,-13330,-29934,-13340,-29929,-13350,-29925,-13361,-29920,-13371,-29916,-13381,-29911,-13391,-29906,-13401,-29902,-13412,-29897,-13422,-29893,-13432,-29888,-13442,-29884,-13452,-29879,-13463,-29874,-13473,-29870,-13483,-29865,-13493,-29861,-13503,-29856,-13513,-29851,-13524,-29847,-13534,-29842,-13544,-29838,-13554,-29833,-13564,-29828,-13575,-29824,-13585,-29819,-13595,-29814,-13605,-29810,-13615,-29805,-13625,-29801,-13635,-29796,-13646,-29791,-13656,-29787,-13666,-29782,-13676,-29777,-13686,-29773,-13696,-29768,-13707,-29763,-13717,-29759,-13727,-29754,-13737,-29749,-13747,-29745,-13757,-29740,-13767,-29735,-13778,-29730,-13788,-29726,-13798,-29721,-13808,-29716,-13818,-29712,-13828,-29707,-13838,-29702,-13848,-29697,-13859,-29693,-13869,-29688,-13879,-29683,-13889,-29679,-13899,-29674,-13909,-29669,-13919,-29664,-13929,-29660,-13939,-29655,-13950,-29650,-13960,-29645,-13970,-29641,-13980,-29636,-13990,-29631,-14000,-29626,-14010,-29622,-14020,-29617,-14030,-29612,-14040,-29607,-14051,-29602,-14061,-29598,-14071,-29593,-14081,-29588,-14091,-29583,-14101,-29578,-14111,-29574,-14121,-29569,-14131,-29564,-14141,-29559,-14151,-29554,-14161,-29549,-14172,-29545,-14182,-29540,-14192,-29535,-14202,-29530,-14212,-29525,-14222,-29520,-14232,-29516,-14242,-29511,-14252,-29506,-14262,-29501,-14272,-29496,-14282,-29491,-14292,-29486,-14302,-29482,-14312,-29477,-14322,-29472,-14332,-29467,-14343,-29462,-14353,-29457,-14363,-29452,-14373,-29447,-14383,-29442,-14393,-29438,-14403,-29433,-14413,-29428,-14423,-29423,-14433,-29418,-14443,-29413,-14453,-29408,-14463,-29403,-14473,-29398,-14483,-29393,-14493,-29388,-14503,-29383,-14513,-29378,-14523,-29373,-14533,-29369,-14543,-29364,-14553,-29359,-14563,-29354,-14573,-29349,-14583,-29344,-14593,-29339,-14603,-29334,-14613,-29329,-14623,-29324,-14633,-29319,-14643,-29314,-14653,-29309,-14663,-29304,-14673,-29299,-14683,-29294,-14693,-29289,-14703,-29284,-14713,-29279,-14723,-29274,-14733,-29269,-14743,-29264,-14753,-29259,-14763,-29254,-14773,-29249,-14783,-29244,-14793,-29239,-14803,-29234,-14813,-29228,-14823,-29223,-14833,-29218,-14843,-29213,-14853,-29208,-14862,-29203,-14872,-29198,-14882,-29193,-14892,-29188,-14902,-29183,-14912,-29178,-14922,-29173,-14932,-29168,-14942,-29163,-14952,-29157,-14962,-29152,-14972,-29147,-14982,-29142,-14992,-29137,-15002,-29132,-15012,-29127,-15022,-29122,-15031,-29117,-15041,-29111,-15051,-29106,-15061,-29101,-15071,-29096,-15081,-29091,-15091,-29086,-15101,-29081,-15111,-29075,-15121,-29070,-15131,-29065,-15141,-29060,-15150,-29055,-15160,-29050,-15170,-29045,-15180,-29039,-15190,-29034,-15200,-29029,-15210,-29024,-15220,-29019,-15230,-29013,-15239,-29008,-15249,-29003,-15259,-28998,-15269,-28993,-15279,-28987,-15289,-28982,-15299,-28977,-15309,-28972,-15319,-28967,-15328,-28961,-15338,-28956,-15348,-28951,-15358,-28946,-15368,-28940,-15378,-28935,-15388,-28930,-15397,-28925,-15407,-28919,-15417,-28914,-15427,-28909,-15437,-28904,-15447,-28898,-15457,-28893,-15466,-28888,-15476,-28883,-15486,-28877,-15496,-28872,-15506,-28867,-15516,-28861,-15526,-28856,-15535,-28851,-15545,-28846,-15555,-28840,-15565,-28835,-15575,-28830,-15584,-28824,-15594,-28819,-15604,-28814,-15614,-28808,-15624,-28803,-15634,-28798,-15643,-28792,-15653,-28787,-15663,-28782,-15673,-28776,-15683,-28771,-15692,-28766,-15702,-28760,-15712,-28755,-15722,-28750,-15732,-28744,-15741,-28739,-15751,-28734,-15761,-28728,-15771,-28723,-15781,-28717,-15790,-28712,-15800,-28707,-15810,-28701,-15820,-28696,-15830,-28691,-15839,-28685,-15849,-28680,-15859,-28674,-15869,-28669,-15878,-28663,-15888,-28658,-15898,-28653,-15908,-28647,-15918,-28642,-15927,-28636,-15937,-28631,-15947,-28626,-15957,-28620,-15966,-28615,-15976,-28609,-15986,-28604,-15996,-28598,-16005,-28593,-16015,-28587,-16025,-28582,-16035,-28576,-16044,-28571,-16054,-28566,-16064,-28560,-16073,-28555,-16083,-28549,-16093,-28544,-16103,-28538,-16112,-28533,-16122,-28527,-16132,-28522,-16142,-28516,-16151,-28511,-16161,-28505,-16171,-28500,-16180,-28494,-16190,-28489,-16200,-28483,-16210,-28478,-16219,-28472,-16229,-28466,-16239,-28461,-16248,-28455,-16258,-28450,-16268,-28444,-16277,-28439,-16287,-28433,-16297,-28428,-16307,-28422,-16316,-28417,-16326,-28411,-16336,-28405,-16345,-28400,-16355,-28394,-16365,-28389,-16374,-28383}; - -int16_t twb18432[12288] = { 32767,0,32766,-23,32766,-45,32766,-68,32766,-90,32766,-112,32766,-135,32766,-157,32766,-179,32766,-202,32766,-224,32766,-246,32765,-269,32765,-291,32765,-313,32765,-336,32765,-358,32764,-380,32764,-403,32764,-425,32763,-447,32763,-470,32763,-492,32762,-514,32762,-537,32762,-559,32761,-581,32761,-604,32761,-626,32760,-648,32760,-671,32759,-693,32759,-715,32758,-738,32758,-760,32757,-782,32757,-805,32756,-827,32756,-849,32755,-872,32754,-894,32754,-916,32753,-939,32752,-961,32752,-983,32751,-1006,32750,-1028,32750,-1050,32749,-1073,32748,-1095,32747,-1117,32747,-1140,32746,-1162,32745,-1184,32744,-1207,32743,-1229,32743,-1251,32742,-1274,32741,-1296,32740,-1318,32739,-1340,32738,-1363,32737,-1385,32736,-1407,32735,-1430,32734,-1452,32733,-1474,32732,-1497,32731,-1519,32730,-1541,32729,-1564,32728,-1586,32727,-1608,32726,-1631,32725,-1653,32724,-1675,32723,-1698,32721,-1720,32720,-1742,32719,-1764,32718,-1787,32717,-1809,32715,-1831,32714,-1854,32713,-1876,32711,-1898,32710,-1921,32709,-1943,32708,-1965,32706,-1987,32705,-2010,32703,-2032,32702,-2054,32701,-2077,32699,-2099,32698,-2121,32696,-2144,32695,-2166,32693,-2188,32692,-2210,32690,-2233,32689,-2255,32687,-2277,32686,-2300,32684,-2322,32683,-2344,32681,-2366,32679,-2389,32678,-2411,32676,-2433,32674,-2456,32673,-2478,32671,-2500,32669,-2522,32668,-2545,32666,-2567,32664,-2589,32662,-2611,32661,-2634,32659,-2656,32657,-2678,32655,-2701,32653,-2723,32651,-2745,32649,-2767,32648,-2790,32646,-2812,32644,-2834,32642,-2856,32640,-2879,32638,-2901,32636,-2923,32634,-2945,32632,-2968,32630,-2990,32628,-3012,32626,-3034,32624,-3057,32622,-3079,32619,-3101,32617,-3123,32615,-3146,32613,-3168,32611,-3190,32609,-3212,32607,-3234,32604,-3257,32602,-3279,32600,-3301,32598,-3323,32595,-3346,32593,-3368,32591,-3390,32588,-3412,32586,-3434,32584,-3457,32581,-3479,32579,-3501,32577,-3523,32574,-3546,32572,-3568,32569,-3590,32567,-3612,32564,-3634,32562,-3657,32559,-3679,32557,-3701,32554,-3723,32552,-3745,32549,-3768,32547,-3790,32544,-3812,32541,-3834,32539,-3856,32536,-3878,32534,-3901,32531,-3923,32528,-3945,32526,-3967,32523,-3989,32520,-4012,32517,-4034,32515,-4056,32512,-4078,32509,-4100,32506,-4122,32503,-4145,32501,-4167,32498,-4189,32495,-4211,32492,-4233,32489,-4255,32486,-4277,32483,-4300,32480,-4322,32477,-4344,32474,-4366,32471,-4388,32468,-4410,32465,-4432,32462,-4455,32459,-4477,32456,-4499,32453,-4521,32450,-4543,32447,-4565,32444,-4587,32441,-4609,32438,-4632,32434,-4654,32431,-4676,32428,-4698,32425,-4720,32422,-4742,32418,-4764,32415,-4786,32412,-4808,32409,-4831,32405,-4853,32402,-4875,32399,-4897,32395,-4919,32392,-4941,32389,-4963,32385,-4985,32382,-5007,32378,-5029,32375,-5051,32371,-5073,32368,-5095,32364,-5118,32361,-5140,32357,-5162,32354,-5184,32350,-5206,32347,-5228,32343,-5250,32340,-5272,32336,-5294,32332,-5316,32329,-5338,32325,-5360,32322,-5382,32318,-5404,32314,-5426,32310,-5448,32307,-5470,32303,-5492,32299,-5514,32295,-5536,32292,-5558,32288,-5580,32284,-5602,32280,-5624,32276,-5646,32273,-5668,32269,-5690,32265,-5712,32261,-5734,32257,-5756,32253,-5778,32249,-5800,32245,-5822,32241,-5844,32237,-5866,32233,-5888,32229,-5910,32225,-5932,32221,-5954,32217,-5976,32213,-5998,32209,-6020,32205,-6042,32201,-6064,32196,-6086,32192,-6108,32188,-6130,32184,-6152,32180,-6174,32176,-6196,32171,-6218,32167,-6240,32163,-6262,32158,-6283,32154,-6305,32150,-6327,32146,-6349,32141,-6371,32137,-6393,32133,-6415,32128,-6437,32124,-6459,32119,-6481,32115,-6503,32110,-6524,32106,-6546,32102,-6568,32097,-6590,32093,-6612,32088,-6634,32084,-6656,32079,-6678,32074,-6699,32070,-6721,32065,-6743,32061,-6765,32056,-6787,32051,-6809,32047,-6831,32042,-6852,32037,-6874,32033,-6896,32028,-6918,32023,-6940,32019,-6962,32014,-6983,32009,-7005,32004,-7027,31999,-7049,31995,-7071,31990,-7093,31985,-7114,31980,-7136,31975,-7158,31970,-7180,31965,-7202,31961,-7223,31956,-7245,31951,-7267,31946,-7289,31941,-7311,31936,-7332,31931,-7354,31926,-7376,31921,-7398,31916,-7419,31911,-7441,31905,-7463,31900,-7485,31895,-7506,31890,-7528,31885,-7550,31880,-7572,31875,-7593,31869,-7615,31864,-7637,31859,-7658,31854,-7680,31849,-7702,31843,-7724,31838,-7745,31833,-7767,31827,-7789,31822,-7810,31817,-7832,31811,-7854,31806,-7876,31801,-7897,31795,-7919,31790,-7941,31785,-7962,31779,-7984,31774,-8006,31768,-8027,31763,-8049,31757,-8071,31752,-8092,31746,-8114,31741,-8135,31735,-8157,31729,-8179,31724,-8200,31718,-8222,31713,-8244,31707,-8265,31701,-8287,31696,-8308,31690,-8330,31684,-8352,31679,-8373,31673,-8395,31667,-8416,31662,-8438,31656,-8460,31650,-8481,31644,-8503,31638,-8524,31633,-8546,31627,-8568,31621,-8589,31615,-8611,31609,-8632,31603,-8654,31597,-8675,31591,-8697,31586,-8718,31580,-8740,31574,-8761,31568,-8783,31562,-8804,31556,-8826,31550,-8847,31544,-8869,31537,-8890,31531,-8912,31525,-8933,31519,-8955,31513,-8976,31507,-8998,31501,-9019,31495,-9041,31489,-9062,31482,-9084,31476,-9105,31470,-9127,31464,-9148,31457,-9170,31451,-9191,31445,-9213,31439,-9234,31432,-9255,31426,-9277,31420,-9298,31413,-9320,31407,-9341,31401,-9363,31394,-9384,31388,-9405,31381,-9427,31375,-9448,31369,-9469,31362,-9491,31356,-9512,31349,-9534,31343,-9555,31336,-9576,31330,-9598,31323,-9619,31316,-9640,31310,-9662,31303,-9683,31297,-9704,31290,-9726,31283,-9747,31277,-9768,31270,-9790,31263,-9811,31257,-9832,31250,-9854,31243,-9875,31236,-9896,31230,-9918,31223,-9939,31216,-9960,31209,-9981,31203,-10003,31196,-10024,31189,-10045,31182,-10067,31175,-10088,31168,-10109,31161,-10130,31154,-10152,31148,-10173,31141,-10194,31134,-10215,31127,-10236,31120,-10258,31113,-10279,31106,-10300,31099,-10321,31092,-10343,31085,-10364,31077,-10385,31070,-10406,31063,-10427,31056,-10448,31049,-10470,31042,-10491,31035,-10512,31028,-10533,31020,-10554,31013,-10575,31006,-10597,30999,-10618,30991,-10639,30984,-10660,30977,-10681,30970,-10702,30962,-10723,30955,-10744,30948,-10766,30940,-10787,30933,-10808,30926,-10829,30918,-10850,30911,-10871,30903,-10892,30896,-10913,30889,-10934,30881,-10955,30874,-10976,30866,-10997,30859,-11018,30851,-11039,30844,-11060,30836,-11081,30828,-11102,30821,-11123,30813,-11144,30806,-11165,30798,-11186,30790,-11207,30783,-11228,30775,-11249,30767,-11270,30760,-11291,30752,-11312,30744,-11333,30737,-11354,30729,-11375,30721,-11396,30713,-11417,30705,-11438,30698,-11459,30690,-11480,30682,-11501,30674,-11522,30666,-11543,30658,-11564,30651,-11584,30643,-11605,30635,-11626,30627,-11647,30619,-11668,30611,-11689,30603,-11710,30595,-11731,30587,-11751,30579,-11772,30571,-11793,30563,-11814,30555,-11835,30547,-11856,30539,-11877,30530,-11897,30522,-11918,30514,-11939,30506,-11960,30498,-11981,30490,-12001,30482,-12022,30473,-12043,30465,-12064,30457,-12084,30449,-12105,30440,-12126,30432,-12147,30424,-12167,30416,-12188,30407,-12209,30399,-12230,30391,-12250,30382,-12271,30374,-12292,30365,-12313,30357,-12333,30349,-12354,30340,-12375,30332,-12395,30323,-12416,30315,-12437,30306,-12457,30298,-12478,30289,-12499,30281,-12519,30272,-12540,30264,-12561,30255,-12581,30247,-12602,30238,-12622,30229,-12643,30221,-12664,30212,-12684,30203,-12705,30195,-12725,30186,-12746,30177,-12767,30169,-12787,30160,-12808,30151,-12828,30142,-12849,30134,-12869,30125,-12890,30116,-12910,30107,-12931,30098,-12951,30090,-12972,30081,-12993,30072,-13013,30063,-13034,30054,-13054,30045,-13075,30036,-13095,30027,-13115,30018,-13136,30009,-13156,30001,-13177,29992,-13197,29983,-13218,29973,-13238,29964,-13259,29955,-13279,29946,-13299,29937,-13320,29928,-13340,29919,-13361,29910,-13381,29901,-13401,29892,-13422,29883,-13442,29873,-13463,29864,-13483,29855,-13503,29846,-13524,29837,-13544,29827,-13564,29818,-13585,29809,-13605,29800,-13625,29790,-13646,29781,-13666,29772,-13686,29762,-13707,29753,-13727,29744,-13747,29734,-13767,29725,-13788,29715,-13808,29706,-13828,29696,-13848,29687,-13869,29678,-13889,29668,-13909,29659,-13929,29649,-13950,29640,-13970,29630,-13990,29621,-14010,29611,-14030,29601,-14051,29592,-14071,29582,-14091,29573,-14111,29563,-14131,29553,-14151,29544,-14172,29534,-14192,29524,-14212,29515,-14232,29505,-14252,29495,-14272,29485,-14292,29476,-14312,29466,-14332,29456,-14353,29446,-14373,29437,-14393,29427,-14413,29417,-14433,29407,-14453,29397,-14473,29387,-14493,29377,-14513,29368,-14533,29358,-14553,29348,-14573,29338,-14593,29328,-14613,29318,-14633,29308,-14653,29298,-14673,29288,-14693,29278,-14713,29268,-14733,29258,-14753,29248,-14773,29238,-14793,29227,-14813,29217,-14833,29207,-14853,29197,-14872,29187,-14892,29177,-14912,29167,-14932,29156,-14952,29146,-14972,29136,-14992,29126,-15012,29116,-15031,29105,-15051,29095,-15071,29085,-15091,29074,-15111,29064,-15131,29054,-15150,29044,-15170,29033,-15190,29023,-15210,29012,-15230,29002,-15249,28992,-15269,28981,-15289,28971,-15309,28960,-15328,28950,-15348,28939,-15368,28929,-15388,28918,-15407,28908,-15427,28897,-15447,28887,-15466,28876,-15486,28866,-15506,28855,-15526,28845,-15545,28834,-15565,28823,-15584,28813,-15604,28802,-15624,28791,-15643,28781,-15663,28770,-15683,28759,-15702,28749,-15722,28738,-15741,28727,-15761,28716,-15781,28706,-15800,28695,-15820,28684,-15839,28673,-15859,28662,-15878,28652,-15898,28641,-15918,28630,-15937,28619,-15957,28608,-15976,28597,-15996,28586,-16015,28575,-16035,28565,-16054,28554,-16073,28543,-16093,28532,-16112,28521,-16132,28510,-16151,28499,-16171,28488,-16190,28477,-16210,28465,-16229,28454,-16248,28443,-16268,28432,-16287,28421,-16307,28410,-16326,28399,-16345,28388,-16365,28377,-16384,28365,-16403,28354,-16423,28343,-16442,28332,-16461,28321,-16481,28309,-16500,28298,-16519,28287,-16539,28275,-16558,28264,-16577,28253,-16596,28242,-16616,28230,-16635,28219,-16654,28208,-16673,28196,-16693,28185,-16712,28173,-16731,28162,-16750,28151,-16769,28139,-16789,28128,-16808,28116,-16827,28105,-16846,28093,-16865,28082,-16884,28070,-16904,28059,-16923,28047,-16942,28036,-16961,28024,-16980,28012,-16999,28001,-17018,27989,-17037,27978,-17056,27966,-17075,27954,-17095,27943,-17114,27931,-17133,27919,-17152,27908,-17171,27896,-17190,27884,-17209,27872,-17228,27861,-17247,27849,-17266,27837,-17285,27825,-17304,27814,-17323,27802,-17342,27790,-17361,27778,-17380,27766,-17398,27754,-17417,27742,-17436,27731,-17455,27719,-17474,27707,-17493,27695,-17512,27683,-17531,27671,-17550,27659,-17568,27647,-17587,27635,-17606,27623,-17625,27611,-17644,27599,-17663,27587,-17681,27575,-17700,27563,-17719,27551,-17738,27538,-17757,27526,-17775,27514,-17794,27502,-17813,27490,-17832,27478,-17850,27466,-17869,27453,-17888,27441,-17907,27429,-17925,27417,-17944,27405,-17963,27392,-17981,27380,-18000,27368,-18019,27355,-18037,27343,-18056,27331,-18075,27319,-18093,27306,-18112,27294,-18131,27281,-18149,27269,-18168,27257,-18186,27244,-18205,27232,-18223,27219,-18242,27207,-18261,27195,-18279,27182,-18298,27170,-18316,27157,-18335,27145,-18353,27132,-18372,27120,-18390,27107,-18409,27094,-18427,27082,-18446,27069,-18464,27057,-18483,27044,-18501,27031,-18519,27019,-18538,27006,-18556,26994,-18575,26981,-18593,26968,-18611,26955,-18630,26943,-18648,26930,-18667,26917,-18685,26905,-18703,26892,-18722,26879,-18740,26866,-18758,26853,-18777,26841,-18795,26828,-18813,26815,-18831,26802,-18850,26789,-18868,26776,-18886,26764,-18905,26751,-18923,26738,-18941,26725,-18959,26712,-18977,26699,-18996,26686,-19014,26673,-19032,26660,-19050,26647,-19068,26634,-19087,26621,-19105,26608,-19123,26595,-19141,26582,-19159,26569,-19177,26556,-19195,26543,-19213,26530,-19232,26516,-19250,26503,-19268,26490,-19286,26477,-19304,26464,-19322,26451,-19340,26437,-19358,26424,-19376,26411,-19394,26398,-19412,26385,-19430,26371,-19448,26358,-19466,26345,-19484,26332,-19502,26318,-19520,26305,-19538,26292,-19556,26278,-19574,26265,-19591,26252,-19609,26238,-19627,26225,-19645,26211,-19663,26198,-19681,26185,-19699,26171,-19717,26158,-19734,26144,-19752,26131,-19770,26117,-19788,26104,-19806,26090,-19823,26077,-19841,26063,-19859,26050,-19877,26036,-19895,26022,-19912,26009,-19930,25995,-19948,25982,-19966,25968,-19983,25954,-20001,25941,-20019,25927,-20036,25913,-20054,25900,-20072,25886,-20089,25872,-20107,25859,-20125,25845,-20142,25831,-20160,25817,-20177,25804,-20195,25790,-20213,25776,-20230,25762,-20248,25749,-20265,25735,-20283,25721,-20300,25707,-20318,25693,-20335,25679,-20353,25665,-20370,25652,-20388,25638,-20405,25624,-20423,25610,-20440,25596,-20458,25582,-20475,25568,-20493,25554,-20510,25540,-20528,25526,-20545,25512,-20562,25498,-20580,25484,-20597,25470,-20614,25456,-20632,25442,-20649,25428,-20667,25414,-20684,25399,-20701,25385,-20719,25371,-20736,25357,-20753,25343,-20770,25329,-20788,25315,-20805,25300,-20822,25286,-20839,25272,-20857,25258,-20874,25243,-20891,25229,-20908,25215,-20926,25201,-20943,25186,-20960,25172,-20977,25158,-20994,25144,-21011,25129,-21028,25115,-21046,25100,-21063,25086,-21080,25072,-21097,25057,-21114,25043,-21131,25029,-21148,25014,-21165,25000,-21182,24985,-21199,24971,-21216,24956,-21233,24942,-21250,24927,-21267,24913,-21284,24898,-21301,24884,-21318,24869,-21335,24855,-21352,24840,-21369,24826,-21386,24811,-21403,24796,-21420,24782,-21437,24767,-21454,24753,-21471,24738,-21487,24723,-21504,24709,-21521,24694,-21538,24679,-21555,24664,-21572,24650,-21588,24635,-21605,24620,-21622,24606,-21639,24591,-21656,24576,-21672,24561,-21689,24546,-21706,24532,-21723,24517,-21739,24502,-21756,24487,-21773,24472,-21789,24457,-21806,24443,-21823,24428,-21839,24413,-21856,24398,-21873,24383,-21889,24368,-21906,24353,-21923,24338,-21939,24323,-21956,24308,-21972,24293,-21989,24278,-22005,24263,-22022,24248,-22039,24233,-22055,24218,-22072,24203,-22088,24188,-22105,24173,-22121,24158,-22138,24143,-22154,24128,-22170,24113,-22187,24097,-22203,24082,-22220,24067,-22236,24052,-22253,24037,-22269,24022,-22285,24006,-22302,23991,-22318,23976,-22334,23961,-22351,23945,-22367,23930,-22383,23915,-22400,23900,-22416,23884,-22432,23869,-22449,23854,-22465,23838,-22481,23823,-22497,23808,-22514,23792,-22530,23777,-22546,23762,-22562,23746,-22578,23731,-22595,23715,-22611,23700,-22627,23685,-22643,23669,-22659,23654,-22675,23638,-22692,23623,-22708,23607,-22724,23592,-22740,23576,-22756,23561,-22772,23545,-22788,23530,-22804,23514,-22820,23499,-22836,23483,-22852,23467,-22868,23452,-22884,23436,-22900,23421,-22916,23405,-22932,23389,-22948,23374,-22964,23358,-22980,23342,-22996,23327,-23012,23311,-23028,23295,-23044,23280,-23059,23264,-23075,23248,-23091,23232,-23107,23217,-23123,23201,-23139,23185,-23154,23169,-23170,23153,-23186,23138,-23202,23122,-23218,23106,-23233,23090,-23249,23074,-23265,23058,-23281,23043,-23296,23027,-23312,23011,-23328,22995,-23343,22979,-23359,22963,-23375,22947,-23390,22931,-23406,22915,-23422,22899,-23437,22883,-23453,22867,-23468,22851,-23484,22835,-23500,22819,-23515,22803,-23531,22787,-23546,22771,-23562,22755,-23577,22739,-23593,22723,-23608,22707,-23624,22691,-23639,22674,-23655,22658,-23670,22642,-23686,22626,-23701,22610,-23716,22594,-23732,22577,-23747,22561,-23763,22545,-23778,22529,-23793,22513,-23809,22496,-23824,22480,-23839,22464,-23855,22448,-23870,22431,-23885,22415,-23901,22399,-23916,22382,-23931,22366,-23946,22350,-23962,22333,-23977,22317,-23992,22301,-24007,22284,-24023,22268,-24038,22252,-24053,22235,-24068,22219,-24083,22202,-24098,22186,-24114,22169,-24129,22153,-24144,22137,-24159,22120,-24174,22104,-24189,22087,-24204,22071,-24219,22054,-24234,22038,-24249,22021,-24264,22004,-24279,21988,-24294,21971,-24309,21955,-24324,21938,-24339,21922,-24354,21905,-24369,21888,-24384,21872,-24399,21855,-24414,21838,-24429,21822,-24444,21805,-24458,21788,-24473,21772,-24488,21755,-24503,21738,-24518,21722,-24533,21705,-24547,21688,-24562,21671,-24577,21655,-24592,21638,-24607,21621,-24621,21604,-24636,21587,-24651,21571,-24665,21554,-24680,21537,-24695,21520,-24710,21503,-24724,21486,-24739,21470,-24754,21453,-24768,21436,-24783,21419,-24797,21402,-24812,21385,-24827,21368,-24841,21351,-24856,21334,-24870,21317,-24885,21300,-24899,21283,-24914,21266,-24928,21249,-24943,21232,-24957,21215,-24972,21198,-24986,21181,-25001,21164,-25015,21147,-25030,21130,-25044,21113,-25058,21096,-25073,21079,-25087,21062,-25101,21045,-25116,21027,-25130,21010,-25145,20993,-25159,20976,-25173,20959,-25187,20942,-25202,20925,-25216,20907,-25230,20890,-25244,20873,-25259,20856,-25273,20838,-25287,20821,-25301,20804,-25316,20787,-25330,20769,-25344,20752,-25358,20735,-25372,20718,-25386,20700,-25400,20683,-25415,20666,-25429,20648,-25443,20631,-25457,20613,-25471,20596,-25485,20579,-25499,20561,-25513,20544,-25527,20527,-25541,20509,-25555,20492,-25569,20474,-25583,20457,-25597,20439,-25611,20422,-25625,20404,-25639,20387,-25653,20369,-25666,20352,-25680,20334,-25694,20317,-25708,20299,-25722,20282,-25736,20264,-25750,20247,-25763,20229,-25777,20212,-25791,20194,-25805,20176,-25818,20159,-25832,20141,-25846,20124,-25860,20106,-25873,20088,-25887,20071,-25901,20053,-25914,20035,-25928,20018,-25942,20000,-25955,19982,-25969,19965,-25983,19947,-25996,19929,-26010,19911,-26023,19894,-26037,19876,-26051,19858,-26064,19840,-26078,19822,-26091,19805,-26105,19787,-26118,19769,-26132,19751,-26145,19733,-26159,19716,-26172,19698,-26186,19680,-26199,19662,-26212,19644,-26226,19626,-26239,19608,-26253,19590,-26266,19573,-26279,19555,-26293,19537,-26306,19519,-26319,19501,-26333,19483,-26346,19465,-26359,19447,-26372,19429,-26386,19411,-26399,19393,-26412,19375,-26425,19357,-26438,19339,-26452,19321,-26465,19303,-26478,19285,-26491,19267,-26504,19249,-26517,19231,-26531,19212,-26544,19194,-26557,19176,-26570,19158,-26583,19140,-26596,19122,-26609,19104,-26622,19086,-26635,19067,-26648,19049,-26661,19031,-26674,19013,-26687,18995,-26700,18976,-26713,18958,-26726,18940,-26739,18922,-26752,18904,-26765,18885,-26777,18867,-26790,18849,-26803,18830,-26816,18812,-26829,18794,-26842,18776,-26854,18757,-26867,18739,-26880,18721,-26893,18702,-26906,18684,-26918,18666,-26931,18647,-26944,18629,-26956,18610,-26969,18592,-26982,18574,-26995,18555,-27007,18537,-27020,18518,-27032,18500,-27045,18482,-27058,18463,-27070,18445,-27083,18426,-27095,18408,-27108,18389,-27121,18371,-27133,18352,-27146,18334,-27158,18315,-27171,18297,-27183,18278,-27196,18260,-27208,18241,-27220,18222,-27233,18204,-27245,18185,-27258,18167,-27270,18148,-27282,18130,-27295,18111,-27307,18092,-27320,18074,-27332,18055,-27344,18036,-27356,18018,-27369,17999,-27381,17980,-27393,17962,-27406,17943,-27418,17924,-27430,17906,-27442,17887,-27454,17868,-27467,17849,-27479,17831,-27491,17812,-27503,17793,-27515,17774,-27527,17756,-27539,17737,-27552,17718,-27564,17699,-27576,17680,-27588,17662,-27600,17643,-27612,17624,-27624,17605,-27636,17586,-27648,17567,-27660,17549,-27672,17530,-27684,17511,-27696,17492,-27708,17473,-27720,17454,-27732,17435,-27743,17416,-27755,17397,-27767,17379,-27779,17360,-27791,17341,-27803,17322,-27815,17303,-27826,17284,-27838,17265,-27850,17246,-27862,17227,-27873,17208,-27885,17189,-27897,17170,-27909,17151,-27920,17132,-27932,17113,-27944,17094,-27955,17074,-27967,17055,-27979,17036,-27990,17017,-28002,16998,-28013,16979,-28025,16960,-28037,16941,-28048,16922,-28060,16903,-28071,16883,-28083,16864,-28094,16845,-28106,16826,-28117,16807,-28129,16788,-28140,16768,-28152,16749,-28163,16730,-28174,16711,-28186,16692,-28197,16672,-28209,16653,-28220,16634,-28231,16615,-28243,16595,-28254,16576,-28265,16557,-28276,16538,-28288,16518,-28299,16499,-28310,16480,-28322,16460,-28333,16441,-28344,16422,-28355,16402,-28366,16383,-28378,16364,-28389,16344,-28400,16325,-28411,16306,-28422,16286,-28433,16267,-28444,16247,-28455,16228,-28466,16209,-28478,16189,-28489,16170,-28500,16150,-28511,16131,-28522,16111,-28533,16092,-28544,16072,-28555,16053,-28566,16034,-28576,16014,-28587,15995,-28598,15975,-28609,15956,-28620,15936,-28631,15917,-28642,15897,-28653,15877,-28663,15858,-28674,15838,-28685,15819,-28696,15799,-28707,15780,-28717,15760,-28728,15740,-28739,15721,-28750,15701,-28760,15682,-28771,15662,-28782,15642,-28792,15623,-28803,15603,-28814,15583,-28824,15564,-28835,15544,-28846,15525,-28856,15505,-28867,15485,-28877,15465,-28888,15446,-28898,15426,-28909,15406,-28919,15387,-28930,15367,-28940,15347,-28951,15327,-28961,15308,-28972,15288,-28982,15268,-28993,15248,-29003,15229,-29013,15209,-29024,15189,-29034,15169,-29045,15149,-29055,15130,-29065,15110,-29075,15090,-29086,15070,-29096,15050,-29106,15030,-29117,15011,-29127,14991,-29137,14971,-29147,14951,-29157,14931,-29168,14911,-29178,14891,-29188,14871,-29198,14852,-29208,14832,-29218,14812,-29228,14792,-29239,14772,-29249,14752,-29259,14732,-29269,14712,-29279,14692,-29289,14672,-29299,14652,-29309,14632,-29319,14612,-29329,14592,-29339,14572,-29349,14552,-29359,14532,-29369,14512,-29378,14492,-29388,14472,-29398,14452,-29408,14432,-29418,14412,-29428,14392,-29438,14372,-29447,14352,-29457,14331,-29467,14311,-29477,14291,-29486,14271,-29496,14251,-29506,14231,-29516,14211,-29525,14191,-29535,14171,-29545,14150,-29554,14130,-29564,14110,-29574,14090,-29583,14070,-29593,14050,-29602,14029,-29612,14009,-29622,13989,-29631,13969,-29641,13949,-29650,13928,-29660,13908,-29669,13888,-29679,13868,-29688,13847,-29697,13827,-29707,13807,-29716,13787,-29726,13766,-29735,13746,-29745,13726,-29754,13706,-29763,13685,-29773,13665,-29782,13645,-29791,13624,-29801,13604,-29810,13584,-29819,13563,-29828,13543,-29838,13523,-29847,13502,-29856,13482,-29865,13462,-29874,13441,-29884,13421,-29893,13400,-29902,13380,-29911,13360,-29920,13339,-29929,13319,-29938,13298,-29947,13278,-29956,13258,-29965,13237,-29974,13217,-29984,13196,-29993,13176,-30002,13155,-30010,13135,-30019,13114,-30028,13094,-30037,13074,-30046,13053,-30055,13033,-30064,13012,-30073,12992,-30082,12971,-30091,12950,-30099,12930,-30108,12909,-30117,12889,-30126,12868,-30135,12848,-30143,12827,-30152,12807,-30161,12786,-30170,12766,-30178,12745,-30187,12724,-30196,12704,-30204,12683,-30213,12663,-30222,12642,-30230,12621,-30239,12601,-30248,12580,-30256,12560,-30265,12539,-30273,12518,-30282,12498,-30290,12477,-30299,12456,-30307,12436,-30316,12415,-30324,12394,-30333,12374,-30341,12353,-30350,12332,-30358,12312,-30366,12291,-30375,12270,-30383,12249,-30392,12229,-30400,12208,-30408,12187,-30417,12166,-30425,12146,-30433,12125,-30441,12104,-30450,12083,-30458,12063,-30466,12042,-30474,12021,-30483,12000,-30491,11980,-30499,11959,-30507,11938,-30515,11917,-30523,11896,-30531,11876,-30540,11855,-30548,11834,-30556,11813,-30564,11792,-30572,11771,-30580,11750,-30588,11730,-30596,11709,-30604,11688,-30612,11667,-30620,11646,-30628,11625,-30636,11604,-30644,11583,-30652,11563,-30659,11542,-30667,11521,-30675,11500,-30683,11479,-30691,11458,-30699,11437,-30706,11416,-30714,11395,-30722,11374,-30730,11353,-30738,11332,-30745,11311,-30753,11290,-30761,11269,-30768,11248,-30776,11227,-30784,11206,-30791,11185,-30799,11164,-30807,11143,-30814,11122,-30822,11101,-30829,11080,-30837,11059,-30845,11038,-30852,11017,-30860,10996,-30867,10975,-30875,10954,-30882,10933,-30890,10912,-30897,10891,-30904,10870,-30912,10849,-30919,10828,-30927,10807,-30934,10786,-30941,10765,-30949,10743,-30956,10722,-30963,10701,-30971,10680,-30978,10659,-30985,10638,-30992,10617,-31000,10596,-31007,10574,-31014,10553,-31021,10532,-31029,10511,-31036,10490,-31043,10469,-31050,10447,-31057,10426,-31064,10405,-31071,10384,-31078,10363,-31086,10342,-31093,10320,-31100,10299,-31107,10278,-31114,10257,-31121,10235,-31128,10214,-31135,10193,-31142,10172,-31149,10151,-31155,10129,-31162,10108,-31169,10087,-31176,10066,-31183,10044,-31190,10023,-31197,10002,-31204,9980,-31210,9959,-31217,9938,-31224,9917,-31231,9895,-31237,9874,-31244,9853,-31251,9831,-31258,9810,-31264,9789,-31271,9767,-31278,9746,-31284,9725,-31291,9703,-31298,9682,-31304,9661,-31311,9639,-31317,9618,-31324,9597,-31331,9575,-31337,9554,-31344,9533,-31350,9511,-31357,9490,-31363,9468,-31370,9447,-31376,9426,-31382,9404,-31389,9383,-31395,9362,-31402,9340,-31408,9319,-31414,9297,-31421,9276,-31427,9254,-31433,9233,-31440,9212,-31446,9190,-31452,9169,-31458,9147,-31465,9126,-31471,9104,-31477,9083,-31483,9061,-31490,9040,-31496,9018,-31502,8997,-31508,8975,-31514,8954,-31520,8932,-31526,8911,-31532,8889,-31538,8868,-31545,8846,-31551,8825,-31557,8803,-31563,8782,-31569,8760,-31575,8739,-31581,8717,-31587,8696,-31592,8674,-31598,8653,-31604,8631,-31610,8610,-31616,8588,-31622,8567,-31628,8545,-31634,8523,-31639,8502,-31645,8480,-31651,8459,-31657,8437,-31663,8415,-31668,8394,-31674,8372,-31680,8351,-31685,8329,-31691,8307,-31697,8286,-31702,8264,-31708,8243,-31714,8221,-31719,8199,-31725,8178,-31730,8156,-31736,8134,-31742,8113,-31747,8091,-31753,8070,-31758,8048,-31764,8026,-31769,8005,-31775,7983,-31780,7961,-31786,7940,-31791,7918,-31796,7896,-31802,7875,-31807,7853,-31812,7831,-31818,7809,-31823,7788,-31828,7766,-31834,7744,-31839,7723,-31844,7701,-31850,7679,-31855,7657,-31860,7636,-31865,7614,-31870,7592,-31876,7571,-31881,7549,-31886,7527,-31891,7505,-31896,7484,-31901,7462,-31906,7440,-31912,7418,-31917,7397,-31922,7375,-31927,7353,-31932,7331,-31937,7310,-31942,7288,-31947,7266,-31952,7244,-31957,7222,-31962,7201,-31966,7179,-31971,7157,-31976,7135,-31981,7113,-31986,7092,-31991,7070,-31996,7048,-32000,7026,-32005,7004,-32010,6982,-32015,6961,-32020,6939,-32024,6917,-32029,6895,-32034,6873,-32038,6851,-32043,6830,-32048,6808,-32052,6786,-32057,6764,-32062,6742,-32066,6720,-32071,6698,-32075,6677,-32080,6655,-32085,6633,-32089,6611,-32094,6589,-32098,6567,-32103,6545,-32107,6523,-32111,6502,-32116,6480,-32120,6458,-32125,6436,-32129,6414,-32134,6392,-32138,6370,-32142,6348,-32147,6326,-32151,6304,-32155,6282,-32159,6261,-32164,6239,-32168,6217,-32172,6195,-32177,6173,-32181,6151,-32185,6129,-32189,6107,-32193,6085,-32197,6063,-32202,6041,-32206,6019,-32210,5997,-32214,5975,-32218,5953,-32222,5931,-32226,5909,-32230,5887,-32234,5865,-32238,5843,-32242,5821,-32246,5799,-32250,5777,-32254,5755,-32258,5733,-32262,5711,-32266,5689,-32270,5667,-32274,5645,-32277,5623,-32281,5601,-32285,5579,-32289,5557,-32293,5535,-32296,5513,-32300,5491,-32304,5469,-32308,5447,-32311,5425,-32315,5403,-32319,5381,-32323,5359,-32326,5337,-32330,5315,-32333,5293,-32337,5271,-32341,5249,-32344,5227,-32348,5205,-32351,5183,-32355,5161,-32358,5139,-32362,5117,-32365,5094,-32369,5072,-32372,5050,-32376,5028,-32379,5006,-32383,4984,-32386,4962,-32390,4940,-32393,4918,-32396,4896,-32400,4874,-32403,4852,-32406,4830,-32410,4807,-32413,4785,-32416,4763,-32419,4741,-32423,4719,-32426,4697,-32429,4675,-32432,4653,-32435,4631,-32439,4608,-32442,4586,-32445,4564,-32448,4542,-32451,4520,-32454,4498,-32457,4476,-32460,4454,-32463,4431,-32466,4409,-32469,4387,-32472,4365,-32475,4343,-32478,4321,-32481,4299,-32484,4276,-32487,4254,-32490,4232,-32493,4210,-32496,4188,-32499,4166,-32502,4144,-32504,4121,-32507,4099,-32510,4077,-32513,4055,-32516,4033,-32518,4011,-32521,3988,-32524,3966,-32527,3944,-32529,3922,-32532,3900,-32535,3877,-32537,3855,-32540,3833,-32542,3811,-32545,3789,-32548,3767,-32550,3744,-32553,3722,-32555,3700,-32558,3678,-32560,3656,-32563,3633,-32565,3611,-32568,3589,-32570,3567,-32573,3545,-32575,3522,-32578,3500,-32580,3478,-32582,3456,-32585,3433,-32587,3411,-32589,3389,-32592,3367,-32594,3345,-32596,3322,-32599,3300,-32601,3278,-32603,3256,-32605,3233,-32608,3211,-32610,3189,-32612,3167,-32614,3145,-32616,3122,-32618,3100,-32620,3078,-32623,3056,-32625,3033,-32627,3011,-32629,2989,-32631,2967,-32633,2944,-32635,2922,-32637,2900,-32639,2878,-32641,2855,-32643,2833,-32645,2811,-32647,2789,-32649,2766,-32650,2744,-32652,2722,-32654,2700,-32656,2677,-32658,2655,-32660,2633,-32662,2610,-32663,2588,-32665,2566,-32667,2544,-32669,2521,-32670,2499,-32672,2477,-32674,2455,-32675,2432,-32677,2410,-32679,2388,-32680,2365,-32682,2343,-32684,2321,-32685,2299,-32687,2276,-32688,2254,-32690,2232,-32691,2209,-32693,2187,-32694,2165,-32696,2143,-32697,2120,-32699,2098,-32700,2076,-32702,2053,-32703,2031,-32704,2009,-32706,1986,-32707,1964,-32709,1942,-32710,1920,-32711,1897,-32712,1875,-32714,1853,-32715,1830,-32716,1808,-32718,1786,-32719,1763,-32720,1741,-32721,1719,-32722,1697,-32724,1674,-32725,1652,-32726,1630,-32727,1607,-32728,1585,-32729,1563,-32730,1540,-32731,1518,-32732,1496,-32733,1473,-32734,1451,-32735,1429,-32736,1406,-32737,1384,-32738,1362,-32739,1339,-32740,1317,-32741,1295,-32742,1273,-32743,1250,-32744,1228,-32744,1206,-32745,1183,-32746,1161,-32747,1139,-32748,1116,-32748,1094,-32749,1072,-32750,1049,-32751,1027,-32751,1005,-32752,982,-32753,960,-32753,938,-32754,915,-32755,893,-32755,871,-32756,848,-32757,826,-32757,804,-32758,781,-32758,759,-32759,737,-32759,714,-32760,692,-32760,670,-32761,647,-32761,625,-32762,603,-32762,580,-32762,558,-32763,536,-32763,513,-32763,491,-32764,469,-32764,446,-32764,424,-32765,402,-32765,379,-32765,357,-32766,335,-32766,312,-32766,290,-32766,268,-32766,245,-32767,223,-32767,201,-32767,178,-32767,156,-32767,134,-32767,111,-32767,89,-32767,67,-32767,44,-32767,22,-32767,0,-32767,-23,-32767,-45,-32767,-68,-32767,-90,-32767,-112,-32767,-135,-32767,-157,-32767,-179,-32767,-202,-32767,-224,-32767,-246,-32767,-269,-32766,-291,-32766,-313,-32766,-336,-32766,-358,-32766,-380,-32765,-403,-32765,-425,-32765,-447,-32764,-470,-32764,-492,-32764,-514,-32763,-537,-32763,-559,-32763,-581,-32762,-604,-32762,-626,-32762,-648,-32761,-671,-32761,-693,-32760,-715,-32760,-738,-32759,-760,-32759,-782,-32758,-805,-32758,-827,-32757,-849,-32757,-872,-32756,-894,-32755,-916,-32755,-939,-32754,-961,-32753,-983,-32753,-1006,-32752,-1028,-32751,-1050,-32751,-1073,-32750,-1095,-32749,-1117,-32748,-1140,-32748,-1162,-32747,-1184,-32746,-1207,-32745,-1229,-32744,-1251,-32744,-1274,-32743,-1296,-32742,-1318,-32741,-1340,-32740,-1363,-32739,-1385,-32738,-1407,-32737,-1430,-32736,-1452,-32735,-1474,-32734,-1497,-32733,-1519,-32732,-1541,-32731,-1564,-32730,-1586,-32729,-1608,-32728,-1631,-32727,-1653,-32726,-1675,-32725,-1698,-32724,-1720,-32722,-1742,-32721,-1764,-32720,-1787,-32719,-1809,-32718,-1831,-32716,-1854,-32715,-1876,-32714,-1898,-32712,-1921,-32711,-1943,-32710,-1965,-32709,-1987,-32707,-2010,-32706,-2032,-32704,-2054,-32703,-2077,-32702,-2099,-32700,-2121,-32699,-2144,-32697,-2166,-32696,-2188,-32694,-2210,-32693,-2233,-32691,-2255,-32690,-2277,-32688,-2300,-32687,-2322,-32685,-2344,-32684,-2366,-32682,-2389,-32680,-2411,-32679,-2433,-32677,-2456,-32675,-2478,-32674,-2500,-32672,-2522,-32670,-2545,-32669,-2567,-32667,-2589,-32665,-2611,-32663,-2634,-32662,-2656,-32660,-2678,-32658,-2701,-32656,-2723,-32654,-2745,-32652,-2767,-32650,-2790,-32649,-2812,-32647,-2834,-32645,-2856,-32643,-2879,-32641,-2901,-32639,-2923,-32637,-2945,-32635,-2968,-32633,-2990,-32631,-3012,-32629,-3034,-32627,-3057,-32625,-3079,-32623,-3101,-32620,-3123,-32618,-3146,-32616,-3168,-32614,-3190,-32612,-3212,-32610,-3234,-32608,-3257,-32605,-3279,-32603,-3301,-32601,-3323,-32599,-3346,-32596,-3368,-32594,-3390,-32592,-3412,-32589,-3434,-32587,-3457,-32585,-3479,-32582,-3501,-32580,-3523,-32578,-3546,-32575,-3568,-32573,-3590,-32570,-3612,-32568,-3634,-32565,-3657,-32563,-3679,-32560,-3701,-32558,-3723,-32555,-3745,-32553,-3768,-32550,-3790,-32548,-3812,-32545,-3834,-32542,-3856,-32540,-3878,-32537,-3901,-32535,-3923,-32532,-3945,-32529,-3967,-32527,-3989,-32524,-4012,-32521,-4034,-32518,-4056,-32516,-4078,-32513,-4100,-32510,-4122,-32507,-4145,-32504,-4167,-32502,-4189,-32499,-4211,-32496,-4233,-32493,-4255,-32490,-4277,-32487,-4300,-32484,-4322,-32481,-4344,-32478,-4366,-32475,-4388,-32472,-4410,-32469,-4432,-32466,-4455,-32463,-4477,-32460,-4499,-32457,-4521,-32454,-4543,-32451,-4565,-32448,-4587,-32445,-4609,-32442,-4632,-32439,-4654,-32435,-4676,-32432,-4698,-32429,-4720,-32426,-4742,-32423,-4764,-32419,-4786,-32416,-4808,-32413,-4831,-32410,-4853,-32406,-4875,-32403,-4897,-32400,-4919,-32396,-4941,-32393,-4963,-32390,-4985,-32386,-5007,-32383,-5029,-32379,-5051,-32376,-5073,-32372,-5095,-32369,-5118,-32365,-5140,-32362,-5162,-32358,-5184,-32355,-5206,-32351,-5228,-32348,-5250,-32344,-5272,-32341,-5294,-32337,-5316,-32333,-5338,-32330,-5360,-32326,-5382,-32323,-5404,-32319,-5426,-32315,-5448,-32311,-5470,-32308,-5492,-32304,-5514,-32300,-5536,-32296,-5558,-32293,-5580,-32289,-5602,-32285,-5624,-32281,-5646,-32277,-5668,-32274,-5690,-32270,-5712,-32266,-5734,-32262,-5756,-32258,-5778,-32254,-5800,-32250,-5822,-32246,-5844,-32242,-5866,-32238,-5888,-32234,-5910,-32230,-5932,-32226,-5954,-32222,-5976,-32218,-5998,-32214,-6020,-32210,-6042,-32206,-6064,-32202,-6086,-32197,-6108,-32193,-6130,-32189,-6152,-32185,-6174,-32181,-6196,-32177,-6218,-32172,-6240,-32168,-6262,-32164,-6283,-32159,-6305,-32155,-6327,-32151,-6349,-32147,-6371,-32142,-6393,-32138,-6415,-32134,-6437,-32129,-6459,-32125,-6481,-32120,-6503,-32116,-6524,-32111,-6546,-32107,-6568,-32103,-6590,-32098,-6612,-32094,-6634,-32089,-6656,-32085,-6678,-32080,-6699,-32075,-6721,-32071,-6743,-32066,-6765,-32062,-6787,-32057,-6809,-32052,-6831,-32048,-6852,-32043,-6874,-32038,-6896,-32034,-6918,-32029,-6940,-32024,-6962,-32020,-6983,-32015,-7005,-32010,-7027,-32005,-7049,-32000,-7071,-31996,-7093,-31991,-7114,-31986,-7136,-31981,-7158,-31976,-7180,-31971,-7202,-31966,-7223,-31962,-7245,-31957,-7267,-31952,-7289,-31947,-7311,-31942,-7332,-31937,-7354,-31932,-7376,-31927,-7398,-31922,-7419,-31917,-7441,-31912,-7463,-31906,-7485,-31901,-7506,-31896,-7528,-31891,-7550,-31886,-7572,-31881,-7593,-31876,-7615,-31870,-7637,-31865,-7658,-31860,-7680,-31855,-7702,-31850,-7724,-31844,-7745,-31839,-7767,-31834,-7789,-31828,-7810,-31823,-7832,-31818,-7854,-31812,-7876,-31807,-7897,-31802,-7919,-31796,-7941,-31791,-7962,-31786,-7984,-31780,-8006,-31775,-8027,-31769,-8049,-31764,-8071,-31758,-8092,-31753,-8114,-31747,-8135,-31742,-8157,-31736,-8179,-31730,-8200,-31725,-8222,-31719,-8244,-31714,-8265,-31708,-8287,-31702,-8308,-31697,-8330,-31691,-8352,-31685,-8373,-31680,-8395,-31674,-8416,-31668,-8438,-31663,-8460,-31657,-8481,-31651,-8503,-31645,-8524,-31639,-8546,-31634,-8568,-31628,-8589,-31622,-8611,-31616,-8632,-31610,-8654,-31604,-8675,-31598,-8697,-31592,-8718,-31587,-8740,-31581,-8761,-31575,-8783,-31569,-8804,-31563,-8826,-31557,-8847,-31551,-8869,-31545,-8890,-31538,-8912,-31532,-8933,-31526,-8955,-31520,-8976,-31514,-8998,-31508,-9019,-31502,-9041,-31496,-9062,-31490,-9084,-31483,-9105,-31477,-9127,-31471,-9148,-31465,-9170,-31458,-9191,-31452,-9213,-31446,-9234,-31440,-9255,-31433,-9277,-31427,-9298,-31421,-9320,-31414,-9341,-31408,-9363,-31402,-9384,-31395,-9405,-31389,-9427,-31382,-9448,-31376,-9469,-31370,-9491,-31363,-9512,-31357,-9534,-31350,-9555,-31344,-9576,-31337,-9598,-31331,-9619,-31324,-9640,-31317,-9662,-31311,-9683,-31304,-9704,-31298,-9726,-31291,-9747,-31284,-9768,-31278,-9790,-31271,-9811,-31264,-9832,-31258,-9854,-31251,-9875,-31244,-9896,-31237,-9918,-31231,-9939,-31224,-9960,-31217,-9981,-31210,-10003,-31204,-10024,-31197,-10045,-31190,-10067,-31183,-10088,-31176,-10109,-31169,-10130,-31162,-10152,-31155,-10173,-31149,-10194,-31142,-10215,-31135,-10236,-31128,-10258,-31121,-10279,-31114,-10300,-31107,-10321,-31100,-10343,-31093,-10364,-31086,-10385,-31078,-10406,-31071,-10427,-31064,-10448,-31057,-10470,-31050,-10491,-31043,-10512,-31036,-10533,-31029,-10554,-31021,-10575,-31014,-10597,-31007,-10618,-31000,-10639,-30992,-10660,-30985,-10681,-30978,-10702,-30971,-10723,-30963,-10744,-30956,-10766,-30949,-10787,-30941,-10808,-30934,-10829,-30927,-10850,-30919,-10871,-30912,-10892,-30904,-10913,-30897,-10934,-30890,-10955,-30882,-10976,-30875,-10997,-30867,-11018,-30860,-11039,-30852,-11060,-30845,-11081,-30837,-11102,-30829,-11123,-30822,-11144,-30814,-11165,-30807,-11186,-30799,-11207,-30791,-11228,-30784,-11249,-30776,-11270,-30768,-11291,-30761,-11312,-30753,-11333,-30745,-11354,-30738,-11375,-30730,-11396,-30722,-11417,-30714,-11438,-30706,-11459,-30699,-11480,-30691,-11501,-30683,-11522,-30675,-11543,-30667,-11564,-30659,-11584,-30652,-11605,-30644,-11626,-30636,-11647,-30628,-11668,-30620,-11689,-30612,-11710,-30604,-11731,-30596,-11751,-30588,-11772,-30580,-11793,-30572,-11814,-30564,-11835,-30556,-11856,-30548,-11877,-30540,-11897,-30531,-11918,-30523,-11939,-30515,-11960,-30507,-11981,-30499,-12001,-30491,-12022,-30483,-12043,-30474,-12064,-30466,-12084,-30458,-12105,-30450,-12126,-30441,-12147,-30433,-12167,-30425,-12188,-30417,-12209,-30408,-12230,-30400,-12250,-30392,-12271,-30383,-12292,-30375,-12313,-30366,-12333,-30358,-12354,-30350,-12375,-30341,-12395,-30333,-12416,-30324,-12437,-30316,-12457,-30307,-12478,-30299,-12499,-30290,-12519,-30282,-12540,-30273,-12561,-30265,-12581,-30256,-12602,-30248,-12622,-30239,-12643,-30230,-12664,-30222,-12684,-30213,-12705,-30204,-12725,-30196,-12746,-30187,-12767,-30178,-12787,-30170,-12808,-30161,-12828,-30152,-12849,-30143,-12869,-30135,-12890,-30126,-12910,-30117,-12931,-30108,-12951,-30099,-12972,-30091,-12993,-30082,-13013,-30073,-13034,-30064,-13054,-30055,-13075,-30046,-13095,-30037,-13115,-30028,-13136,-30019,-13156,-30010,-13177,-30002,-13197,-29993,-13218,-29984,-13238,-29974,-13259,-29965,-13279,-29956,-13299,-29947,-13320,-29938,-13340,-29929,-13361,-29920,-13381,-29911,-13401,-29902,-13422,-29893,-13442,-29884,-13463,-29874,-13483,-29865,-13503,-29856,-13524,-29847,-13544,-29838,-13564,-29828,-13585,-29819,-13605,-29810,-13625,-29801,-13646,-29791,-13666,-29782,-13686,-29773,-13707,-29763,-13727,-29754,-13747,-29745,-13767,-29735,-13788,-29726,-13808,-29716,-13828,-29707,-13848,-29697,-13869,-29688,-13889,-29679,-13909,-29669,-13929,-29660,-13950,-29650,-13970,-29641,-13990,-29631,-14010,-29622,-14030,-29612,-14051,-29602,-14071,-29593,-14091,-29583,-14111,-29574,-14131,-29564,-14151,-29554,-14172,-29545,-14192,-29535,-14212,-29525,-14232,-29516,-14252,-29506,-14272,-29496,-14292,-29486,-14312,-29477,-14332,-29467,-14353,-29457,-14373,-29447,-14393,-29438,-14413,-29428,-14433,-29418,-14453,-29408,-14473,-29398,-14493,-29388,-14513,-29378,-14533,-29369,-14553,-29359,-14573,-29349,-14593,-29339,-14613,-29329,-14633,-29319,-14653,-29309,-14673,-29299,-14693,-29289,-14713,-29279,-14733,-29269,-14753,-29259,-14773,-29249,-14793,-29239,-14813,-29228,-14833,-29218,-14853,-29208,-14872,-29198,-14892,-29188,-14912,-29178,-14932,-29168,-14952,-29157,-14972,-29147,-14992,-29137,-15012,-29127,-15031,-29117,-15051,-29106,-15071,-29096,-15091,-29086,-15111,-29075,-15131,-29065,-15150,-29055,-15170,-29045,-15190,-29034,-15210,-29024,-15230,-29013,-15249,-29003,-15269,-28993,-15289,-28982,-15309,-28972,-15328,-28961,-15348,-28951,-15368,-28940,-15388,-28930,-15407,-28919,-15427,-28909,-15447,-28898,-15466,-28888,-15486,-28877,-15506,-28867,-15526,-28856,-15545,-28846,-15565,-28835,-15584,-28824,-15604,-28814,-15624,-28803,-15643,-28792,-15663,-28782,-15683,-28771,-15702,-28760,-15722,-28750,-15741,-28739,-15761,-28728,-15781,-28717,-15800,-28707,-15820,-28696,-15839,-28685,-15859,-28674,-15878,-28663,-15898,-28653,-15918,-28642,-15937,-28631,-15957,-28620,-15976,-28609,-15996,-28598,-16015,-28587,-16035,-28576,-16054,-28566,-16073,-28555,-16093,-28544,-16112,-28533,-16132,-28522,-16151,-28511,-16171,-28500,-16190,-28489,-16210,-28478,-16229,-28466,-16248,-28455,-16268,-28444,-16287,-28433,-16307,-28422,-16326,-28411,-16345,-28400,-16365,-28389,-16384,-28378,-16403,-28366,-16423,-28355,-16442,-28344,-16461,-28333,-16481,-28322,-16500,-28310,-16519,-28299,-16539,-28288,-16558,-28276,-16577,-28265,-16596,-28254,-16616,-28243,-16635,-28231,-16654,-28220,-16673,-28209,-16693,-28197,-16712,-28186,-16731,-28174,-16750,-28163,-16769,-28152,-16789,-28140,-16808,-28129,-16827,-28117,-16846,-28106,-16865,-28094,-16884,-28083,-16904,-28071,-16923,-28060,-16942,-28048,-16961,-28037,-16980,-28025,-16999,-28013,-17018,-28002,-17037,-27990,-17056,-27979,-17075,-27967,-17095,-27955,-17114,-27944,-17133,-27932,-17152,-27920,-17171,-27909,-17190,-27897,-17209,-27885,-17228,-27873,-17247,-27862,-17266,-27850,-17285,-27838,-17304,-27826,-17323,-27815,-17342,-27803,-17361,-27791,-17380,-27779,-17398,-27767,-17417,-27755,-17436,-27743,-17455,-27732,-17474,-27720,-17493,-27708,-17512,-27696,-17531,-27684,-17550,-27672,-17568,-27660,-17587,-27648,-17606,-27636,-17625,-27624,-17644,-27612,-17663,-27600,-17681,-27588,-17700,-27576,-17719,-27564,-17738,-27552,-17757,-27539,-17775,-27527,-17794,-27515,-17813,-27503,-17832,-27491,-17850,-27479,-17869,-27467,-17888,-27454,-17907,-27442,-17925,-27430,-17944,-27418,-17963,-27406,-17981,-27393,-18000,-27381,-18019,-27369,-18037,-27356,-18056,-27344,-18075,-27332,-18093,-27320,-18112,-27307,-18131,-27295,-18149,-27282,-18168,-27270,-18186,-27258,-18205,-27245,-18223,-27233,-18242,-27220,-18261,-27208,-18279,-27196,-18298,-27183,-18316,-27171,-18335,-27158,-18353,-27146,-18372,-27133,-18390,-27121,-18409,-27108,-18427,-27095,-18446,-27083,-18464,-27070,-18483,-27058,-18501,-27045,-18519,-27032,-18538,-27020,-18556,-27007,-18575,-26995,-18593,-26982,-18611,-26969,-18630,-26956,-18648,-26944,-18667,-26931,-18685,-26918,-18703,-26906,-18722,-26893,-18740,-26880,-18758,-26867,-18777,-26854,-18795,-26842,-18813,-26829,-18831,-26816,-18850,-26803,-18868,-26790,-18886,-26777,-18905,-26765,-18923,-26752,-18941,-26739,-18959,-26726,-18977,-26713,-18996,-26700,-19014,-26687,-19032,-26674,-19050,-26661,-19068,-26648,-19087,-26635,-19105,-26622,-19123,-26609,-19141,-26596,-19159,-26583,-19177,-26570,-19195,-26557,-19213,-26544,-19232,-26531,-19250,-26517,-19268,-26504,-19286,-26491,-19304,-26478,-19322,-26465,-19340,-26452,-19358,-26438,-19376,-26425,-19394,-26412,-19412,-26399,-19430,-26386,-19448,-26372,-19466,-26359,-19484,-26346,-19502,-26333,-19520,-26319,-19538,-26306,-19556,-26293,-19574,-26279,-19591,-26266,-19609,-26253,-19627,-26239,-19645,-26226,-19663,-26212,-19681,-26199,-19699,-26186,-19717,-26172,-19734,-26159,-19752,-26145,-19770,-26132,-19788,-26118,-19806,-26105,-19823,-26091,-19841,-26078,-19859,-26064,-19877,-26051,-19895,-26037,-19912,-26023,-19930,-26010,-19948,-25996,-19966,-25983,-19983,-25969,-20001,-25955,-20019,-25942,-20036,-25928,-20054,-25914,-20072,-25901,-20089,-25887,-20107,-25873,-20125,-25860,-20142,-25846,-20160,-25832,-20177,-25818,-20195,-25805,-20213,-25791,-20230,-25777,-20248,-25763,-20265,-25750,-20283,-25736,-20300,-25722,-20318,-25708,-20335,-25694,-20353,-25680,-20370,-25666,-20388,-25653,-20405,-25639,-20423,-25625,-20440,-25611,-20458,-25597,-20475,-25583,-20493,-25569,-20510,-25555,-20528,-25541,-20545,-25527,-20562,-25513,-20580,-25499,-20597,-25485,-20614,-25471,-20632,-25457,-20649,-25443,-20667,-25429,-20684,-25415,-20701,-25400,-20719,-25386,-20736,-25372,-20753,-25358,-20770,-25344,-20788,-25330,-20805,-25316,-20822,-25301,-20839,-25287,-20857,-25273,-20874,-25259,-20891,-25244,-20908,-25230,-20926,-25216,-20943,-25202,-20960,-25187,-20977,-25173,-20994,-25159,-21011,-25145,-21028,-25130,-21046,-25116,-21063,-25101,-21080,-25087,-21097,-25073,-21114,-25058,-21131,-25044,-21148,-25030,-21165,-25015,-21182,-25001,-21199,-24986,-21216,-24972,-21233,-24957,-21250,-24943,-21267,-24928,-21284,-24914,-21301,-24899,-21318,-24885,-21335,-24870,-21352,-24856,-21369,-24841,-21386,-24827,-21403,-24812,-21420,-24797,-21437,-24783,-21454,-24768,-21471,-24754,-21487,-24739,-21504,-24724,-21521,-24710,-21538,-24695,-21555,-24680,-21572,-24665,-21588,-24651,-21605,-24636,-21622,-24621,-21639,-24607,-21656,-24592,-21672,-24577,-21689,-24562,-21706,-24547,-21723,-24533,-21739,-24518,-21756,-24503,-21773,-24488,-21789,-24473,-21806,-24458,-21823,-24444,-21839,-24429,-21856,-24414,-21873,-24399,-21889,-24384,-21906,-24369,-21923,-24354,-21939,-24339,-21956,-24324,-21972,-24309,-21989,-24294,-22005,-24279,-22022,-24264,-22039,-24249,-22055,-24234,-22072,-24219,-22088,-24204,-22105,-24189,-22121,-24174,-22138,-24159,-22154,-24144,-22170,-24129,-22187,-24114,-22203,-24098,-22220,-24083,-22236,-24068,-22253,-24053,-22269,-24038,-22285,-24023,-22302,-24007,-22318,-23992,-22334,-23977,-22351,-23962,-22367,-23946,-22383,-23931,-22400,-23916,-22416,-23901,-22432,-23885,-22449,-23870,-22465,-23855,-22481,-23839,-22497,-23824,-22514,-23809,-22530,-23793,-22546,-23778,-22562,-23763,-22578,-23747,-22595,-23732,-22611,-23716,-22627,-23701,-22643,-23686,-22659,-23670,-22675,-23655,-22692,-23639,-22708,-23624,-22724,-23608,-22740,-23593,-22756,-23577,-22772,-23562,-22788,-23546,-22804,-23531,-22820,-23515,-22836,-23500,-22852,-23484,-22868,-23468,-22884,-23453,-22900,-23437,-22916,-23422,-22932,-23406,-22948,-23390,-22964,-23375,-22980,-23359,-22996,-23343,-23012,-23328,-23028,-23312,-23044,-23296,-23059,-23281,-23075,-23265,-23091,-23249,-23107,-23233,-23123,-23218,-23139,-23202,-23154,-23186,-23170,-23170,-23186,-23154,-23202,-23139,-23218,-23123,-23233,-23107,-23249,-23091,-23265,-23075,-23281,-23059,-23296,-23044,-23312,-23028,-23328,-23012,-23343,-22996,-23359,-22980,-23375,-22964,-23390,-22948,-23406,-22932,-23422,-22916,-23437,-22900,-23453,-22884,-23468,-22868,-23484,-22852,-23500,-22836,-23515,-22820,-23531,-22804,-23546,-22788,-23562,-22772,-23577,-22756,-23593,-22740,-23608,-22724,-23624,-22708,-23639,-22692,-23655,-22675,-23670,-22659,-23686,-22643,-23701,-22627,-23716,-22611,-23732,-22595,-23747,-22578,-23763,-22562,-23778,-22546,-23793,-22530,-23809,-22514,-23824,-22497,-23839,-22481,-23855,-22465,-23870,-22449,-23885,-22432,-23901,-22416,-23916,-22400,-23931,-22383,-23946,-22367,-23962,-22351,-23977,-22334,-23992,-22318,-24007,-22302,-24023,-22285,-24038,-22269,-24053,-22253,-24068,-22236,-24083,-22220,-24098,-22203,-24114,-22187,-24129,-22170,-24144,-22154,-24159,-22138,-24174,-22121,-24189,-22105,-24204,-22088,-24219,-22072,-24234,-22055,-24249,-22039,-24264,-22022,-24279,-22005,-24294,-21989,-24309,-21972,-24324,-21956,-24339,-21939,-24354,-21923,-24369,-21906,-24384,-21889,-24399,-21873,-24414,-21856,-24429,-21839,-24444,-21823,-24458,-21806,-24473,-21789,-24488,-21773,-24503,-21756,-24518,-21739,-24533,-21723,-24547,-21706,-24562,-21689,-24577,-21672,-24592,-21656,-24607,-21639,-24621,-21622,-24636,-21605,-24651,-21588,-24665,-21572,-24680,-21555,-24695,-21538,-24710,-21521,-24724,-21504,-24739,-21487,-24754,-21471,-24768,-21454,-24783,-21437,-24797,-21420,-24812,-21403,-24827,-21386,-24841,-21369,-24856,-21352,-24870,-21335,-24885,-21318,-24899,-21301,-24914,-21284,-24928,-21267,-24943,-21250,-24957,-21233,-24972,-21216,-24986,-21199,-25001,-21182,-25015,-21165,-25030,-21148,-25044,-21131,-25058,-21114,-25073,-21097,-25087,-21080,-25101,-21063,-25116,-21046,-25130,-21028,-25145,-21011,-25159,-20994,-25173,-20977,-25187,-20960,-25202,-20943,-25216,-20926,-25230,-20908,-25244,-20891,-25259,-20874,-25273,-20857,-25287,-20839,-25301,-20822,-25316,-20805,-25330,-20788,-25344,-20770,-25358,-20753,-25372,-20736,-25386,-20719,-25400,-20701,-25415,-20684,-25429,-20667,-25443,-20649,-25457,-20632,-25471,-20614,-25485,-20597,-25499,-20580,-25513,-20562,-25527,-20545,-25541,-20528,-25555,-20510,-25569,-20493,-25583,-20475,-25597,-20458,-25611,-20440,-25625,-20423,-25639,-20405,-25653,-20388,-25666,-20370,-25680,-20353,-25694,-20335,-25708,-20318,-25722,-20300,-25736,-20283,-25750,-20265,-25763,-20248,-25777,-20230,-25791,-20213,-25805,-20195,-25818,-20177,-25832,-20160,-25846,-20142,-25860,-20125,-25873,-20107,-25887,-20089,-25901,-20072,-25914,-20054,-25928,-20036,-25942,-20019,-25955,-20001,-25969,-19983,-25983,-19966,-25996,-19948,-26010,-19930,-26023,-19912,-26037,-19895,-26051,-19877,-26064,-19859,-26078,-19841,-26091,-19823,-26105,-19806,-26118,-19788,-26132,-19770,-26145,-19752,-26159,-19734,-26172,-19717,-26186,-19699,-26199,-19681,-26212,-19663,-26226,-19645,-26239,-19627,-26253,-19609,-26266,-19591,-26279,-19574,-26293,-19556,-26306,-19538,-26319,-19520,-26333,-19502,-26346,-19484,-26359,-19466,-26372,-19448,-26386,-19430,-26399,-19412,-26412,-19394,-26425,-19376,-26438,-19358,-26452,-19340,-26465,-19322,-26478,-19304,-26491,-19286,-26504,-19268,-26517,-19250,-26531,-19232,-26544,-19213,-26557,-19195,-26570,-19177,-26583,-19159,-26596,-19141,-26609,-19123,-26622,-19105,-26635,-19087,-26648,-19068,-26661,-19050,-26674,-19032,-26687,-19014,-26700,-18996,-26713,-18977,-26726,-18959,-26739,-18941,-26752,-18923,-26765,-18905,-26777,-18886,-26790,-18868,-26803,-18850,-26816,-18831,-26829,-18813,-26842,-18795,-26854,-18777,-26867,-18758,-26880,-18740,-26893,-18722,-26906,-18703,-26918,-18685,-26931,-18667,-26944,-18648,-26956,-18630,-26969,-18611,-26982,-18593,-26995,-18575,-27007,-18556,-27020,-18538,-27032,-18519,-27045,-18501,-27058,-18483,-27070,-18464,-27083,-18446,-27095,-18427,-27108,-18409,-27121,-18390,-27133,-18372,-27146,-18353,-27158,-18335,-27171,-18316,-27183,-18298,-27196,-18279,-27208,-18261,-27220,-18242,-27233,-18223,-27245,-18205,-27258,-18186,-27270,-18168,-27282,-18149,-27295,-18131,-27307,-18112,-27320,-18093,-27332,-18075,-27344,-18056,-27356,-18037,-27369,-18019,-27381,-18000,-27393,-17981,-27406,-17963,-27418,-17944,-27430,-17925,-27442,-17907,-27454,-17888,-27467,-17869,-27479,-17850,-27491,-17832,-27503,-17813,-27515,-17794,-27527,-17775,-27539,-17757,-27552,-17738,-27564,-17719,-27576,-17700,-27588,-17681,-27600,-17663,-27612,-17644,-27624,-17625,-27636,-17606,-27648,-17587,-27660,-17568,-27672,-17550,-27684,-17531,-27696,-17512,-27708,-17493,-27720,-17474,-27732,-17455,-27743,-17436,-27755,-17417,-27767,-17398,-27779,-17380,-27791,-17361,-27803,-17342,-27815,-17323,-27826,-17304,-27838,-17285,-27850,-17266,-27862,-17247,-27873,-17228,-27885,-17209,-27897,-17190,-27909,-17171,-27920,-17152,-27932,-17133,-27944,-17114,-27955,-17095,-27967,-17075,-27979,-17056,-27990,-17037,-28002,-17018,-28013,-16999,-28025,-16980,-28037,-16961,-28048,-16942,-28060,-16923,-28071,-16904,-28083,-16884,-28094,-16865,-28106,-16846,-28117,-16827,-28129,-16808,-28140,-16789,-28152,-16769,-28163,-16750,-28174,-16731,-28186,-16712,-28197,-16693,-28209,-16673,-28220,-16654,-28231,-16635,-28243,-16616,-28254,-16596,-28265,-16577,-28276,-16558,-28288,-16539,-28299,-16519,-28310,-16500,-28322,-16481,-28333,-16461,-28344,-16442,-28355,-16423,-28366,-16403,-28378,-16384,-28389,-16365,-28400,-16345,-28411,-16326,-28422,-16307,-28433,-16287,-28444,-16268,-28455,-16248,-28466,-16229,-28478,-16210,-28489,-16190,-28500,-16171,-28511,-16151,-28522,-16132,-28533,-16112,-28544,-16093,-28555,-16073,-28566,-16054,-28576,-16035,-28587,-16015,-28598,-15996,-28609,-15976,-28620,-15957,-28631,-15937,-28642,-15918,-28653,-15898,-28663,-15878,-28674,-15859,-28685,-15839,-28696,-15820,-28707,-15800,-28717,-15781,-28728,-15761,-28739,-15741,-28750,-15722,-28760,-15702,-28771,-15683,-28782,-15663,-28792,-15643,-28803,-15624,-28814,-15604,-28824,-15584,-28835,-15565,-28846,-15545,-28856,-15526,-28867,-15506,-28877,-15486,-28888,-15466,-28898,-15447,-28909,-15427,-28919,-15407,-28930,-15388,-28940,-15368,-28951,-15348,-28961,-15328,-28972,-15309,-28982,-15289,-28993,-15269,-29003,-15249,-29013,-15230,-29024,-15210,-29034,-15190,-29045,-15170,-29055,-15150,-29065,-15131,-29075,-15111,-29086,-15091,-29096,-15071,-29106,-15051,-29117,-15031,-29127,-15012,-29137,-14992,-29147,-14972,-29157,-14952,-29168,-14932,-29178,-14912,-29188,-14892,-29198,-14872,-29208,-14853,-29218,-14833,-29228,-14813,-29239,-14793,-29249,-14773,-29259,-14753,-29269,-14733,-29279,-14713,-29289,-14693,-29299,-14673,-29309,-14653,-29319,-14633,-29329,-14613,-29339,-14593,-29349,-14573,-29359,-14553,-29369,-14533,-29378,-14513,-29388,-14493,-29398,-14473,-29408,-14453,-29418,-14433,-29428,-14413,-29438,-14393,-29447,-14373,-29457,-14353,-29467,-14332,-29477,-14312,-29486,-14292,-29496,-14272,-29506,-14252,-29516,-14232,-29525,-14212,-29535,-14192,-29545,-14172,-29554,-14151,-29564,-14131,-29574,-14111,-29583,-14091,-29593,-14071,-29602,-14051,-29612,-14030,-29622,-14010,-29631,-13990,-29641,-13970,-29650,-13950,-29660,-13929,-29669,-13909,-29679,-13889,-29688,-13869,-29697,-13848,-29707,-13828,-29716,-13808,-29726,-13788,-29735,-13767,-29745,-13747,-29754,-13727,-29763,-13707,-29773,-13686,-29782,-13666,-29791,-13646,-29801,-13625,-29810,-13605,-29819,-13585,-29828,-13564,-29838,-13544,-29847,-13524,-29856,-13503,-29865,-13483,-29874,-13463,-29884,-13442,-29893,-13422,-29902,-13401,-29911,-13381,-29920,-13361,-29929,-13340,-29938,-13320,-29947,-13299,-29956,-13279,-29965,-13259,-29974,-13238,-29984,-13218,-29993,-13197,-30002,-13177,-30010,-13156,-30019,-13136,-30028,-13115,-30037,-13095,-30046,-13075,-30055,-13054,-30064,-13034,-30073,-13013,-30082,-12993,-30091,-12972,-30099,-12951,-30108,-12931,-30117,-12910,-30126,-12890,-30135,-12869,-30143,-12849,-30152,-12828,-30161,-12808,-30170,-12787,-30178,-12767,-30187,-12746,-30196,-12725,-30204,-12705,-30213,-12684,-30222,-12664,-30230,-12643,-30239,-12622,-30248,-12602,-30256,-12581,-30265,-12561,-30273,-12540,-30282,-12519,-30290,-12499,-30299,-12478,-30307,-12457,-30316,-12437,-30324,-12416,-30333,-12395,-30341,-12375,-30350,-12354,-30358,-12333,-30366,-12313,-30375,-12292,-30383,-12271,-30392,-12250,-30400,-12230,-30408,-12209,-30417,-12188,-30425,-12167,-30433,-12147,-30441,-12126,-30450,-12105,-30458,-12084,-30466,-12064,-30474,-12043,-30483,-12022,-30491,-12001,-30499,-11981,-30507,-11960,-30515,-11939,-30523,-11918,-30531,-11897,-30540,-11877,-30548,-11856,-30556,-11835,-30564,-11814,-30572,-11793,-30580,-11772,-30588,-11751,-30596,-11731,-30604,-11710,-30612,-11689,-30620,-11668,-30628,-11647,-30636,-11626,-30644,-11605,-30652,-11584,-30659,-11564,-30667,-11543,-30675,-11522,-30683,-11501,-30691,-11480,-30699,-11459,-30706,-11438,-30714,-11417,-30722,-11396,-30730,-11375,-30738,-11354,-30745,-11333,-30753,-11312,-30761,-11291,-30768,-11270,-30776,-11249,-30784,-11228,-30791,-11207,-30799,-11186,-30807,-11165,-30814,-11144,-30822,-11123,-30829,-11102,-30837,-11081,-30845,-11060,-30852,-11039,-30860,-11018,-30867,-10997,-30875,-10976,-30882,-10955,-30890,-10934,-30897,-10913,-30904,-10892,-30912,-10871,-30919,-10850,-30927,-10829,-30934,-10808,-30941,-10787,-30949,-10766,-30956,-10744,-30963,-10723,-30971,-10702,-30978,-10681,-30985,-10660,-30992,-10639,-31000,-10618,-31007,-10597,-31014,-10575,-31021,-10554,-31029,-10533,-31036,-10512,-31043,-10491,-31050,-10470,-31057,-10448,-31064,-10427,-31071,-10406,-31078,-10385,-31086,-10364,-31093,-10343,-31100,-10321,-31107,-10300,-31114,-10279,-31121,-10258,-31128,-10236,-31135,-10215,-31142,-10194,-31149,-10173,-31155,-10152,-31162,-10130,-31169,-10109,-31176,-10088,-31183,-10067,-31190,-10045,-31197,-10024,-31204,-10003,-31210,-9981,-31217,-9960,-31224,-9939,-31231,-9918,-31237,-9896,-31244,-9875,-31251,-9854,-31258,-9832,-31264,-9811,-31271,-9790,-31278,-9768,-31284,-9747,-31291,-9726,-31298,-9704,-31304,-9683,-31311,-9662,-31317,-9640,-31324,-9619,-31331,-9598,-31337,-9576,-31344,-9555,-31350,-9534,-31357,-9512,-31363,-9491,-31370,-9469,-31376,-9448,-31382,-9427,-31389,-9405,-31395,-9384,-31402,-9363,-31408,-9341,-31414,-9320,-31421,-9298,-31427,-9277,-31433,-9255,-31440,-9234,-31446,-9213,-31452,-9191,-31458,-9170,-31465,-9148,-31471,-9127,-31477,-9105,-31483,-9084,-31490,-9062,-31496,-9041,-31502,-9019,-31508,-8998,-31514,-8976,-31520,-8955,-31526,-8933,-31532,-8912,-31538,-8890,-31545,-8869,-31551,-8847,-31557,-8826,-31563,-8804,-31569,-8783,-31575,-8761,-31581,-8740,-31587,-8718,-31592,-8697,-31598,-8675,-31604,-8654,-31610,-8632,-31616,-8611,-31622,-8589,-31628,-8568,-31634,-8546,-31639,-8524,-31645,-8503,-31651,-8481,-31657,-8460,-31663,-8438,-31668,-8416,-31674,-8395,-31680,-8373,-31685,-8352,-31691,-8330,-31697,-8308,-31702,-8287,-31708,-8265,-31714,-8244,-31719,-8222,-31725,-8200,-31730,-8179,-31736,-8157,-31742,-8135,-31747,-8114,-31753,-8092,-31758,-8071,-31764,-8049,-31769,-8027,-31775,-8006,-31780,-7984,-31786,-7962,-31791,-7941,-31796,-7919,-31802,-7897,-31807,-7876,-31812,-7854,-31818,-7832,-31823,-7810,-31828,-7789,-31834,-7767,-31839,-7745,-31844,-7724,-31850,-7702,-31855,-7680,-31860,-7658,-31865,-7637,-31870,-7615,-31876,-7593,-31881,-7572,-31886,-7550,-31891,-7528,-31896,-7506,-31901,-7485,-31906,-7463,-31912,-7441,-31917,-7419,-31922,-7398,-31927,-7376,-31932,-7354,-31937,-7332,-31942,-7311,-31947,-7289,-31952,-7267,-31957,-7245,-31962,-7223,-31966,-7202,-31971,-7180,-31976,-7158,-31981,-7136,-31986,-7114,-31991,-7093,-31996,-7071,-32000,-7049,-32005,-7027,-32010,-7005,-32015,-6983,-32020,-6962,-32024,-6940,-32029,-6918,-32034,-6896,-32038,-6874,-32043,-6852,-32048,-6831,-32052,-6809,-32057,-6787,-32062,-6765,-32066,-6743,-32071,-6721,-32075,-6699,-32080,-6678,-32085,-6656,-32089,-6634,-32094,-6612,-32098,-6590,-32103,-6568,-32107,-6546,-32111,-6524,-32116,-6503,-32120,-6481,-32125,-6459,-32129,-6437,-32134,-6415,-32138,-6393,-32142,-6371,-32147,-6349,-32151,-6327,-32155,-6305,-32159,-6283,-32164,-6262,-32168,-6240,-32172,-6218,-32177,-6196,-32181,-6174,-32185,-6152,-32189,-6130,-32193,-6108,-32197,-6086,-32202,-6064,-32206,-6042,-32210,-6020,-32214,-5998,-32218,-5976,-32222,-5954,-32226,-5932,-32230,-5910,-32234,-5888,-32238,-5866,-32242,-5844,-32246,-5822,-32250,-5800,-32254,-5778,-32258,-5756,-32262,-5734,-32266,-5712,-32270,-5690,-32274,-5668,-32277,-5646,-32281,-5624,-32285,-5602,-32289,-5580,-32293,-5558,-32296,-5536,-32300,-5514,-32304,-5492,-32308,-5470,-32311,-5448,-32315,-5426,-32319,-5404,-32323,-5382,-32326,-5360,-32330,-5338,-32333,-5316,-32337,-5294,-32341,-5272,-32344,-5250,-32348,-5228,-32351,-5206,-32355,-5184,-32358,-5162,-32362,-5140,-32365,-5118,-32369,-5095,-32372,-5073,-32376,-5051,-32379,-5029,-32383,-5007,-32386,-4985,-32390,-4963,-32393,-4941,-32396,-4919,-32400,-4897,-32403,-4875,-32406,-4853,-32410,-4831,-32413,-4808,-32416,-4786,-32419,-4764,-32423,-4742,-32426,-4720,-32429,-4698,-32432,-4676,-32435,-4654,-32439,-4632,-32442,-4609,-32445,-4587,-32448,-4565,-32451,-4543,-32454,-4521,-32457,-4499,-32460,-4477,-32463,-4455,-32466,-4432,-32469,-4410,-32472,-4388,-32475,-4366,-32478,-4344,-32481,-4322,-32484,-4300,-32487,-4277,-32490,-4255,-32493,-4233,-32496,-4211,-32499,-4189,-32502,-4167,-32504,-4145,-32507,-4122,-32510,-4100,-32513,-4078,-32516,-4056,-32518,-4034,-32521,-4012,-32524,-3989,-32527,-3967,-32529,-3945,-32532,-3923,-32535,-3901,-32537,-3878,-32540,-3856,-32542,-3834,-32545,-3812,-32548,-3790,-32550,-3768,-32553,-3745,-32555,-3723,-32558,-3701,-32560,-3679,-32563,-3657,-32565,-3634,-32568,-3612,-32570,-3590,-32573,-3568,-32575,-3546,-32578,-3523,-32580,-3501,-32582,-3479,-32585,-3457,-32587,-3434,-32589,-3412,-32592,-3390,-32594,-3368,-32596,-3346,-32599,-3323,-32601,-3301,-32603,-3279,-32605,-3257,-32608,-3234,-32610,-3212,-32612,-3190,-32614,-3168,-32616,-3146,-32618,-3123,-32620,-3101,-32623,-3079,-32625,-3057,-32627,-3034,-32629,-3012,-32631,-2990,-32633,-2968,-32635,-2945,-32637,-2923,-32639,-2901,-32641,-2879,-32643,-2856,-32645,-2834,-32647,-2812,-32649,-2790,-32650,-2767,-32652,-2745,-32654,-2723,-32656,-2701,-32658,-2678,-32660,-2656,-32662,-2634,-32663,-2611,-32665,-2589,-32667,-2567,-32669,-2545,-32670,-2522,-32672,-2500,-32674,-2478,-32675,-2456,-32677,-2433,-32679,-2411,-32680,-2389,-32682,-2366,-32684,-2344,-32685,-2322,-32687,-2300,-32688,-2277,-32690,-2255,-32691,-2233,-32693,-2210,-32694,-2188,-32696,-2166,-32697,-2144,-32699,-2121,-32700,-2099,-32702,-2077,-32703,-2054,-32704,-2032,-32706,-2010,-32707,-1987,-32709,-1965,-32710,-1943,-32711,-1921,-32712,-1898,-32714,-1876,-32715,-1854,-32716,-1831,-32718,-1809,-32719,-1787,-32720,-1764,-32721,-1742,-32722,-1720,-32724,-1698,-32725,-1675,-32726,-1653,-32727,-1631,-32728,-1608,-32729,-1586,-32730,-1564,-32731,-1541,-32732,-1519,-32733,-1497,-32734,-1474,-32735,-1452,-32736,-1430,-32737,-1407,-32738,-1385,-32739,-1363,-32740,-1340,-32741,-1318,-32742,-1296,-32743,-1274,-32744,-1251,-32744,-1229,-32745,-1207,-32746,-1184,-32747,-1162,-32748,-1140,-32748,-1117,-32749,-1095,-32750,-1073,-32751,-1050,-32751,-1028,-32752,-1006,-32753,-983,-32753,-961,-32754,-939,-32755,-916,-32755,-894,-32756,-872,-32757,-849,-32757,-827,-32758,-805,-32758,-782,-32759,-760,-32759,-738,-32760,-715,-32760,-693,-32761,-671,-32761,-648,-32762,-626,-32762,-604,-32762,-581,-32763,-559,-32763,-537,-32763,-514,-32764,-492,-32764,-470,-32764,-447,-32765,-425,-32765,-403,-32765,-380,-32766,-358,-32766,-336,-32766,-313,-32766,-291,-32766,-269,-32767,-246,-32767,-224,-32767,-202,-32767,-179,-32767,-157,-32767,-135,-32767,-112,-32767,-90,-32767,-68,-32767,-45,-32767,-23,-32767,-1,-32767,22,-32767,44,-32767,67,-32767,89,-32767,111,-32767,134,-32767,156,-32767,178,-32767,201,-32767,223,-32767,245,-32766,268,-32766,290,-32766,312,-32766,335,-32766,357,-32765,379,-32765,402,-32765,424,-32764,446,-32764,469,-32764,491,-32763,513,-32763,536,-32763,558,-32762,580,-32762,603,-32762,625,-32761,647,-32761,670,-32760,692,-32760,714,-32759,737,-32759,759,-32758,781,-32758,804,-32757,826,-32757,848,-32756,871,-32755,893,-32755,915,-32754,938,-32753,960,-32753,982,-32752,1005,-32751,1027,-32751,1049,-32750,1072,-32749,1094,-32748,1116,-32748,1139,-32747,1161,-32746,1183,-32745,1206,-32744,1228,-32744,1250,-32743,1273,-32742,1295,-32741,1317,-32740,1339,-32739,1362,-32738,1384,-32737,1406,-32736,1429,-32735,1451,-32734,1473,-32733,1496,-32732,1518,-32731,1540,-32730,1563,-32729,1585,-32728,1607,-32727,1630,-32726,1652,-32725,1674,-32724,1697,-32722,1719,-32721,1741,-32720,1763,-32719,1786,-32718,1808,-32716,1830,-32715,1853,-32714,1875,-32712,1897,-32711,1920,-32710,1942,-32709,1964,-32707,1986,-32706,2009,-32704,2031,-32703,2053,-32702,2076,-32700,2098,-32699,2120,-32697,2143,-32696,2165,-32694,2187,-32693,2209,-32691,2232,-32690,2254,-32688,2276,-32687,2299,-32685,2321,-32684,2343,-32682,2365,-32680,2388,-32679,2410,-32677,2432,-32675,2455,-32674,2477,-32672,2499,-32670,2521,-32669,2544,-32667,2566,-32665,2588,-32663,2610,-32662,2633,-32660,2655,-32658,2677,-32656,2700,-32654,2722,-32652,2744,-32650,2766,-32649,2789,-32647,2811,-32645,2833,-32643,2855,-32641,2878,-32639,2900,-32637,2922,-32635,2944,-32633,2967,-32631,2989,-32629,3011,-32627,3033,-32625,3056,-32623,3078,-32620,3100,-32618,3122,-32616,3145,-32614,3167,-32612,3189,-32610,3211,-32608,3233,-32605,3256,-32603,3278,-32601,3300,-32599,3322,-32596,3345,-32594,3367,-32592,3389,-32589,3411,-32587,3433,-32585,3456,-32582,3478,-32580,3500,-32578,3522,-32575,3545,-32573,3567,-32570,3589,-32568,3611,-32565,3633,-32563,3656,-32560,3678,-32558,3700,-32555,3722,-32553,3744,-32550,3767,-32548,3789,-32545,3811,-32542,3833,-32540,3855,-32537,3877,-32535,3900,-32532,3922,-32529,3944,-32527,3966,-32524,3988,-32521,4011,-32518,4033,-32516,4055,-32513,4077,-32510,4099,-32507,4121,-32504,4144,-32502,4166,-32499,4188,-32496,4210,-32493,4232,-32490,4254,-32487,4276,-32484,4299,-32481,4321,-32478,4343,-32475,4365,-32472,4387,-32469,4409,-32466,4431,-32463,4454,-32460,4476,-32457,4498,-32454,4520,-32451,4542,-32448,4564,-32445,4586,-32442,4608,-32439,4631,-32435,4653,-32432,4675,-32429,4697,-32426,4719,-32423,4741,-32419,4763,-32416,4785,-32413,4807,-32410,4830,-32406,4852,-32403,4874,-32400,4896,-32396,4918,-32393,4940,-32390,4962,-32386,4984,-32383,5006,-32379,5028,-32376,5050,-32372,5072,-32369,5094,-32365,5117,-32362,5139,-32358,5161,-32355,5183,-32351,5205,-32348,5227,-32344,5249,-32341,5271,-32337,5293,-32333,5315,-32330,5337,-32326,5359,-32323,5381,-32319,5403,-32315,5425,-32311,5447,-32308,5469,-32304,5491,-32300,5513,-32296,5535,-32293,5557,-32289,5579,-32285,5601,-32281,5623,-32277,5645,-32274,5667,-32270,5689,-32266,5711,-32262,5733,-32258,5755,-32254,5777,-32250,5799,-32246,5821,-32242,5843,-32238,5865,-32234,5887,-32230,5909,-32226,5931,-32222,5953,-32218,5975,-32214,5997,-32210,6019,-32206,6041,-32202,6063,-32197,6085,-32193,6107,-32189,6129,-32185,6151,-32181,6173,-32177,6195,-32172,6217,-32168,6239,-32164,6261,-32159,6282,-32155,6304,-32151,6326,-32147,6348,-32142,6370,-32138,6392,-32134,6414,-32129,6436,-32125,6458,-32120,6480,-32116,6502,-32111,6523,-32107,6545,-32103,6567,-32098,6589,-32094,6611,-32089,6633,-32085,6655,-32080,6677,-32075,6698,-32071,6720,-32066,6742,-32062,6764,-32057,6786,-32052,6808,-32048,6830,-32043,6851,-32038,6873,-32034,6895,-32029,6917,-32024,6939,-32020,6961,-32015,6982,-32010,7004,-32005,7026,-32000,7048,-31996,7070,-31991,7092,-31986,7113,-31981,7135,-31976,7157,-31971,7179,-31966,7201,-31962,7222,-31957,7244,-31952,7266,-31947,7288,-31942,7310,-31937,7331,-31932,7353,-31927,7375,-31922,7397,-31917,7418,-31912,7440,-31906,7462,-31901,7484,-31896,7505,-31891,7527,-31886,7549,-31881,7571,-31876,7592,-31870,7614,-31865,7636,-31860,7657,-31855,7679,-31850,7701,-31844,7723,-31839,7744,-31834,7766,-31828,7788,-31823,7809,-31818,7831,-31812,7853,-31807,7875,-31802,7896,-31796,7918,-31791,7940,-31786,7961,-31780,7983,-31775,8005,-31769,8026,-31764,8048,-31758,8070,-31753,8091,-31747,8113,-31742,8134,-31736,8156,-31730,8178,-31725,8199,-31719,8221,-31714,8243,-31708,8264,-31702,8286,-31697,8307,-31691,8329,-31685,8351,-31680,8372,-31674,8394,-31668,8415,-31663,8437,-31657,8459,-31651,8480,-31645,8502,-31639,8523,-31634,8545,-31628,8567,-31622,8588,-31616,8610,-31610,8631,-31604,8653,-31598,8674,-31592,8696,-31587,8717,-31581,8739,-31575,8760,-31569,8782,-31563,8803,-31557,8825,-31551,8846,-31545,8868,-31538,8889,-31532,8911,-31526,8932,-31520,8954,-31514,8975,-31508,8997,-31502,9018,-31496,9040,-31490,9061,-31483,9083,-31477,9104,-31471,9126,-31465,9147,-31458,9169,-31452,9190,-31446,9212,-31440,9233,-31433,9254,-31427,9276,-31421,9297,-31414,9319,-31408,9340,-31402,9362,-31395,9383,-31389,9404,-31382,9426,-31376,9447,-31370,9468,-31363,9490,-31357,9511,-31350,9533,-31344,9554,-31337,9575,-31331,9597,-31324,9618,-31317,9639,-31311,9661,-31304,9682,-31298,9703,-31291,9725,-31284,9746,-31278,9767,-31271,9789,-31264,9810,-31258,9831,-31251,9853,-31244,9874,-31237,9895,-31231,9917,-31224,9938,-31217,9959,-31210,9980,-31204,10002,-31197,10023,-31190,10044,-31183,10066,-31176,10087,-31169,10108,-31162,10129,-31155,10151,-31149,10172,-31142,10193,-31135,10214,-31128,10235,-31121,10257,-31114,10278,-31107,10299,-31100,10320,-31093,10342,-31086,10363,-31078,10384,-31071,10405,-31064,10426,-31057,10447,-31050,10469,-31043,10490,-31036,10511,-31029,10532,-31021,10553,-31014,10574,-31007,10596,-31000,10617,-30992,10638,-30985,10659,-30978,10680,-30971,10701,-30963,10722,-30956,10743,-30949,10765,-30941,10786,-30934,10807,-30927,10828,-30919,10849,-30912,10870,-30904,10891,-30897,10912,-30890,10933,-30882,10954,-30875,10975,-30867,10996,-30860,11017,-30852,11038,-30845,11059,-30837,11080,-30829,11101,-30822,11122,-30814,11143,-30807,11164,-30799,11185,-30791,11206,-30784,11227,-30776,11248,-30768,11269,-30761,11290,-30753,11311,-30745,11332,-30738,11353,-30730,11374,-30722,11395,-30714,11416,-30706,11437,-30699,11458,-30691,11479,-30683,11500,-30675,11521,-30667,11542,-30659,11563,-30652,11583,-30644,11604,-30636,11625,-30628,11646,-30620,11667,-30612,11688,-30604,11709,-30596,11730,-30588,11750,-30580,11771,-30572,11792,-30564,11813,-30556,11834,-30548,11855,-30540,11876,-30531,11896,-30523,11917,-30515,11938,-30507,11959,-30499,11980,-30491,12000,-30483,12021,-30474,12042,-30466,12063,-30458,12083,-30450,12104,-30441,12125,-30433,12146,-30425,12166,-30417,12187,-30408,12208,-30400,12229,-30392,12249,-30383,12270,-30375,12291,-30366,12312,-30358,12332,-30350,12353,-30341,12374,-30333,12394,-30324,12415,-30316,12436,-30307,12456,-30299,12477,-30290,12498,-30282,12518,-30273,12539,-30265,12560,-30256,12580,-30248,12601,-30239,12621,-30230,12642,-30222,12663,-30213,12683,-30204,12704,-30196,12724,-30187,12745,-30178,12766,-30170,12786,-30161,12807,-30152,12827,-30143,12848,-30135,12868,-30126,12889,-30117,12909,-30108,12930,-30099,12950,-30091,12971,-30082,12992,-30073,13012,-30064,13033,-30055,13053,-30046,13074,-30037,13094,-30028,13114,-30019,13135,-30010,13155,-30002,13176,-29993,13196,-29984,13217,-29974,13237,-29965,13258,-29956,13278,-29947,13298,-29938,13319,-29929,13339,-29920,13360,-29911,13380,-29902,13400,-29893,13421,-29884,13441,-29874,13462,-29865,13482,-29856,13502,-29847,13523,-29838,13543,-29828,13563,-29819,13584,-29810,13604,-29801,13624,-29791,13645,-29782,13665,-29773,13685,-29763,13706,-29754,13726,-29745,13746,-29735,13766,-29726,13787,-29716,13807,-29707,13827,-29697,13847,-29688,13868,-29679,13888,-29669,13908,-29660,13928,-29650,13949,-29641,13969,-29631,13989,-29622,14009,-29612,14029,-29602,14050,-29593,14070,-29583,14090,-29574,14110,-29564,14130,-29554,14150,-29545,14171,-29535,14191,-29525,14211,-29516,14231,-29506,14251,-29496,14271,-29486,14291,-29477,14311,-29467,14331,-29457,14352,-29447,14372,-29438,14392,-29428,14412,-29418,14432,-29408,14452,-29398,14472,-29388,14492,-29378,14512,-29369,14532,-29359,14552,-29349,14572,-29339,14592,-29329,14612,-29319,14632,-29309,14652,-29299,14672,-29289,14692,-29279,14712,-29269,14732,-29259,14752,-29249,14772,-29239,14792,-29228,14812,-29218,14832,-29208,14852,-29198,14871,-29188,14891,-29178,14911,-29168,14931,-29157,14951,-29147,14971,-29137,14991,-29127,15011,-29117,15030,-29106,15050,-29096,15070,-29086,15090,-29075,15110,-29065,15130,-29055,15149,-29045,15169,-29034,15189,-29024,15209,-29013,15229,-29003,15248,-28993,15268,-28982,15288,-28972,15308,-28961,15327,-28951,15347,-28940,15367,-28930,15387,-28919,15406,-28909,15426,-28898,15446,-28888,15465,-28877,15485,-28867,15505,-28856,15525,-28846,15544,-28835,15564,-28824,15583,-28814,15603,-28803,15623,-28792,15642,-28782,15662,-28771,15682,-28760,15701,-28750,15721,-28739,15740,-28728,15760,-28717,15780,-28707,15799,-28696,15819,-28685,15838,-28674,15858,-28663,15877,-28653,15897,-28642,15917,-28631,15936,-28620,15956,-28609,15975,-28598,15995,-28587,16014,-28576,16034,-28566,16053,-28555,16072,-28544,16092,-28533,16111,-28522,16131,-28511,16150,-28500,16170,-28489,16189,-28478,16209,-28466,16228,-28455,16247,-28444,16267,-28433,16286,-28422,16306,-28411,16325,-28400,16344,-28389,16364,-28378,16383,-28366,16402,-28355,16422,-28344,16441,-28333,16460,-28322,16480,-28310,16499,-28299,16518,-28288,16538,-28276,16557,-28265,16576,-28254,16595,-28243,16615,-28231,16634,-28220,16653,-28209,16672,-28197,16692,-28186,16711,-28174,16730,-28163,16749,-28152,16768,-28140,16788,-28129,16807,-28117,16826,-28106,16845,-28094,16864,-28083,16883,-28071,16903,-28060,16922,-28048,16941,-28037,16960,-28025,16979,-28013,16998,-28002,17017,-27990,17036,-27979,17055,-27967,17074,-27955,17094,-27944,17113,-27932,17132,-27920,17151,-27909,17170,-27897,17189,-27885,17208,-27873,17227,-27862,17246,-27850,17265,-27838,17284,-27826,17303,-27815,17322,-27803,17341,-27791,17360,-27779,17379,-27767,17397,-27755,17416,-27743,17435,-27732,17454,-27720,17473,-27708,17492,-27696,17511,-27684,17530,-27672,17549,-27660,17567,-27648,17586,-27636,17605,-27624,17624,-27612,17643,-27600,17662,-27588,17680,-27576,17699,-27564,17718,-27552,17737,-27539,17756,-27527,17774,-27515,17793,-27503,17812,-27491,17831,-27479,17849,-27467,17868,-27454,17887,-27442,17906,-27430,17924,-27418,17943,-27406,17962,-27393,17980,-27381,17999,-27369,18018,-27356,18036,-27344,18055,-27332,18074,-27320,18092,-27307,18111,-27295,18130,-27282,18148,-27270,18167,-27258,18185,-27245,18204,-27233,18222,-27220,18241,-27208,18260,-27196,18278,-27183,18297,-27171,18315,-27158,18334,-27146,18352,-27133,18371,-27121,18389,-27108,18408,-27095,18426,-27083,18445,-27070,18463,-27058,18482,-27045,18500,-27032,18518,-27020,18537,-27007,18555,-26995,18574,-26982,18592,-26969,18610,-26956,18629,-26944,18647,-26931,18666,-26918,18684,-26906,18702,-26893,18721,-26880,18739,-26867,18757,-26854,18776,-26842,18794,-26829,18812,-26816,18830,-26803,18849,-26790,18867,-26777,18885,-26765,18904,-26752,18922,-26739,18940,-26726,18958,-26713,18976,-26700,18995,-26687,19013,-26674,19031,-26661,19049,-26648,19067,-26635,19086,-26622,19104,-26609,19122,-26596,19140,-26583,19158,-26570,19176,-26557,19194,-26544,19212,-26531,19231,-26517,19249,-26504,19267,-26491,19285,-26478,19303,-26465,19321,-26452,19339,-26438,19357,-26425,19375,-26412,19393,-26399,19411,-26386,19429,-26372,19447,-26359,19465,-26346,19483,-26333,19501,-26319,19519,-26306,19537,-26293,19555,-26279,19573,-26266,19590,-26253,19608,-26239,19626,-26226,19644,-26212,19662,-26199,19680,-26186,19698,-26172,19716,-26159,19733,-26145,19751,-26132,19769,-26118,19787,-26105,19805,-26091,19822,-26078,19840,-26064,19858,-26051,19876,-26037,19894,-26023,19911,-26010,19929,-25996,19947,-25983,19965,-25969,19982,-25955,20000,-25942,20018,-25928,20035,-25914,20053,-25901,20071,-25887,20088,-25873,20106,-25860,20124,-25846,20141,-25832,20159,-25818,20176,-25805,20194,-25791,20212,-25777,20229,-25763,20247,-25750,20264,-25736,20282,-25722,20299,-25708,20317,-25694,20334,-25680,20352,-25666,20369,-25653,20387,-25639,20404,-25625,20422,-25611,20439,-25597,20457,-25583,20474,-25569,20492,-25555,20509,-25541,20527,-25527,20544,-25513,20561,-25499,20579,-25485,20596,-25471,20613,-25457,20631,-25443,20648,-25429,20666,-25415,20683,-25400,20700,-25386,20718,-25372,20735,-25358,20752,-25344,20769,-25330,20787,-25316,20804,-25301,20821,-25287,20838,-25273,20856,-25259,20873,-25244,20890,-25230,20907,-25216,20925,-25202,20942,-25187,20959,-25173,20976,-25159,20993,-25145,21010,-25130,21027,-25116,21045,-25101,21062,-25087,21079,-25073,21096,-25058,21113,-25044,21130,-25030,21147,-25015,21164,-25001,21181,-24986,21198,-24972,21215,-24957,21232,-24943,21249,-24928,21266,-24914,21283,-24899,21300,-24885,21317,-24870,21334,-24856,21351,-24841,21368,-24827,21385,-24812,21402,-24797,21419,-24783,21436,-24768,21453,-24754,21470,-24739,21486,-24724,21503,-24710,21520,-24695,21537,-24680,21554,-24665,21571,-24651,21587,-24636,21604,-24621,21621,-24607,21638,-24592,21655,-24577,21671,-24562,21688,-24547,21705,-24533,21722,-24518,21738,-24503,21755,-24488,21772,-24473,21788,-24458,21805,-24444,21822,-24429,21838,-24414,21855,-24399,21872,-24384,21888,-24369,21905,-24354,21922,-24339,21938,-24324,21955,-24309,21971,-24294,21988,-24279,22004,-24264,22021,-24249,22038,-24234,22054,-24219,22071,-24204,22087,-24189,22104,-24174,22120,-24159,22137,-24144,22153,-24129,22169,-24114,22186,-24098,22202,-24083,22219,-24068,22235,-24053,22252,-24038,22268,-24023,22284,-24007,22301,-23992,22317,-23977,22333,-23962,22350,-23946,22366,-23931,22382,-23916,22399,-23901,22415,-23885,22431,-23870,22448,-23855,22464,-23839,22480,-23824,22496,-23809,22513,-23793,22529,-23778,22545,-23763,22561,-23747,22577,-23732,22594,-23716,22610,-23701,22626,-23686,22642,-23670,22658,-23655,22674,-23639,22691,-23624,22707,-23608,22723,-23593,22739,-23577,22755,-23562,22771,-23546,22787,-23531,22803,-23515,22819,-23500,22835,-23484,22851,-23468,22867,-23453,22883,-23437,22899,-23422,22915,-23406,22931,-23390,22947,-23375,22963,-23359,22979,-23343,22995,-23328,23011,-23312,23027,-23296,23043,-23281,23058,-23265,23074,-23249,23090,-23233,23106,-23218,23122,-23202,23138,-23186,23153,-23170,23169,-23154,23185,-23139,23201,-23123,23217,-23107,23232,-23091,23248,-23075,23264,-23059,23280,-23044,23295,-23028,23311,-23012,23327,-22996,23342,-22980,23358,-22964,23374,-22948,23389,-22932,23405,-22916,23421,-22900,23436,-22884,23452,-22868,23467,-22852,23483,-22836,23499,-22820,23514,-22804,23530,-22788,23545,-22772,23561,-22756,23576,-22740,23592,-22724,23607,-22708,23623,-22692,23638,-22675,23654,-22659,23669,-22643,23685,-22627,23700,-22611,23715,-22595,23731,-22578,23746,-22562,23762,-22546,23777,-22530,23792,-22514,23808,-22497,23823,-22481,23838,-22465,23854,-22449,23869,-22432,23884,-22416,23900,-22400,23915,-22383,23930,-22367,23945,-22351,23961,-22334,23976,-22318,23991,-22302,24006,-22285,24022,-22269,24037,-22253,24052,-22236,24067,-22220,24082,-22203,24097,-22187,24113,-22170,24128,-22154,24143,-22138,24158,-22121,24173,-22105,24188,-22088,24203,-22072,24218,-22055,24233,-22039,24248,-22022,24263,-22005,24278,-21989,24293,-21972,24308,-21956,24323,-21939,24338,-21923,24353,-21906,24368,-21889,24383,-21873,24398,-21856,24413,-21839,24428,-21823,24443,-21806,24457,-21789,24472,-21773,24487,-21756,24502,-21739,24517,-21723,24532,-21706,24546,-21689,24561,-21672,24576,-21656,24591,-21639,24606,-21622,24620,-21605,24635,-21588,24650,-21572,24664,-21555,24679,-21538,24694,-21521,24709,-21504,24723,-21487,24738,-21471,24753,-21454,24767,-21437,24782,-21420,24796,-21403,24811,-21386,24826,-21369,24840,-21352,24855,-21335,24869,-21318,24884,-21301,24898,-21284,24913,-21267,24927,-21250,24942,-21233,24956,-21216,24971,-21199,24985,-21182,25000,-21165,25014,-21148,25029,-21131,25043,-21114,25057,-21097,25072,-21080,25086,-21063,25100,-21046,25115,-21028,25129,-21011,25144,-20994,25158,-20977,25172,-20960,25186,-20943,25201,-20926,25215,-20908,25229,-20891,25243,-20874,25258,-20857,25272,-20839,25286,-20822,25300,-20805,25315,-20788,25329,-20770,25343,-20753,25357,-20736,25371,-20719,25385,-20701,25399,-20684,25414,-20667,25428,-20649,25442,-20632,25456,-20614,25470,-20597,25484,-20580,25498,-20562,25512,-20545,25526,-20528,25540,-20510,25554,-20493,25568,-20475,25582,-20458,25596,-20440,25610,-20423,25624,-20405,25638,-20388,25652,-20370,25665,-20353,25679,-20335,25693,-20318,25707,-20300,25721,-20283,25735,-20265,25749,-20248,25762,-20230,25776,-20213,25790,-20195,25804,-20177,25817,-20160,25831,-20142,25845,-20125,25859,-20107,25872,-20089,25886,-20072,25900,-20054,25913,-20036,25927,-20019,25941,-20001,25954,-19983,25968,-19966,25982,-19948,25995,-19930,26009,-19912,26022,-19895,26036,-19877,26050,-19859,26063,-19841,26077,-19823,26090,-19806,26104,-19788,26117,-19770,26131,-19752,26144,-19734,26158,-19717,26171,-19699,26185,-19681,26198,-19663,26211,-19645,26225,-19627,26238,-19609,26252,-19591,26265,-19574,26278,-19556,26292,-19538,26305,-19520,26318,-19502,26332,-19484,26345,-19466,26358,-19448,26371,-19430,26385,-19412,26398,-19394,26411,-19376,26424,-19358,26437,-19340,26451,-19322,26464,-19304,26477,-19286,26490,-19268,26503,-19250,26516,-19232,26530,-19213,26543,-19195,26556,-19177,26569,-19159,26582,-19141,26595,-19123,26608,-19105,26621,-19087,26634,-19068,26647,-19050,26660,-19032,26673,-19014,26686,-18996,26699,-18977,26712,-18959,26725,-18941,26738,-18923,26751,-18905,26764,-18886,26776,-18868,26789,-18850,26802,-18831,26815,-18813,26828,-18795,26841,-18777,26853,-18758,26866,-18740,26879,-18722,26892,-18703,26905,-18685,26917,-18667,26930,-18648,26943,-18630,26955,-18611,26968,-18593,26981,-18575,26994,-18556,27006,-18538,27019,-18519,27031,-18501,27044,-18483,27057,-18464,27069,-18446,27082,-18427,27094,-18409,27107,-18390,27120,-18372,27132,-18353,27145,-18335,27157,-18316,27170,-18298,27182,-18279,27195,-18261,27207,-18242,27219,-18223,27232,-18205,27244,-18186,27257,-18168,27269,-18149,27281,-18131,27294,-18112,27306,-18093,27319,-18075,27331,-18056,27343,-18037,27355,-18019,27368,-18000,27380,-17981,27392,-17963,27405,-17944,27417,-17925,27429,-17907,27441,-17888,27453,-17869,27466,-17850,27478,-17832,27490,-17813,27502,-17794,27514,-17775,27526,-17757,27538,-17738,27551,-17719,27563,-17700,27575,-17681,27587,-17663,27599,-17644,27611,-17625,27623,-17606,27635,-17587,27647,-17568,27659,-17550,27671,-17531,27683,-17512,27695,-17493,27707,-17474,27719,-17455,27731,-17436,27742,-17417,27754,-17398,27766,-17380,27778,-17361,27790,-17342,27802,-17323,27814,-17304,27825,-17285,27837,-17266,27849,-17247,27861,-17228,27872,-17209,27884,-17190,27896,-17171,27908,-17152,27919,-17133,27931,-17114,27943,-17095,27954,-17075,27966,-17056,27978,-17037,27989,-17018,28001,-16999,28012,-16980,28024,-16961,28036,-16942,28047,-16923,28059,-16904,28070,-16884,28082,-16865,28093,-16846,28105,-16827,28116,-16808,28128,-16789,28139,-16769,28151,-16750,28162,-16731,28173,-16712,28185,-16693,28196,-16673,28208,-16654,28219,-16635,28230,-16616,28242,-16596,28253,-16577,28264,-16558,28275,-16539,28287,-16519,28298,-16500,28309,-16481,28321,-16461,28332,-16442,28343,-16423,28354,-16403,28365}; diff --git a/openair1/PHY/TOOLS/twiddle24576.h b/openair1/PHY/TOOLS/twiddle24576.h deleted file mode 100644 index 34fc59d7796a54a9aafb230ddcfa7c02dd0057c9..0000000000000000000000000000000000000000 --- a/openair1/PHY/TOOLS/twiddle24576.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:8191)/24576)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*(0:2:16382)/24576)); -twa2 = zeros(1,16384); -twb2 = zeros(1,16384); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); - - -*/ - -int16_t twa24576[16384] __attribute__((aligned(32))) = {32767,0,32766,-9,32766,-17,32766,-26,32766,-34,32766,-42,32766,-51,32766,-59,32766,-68,32766,-76,32766,-84,32766,-93,32766,-101,32766,-109,32766,-118,32766,-126,32766,-135,32766,-143,32766,-151,32766,-160,32766,-168,32766,-176,32766,-185,32766,-193,32766,-202,32766,-210,32766,-218,32766,-227,32766,-235,32766,-243,32766,-252,32765,-260,32765,-269,32765,-277,32765,-285,32765,-294,32765,-302,32765,-310,32765,-319,32765,-327,32765,-336,32765,-344,32765,-352,32765,-361,32764,-369,32764,-377,32764,-386,32764,-394,32764,-403,32764,-411,32764,-419,32764,-428,32764,-436,32763,-444,32763,-453,32763,-461,32763,-470,32763,-478,32763,-486,32763,-495,32763,-503,32763,-511,32762,-520,32762,-528,32762,-537,32762,-545,32762,-553,32762,-562,32762,-570,32761,-579,32761,-587,32761,-595,32761,-604,32761,-612,32761,-620,32760,-629,32760,-637,32760,-646,32760,-654,32760,-662,32760,-671,32759,-679,32759,-687,32759,-696,32759,-704,32759,-713,32759,-721,32758,-729,32758,-738,32758,-746,32758,-754,32758,-763,32757,-771,32757,-780,32757,-788,32757,-796,32757,-805,32756,-813,32756,-821,32756,-830,32756,-838,32756,-847,32755,-855,32755,-863,32755,-872,32755,-880,32754,-888,32754,-897,32754,-905,32754,-914,32754,-922,32753,-930,32753,-939,32753,-947,32753,-955,32752,-964,32752,-972,32752,-981,32752,-989,32751,-997,32751,-1006,32751,-1014,32751,-1022,32750,-1031,32750,-1039,32750,-1047,32750,-1056,32749,-1064,32749,-1073,32749,-1081,32748,-1089,32748,-1098,32748,-1106,32748,-1114,32747,-1123,32747,-1131,32747,-1140,32746,-1148,32746,-1156,32746,-1165,32746,-1173,32745,-1181,32745,-1190,32745,-1198,32744,-1207,32744,-1215,32744,-1223,32743,-1232,32743,-1240,32743,-1248,32742,-1257,32742,-1265,32742,-1274,32741,-1282,32741,-1290,32741,-1299,32740,-1307,32740,-1315,32740,-1324,32739,-1332,32739,-1340,32739,-1349,32738,-1357,32738,-1366,32738,-1374,32737,-1382,32737,-1391,32737,-1399,32736,-1407,32736,-1416,32736,-1424,32735,-1433,32735,-1441,32734,-1449,32734,-1458,32734,-1466,32733,-1474,32733,-1483,32733,-1491,32732,-1500,32732,-1508,32731,-1516,32731,-1525,32731,-1533,32730,-1541,32730,-1550,32729,-1558,32729,-1566,32729,-1575,32728,-1583,32728,-1592,32727,-1600,32727,-1608,32727,-1617,32726,-1625,32726,-1633,32725,-1642,32725,-1650,32725,-1659,32724,-1667,32724,-1675,32723,-1684,32723,-1692,32722,-1700,32722,-1709,32722,-1717,32721,-1725,32721,-1734,32720,-1742,32720,-1751,32719,-1759,32719,-1767,32718,-1776,32718,-1784,32717,-1792,32717,-1801,32717,-1809,32716,-1817,32716,-1826,32715,-1834,32715,-1843,32714,-1851,32714,-1859,32713,-1868,32713,-1876,32712,-1884,32712,-1893,32711,-1901,32711,-1909,32710,-1918,32710,-1926,32709,-1935,32709,-1943,32708,-1951,32708,-1960,32707,-1968,32707,-1976,32706,-1985,32706,-1993,32705,-2001,32705,-2010,32704,-2018,32704,-2027,32703,-2035,32703,-2043,32702,-2052,32702,-2060,32701,-2068,32701,-2077,32700,-2085,32700,-2093,32699,-2102,32699,-2110,32698,-2118,32697,-2127,32697,-2135,32696,-2144,32696,-2152,32695,-2160,32695,-2169,32694,-2177,32694,-2185,32693,-2194,32692,-2202,32692,-2210,32691,-2219,32691,-2227,32690,-2236,32690,-2244,32689,-2252,32688,-2261,32688,-2269,32687,-2277,32687,-2286,32686,-2294,32686,-2302,32685,-2311,32684,-2319,32684,-2327,32683,-2336,32683,-2344,32682,-2353,32681,-2361,32681,-2369,32680,-2378,32680,-2386,32679,-2394,32678,-2403,32678,-2411,32677,-2419,32676,-2428,32676,-2436,32675,-2444,32675,-2453,32674,-2461,32673,-2469,32673,-2478,32672,-2486,32671,-2495,32671,-2503,32670,-2511,32670,-2520,32669,-2528,32668,-2536,32668,-2545,32667,-2553,32666,-2561,32666,-2570,32665,-2578,32664,-2586,32664,-2595,32663,-2603,32662,-2611,32662,-2620,32661,-2628,32660,-2637,32660,-2645,32659,-2653,32658,-2662,32658,-2670,32657,-2678,32656,-2687,32656,-2695,32655,-2703,32654,-2712,32653,-2720,32653,-2728,32652,-2737,32651,-2745,32651,-2753,32650,-2762,32649,-2770,32649,-2778,32648,-2787,32647,-2795,32646,-2803,32646,-2812,32645,-2820,32644,-2829,32644,-2837,32643,-2845,32642,-2854,32641,-2862,32641,-2870,32640,-2879,32639,-2887,32638,-2895,32638,-2904,32637,-2912,32636,-2920,32635,-2929,32635,-2937,32634,-2945,32633,-2954,32632,-2962,32632,-2970,32631,-2979,32630,-2987,32629,-2995,32629,-3004,32628,-3012,32627,-3020,32626,-3029,32625,-3037,32625,-3045,32624,-3054,32623,-3062,32622,-3070,32622,-3079,32621,-3087,32620,-3095,32619,-3104,32618,-3112,32618,-3121,32617,-3129,32616,-3137,32615,-3146,32614,-3154,32614,-3162,32613,-3171,32612,-3179,32611,-3187,32610,-3196,32610,-3204,32609,-3212,32608,-3221,32607,-3229,32606,-3237,32605,-3246,32605,-3254,32604,-3262,32603,-3271,32602,-3279,32601,-3287,32600,-3296,32600,-3304,32599,-3312,32598,-3321,32597,-3329,32596,-3337,32595,-3346,32594,-3354,32594,-3362,32593,-3371,32592,-3379,32591,-3387,32590,-3396,32589,-3404,32588,-3412,32588,-3421,32587,-3429,32586,-3437,32585,-3446,32584,-3454,32583,-3462,32582,-3471,32581,-3479,32580,-3487,32580,-3496,32579,-3504,32578,-3512,32577,-3521,32576,-3529,32575,-3537,32574,-3546,32573,-3554,32572,-3562,32571,-3571,32571,-3579,32570,-3587,32569,-3595,32568,-3604,32567,-3612,32566,-3620,32565,-3629,32564,-3637,32563,-3645,32562,-3654,32561,-3662,32560,-3670,32559,-3679,32558,-3687,32558,-3695,32557,-3704,32556,-3712,32555,-3720,32554,-3729,32553,-3737,32552,-3745,32551,-3754,32550,-3762,32549,-3770,32548,-3779,32547,-3787,32546,-3795,32545,-3804,32544,-3812,32543,-3820,32542,-3829,32541,-3837,32540,-3845,32539,-3854,32538,-3862,32537,-3870,32536,-3878,32535,-3887,32534,-3895,32533,-3903,32532,-3912,32531,-3920,32530,-3928,32529,-3937,32528,-3945,32527,-3953,32526,-3962,32525,-3970,32524,-3978,32523,-3987,32522,-3995,32521,-4003,32520,-4012,32519,-4020,32518,-4028,32517,-4036,32516,-4045,32515,-4053,32514,-4061,32513,-4070,32512,-4078,32511,-4086,32510,-4095,32509,-4103,32508,-4111,32507,-4120,32506,-4128,32504,-4136,32503,-4145,32502,-4153,32501,-4161,32500,-4169,32499,-4178,32498,-4186,32497,-4194,32496,-4203,32495,-4211,32494,-4219,32493,-4228,32492,-4236,32491,-4244,32489,-4253,32488,-4261,32487,-4269,32486,-4277,32485,-4286,32484,-4294,32483,-4302,32482,-4311,32481,-4319,32480,-4327,32478,-4336,32477,-4344,32476,-4352,32475,-4360,32474,-4369,32473,-4377,32472,-4385,32471,-4394,32470,-4402,32468,-4410,32467,-4419,32466,-4427,32465,-4435,32464,-4444,32463,-4452,32462,-4460,32460,-4468,32459,-4477,32458,-4485,32457,-4493,32456,-4502,32455,-4510,32454,-4518,32452,-4526,32451,-4535,32450,-4543,32449,-4551,32448,-4560,32447,-4568,32445,-4576,32444,-4585,32443,-4593,32442,-4601,32441,-4609,32440,-4618,32438,-4626,32437,-4634,32436,-4643,32435,-4651,32434,-4659,32432,-4667,32431,-4676,32430,-4684,32429,-4692,32428,-4701,32426,-4709,32425,-4717,32424,-4726,32423,-4734,32422,-4742,32420,-4750,32419,-4759,32418,-4767,32417,-4775,32416,-4784,32414,-4792,32413,-4800,32412,-4808,32411,-4817,32409,-4825,32408,-4833,32407,-4842,32406,-4850,32404,-4858,32403,-4866,32402,-4875,32401,-4883,32399,-4891,32398,-4900,32397,-4908,32396,-4916,32394,-4924,32393,-4933,32392,-4941,32391,-4949,32389,-4958,32388,-4966,32387,-4974,32386,-4982,32384,-4991,32383,-4999,32382,-5007,32380,-5015,32379,-5024,32378,-5032,32377,-5040,32375,-5049,32374,-5057,32373,-5065,32371,-5073,32370,-5082,32369,-5090,32368,-5098,32366,-5107,32365,-5115,32364,-5123,32362,-5131,32361,-5140,32360,-5148,32358,-5156,32357,-5164,32356,-5173,32354,-5181,32353,-5189,32352,-5198,32350,-5206,32349,-5214,32348,-5222,32346,-5231,32345,-5239,32344,-5247,32342,-5255,32341,-5264,32340,-5272,32338,-5280,32337,-5288,32336,-5297,32334,-5305,32333,-5313,32332,-5322,32330,-5330,32329,-5338,32327,-5346,32326,-5355,32325,-5363,32323,-5371,32322,-5379,32321,-5388,32319,-5396,32318,-5404,32316,-5412,32315,-5421,32314,-5429,32312,-5437,32311,-5446,32310,-5454,32308,-5462,32307,-5470,32305,-5479,32304,-5487,32303,-5495,32301,-5503,32300,-5512,32298,-5520,32297,-5528,32295,-5536,32294,-5545,32293,-5553,32291,-5561,32290,-5569,32288,-5578,32287,-5586,32286,-5594,32284,-5602,32283,-5611,32281,-5619,32280,-5627,32278,-5635,32277,-5644,32275,-5652,32274,-5660,32273,-5668,32271,-5677,32270,-5685,32268,-5693,32267,-5701,32265,-5710,32264,-5718,32262,-5726,32261,-5734,32259,-5743,32258,-5751,32256,-5759,32255,-5767,32254,-5776,32252,-5784,32251,-5792,32249,-5800,32248,-5809,32246,-5817,32245,-5825,32243,-5833,32242,-5842,32240,-5850,32239,-5858,32237,-5866,32236,-5875,32234,-5883,32233,-5891,32231,-5899,32230,-5908,32228,-5916,32227,-5924,32225,-5932,32224,-5941,32222,-5949,32221,-5957,32219,-5965,32218,-5973,32216,-5982,32214,-5990,32213,-5998,32211,-6006,32210,-6015,32208,-6023,32207,-6031,32205,-6039,32204,-6048,32202,-6056,32201,-6064,32199,-6072,32197,-6081,32196,-6089,32194,-6097,32193,-6105,32191,-6113,32190,-6122,32188,-6130,32187,-6138,32185,-6146,32183,-6155,32182,-6163,32180,-6171,32179,-6179,32177,-6187,32176,-6196,32174,-6204,32172,-6212,32171,-6220,32169,-6229,32168,-6237,32166,-6245,32164,-6253,32163,-6262,32161,-6270,32160,-6278,32158,-6286,32156,-6294,32155,-6303,32153,-6311,32152,-6319,32150,-6327,32148,-6335,32147,-6344,32145,-6352,32143,-6360,32142,-6368,32140,-6377,32139,-6385,32137,-6393,32135,-6401,32134,-6409,32132,-6418,32130,-6426,32129,-6434,32127,-6442,32125,-6451,32124,-6459,32122,-6467,32120,-6475,32119,-6483,32117,-6492,32115,-6500,32114,-6508,32112,-6516,32110,-6524,32109,-6533,32107,-6541,32105,-6549,32104,-6557,32102,-6565,32100,-6574,32099,-6582,32097,-6590,32095,-6598,32094,-6607,32092,-6615,32090,-6623,32089,-6631,32087,-6639,32085,-6648,32084,-6656,32082,-6664,32080,-6672,32078,-6680,32077,-6689,32075,-6697,32073,-6705,32072,-6713,32070,-6721,32068,-6730,32066,-6738,32065,-6746,32063,-6754,32061,-6762,32059,-6771,32058,-6779,32056,-6787,32054,-6795,32053,-6803,32051,-6812,32049,-6820,32047,-6828,32046,-6836,32044,-6844,32042,-6852,32040,-6861,32039,-6869,32037,-6877,32035,-6885,32033,-6893,32032,-6902,32030,-6910,32028,-6918,32026,-6926,32024,-6934,32023,-6943,32021,-6951,32019,-6959,32017,-6967,32016,-6975,32014,-6983,32012,-6992,32010,-7000,32008,-7008,32007,-7016,32005,-7024,32003,-7033,32001,-7041,31999,-7049,31998,-7057,31996,-7065,31994,-7073,31992,-7082,31990,-7090,31989,-7098,31987,-7106,31985,-7114,31983,-7123,31981,-7131,31979,-7139,31978,-7147,31976,-7155,31974,-7163,31972,-7172,31970,-7180,31968,-7188,31967,-7196,31965,-7204,31963,-7212,31961,-7221,31959,-7229,31957,-7237,31956,-7245,31954,-7253,31952,-7262,31950,-7270,31948,-7278,31946,-7286,31944,-7294,31943,-7302,31941,-7311,31939,-7319,31937,-7327,31935,-7335,31933,-7343,31931,-7351,31929,-7359,31928,-7368,31926,-7376,31924,-7384,31922,-7392,31920,-7400,31918,-7408,31916,-7417,31914,-7425,31912,-7433,31911,-7441,31909,-7449,31907,-7457,31905,-7466,31903,-7474,31901,-7482,31899,-7490,31897,-7498,31895,-7506,31893,-7515,31891,-7523,31889,-7531,31888,-7539,31886,-7547,31884,-7555,31882,-7563,31880,-7572,31878,-7580,31876,-7588,31874,-7596,31872,-7604,31870,-7612,31868,-7620,31866,-7629,31864,-7637,31862,-7645,31860,-7653,31858,-7661,31856,-7669,31854,-7677,31853,-7686,31851,-7694,31849,-7702,31847,-7710,31845,-7718,31843,-7726,31841,-7734,31839,-7743,31837,-7751,31835,-7759,31833,-7767,31831,-7775,31829,-7783,31827,-7791,31825,-7800,31823,-7808,31821,-7816,31819,-7824,31817,-7832,31815,-7840,31813,-7848,31811,-7857,31809,-7865,31807,-7873,31805,-7881,31803,-7889,31801,-7897,31799,-7905,31797,-7913,31795,-7922,31793,-7930,31791,-7938,31789,-7946,31787,-7954,31785,-7962,31782,-7970,31780,-7978,31778,-7987,31776,-7995,31774,-8003,31772,-8011,31770,-8019,31768,-8027,31766,-8035,31764,-8043,31762,-8052,31760,-8060,31758,-8068,31756,-8076,31754,-8084,31752,-8092,31750,-8100,31748,-8108,31745,-8117,31743,-8125,31741,-8133,31739,-8141,31737,-8149,31735,-8157,31733,-8165,31731,-8173,31729,-8181,31727,-8190,31725,-8198,31723,-8206,31720,-8214,31718,-8222,31716,-8230,31714,-8238,31712,-8246,31710,-8254,31708,-8263,31706,-8271,31704,-8279,31701,-8287,31699,-8295,31697,-8303,31695,-8311,31693,-8319,31691,-8327,31689,-8335,31687,-8344,31684,-8352,31682,-8360,31680,-8368,31678,-8376,31676,-8384,31674,-8392,31672,-8400,31669,-8408,31667,-8416,31665,-8425,31663,-8433,31661,-8441,31659,-8449,31656,-8457,31654,-8465,31652,-8473,31650,-8481,31648,-8489,31646,-8497,31643,-8505,31641,-8514,31639,-8522,31637,-8530,31635,-8538,31633,-8546,31630,-8554,31628,-8562,31626,-8570,31624,-8578,31622,-8586,31619,-8594,31617,-8603,31615,-8611,31613,-8619,31611,-8627,31608,-8635,31606,-8643,31604,-8651,31602,-8659,31600,-8667,31597,-8675,31595,-8683,31593,-8691,31591,-8700,31588,-8708,31586,-8716,31584,-8724,31582,-8732,31580,-8740,31577,-8748,31575,-8756,31573,-8764,31571,-8772,31568,-8780,31566,-8788,31564,-8796,31562,-8804,31559,-8813,31557,-8821,31555,-8829,31553,-8837,31550,-8845,31548,-8853,31546,-8861,31544,-8869,31541,-8877,31539,-8885,31537,-8893,31534,-8901,31532,-8909,31530,-8917,31528,-8925,31525,-8933,31523,-8942,31521,-8950,31518,-8958,31516,-8966,31514,-8974,31512,-8982,31509,-8990,31507,-8998,31505,-9006,31502,-9014,31500,-9022,31498,-9030,31495,-9038,31493,-9046,31491,-9054,31489,-9062,31486,-9070,31484,-9078,31482,-9087,31479,-9095,31477,-9103,31475,-9111,31472,-9119,31470,-9127,31468,-9135,31465,-9143,31463,-9151,31461,-9159,31458,-9167,31456,-9175,31454,-9183,31451,-9191,31449,-9199,31446,-9207,31444,-9215,31442,-9223,31439,-9231,31437,-9239,31435,-9247,31432,-9255,31430,-9263,31428,-9271,31425,-9280,31423,-9288,31420,-9296,31418,-9304,31416,-9312,31413,-9320,31411,-9328,31409,-9336,31406,-9344,31404,-9352,31401,-9360,31399,-9368,31397,-9376,31394,-9384,31392,-9392,31389,-9400,31387,-9408,31385,-9416,31382,-9424,31380,-9432,31377,-9440,31375,-9448,31373,-9456,31370,-9464,31368,-9472,31365,-9480,31363,-9488,31360,-9496,31358,-9504,31356,-9512,31353,-9520,31351,-9528,31348,-9536,31346,-9544,31343,-9552,31341,-9560,31338,-9568,31336,-9576,31334,-9584,31331,-9592,31329,-9600,31326,-9608,31324,-9616,31321,-9624,31319,-9632,31316,-9640,31314,-9648,31311,-9656,31309,-9664,31307,-9672,31304,-9680,31302,-9688,31299,-9696,31297,-9704,31294,-9712,31292,-9720,31289,-9728,31287,-9736,31284,-9744,31282,-9752,31279,-9760,31277,-9768,31274,-9776,31272,-9784,31269,-9792,31267,-9800,31264,-9808,31262,-9816,31259,-9824,31257,-9832,31254,-9840,31252,-9848,31249,-9856,31247,-9864,31244,-9872,31242,-9880,31239,-9888,31236,-9896,31234,-9904,31231,-9912,31229,-9920,31226,-9928,31224,-9936,31221,-9944,31219,-9952,31216,-9960,31214,-9968,31211,-9976,31209,-9984,31206,-9992,31203,-10000,31201,-10008,31198,-10016,31196,-10024,31193,-10032,31191,-10040,31188,-10048,31185,-10056,31183,-10064,31180,-10072,31178,-10080,31175,-10088,31173,-10096,31170,-10104,31167,-10112,31165,-10120,31162,-10128,31160,-10136,31157,-10144,31154,-10152,31152,-10160,31149,-10167,31147,-10175,31144,-10183,31141,-10191,31139,-10199,31136,-10207,31134,-10215,31131,-10223,31128,-10231,31126,-10239,31123,-10247,31121,-10255,31118,-10263,31115,-10271,31113,-10279,31110,-10287,31107,-10295,31105,-10303,31102,-10311,31100,-10319,31097,-10327,31094,-10335,31092,-10343,31089,-10350,31086,-10358,31084,-10366,31081,-10374,31078,-10382,31076,-10390,31073,-10398,31070,-10406,31068,-10414,31065,-10422,31062,-10430,31060,-10438,31057,-10446,31054,-10454,31052,-10462,31049,-10470,31046,-10478,31044,-10485,31041,-10493,31038,-10501,31036,-10509,31033,-10517,31030,-10525,31028,-10533,31025,-10541,31022,-10549,31019,-10557,31017,-10565,31014,-10573,31011,-10581,31009,-10589,31006,-10597,31003,-10604,31001,-10612,30998,-10620,30995,-10628,30992,-10636,30990,-10644,30987,-10652,30984,-10660,30981,-10668,30979,-10676,30976,-10684,30973,-10692,30971,-10700,30968,-10707,30965,-10715,30962,-10723,30960,-10731,30957,-10739,30954,-10747,30951,-10755,30949,-10763,30946,-10771,30943,-10779,30940,-10787,30938,-10795,30935,-10802,30932,-10810,30929,-10818,30927,-10826,30924,-10834,30921,-10842,30918,-10850,30915,-10858,30913,-10866,30910,-10874,30907,-10881,30904,-10889,30902,-10897,30899,-10905,30896,-10913,30893,-10921,30890,-10929,30888,-10937,30885,-10945,30882,-10953,30879,-10960,30876,-10968,30874,-10976,30871,-10984,30868,-10992,30865,-11000,30862,-11008,30860,-11016,30857,-11024,30854,-11031,30851,-11039,30848,-11047,30845,-11055,30843,-11063,30840,-11071,30837,-11079,30834,-11087,30831,-11095,30828,-11102,30826,-11110,30823,-11118,30820,-11126,30817,-11134,30814,-11142,30811,-11150,30809,-11158,30806,-11165,30803,-11173,30800,-11181,30797,-11189,30794,-11197,30791,-11205,30788,-11213,30786,-11221,30783,-11228,30780,-11236,30777,-11244,30774,-11252,30771,-11260,30768,-11268,30766,-11276,30763,-11284,30760,-11291,30757,-11299,30754,-11307,30751,-11315,30748,-11323,30745,-11331,30742,-11339,30739,-11346,30737,-11354,30734,-11362,30731,-11370,30728,-11378,30725,-11386,30722,-11394,30719,-11401,30716,-11409,30713,-11417,30710,-11425,30707,-11433,30705,-11441,30702,-11449,30699,-11456,30696,-11464,30693,-11472,30690,-11480,30687,-11488,30684,-11496,30681,-11503,30678,-11511,30675,-11519,30672,-11527,30669,-11535,30666,-11543,30663,-11551,30660,-11558,30657,-11566,30655,-11574,30652,-11582,30649,-11590,30646,-11598,30643,-11605,30640,-11613,30637,-11621,30634,-11629,30631,-11637,30628,-11645,30625,-11652,30622,-11660,30619,-11668,30616,-11676,30613,-11684,30610,-11692,30607,-11699,30604,-11707,30601,-11715,30598,-11723,30595,-11731,30592,-11738,30589,-11746,30586,-11754,30583,-11762,30580,-11770,30577,-11778,30574,-11785,30571,-11793,30568,-11801,30565,-11809,30562,-11817,30559,-11824,30556,-11832,30553,-11840,30550,-11848,30547,-11856,30544,-11863,30541,-11871,30538,-11879,30535,-11887,30532,-11895,30528,-11903,30525,-11910,30522,-11918,30519,-11926,30516,-11934,30513,-11942,30510,-11949,30507,-11957,30504,-11965,30501,-11973,30498,-11981,30495,-11988,30492,-11996,30489,-12004,30486,-12012,30483,-12020,30480,-12027,30476,-12035,30473,-12043,30470,-12051,30467,-12058,30464,-12066,30461,-12074,30458,-12082,30455,-12090,30452,-12097,30449,-12105,30446,-12113,30442,-12121,30439,-12129,30436,-12136,30433,-12144,30430,-12152,30427,-12160,30424,-12167,30421,-12175,30418,-12183,30415,-12191,30411,-12199,30408,-12206,30405,-12214,30402,-12222,30399,-12230,30396,-12237,30393,-12245,30390,-12253,30386,-12261,30383,-12269,30380,-12276,30377,-12284,30374,-12292,30371,-12300,30368,-12307,30364,-12315,30361,-12323,30358,-12331,30355,-12338,30352,-12346,30349,-12354,30345,-12362,30342,-12369,30339,-12377,30336,-12385,30333,-12393,30330,-12400,30326,-12408,30323,-12416,30320,-12424,30317,-12431,30314,-12439,30311,-12447,30307,-12455,30304,-12462,30301,-12470,30298,-12478,30295,-12486,30291,-12493,30288,-12501,30285,-12509,30282,-12517,30279,-12524,30275,-12532,30272,-12540,30269,-12548,30266,-12555,30263,-12563,30259,-12571,30256,-12579,30253,-12586,30250,-12594,30247,-12602,30243,-12610,30240,-12617,30237,-12625,30234,-12633,30230,-12640,30227,-12648,30224,-12656,30221,-12664,30217,-12671,30214,-12679,30211,-12687,30208,-12695,30205,-12702,30201,-12710,30198,-12718,30195,-12725,30191,-12733,30188,-12741,30185,-12749,30182,-12756,30178,-12764,30175,-12772,30172,-12779,30169,-12787,30165,-12795,30162,-12803,30159,-12810,30156,-12818,30152,-12826,30149,-12833,30146,-12841,30142,-12849,30139,-12857,30136,-12864,30133,-12872,30129,-12880,30126,-12887,30123,-12895,30119,-12903,30116,-12910,30113,-12918,30109,-12926,30106,-12934,30103,-12941,30100,-12949,30096,-12957,30093,-12964,30090,-12972,30086,-12980,30083,-12987,30080,-12995,30076,-13003,30073,-13010,30070,-13018,30066,-13026,30063,-13034,30060,-13041,30056,-13049,30053,-13057,30050,-13064,30046,-13072,30043,-13080,30040,-13087,30036,-13095,30033,-13103,30030,-13110,30026,-13118,30023,-13126,30020,-13133,30016,-13141,30013,-13149,30009,-13156,30006,-13164,30003,-13172,29999,-13179,29996,-13187,29993,-13195,29989,-13202,29986,-13210,29983,-13218,29979,-13225,29976,-13233,29972,-13241,29969,-13248,29966,-13256,29962,-13264,29959,-13271,29955,-13279,29952,-13287,29949,-13294,29945,-13302,29942,-13310,29938,-13317,29935,-13325,29932,-13333,29928,-13340,29925,-13348,29921,-13356,29918,-13363,29915,-13371,29911,-13379,29908,-13386,29904,-13394,29901,-13401,29897,-13409,29894,-13417,29891,-13424,29887,-13432,29884,-13440,29880,-13447,29877,-13455,29873,-13463,29870,-13470,29866,-13478,29863,-13486,29860,-13493,29856,-13501,29853,-13508,29849,-13516,29846,-13524,29842,-13531,29839,-13539,29835,-13547,29832,-13554,29828,-13562,29825,-13569,29822,-13577,29818,-13585,29815,-13592,29811,-13600,29808,-13608,29804,-13615,29801,-13623,29797,-13630,29794,-13638,29790,-13646,29787,-13653,29783,-13661,29780,-13668,29776,-13676,29773,-13684,29769,-13691,29766,-13699,29762,-13707,29759,-13714,29755,-13722,29752,-13729,29748,-13737,29745,-13745,29741,-13752,29738,-13760,29734,-13767,29731,-13775,29727,-13783,29724,-13790,29720,-13798,29717,-13805,29713,-13813,29709,-13821,29706,-13828,29702,-13836,29699,-13843,29695,-13851,29692,-13859,29688,-13866,29685,-13874,29681,-13881,29678,-13889,29674,-13896,29670,-13904,29667,-13912,29663,-13919,29660,-13927,29656,-13934,29653,-13942,29649,-13950,29646,-13957,29642,-13965,29638,-13972,29635,-13980,29631,-13987,29628,-13995,29624,-14003,29621,-14010,29617,-14018,29613,-14025,29610,-14033,29606,-14040,29603,-14048,29599,-14056,29595,-14063,29592,-14071,29588,-14078,29585,-14086,29581,-14093,29577,-14101,29574,-14109,29570,-14116,29567,-14124,29563,-14131,29559,-14139,29556,-14146,29552,-14154,29548,-14161,29545,-14169,29541,-14177,29538,-14184,29534,-14192,29530,-14199,29527,-14207,29523,-14214,29519,-14222,29516,-14229,29512,-14237,29509,-14245,29505,-14252,29501,-14260,29498,-14267,29494,-14275,29490,-14282,29487,-14290,29483,-14297,29479,-14305,29476,-14312,29472,-14320,29468,-14327,29465,-14335,29461,-14343,29457,-14350,29454,-14358,29450,-14365,29446,-14373,29443,-14380,29439,-14388,29435,-14395,29432,-14403,29428,-14410,29424,-14418,29421,-14425,29417,-14433,29413,-14440,29410,-14448,29406,-14455,29402,-14463,29398,-14470,29395,-14478,29391,-14485,29387,-14493,29384,-14500,29380,-14508,29376,-14516,29372,-14523,29369,-14531,29365,-14538,29361,-14546,29358,-14553,29354,-14561,29350,-14568,29346,-14576,29343,-14583,29339,-14591,29335,-14598,29332,-14606,29328,-14613,29324,-14621,29320,-14628,29317,-14636,29313,-14643,29309,-14651,29305,-14658,29302,-14666,29298,-14673,29294,-14681,29290,-14688,29287,-14695,29283,-14703,29279,-14710,29275,-14718,29272,-14725,29268,-14733,29264,-14740,29260,-14748,29256,-14755,29253,-14763,29249,-14770,29245,-14778,29241,-14785,29238,-14793,29234,-14800,29230,-14808,29226,-14815,29222,-14823,29219,-14830,29215,-14838,29211,-14845,29207,-14853,29203,-14860,29200,-14867,29196,-14875,29192,-14882,29188,-14890,29184,-14897,29181,-14905,29177,-14912,29173,-14920,29169,-14927,29165,-14935,29162,-14942,29158,-14950,29154,-14957,29150,-14964,29146,-14972,29142,-14979,29139,-14987,29135,-14994,29131,-15002,29127,-15009,29123,-15017,29119,-15024,29116,-15031,29112,-15039,29108,-15046,29104,-15054,29100,-15061,29096,-15069,29092,-15076,29089,-15084,29085,-15091,29081,-15098,29077,-15106,29073,-15113,29069,-15121,29065,-15128,29062,-15136,29058,-15143,29054,-15150,29050,-15158,29046,-15165,29042,-15173,29038,-15180,29034,-15188,29031,-15195,29027,-15202,29023,-15210,29019,-15217,29015,-15225,29011,-15232,29007,-15239,29003,-15247,28999,-15254,28996,-15262,28992,-15269,28988,-15277,28984,-15284,28980,-15291,28976,-15299,28972,-15306,28968,-15314,28964,-15321,28960,-15328,28956,-15336,28953,-15343,28949,-15351,28945,-15358,28941,-15365,28937,-15373,28933,-15380,28929,-15388,28925,-15395,28921,-15402,28917,-15410,28913,-15417,28909,-15425,28905,-15432,28901,-15439,28897,-15447,28893,-15454,28890,-15462,28886,-15469,28882,-15476,28878,-15484,28874,-15491,28870,-15498,28866,-15506,28862,-15513,28858,-15521,28854,-15528,28850,-15535,28846,-15543,28842,-15550,28838,-15557,28834,-15565,28830,-15572,28826,-15580,28822,-15587,28818,-15594,28814,-15602,28810,-15609,28806,-15616,28802,-15624,28798,-15631,28794,-15639,28790,-15646,28786,-15653,28782,-15661,28778,-15668,28774,-15675,28770,-15683,28766,-15690,28762,-15697,28758,-15705,28754,-15712,28750,-15719,28746,-15727,28742,-15734,28738,-15741,28734,-15749,28730,-15756,28726,-15764,28722,-15771,28718,-15778,28714,-15786,28710,-15793,28706,-15800,28702,-15808,28698,-15815,28694,-15822,28690,-15830,28685,-15837,28681,-15844,28677,-15852,28673,-15859,28669,-15866,28665,-15874,28661,-15881,28657,-15888,28653,-15896,28649,-15903,28645,-15910,28641,-15918,28637,-15925,28633,-15932,28629,-15939,28625,-15947,28620,-15954,28616,-15961,28612,-15969,28608,-15976,28604,-15983,28600,-15991,28596,-15998,28592,-16005,28588,-16013,28584,-16020,28580,-16027,28575,-16035,28571,-16042,28567,-16049,28563,-16056,28559,-16064,28555,-16071,28551,-16078,28547,-16086,28543,-16093,28538,-16100,28534,-16108,28530,-16115,28526,-16122,28522,-16129,28518,-16137,28514,-16144,28510,-16151,28506,-16159,28501,-16166,28497,-16173,28493,-16180,28489,-16188,28485,-16195,28481,-16202,28477,-16210,28472,-16217,28468,-16224,28464,-16231,28460,-16239,28456,-16246,28452,-16253,28447,-16261,28443,-16268,28439,-16275,28435,-16282,28431,-16290,28427,-16297,28423,-16304,28418,-16311,28414,-16319,28410,-16326,28406,-16333,28402,-16340,28397,-16348,28393,-16355,28389,-16362,28385,-16369,28381,-16377,28377,-16384,28372,-16391,28368,-16399,28364,-16406,28360,-16413,28356,-16420,28351,-16428,28347,-16435,28343,-16442,28339,-16449,28335,-16456,28330,-16464,28326,-16471,28322,-16478,28318,-16485,28314,-16493,28309,-16500,28305,-16507,28301,-16514,28297,-16522,28292,-16529,28288,-16536,28284,-16543,28280,-16551,28275,-16558,28271,-16565,28267,-16572,28263,-16579,28259,-16587,28254,-16594,28250,-16601,28246,-16608,28242,-16616,28237,-16623,28233,-16630,28229,-16637,28225,-16644,28220,-16652,28216,-16659,28212,-16666,28208,-16673,28203,-16681,28199,-16688,28195,-16695,28190,-16702,28186,-16709,28182,-16717,28178,-16724,28173,-16731,28169,-16738,28165,-16745,28161,-16753,28156,-16760,28152,-16767,28148,-16774,28143,-16781,28139,-16789,28135,-16796,28131,-16803,28126,-16810,28122,-16817,28118,-16825,28113,-16832,28109,-16839,28105,-16846,28100,-16853,28096,-16860,28092,-16868,28087,-16875,28083,-16882,28079,-16889,28075,-16896,28070,-16904,28066,-16911,28062,-16918,28057,-16925,28053,-16932,28049,-16939,28044,-16947,28040,-16954,28036,-16961,28031,-16968,28027,-16975,28023,-16982,28018,-16990,28014,-16997,28009,-17004,28005,-17011,28001,-17018,27996,-17025,27992,-17033,27988,-17040,27983,-17047,27979,-17054,27975,-17061,27970,-17068,27966,-17075,27962,-17083,27957,-17090,27953,-17097,27948,-17104,27944,-17111,27940,-17118,27935,-17125,27931,-17133,27927,-17140,27922,-17147,27918,-17154,27913,-17161,27909,-17168,27905,-17175,27900,-17183,27896,-17190,27891,-17197,27887,-17204,27883,-17211,27878,-17218,27874,-17225,27869,-17233,27865,-17240,27861,-17247,27856,-17254,27852,-17261,27847,-17268,27843,-17275,27839,-17282,27834,-17289,27830,-17297,27825,-17304,27821,-17311,27816,-17318,27812,-17325,27808,-17332,27803,-17339,27799,-17346,27794,-17353,27790,-17361,27785,-17368,27781,-17375,27777,-17382,27772,-17389,27768,-17396,27763,-17403,27759,-17410,27754,-17417,27750,-17424,27745,-17432,27741,-17439,27736,-17446,27732,-17453,27728,-17460,27723,-17467,27719,-17474,27714,-17481,27710,-17488,27705,-17495,27701,-17502,27696,-17510,27692,-17517,27687,-17524,27683,-17531,27678,-17538,27674,-17545,27669,-17552,27665,-17559,27660,-17566,27656,-17573,27651,-17580,27647,-17587,27642,-17594,27638,-17601,27633,-17609,27629,-17616,27624,-17623,27620,-17630,27615,-17637,27611,-17644,27606,-17651,27602,-17658,27597,-17665,27593,-17672,27588,-17679,27584,-17686,27579,-17693,27575,-17700,27570,-17707,27566,-17714,27561,-17721,27557,-17728,27552,-17736,27548,-17743,27543,-17750,27538,-17757,27534,-17764,27529,-17771,27525,-17778,27520,-17785,27516,-17792,27511,-17799,27507,-17806,27502,-17813,27498,-17820,27493,-17827,27488,-17834,27484,-17841,27479,-17848,27475,-17855,27470,-17862,27466,-17869,27461,-17876,27456,-17883,27452,-17890,27447,-17897,27443,-17904,27438,-17911,27434,-17918,27429,-17925,27424,-17932,27420,-17939,27415,-17946,27411,-17953,27406,-17960,27401,-17967,27397,-17974,27392,-17981,27388,-17988,27383,-17995,27378,-18002,27374,-18009,27369,-18016,27365,-18023,27360,-18030,27355,-18037,27351,-18044,27346,-18051,27342,-18058,27337,-18065,27332,-18072,27328,-18079,27323,-18086,27319,-18093,27314,-18100,27309,-18107,27305,-18114,27300,-18121,27295,-18128,27291,-18135,27286,-18142,27281,-18149,27277,-18156,27272,-18163,27268,-18170,27263,-18177,27258,-18184,27254,-18191,27249,-18198,27244,-18205,27240,-18212,27235,-18219,27230,-18226,27226,-18233,27221,-18240,27216,-18247,27212,-18254,27207,-18261,27202,-18268,27198,-18274,27193,-18281,27188,-18288,27184,-18295,27179,-18302,27174,-18309,27170,-18316,27165,-18323,27160,-18330,27156,-18337,27151,-18344,27146,-18351,27141,-18358,27137,-18365,27132,-18372,27127,-18379,27123,-18386,27118,-18393,27113,-18399,27109,-18406,27104,-18413,27099,-18420,27094,-18427,27090,-18434,27085,-18441,27080,-18448,27076,-18455,27071,-18462,27066,-18469,27061,-18476,27057,-18483,27052,-18489,27047,-18496,27042,-18503,27038,-18510,27033,-18517,27028,-18524,27024,-18531,27019,-18538,27014,-18545,27009,-18552,27005,-18559,27000,-18565,26995,-18572,26990,-18579,26986,-18586,26981,-18593,26976,-18600,26971,-18607,26967,-18614,26962,-18621,26957,-18628,26952,-18634,26948,-18641,26943,-18648,26938,-18655,26933,-18662,26928,-18669,26924,-18676,26919,-18683,26914,-18690,26909,-18696,26905,-18703,26900,-18710,26895,-18717,26890,-18724,26885,-18731,26881,-18738,26876,-18745,26871,-18751,26866,-18758,26861,-18765,26857,-18772,26852,-18779,26847,-18786,26842,-18793,26837,-18799,26833,-18806,26828,-18813,26823,-18820,26818,-18827,26813,-18834,26809,-18841,26804,-18847,26799,-18854,26794,-18861,26789,-18868,26784,-18875,26780,-18882,26775,-18889,26770,-18895,26765,-18902,26760,-18909,26755,-18916,26751,-18923,26746,-18930,26741,-18936,26736,-18943,26731,-18950,26726,-18957,26722,-18964,26717,-18971,26712,-18977,26707,-18984,26702,-18991,26697,-18998,26692,-19005,26688,-19012,26683,-19018,26678,-19025,26673,-19032,26668,-19039,26663,-19046,26658,-19052,26654,-19059,26649,-19066,26644,-19073,26639,-19080,26634,-19087,26629,-19093,26624,-19100,26619,-19107,26615,-19114,26610,-19121,26605,-19127,26600,-19134,26595,-19141,26590,-19148,26585,-19155,26580,-19161,26575,-19168,26570,-19175,26566,-19182,26561,-19189,26556,-19195,26551,-19202,26546,-19209,26541,-19216,26536,-19222,26531,-19229,26526,-19236,26521,-19243,26516,-19250,26512,-19256,26507,-19263,26502,-19270,26497,-19277,26492,-19283,26487,-19290,26482,-19297,26477,-19304,26472,-19311,26467,-19317,26462,-19324,26457,-19331,26452,-19338,26447,-19344,26442,-19351,26437,-19358,26433,-19365,26428,-19371,26423,-19378,26418,-19385,26413,-19392,26408,-19398,26403,-19405,26398,-19412,26393,-19419,26388,-19425,26383,-19432,26378,-19439,26373,-19446,26368,-19452,26363,-19459,26358,-19466,26353,-19473,26348,-19479,26343,-19486,26338,-19493,26333,-19500,26328,-19506,26323,-19513,26318,-19520,26313,-19527,26308,-19533,26303,-19540,26298,-19547,26293,-19553,26288,-19560,26283,-19567,26278,-19574,26273,-19580,26268,-19587,26263,-19594,26258,-19600,26253,-19607,26248,-19614,26243,-19621,26238,-19627,26233,-19634,26228,-19641,26223,-19647,26218,-19654,26213,-19661,26208,-19668,26203,-19674,26198,-19681,26193,-19688,26188,-19694,26183,-19701,26178,-19708,26173,-19714,26168,-19721,26163,-19728,26158,-19734,26153,-19741,26148,-19748,26142,-19755,26137,-19761,26132,-19768,26127,-19775,26122,-19781,26117,-19788,26112,-19795,26107,-19801,26102,-19808,26097,-19815,26092,-19821,26087,-19828,26082,-19835,26077,-19841,26072,-19848,26067,-19855,26061,-19861,26056,-19868,26051,-19875,26046,-19881,26041,-19888,26036,-19895,26031,-19901,26026,-19908,26021,-19915,26016,-19921,26011,-19928,26006,-19934,26000,-19941,25995,-19948,25990,-19954,25985,-19961,25980,-19968,25975,-19974,25970,-19981,25965,-19988,25960,-19994,25954,-20001,25949,-20008,25944,-20014,25939,-20021,25934,-20027,25929,-20034,25924,-20041,25919,-20047,25913,-20054,25908,-20061,25903,-20067,25898,-20074,25893,-20080,25888,-20087,25883,-20094,25878,-20100,25872,-20107,25867,-20114,25862,-20120,25857,-20127,25852,-20133,25847,-20140,25842,-20147,25836,-20153,25831,-20160,25826,-20166,25821,-20173,25816,-20180,25811,-20186,25805,-20193,25800,-20199,25795,-20206,25790,-20213,25785,-20219,25780,-20226,25774,-20232,25769,-20239,25764,-20246,25759,-20252,25754,-20259,25749,-20265,25743,-20272,25738,-20278,25733,-20285,25728,-20292,25723,-20298,25717,-20305,25712,-20311,25707,-20318,25702,-20324,25697,-20331,25691,-20338,25686,-20344,25681,-20351,25676,-20357,25671,-20364,25665,-20370,25660,-20377,25655,-20384,25650,-20390,25645,-20397,25639,-20403,25634,-20410,25629,-20416,25624,-20423,25619,-20429,25613,-20436,25608,-20443,25603,-20449,25598,-20456,25592,-20462,25587,-20469,25582,-20475,25577,-20482,25571,-20488,25566,-20495,25561,-20501,25556,-20508,25550,-20514,25545,-20521,25540,-20528,25535,-20534,25529,-20541,25524,-20547,25519,-20554,25514,-20560,25508,-20567,25503,-20573,25498,-20580,25493,-20586,25487,-20593,25482,-20599,25477,-20606,25472,-20612,25466,-20619,25461,-20625,25456,-20632,25451,-20638,25445,-20645,25440,-20651,25435,-20658,25429,-20664,25424,-20671,25419,-20677,25414,-20684,25408,-20690,25403,-20697,25398,-20703,25392,-20710,25387,-20716,25382,-20723,25376,-20729,25371,-20736,25366,-20742,25361,-20749,25355,-20755,25350,-20762,25345,-20768,25339,-20775,25334,-20781,25329,-20788,25323,-20794,25318,-20801,25313,-20807,25307,-20814,25302,-20820,25297,-20826,25291,-20833,25286,-20839,25281,-20846,25276,-20852,25270,-20859,25265,-20865,25260,-20872,25254,-20878,25249,-20885,25243,-20891,25238,-20898,25233,-20904,25227,-20910,25222,-20917,25217,-20923,25211,-20930,25206,-20936,25201,-20943,25195,-20949,25190,-20956,25185,-20962,25179,-20968,25174,-20975,25169,-20981,25163,-20988,25158,-20994,25152,-21001,25147,-21007,25142,-21013,25136,-21020,25131,-21026,25126,-21033,25120,-21039,25115,-21046,25109,-21052,25104,-21058,25099,-21065,25093,-21071,25088,-21078,25083,-21084,25077,-21091,25072,-21097,25066,-21103,25061,-21110,25056,-21116,25050,-21123,25045,-21129,25039,-21135,25034,-21142,25029,-21148,25023,-21155,25018,-21161,25012,-21167,25007,-21174,25001,-21180,24996,-21187,24991,-21193,24985,-21199,24980,-21206,24974,-21212,24969,-21218,24964,-21225,24958,-21231,24953,-21238,24947,-21244,24942,-21250,24936,-21257,24931,-21263,24926,-21269,24920,-21276,24915,-21282,24909,-21289,24904,-21295,24898,-21301,24893,-21308,24887,-21314,24882,-21320,24877,-21327,24871,-21333,24866,-21340,24860,-21346,24855,-21352,24849,-21359,24844,-21365,24838,-21371,24833,-21378,24827,-21384,24822,-21390,24816,-21397,24811,-21403,24805,-21409,24800,-21416,24795,-21422,24789,-21428,24784,-21435,24778,-21441,24773,-21447,24767,-21454,24762,-21460,24756,-21466,24751,-21473,24745,-21479,24740,-21485,24734,-21492,24729,-21498,24723,-21504,24718,-21511,24712,-21517,24707,-21523,24701,-21530,24696,-21536,24690,-21542,24685,-21549,24679,-21555,24674,-21561,24668,-21567,24663,-21574,24657,-21580,24652,-21586,24646,-21593,24641,-21599,24635,-21605,24630,-21612,24624,-21618,24618,-21624,24613,-21630,24607,-21637,24602,-21643,24596,-21649,24591,-21656,24585,-21662,24580,-21668,24574,-21674,24569,-21681,24563,-21687,24558,-21693,24552,-21700,24546,-21706,24541,-21712,24535,-21718,24530,-21725,24524,-21731,24519,-21737,24513,-21744,24508,-21750,24502,-21756,24496,-21762,24491,-21769,24485,-21775,24480,-21781,24474,-21787,24469,-21794,24463,-21800,24457,-21806,24452,-21812,24446,-21819,24441,-21825,24435,-21831,24430,-21837,24424,-21844,24418,-21850,24413,-21856,24407,-21862,24402,-21869,24396,-21875,24390,-21881,24385,-21887,24379,-21894,24374,-21900,24368,-21906,24362,-21912,24357,-21918,24351,-21925,24346,-21931,24340,-21937,24334,-21943,24329,-21950,24323,-21956,24318,-21962,24312,-21968,24306,-21974,24301,-21981,24295,-21987,24289,-21993,24284,-21999,24278,-22005,24273,-22012,24267,-22018,24261,-22024,24256,-22030,24250,-22036,24244,-22043,24239,-22049,24233,-22055,24228,-22061,24222,-22067,24216,-22074,24211,-22080,24205,-22086,24199,-22092,24194,-22098,24188,-22105,24182,-22111,24177,-22117,24171,-22123,24165,-22129,24160,-22136,24154,-22142,24148,-22148,24143,-22154,24137,-22160,24131,-22166,24126,-22173,24120,-22179,24114,-22185,24109,-22191,24103,-22197,24097,-22203,24092,-22210,24086,-22216,24080,-22222,24075,-22228,24069,-22234,24063,-22240,24058,-22246,24052,-22253,24046,-22259,24041,-22265,24035,-22271,24029,-22277,24023,-22283,24018,-22289,24012,-22296,24006,-22302,24001,-22308,23995,-22314,23989,-22320,23984,-22326,23978,-22332,23972,-22339,23966,-22345,23961,-22351,23955,-22357,23949,-22363,23944,-22369,23938,-22375,23932,-22381,23926,-22388,23921,-22394,23915,-22400,23909,-22406,23903,-22412,23898,-22418,23892,-22424,23886,-22430,23881,-22436,23875,-22443,23869,-22449,23863,-22455,23858,-22461,23852,-22467,23846,-22473,23840,-22479,23835,-22485,23829,-22491,23823,-22497,23817,-22504,23812,-22510,23806,-22516,23800,-22522,23794,-22528,23789,-22534,23783,-22540,23777,-22546,23771,-22552,23766,-22558,23760,-22564,23754,-22570,23748,-22576,23742,-22583,23737,-22589,23731,-22595,23725,-22601,23719,-22607,23714,-22613,23708,-22619,23702,-22625,23696,-22631,23690,-22637,23685,-22643,23679,-22649,23673,-22655,23667,-22661,23661,-22667,23656,-22673,23650,-22679,23644,-22686,23638,-22692,23632,-22698,23627,-22704,23621,-22710,23615,-22716,23609,-22722,23603,-22728,23598,-22734,23592,-22740,23586,-22746,23580,-22752,23574,-22758,23569,-22764,23563,-22770,23557,-22776,23551,-22782,23545,-22788,23539,-22794,23534,-22800,23528,-22806,23522,-22812,23516,-22818,23510,-22824,23504,-22830,23499,-22836,23493,-22842,23487,-22848,23481,-22854,23475,-22860,23469,-22866,23464,-22872,23458,-22878,23452,-22884,23446,-22890,23440,-22896,23434,-22902,23428,-22908,23423,-22914,23417,-22920,23411,-22926,23405,-22932,23399,-22938,23393,-22944,23387,-22950,23382,-22956,23376,-22962,23370,-22968,23364,-22974,23358,-22980,23352,-22986,23346,-22992,23340,-22998,23335,-23004,23329,-23010,23323,-23016,23317,-23022,23311,-23028,23305,-23034,23299,-23040,23293,-23046,23287,-23051,23282,-23057,23276,-23063,23270,-23069,23264,-23075,23258,-23081,23252,-23087,23246,-23093,23240,-23099,23234,-23105,23228,-23111,23223,-23117,23217,-23123,23211,-23129,23205,-23135,23199,-23141,23193,-23147,23187,-23152,23181,-23158,23175,-23164,23169,-23170,23163,-23176,23157,-23182,23151,-23188,23146,-23194,23140,-23200,23134,-23206,23128,-23212,23122,-23218,23116,-23224,23110,-23229,23104,-23235,23098,-23241,23092,-23247,23086,-23253,23080,-23259,23074,-23265,23068,-23271,23062,-23277,23056,-23283,23050,-23288,23045,-23294,23039,-23300,23033,-23306,23027,-23312,23021,-23318,23015,-23324,23009,-23330,23003,-23336,22997,-23341,22991,-23347,22985,-23353,22979,-23359,22973,-23365,22967,-23371,22961,-23377,22955,-23383,22949,-23388,22943,-23394,22937,-23400,22931,-23406,22925,-23412,22919,-23418,22913,-23424,22907,-23429,22901,-23435,22895,-23441,22889,-23447,22883,-23453,22877,-23459,22871,-23465,22865,-23470,22859,-23476,22853,-23482,22847,-23488,22841,-23494,22835,-23500,22829,-23505,22823,-23511,22817,-23517,22811,-23523,22805,-23529,22799,-23535,22793,-23540,22787,-23546,22781,-23552,22775,-23558,22769,-23564,22763,-23570,22757,-23575,22751,-23581,22745,-23587,22739,-23593,22733,-23599,22727,-23604,22721,-23610,22715,-23616,22709,-23622,22703,-23628,22697,-23633,22691,-23639,22685,-23645,22678,-23651,22672,-23657,22666,-23662,22660,-23668,22654,-23674,22648,-23680,22642,-23686,22636,-23691,22630,-23697,22624,-23703,22618,-23709,22612,-23715,22606,-23720,22600,-23726,22594,-23732,22588,-23738,22582,-23743,22575,-23749,22569,-23755,22563,-23761,22557,-23767,22551,-23772,22545,-23778,22539,-23784,22533,-23790,22527,-23795,22521,-23801,22515,-23807,22509,-23813,22503,-23818,22496,-23824,22490,-23830,22484,-23836,22478,-23841,22472,-23847,22466,-23853,22460,-23859,22454,-23864,22448,-23870,22442,-23876,22435,-23882,22429,-23887,22423,-23893,22417,-23899,22411,-23904,22405,-23910,22399,-23916,22393,-23922,22387,-23927,22380,-23933,22374,-23939,22368,-23945,22362,-23950,22356,-23956,22350,-23962,22344,-23967,22338,-23973,22331,-23979,22325,-23985,22319,-23990,22313,-23996,22307,-24002,22301,-24007,22295,-24013,22288,-24019,22282,-24024,22276,-24030,22270,-24036,22264,-24042,22258,-24047,22252,-24053,22245,-24059,22239,-24064,22233,-24070,22227,-24076,22221,-24081,22215,-24087,22209,-24093,22202,-24098,22196,-24104,22190,-24110,22184,-24115,22178,-24121,22172,-24127,22165,-24132,22159,-24138,22153,-24144,22147,-24149,22141,-24155,22135,-24161,22128,-24166,22122,-24172,22116,-24178,22110,-24183,22104,-24189,22097,-24195,22091,-24200,22085,-24206,22079,-24212,22073,-24217,22066,-24223,22060,-24229,22054,-24234,22048,-24240,22042,-24245,22035,-24251,22029,-24257,22023,-24262,22017,-24268,22011,-24274,22004,-24279,21998,-24285,21992,-24290,21986,-24296,21980,-24302,21973,-24307,21967,-24313,21961,-24319,21955,-24324,21949,-24330,21942,-24335,21936,-24341,21930,-24347,21924,-24352,21917,-24358,21911,-24363,21905,-24369,21899,-24375,21893,-24380,21886,-24386,21880,-24391,21874,-24397,21868,-24403,21861,-24408,21855,-24414,21849,-24419,21843,-24425,21836,-24431,21830,-24436,21824,-24442,21818,-24447,21811,-24453,21805,-24458,21799,-24464,21793,-24470,21786,-24475,21780,-24481,21774,-24486,21768,-24492,21761,-24497,21755,-24503,21749,-24509,21743,-24514,21736,-24520,21730,-24525,21724,-24531,21717,-24536,21711,-24542,21705,-24547,21699,-24553,21692,-24559,21686,-24564,21680,-24570,21673,-24575,21667,-24581,21661,-24586,21655,-24592,21648,-24597,21642,-24603,21636,-24608,21629,-24614,21623,-24619,21617,-24625,21611,-24631,21604,-24636,21598,-24642,21592,-24647,21585,-24653,21579,-24658,21573,-24664,21566,-24669,21560,-24675,21554,-24680,21548,-24686,21541,-24691,21535,-24697,21529,-24702,21522,-24708,21516,-24713,21510,-24719,21503,-24724,21497,-24730,21491,-24735,21484,-24741,21478,-24746,21472,-24752,21465,-24757,21459,-24763,21453,-24768,21446,-24774,21440,-24779,21434,-24785,21427,-24790,21421,-24796,21415,-24801,21408,-24806,21402,-24812,21396,-24817,21389,-24823,21383,-24828,21377,-24834,21370,-24839,21364,-24845,21358,-24850,21351,-24856,21345,-24861,21339,-24867,21332,-24872,21326,-24878,21319,-24883,21313,-24888,21307,-24894,21300,-24899,21294,-24905,21288,-24910,21281,-24916,21275,-24921,21268,-24927,21262,-24932,21256,-24937,21249,-24943,21243,-24948,21237,-24954,21230,-24959,21224,-24965,21217,-24970,21211,-24975,21205,-24981,21198,-24986,21192,-24992,21186,-24997,21179,-25002,21173,-25008,21166,-25013,21160,-25019,21154,-25024,21147,-25030,21141,-25035,21134,-25040,21128,-25046,21122,-25051,21115,-25057,21109,-25062,21102,-25067,21096,-25073,21090,-25078,21083,-25084,21077,-25089,21070,-25094,21064,-25100,21057,-25105,21051,-25110,21045,-25116,21038,-25121,21032,-25127,21025,-25132,21019,-25137,21012,-25143,21006,-25148,21000,-25153,20993,-25159,20987,-25164,20980,-25170,20974,-25175,20967,-25180,20961,-25186,20955,-25191,20948,-25196,20942,-25202,20935,-25207,20929,-25212,20922,-25218,20916,-25223,20909,-25228,20903,-25234,20897,-25239,20890,-25244,20884,-25250,20877,-25255,20871,-25261,20864,-25266,20858,-25271,20851,-25277,20845,-25282,20838,-25287,20832,-25292,20825,-25298,20819,-25303,20813,-25308,20806,-25314,20800,-25319,20793,-25324,20787,-25330,20780,-25335,20774,-25340,20767,-25346,20761,-25351,20754,-25356,20748,-25362,20741,-25367,20735,-25372,20728,-25377,20722,-25383,20715,-25388,20709,-25393,20702,-25399,20696,-25404,20689,-25409,20683,-25415,20676,-25420,20670,-25425,20663,-25430,20657,-25436,20650,-25441,20644,-25446,20637,-25452,20631,-25457,20624,-25462,20618,-25467,20611,-25473,20605,-25478,20598,-25483,20592,-25488,20585,-25494,20579,-25499,20572,-25504,20566,-25509,20559,-25515,20553,-25520,20546,-25525,20540,-25530,20533,-25536,20527,-25541,20520,-25546,20513,-25551,20507,-25557,20500,-25562,20494,-25567,20487,-25572,20481,-25578,20474,-25583,20468,-25588,20461,-25593,20455,-25599,20448,-25604,20442,-25609,20435,-25614,20428,-25620,20422,-25625,20415,-25630,20409,-25635,20402,-25640,20396,-25646,20389,-25651,20383,-25656,20376,-25661,20369,-25666,20363,-25672,20356,-25677,20350,-25682,20343,-25687,20337,-25692,20330,-25698,20323,-25703,20317,-25708,20310,-25713,20304,-25718,20297,-25724,20291,-25729,20284,-25734,20277,-25739,20271,-25744,20264,-25750,20258,-25755,20251,-25760,20245,-25765,20238,-25770,20231,-25775,20225,-25781,20218,-25786,20212,-25791,20205,-25796,20198,-25801,20192,-25806,20185,-25812,20179,-25817,20172,-25822,20165,-25827,20159,-25832,20152,-25837,20146,-25843,20139,-25848,20132,-25853,20126,-25858,20119,-25863,20113,-25868,20106,-25873,20099,-25879,20093,-25884,20086,-25889,20079,-25894,20073,-25899,20066,-25904,20060,-25909,20053,-25914,20046,-25920,20040,-25925,20033,-25930,20026,-25935,20020,-25940,20013,-25945,20007,-25950,20000,-25955,19993,-25961,19987,-25966,19980,-25971,19973,-25976,19967,-25981,19960,-25986,19953,-25991,19947,-25996,19940,-26001,19933,-26007,19927,-26012,19920,-26017,19914,-26022,19907,-26027,19900,-26032,19894,-26037,19887,-26042,19880,-26047,19874,-26052,19867,-26057,19860,-26062,19854,-26068,19847,-26073,19840,-26078,19834,-26083,19827,-26088,19820,-26093,19814,-26098,19807,-26103,19800,-26108,19794,-26113,19787,-26118,19780,-26123,19774,-26128,19767,-26133,19760,-26138,19754,-26143,19747,-26149,19740,-26154,19733,-26159,19727,-26164,19720,-26169,19713,-26174,19707,-26179,19700,-26184,19693,-26189,19687,-26194,19680,-26199,19673,-26204,19667,-26209,19660,-26214,19653,-26219,19646,-26224,19640,-26229,19633,-26234,19626,-26239,19620,-26244,19613,-26249,19606,-26254,19599,-26259,19593,-26264,19586,-26269,19579,-26274,19573,-26279,19566,-26284,19559,-26289,19552,-26294,19546,-26299,19539,-26304,19532,-26309,19526,-26314,19519,-26319,19512,-26324,19505,-26329,19499,-26334,19492,-26339,19485,-26344,19478,-26349,19472,-26354,19465,-26359,19458,-26364,19451,-26369,19445,-26374,19438,-26379,19431,-26384,19424,-26389,19418,-26394,19411,-26399,19404,-26404,19397,-26409,19391,-26414,19384,-26419,19377,-26424,19370,-26429,19364,-26434,19357,-26438,19350,-26443,19343,-26448,19337,-26453,19330,-26458,19323,-26463,19316,-26468,19310,-26473,19303,-26478,19296,-26483,19289,-26488,19282,-26493,19276,-26498,19269,-26503,19262,-26508,19255,-26513,19249,-26517,19242,-26522,19235,-26527,19228,-26532,19221,-26537,19215,-26542,19208,-26547,19201,-26552,19194,-26557,19188,-26562,19181,-26567,19174,-26571,19167,-26576,19160,-26581,19154,-26586,19147,-26591,19140,-26596,19133,-26601,19126,-26606,19120,-26611,19113,-26616,19106,-26620,19099,-26625,19092,-26630,19086,-26635,19079,-26640,19072,-26645,19065,-26650,19058,-26655,19051,-26659,19045,-26664,19038,-26669,19031,-26674,19024,-26679,19017,-26684,19011,-26689,19004,-26693,18997,-26698,18990,-26703,18983,-26708,18976,-26713,18970,-26718,18963,-26723,18956,-26727,18949,-26732,18942,-26737,18935,-26742,18929,-26747,18922,-26752,18915,-26756,18908,-26761,18901,-26766,18894,-26771,18888,-26776,18881,-26781,18874,-26785,18867,-26790,18860,-26795,18853,-26800,18846,-26805,18840,-26810,18833,-26814,18826,-26819,18819,-26824,18812,-26829,18805,-26834,18798,-26838,18792,-26843,18785,-26848,18778,-26853,18771,-26858,18764,-26862,18757,-26867,18750,-26872,18744,-26877,18737,-26882,18730,-26886,18723,-26891,18716,-26896,18709,-26901,18702,-26906,18695,-26910,18689,-26915,18682,-26920,18675,-26925,18668,-26929,18661,-26934,18654,-26939,18647,-26944,18640,-26949,18633,-26953,18627,-26958,18620,-26963,18613,-26968,18606,-26972,18599,-26977,18592,-26982,18585,-26987,18578,-26991,18571,-26996,18564,-27001,18558,-27006,18551,-27010,18544,-27015,18537,-27020,18530,-27025,18523,-27029,18516,-27034,18509,-27039,18502,-27043,18495,-27048,18488,-27053,18482,-27058,18475,-27062,18468,-27067,18461,-27072,18454,-27077,18447,-27081,18440,-27086,18433,-27091,18426,-27095,18419,-27100,18412,-27105,18405,-27110,18398,-27114,18392,-27119,18385,-27124,18378,-27128,18371,-27133,18364,-27138,18357,-27142,18350,-27147,18343,-27152,18336,-27157,18329,-27161,18322,-27166,18315,-27171,18308,-27175,18301,-27180,18294,-27185,18287,-27189,18280,-27194,18273,-27199,18267,-27203,18260,-27208,18253,-27213,18246,-27217,18239,-27222,18232,-27227,18225,-27231,18218,-27236,18211,-27241,18204,-27245,18197,-27250,18190,-27255,18183,-27259,18176,-27264,18169,-27269,18162,-27273,18155,-27278,18148,-27282,18141,-27287,18134,-27292,18127,-27296,18120,-27301,18113,-27306,18106,-27310,18099,-27315,18092,-27320,18085,-27324,18078,-27329,18071,-27333,18064,-27338,18057,-27343,18050,-27347,18043,-27352,18036,-27356,18029,-27361,18022,-27366,18015,-27370,18008,-27375,18001,-27379,17994,-27384,17987,-27389,17980,-27393,17973,-27398,17966,-27402,17959,-27407,17952,-27412,17945,-27416,17938,-27421,17931,-27425,17924,-27430,17917,-27435,17910,-27439,17903,-27444,17896,-27448,17889,-27453,17882,-27457,17875,-27462,17868,-27467,17861,-27471,17854,-27476,17847,-27480,17840,-27485,17833,-27489,17826,-27494,17819,-27499,17812,-27503,17805,-27508,17798,-27512,17791,-27517,17784,-27521,17777,-27526,17770,-27530,17763,-27535,17756,-27539,17749,-27544,17742,-27549,17735,-27553,17727,-27558,17720,-27562,17713,-27567,17706,-27571,17699,-27576,17692,-27580,17685,-27585,17678,-27589,17671,-27594,17664,-27598,17657,-27603,17650,-27607,17643,-27612,17636,-27616,17629,-27621,17622,-27625,17615,-27630,17608,-27634,17600,-27639,17593,-27643,17586,-27648,17579,-27652,17572,-27657,17565,-27661,17558,-27666,17551,-27670,17544,-27675,17537,-27679,17530,-27684,17523,-27688,17516,-27693,17509,-27697,17501,-27702,17494,-27706,17487,-27711,17480,-27715,17473,-27720,17466,-27724,17459,-27729,17452,-27733,17445,-27737,17438,-27742,17431,-27746,17423,-27751,17416,-27755,17409,-27760,17402,-27764,17395,-27769,17388,-27773,17381,-27778,17374,-27782,17367,-27786,17360,-27791,17352,-27795,17345,-27800,17338,-27804,17331,-27809,17324,-27813,17317,-27817,17310,-27822,17303,-27826,17296,-27831,17288,-27835,17281,-27840,17274,-27844,17267,-27848,17260,-27853,17253,-27857,17246,-27862,17239,-27866,17232,-27870,17224,-27875,17217,-27879,17210,-27884,17203,-27888,17196,-27892,17189,-27897,17182,-27901,17174,-27906,17167,-27910,17160,-27914,17153,-27919,17146,-27923,17139,-27928,17132,-27932,17124,-27936,17117,-27941,17110,-27945,17103,-27949,17096,-27954,17089,-27958,17082,-27963,17074,-27967,17067,-27971,17060,-27976,17053,-27980,17046,-27984,17039,-27989,17032,-27993,17024,-27997,17017,-28002,17010,-28006,17003,-28010,16996,-28015,16989,-28019,16981,-28024,16974,-28028,16967,-28032,16960,-28037,16953,-28041,16946,-28045,16938,-28050,16931,-28054,16924,-28058,16917,-28063,16910,-28067,16903,-28071,16895,-28076,16888,-28080,16881,-28084,16874,-28088,16867,-28093,16859,-28097,16852,-28101,16845,-28106,16838,-28110,16831,-28114,16824,-28119,16816,-28123,16809,-28127,16802,-28132,16795,-28136,16788,-28140,16780,-28144,16773,-28149,16766,-28153,16759,-28157,16752,-28162,16744,-28166,16737,-28170,16730,-28174,16723,-28179,16716,-28183,16708,-28187,16701,-28191,16694,-28196,16687,-28200,16680,-28204,16672,-28209,16665,-28213,16658,-28217,16651,-28221,16643,-28226,16636,-28230,16629,-28234,16622,-28238,16615,-28243,16607,-28247,16600,-28251,16593,-28255,16586,-28260,16578,-28264,16571,-28268,16564,-28272,16557,-28276,16550,-28281,16542,-28285,16535,-28289,16528,-28293,16521,-28298,16513,-28302,16506,-28306,16499,-28310,16492,-28315,16484,-28319,16477,-28323,16470,-28327,16463,-28331,16455,-28336,16448,-28340,16441,-28344,16434,-28348,16427,-28352,16419,-28357,16412,-28361,16405,-28365,16398,-28369,16390,-28373,16383,-28378,16376,-28382,16368,-28386,16361,-28390,16354,-28394,16347,-28398,16339,-28403,16332,-28407,16325,-28411,16318,-28415,16310,-28419,16303,-28424,16296,-28428,16289,-28432,16281,-28436,16274,-28440,16267,-28444,16260,-28448,16252,-28453,16245,-28457,16238,-28461,16230,-28465,16223,-28469,16216,-28473,16209,-28478,16201,-28482,16194,-28486,16187,-28490,16179,-28494,16172,-28498,16165,-28502,16158,-28507,16150,-28511,16143,-28515,16136,-28519,16128,-28523,16121,-28527,16114,-28531,16107,-28535,16099,-28539,16092,-28544,16085,-28548,16077,-28552,16070,-28556,16063,-28560,16055,-28564,16048,-28568,16041,-28572,16034,-28576,16026,-28581,16019,-28585,16012,-28589,16004,-28593,15997,-28597,15990,-28601,15982,-28605,15975,-28609,15968,-28613,15960,-28617,15953,-28621,15946,-28626,15938,-28630,15931,-28634,15924,-28638,15917,-28642,15909,-28646,15902,-28650,15895,-28654,15887,-28658,15880,-28662,15873,-28666,15865,-28670,15858,-28674,15851,-28678,15843,-28682,15836,-28686,15829,-28691,15821,-28695,15814,-28699,15807,-28703,15799,-28707,15792,-28711,15785,-28715,15777,-28719,15770,-28723,15763,-28727,15755,-28731,15748,-28735,15740,-28739,15733,-28743,15726,-28747,15718,-28751,15711,-28755,15704,-28759,15696,-28763,15689,-28767,15682,-28771,15674,-28775,15667,-28779,15660,-28783,15652,-28787,15645,-28791,15638,-28795,15630,-28799,15623,-28803,15615,-28807,15608,-28811,15601,-28815,15593,-28819,15586,-28823,15579,-28827,15571,-28831,15564,-28835,15556,-28839,15549,-28843,15542,-28847,15534,-28851,15527,-28855,15520,-28859,15512,-28863,15505,-28867,15497,-28871,15490,-28875,15483,-28879,15475,-28883,15468,-28887,15461,-28891,15453,-28894,15446,-28898,15438,-28902,15431,-28906,15424,-28910,15416,-28914,15409,-28918,15401,-28922,15394,-28926,15387,-28930,15379,-28934,15372,-28938,15364,-28942,15357,-28946,15350,-28950,15342,-28954,15335,-28957,15327,-28961,15320,-28965,15313,-28969,15305,-28973,15298,-28977,15290,-28981,15283,-28985,15276,-28989,15268,-28993,15261,-28997,15253,-29000,15246,-29004,15238,-29008,15231,-29012,15224,-29016,15216,-29020,15209,-29024,15201,-29028,15194,-29032,15187,-29035,15179,-29039,15172,-29043,15164,-29047,15157,-29051,15149,-29055,15142,-29059,15135,-29063,15127,-29066,15120,-29070,15112,-29074,15105,-29078,15097,-29082,15090,-29086,15083,-29090,15075,-29093,15068,-29097,15060,-29101,15053,-29105,15045,-29109,15038,-29113,15030,-29117,15023,-29120,15016,-29124,15008,-29128,15001,-29132,14993,-29136,14986,-29140,14978,-29143,14971,-29147,14963,-29151,14956,-29155,14949,-29159,14941,-29163,14934,-29166,14926,-29170,14919,-29174,14911,-29178,14904,-29182,14896,-29185,14889,-29189,14881,-29193,14874,-29197,14866,-29201,14859,-29204,14852,-29208,14844,-29212,14837,-29216,14829,-29220,14822,-29223,14814,-29227,14807,-29231,14799,-29235,14792,-29239,14784,-29242,14777,-29246,14769,-29250,14762,-29254,14754,-29257,14747,-29261,14739,-29265,14732,-29269,14724,-29273,14717,-29276,14709,-29280,14702,-29284,14694,-29288,14687,-29291,14680,-29295,14672,-29299,14665,-29303,14657,-29306,14650,-29310,14642,-29314,14635,-29318,14627,-29321,14620,-29325,14612,-29329,14605,-29333,14597,-29336,14590,-29340,14582,-29344,14575,-29347,14567,-29351,14560,-29355,14552,-29359,14545,-29362,14537,-29366,14530,-29370,14522,-29373,14515,-29377,14507,-29381,14499,-29385,14492,-29388,14484,-29392,14477,-29396,14469,-29399,14462,-29403,14454,-29407,14447,-29411,14439,-29414,14432,-29418,14424,-29422,14417,-29425,14409,-29429,14402,-29433,14394,-29436,14387,-29440,14379,-29444,14372,-29447,14364,-29451,14357,-29455,14349,-29458,14342,-29462,14334,-29466,14326,-29469,14319,-29473,14311,-29477,14304,-29480,14296,-29484,14289,-29488,14281,-29491,14274,-29495,14266,-29499,14259,-29502,14251,-29506,14244,-29510,14236,-29513,14228,-29517,14221,-29520,14213,-29524,14206,-29528,14198,-29531,14191,-29535,14183,-29539,14176,-29542,14168,-29546,14160,-29549,14153,-29553,14145,-29557,14138,-29560,14130,-29564,14123,-29568,14115,-29571,14108,-29575,14100,-29578,14092,-29582,14085,-29586,14077,-29589,14070,-29593,14062,-29596,14055,-29600,14047,-29604,14039,-29607,14032,-29611,14024,-29614,14017,-29618,14009,-29622,14002,-29625,13994,-29629,13986,-29632,13979,-29636,13971,-29639,13964,-29643,13956,-29647,13949,-29650,13941,-29654,13933,-29657,13926,-29661,13918,-29664,13911,-29668,13903,-29671,13895,-29675,13888,-29679,13880,-29682,13873,-29686,13865,-29689,13858,-29693,13850,-29696,13842,-29700,13835,-29703,13827,-29707,13820,-29710,13812,-29714,13804,-29718,13797,-29721,13789,-29725,13782,-29728,13774,-29732,13766,-29735,13759,-29739,13751,-29742,13744,-29746,13736,-29749,13728,-29753,13721,-29756,13713,-29760,13706,-29763,13698,-29767,13690,-29770,13683,-29774,13675,-29777,13667,-29781,13660,-29784,13652,-29788,13645,-29791,13637,-29795,13629,-29798,13622,-29802,13614,-29805,13607,-29809,13599,-29812,13591,-29816,13584,-29819,13576,-29823,13568,-29826,13561,-29829,13553,-29833,13546,-29836,13538,-29840,13530,-29843,13523,-29847,13515,-29850,13507,-29854,13500,-29857,13492,-29861,13485,-29864,13477,-29867,13469,-29871,13462,-29874,13454,-29878,13446,-29881,13439,-29885,13431,-29888,13423,-29892,13416,-29895,13408,-29898,13400,-29902,13393,-29905,13385,-29909,13378,-29912,13370,-29916,13362,-29919,13355,-29922,13347,-29926,13339,-29929,13332,-29933,13324,-29936,13316,-29939,13309,-29943,13301,-29946,13293,-29950,13286,-29953,13278,-29956,13270,-29960,13263,-29963,13255,-29967,13247,-29970,13240,-29973,13232,-29977,13224,-29980,13217,-29984,13209,-29987,13201,-29990,13194,-29994,13186,-29997,13178,-30000,13171,-30004,13163,-30007,13155,-30010,13148,-30014,13140,-30017,13132,-30021,13125,-30024,13117,-30027,13109,-30031,13102,-30034,13094,-30037,13086,-30041,13079,-30044,13071,-30047,13063,-30051,13056,-30054,13048,-30057,13040,-30061,13033,-30064,13025,-30067,13017,-30071,13009,-30074,13002,-30077,12994,-30081,12986,-30084,12979,-30087,12971,-30091,12963,-30094,12956,-30097,12948,-30101,12940,-30104,12933,-30107,12925,-30110,12917,-30114,12909,-30117,12902,-30120,12894,-30124,12886,-30127,12879,-30130,12871,-30134,12863,-30137,12856,-30140,12848,-30143,12840,-30147,12832,-30150,12825,-30153,12817,-30157,12809,-30160,12802,-30163,12794,-30166,12786,-30170,12778,-30173,12771,-30176,12763,-30179,12755,-30183,12748,-30186,12740,-30189,12732,-30192,12724,-30196,12717,-30199,12709,-30202,12701,-30206,12694,-30209,12686,-30212,12678,-30215,12670,-30218,12663,-30222,12655,-30225,12647,-30228,12639,-30231,12632,-30235,12624,-30238,12616,-30241,12609,-30244,12601,-30248,12593,-30251,12585,-30254,12578,-30257,12570,-30260,12562,-30264,12554,-30267,12547,-30270,12539,-30273,12531,-30276,12523,-30280,12516,-30283,12508,-30286,12500,-30289,12492,-30292,12485,-30296,12477,-30299,12469,-30302,12461,-30305,12454,-30308,12446,-30312,12438,-30315,12430,-30318,12423,-30321,12415,-30324,12407,-30327,12399,-30331,12392,-30334,12384,-30337,12376,-30340,12368,-30343,12361,-30346,12353,-30350,12345,-30353,12337,-30356,12330,-30359,12322,-30362,12314,-30365,12306,-30369,12299,-30372,12291,-30375,12283,-30378,12275,-30381,12268,-30384,12260,-30387,12252,-30391,12244,-30394,12236,-30397,12229,-30400,12221,-30403,12213,-30406,12205,-30409,12198,-30412,12190,-30416,12182,-30419,12174,-30422,12166,-30425,12159,-30428,12151,-30431,12143,-30434,12135,-30437,12128,-30440,12120,-30443,12112,-30447,12104,-30450,12096,-30453,12089,-30456,12081,-30459,12073,-30462,12065,-30465,12057,-30468,12050,-30471,12042,-30474,12034,-30477,12026,-30481,12019,-30484,12011,-30487,12003,-30490,11995,-30493,11987,-30496,11980,-30499,11972,-30502,11964,-30505,11956,-30508,11948,-30511,11941,-30514,11933,-30517,11925,-30520,11917,-30523,11909,-30526,11902,-30529,11894,-30533,11886,-30536,11878,-30539,11870,-30542,11862,-30545,11855,-30548,11847,-30551,11839,-30554,11831,-30557,11823,-30560,11816,-30563,11808,-30566,11800,-30569,11792,-30572,11784,-30575,11777,-30578,11769,-30581,11761,-30584,11753,-30587,11745,-30590,11737,-30593,11730,-30596,11722,-30599,11714,-30602,11706,-30605,11698,-30608,11691,-30611,11683,-30614,11675,-30617,11667,-30620,11659,-30623,11651,-30626,11644,-30629,11636,-30632,11628,-30635,11620,-30638,11612,-30641,11604,-30644,11597,-30647,11589,-30650,11581,-30653,11573,-30656,11565,-30658,11557,-30661,11550,-30664,11542,-30667,11534,-30670,11526,-30673,11518,-30676,11510,-30679,11502,-30682,11495,-30685,11487,-30688,11479,-30691,11471,-30694,11463,-30697,11455,-30700,11448,-30703,11440,-30706,11432,-30708,11424,-30711,11416,-30714,11408,-30717,11400,-30720,11393,-30723,11385,-30726,11377,-30729,11369,-30732,11361,-30735,11353,-30738,11345,-30740,11338,-30743,11330,-30746,11322,-30749,11314,-30752,11306,-30755,11298,-30758,11290,-30761,11283,-30764,11275,-30767,11267,-30769,11259,-30772,11251,-30775,11243,-30778,11235,-30781,11227,-30784,11220,-30787,11212,-30789,11204,-30792,11196,-30795,11188,-30798,11180,-30801,11172,-30804,11164,-30807,11157,-30810,11149,-30812,11141,-30815,11133,-30818,11125,-30821,11117,-30824,11109,-30827,11101,-30829,11094,-30832,11086,-30835,11078,-30838,11070,-30841,11062,-30844,11054,-30846,11046,-30849,11038,-30852,11030,-30855,11023,-30858,11015,-30861,11007,-30863,10999,-30866,10991,-30869,10983,-30872,10975,-30875,10967,-30877,10959,-30880,10952,-30883,10944,-30886,10936,-30889,10928,-30891,10920,-30894,10912,-30897,10904,-30900,10896,-30903,10888,-30905,10880,-30908,10873,-30911,10865,-30914,10857,-30916,10849,-30919,10841,-30922,10833,-30925,10825,-30928,10817,-30930,10809,-30933,10801,-30936,10794,-30939,10786,-30941,10778,-30944,10770,-30947,10762,-30950,10754,-30952,10746,-30955,10738,-30958,10730,-30961,10722,-30963,10714,-30966,10706,-30969,10699,-30972,10691,-30974,10683,-30977,10675,-30980,10667,-30982,10659,-30985,10651,-30988,10643,-30991,10635,-30993,10627,-30996,10619,-30999,10611,-31002,10603,-31004,10596,-31007,10588,-31010,10580,-31012,10572,-31015,10564,-31018,10556,-31020,10548,-31023,10540,-31026,10532,-31029,10524,-31031,10516,-31034,10508,-31037,10500,-31039,10492,-31042,10484,-31045,10477,-31047,10469,-31050,10461,-31053,10453,-31055,10445,-31058,10437,-31061,10429,-31063,10421,-31066,10413,-31069,10405,-31071,10397,-31074,10389,-31077,10381,-31079,10373,-31082,10365,-31085,10357,-31087,10349,-31090,10342,-31093,10334,-31095,10326,-31098,10318,-31101,10310,-31103,10302,-31106,10294,-31108,10286,-31111,10278,-31114,10270,-31116,10262,-31119,10254,-31122,10246,-31124,10238,-31127,10230,-31129,10222,-31132,10214,-31135,10206,-31137,10198,-31140,10190,-31142,10182,-31145,10174,-31148,10166,-31150,10159,-31153,10151,-31155,10143,-31158,10135,-31161,10127,-31163,10119,-31166,10111,-31168,10103,-31171,10095,-31174,10087,-31176,10079,-31179,10071,-31181,10063,-31184,10055,-31186,10047,-31189,10039,-31192,10031,-31194,10023,-31197,10015,-31199,10007,-31202,9999,-31204,9991,-31207,9983,-31210,9975,-31212,9967,-31215,9959,-31217,9951,-31220,9943,-31222,9935,-31225,9927,-31227,9919,-31230,9911,-31232,9903,-31235,9895,-31237,9887,-31240,9879,-31243,9871,-31245,9863,-31248,9855,-31250,9847,-31253,9839,-31255,9831,-31258,9823,-31260,9815,-31263,9807,-31265,9799,-31268,9791,-31270,9783,-31273,9775,-31275,9767,-31278,9759,-31280,9751,-31283,9743,-31285,9735,-31288,9727,-31290,9719,-31293,9711,-31295,9703,-31298,9695,-31300,9687,-31303,9679,-31305,9671,-31308,9663,-31310,9655,-31312,9647,-31315,9639,-31317,9631,-31320,9623,-31322,9615,-31325,9607,-31327,9599,-31330,9591,-31332,9583,-31335,9575,-31337,9567,-31339,9559,-31342,9551,-31344,9543,-31347,9535,-31349,9527,-31352,9519,-31354,9511,-31357,9503,-31359,9495,-31361,9487,-31364,9479,-31366,9471,-31369,9463,-31371,9455,-31374,9447,-31376,9439,-31378,9431,-31381,9423,-31383,9415,-31386,9407,-31388,9399,-31390,9391,-31393,9383,-31395,9375,-31398,9367,-31400,9359,-31402,9351,-31405,9343,-31407,9335,-31410,9327,-31412,9319,-31414,9311,-31417,9303,-31419,9295,-31421,9287,-31424,9279,-31426,9270,-31429,9262,-31431,9254,-31433,9246,-31436,9238,-31438,9230,-31440,9222,-31443,9214,-31445,9206,-31447,9198,-31450,9190,-31452,9182,-31455,9174,-31457,9166,-31459,9158,-31462,9150,-31464,9142,-31466,9134,-31469,9126,-31471,9118,-31473,9110,-31476,9102,-31478,9094,-31480,9086,-31483,9077,-31485,9069,-31487,9061,-31490,9053,-31492,9045,-31494,9037,-31496,9029,-31499,9021,-31501,9013,-31503,9005,-31506,8997,-31508,8989,-31510,8981,-31513,8973,-31515,8965,-31517,8957,-31519,8949,-31522,8941,-31524,8932,-31526,8924,-31529,8916,-31531,8908,-31533,8900,-31535,8892,-31538,8884,-31540,8876,-31542,8868,-31545,8860,-31547,8852,-31549,8844,-31551,8836,-31554,8828,-31556,8820,-31558,8812,-31560,8803,-31563,8795,-31565,8787,-31567,8779,-31569,8771,-31572,8763,-31574,8755,-31576,8747,-31578,8739,-31581,8731,-31583,8723,-31585,8715,-31587,8707,-31589,8699,-31592,8690,-31594,8682,-31596,8674,-31598,8666,-31601,8658,-31603,8650,-31605,8642,-31607,8634,-31609,8626,-31612,8618,-31614,8610,-31616,8602,-31618,8593,-31620,8585,-31623,8577,-31625,8569,-31627,8561,-31629,8553,-31631,8545,-31634,8537,-31636,8529,-31638,8521,-31640,8513,-31642,8504,-31644,8496,-31647,8488,-31649,8480,-31651,8472,-31653,8464,-31655,8456,-31657,8448,-31660,8440,-31662,8432,-31664,8424,-31666,8415,-31668,8407,-31670,8399,-31673,8391,-31675,8383,-31677,8375,-31679,8367,-31681,8359,-31683,8351,-31685,8343,-31688,8334,-31690,8326,-31692,8318,-31694,8310,-31696,8302,-31698,8294,-31700,8286,-31702,8278,-31705,8270,-31707,8262,-31709,8253,-31711,8245,-31713,8237,-31715,8229,-31717,8221,-31719,8213,-31721,8205,-31724,8197,-31726,8189,-31728,8180,-31730,8172,-31732,8164,-31734,8156,-31736,8148,-31738,8140,-31740,8132,-31742,8124,-31744,8116,-31746,8107,-31749,8099,-31751,8091,-31753,8083,-31755,8075,-31757,8067,-31759,8059,-31761,8051,-31763,8042,-31765,8034,-31767,8026,-31769,8018,-31771,8010,-31773,8002,-31775,7994,-31777,7986,-31779,7977,-31781,7969,-31783,7961,-31786,7953,-31788,7945,-31790,7937,-31792,7929,-31794,7921,-31796,7912,-31798,7904,-31800,7896,-31802,7888,-31804,7880,-31806,7872,-31808,7864,-31810,7856,-31812,7847,-31814,7839,-31816,7831,-31818,7823,-31820,7815,-31822,7807,-31824,7799,-31826,7790,-31828,7782,-31830,7774,-31832,7766,-31834,7758,-31836,7750,-31838,7742,-31840,7733,-31842,7725,-31844,7717,-31846,7709,-31848,7701,-31850,7693,-31852,7685,-31854,7676,-31855,7668,-31857,7660,-31859,7652,-31861,7644,-31863,7636,-31865,7628,-31867,7619,-31869,7611,-31871,7603,-31873,7595,-31875,7587,-31877,7579,-31879,7571,-31881,7562,-31883,7554,-31885,7546,-31887,7538,-31889,7530,-31890,7522,-31892,7514,-31894,7505,-31896,7497,-31898,7489,-31900,7481,-31902,7473,-31904,7465,-31906,7456,-31908,7448,-31910,7440,-31912,7432,-31913,7424,-31915,7416,-31917,7407,-31919,7399,-31921,7391,-31923,7383,-31925,7375,-31927,7367,-31929,7358,-31930,7350,-31932,7342,-31934,7334,-31936,7326,-31938,7318,-31940,7310,-31942,7301,-31944,7293,-31945,7285,-31947,7277,-31949,7269,-31951,7261,-31953,7252,-31955,7244,-31957,7236,-31958,7228,-31960,7220,-31962,7211,-31964,7203,-31966,7195,-31968,7187,-31969,7179,-31971,7171,-31973,7162,-31975,7154,-31977,7146,-31979,7138,-31980,7130,-31982,7122,-31984,7113,-31986,7105,-31988,7097,-31990,7089,-31991,7081,-31993,7072,-31995,7064,-31997,7056,-31999,7048,-32000,7040,-32002,7032,-32004,7023,-32006,7015,-32008,7007,-32009,6999,-32011,6991,-32013,6982,-32015,6974,-32017,6966,-32018,6958,-32020,6950,-32022,6942,-32024,6933,-32025,6925,-32027,6917,-32029,6909,-32031,6901,-32033,6892,-32034,6884,-32036,6876,-32038,6868,-32040,6860,-32041,6851,-32043,6843,-32045,6835,-32047,6827,-32048,6819,-32050,6811,-32052,6802,-32054,6794,-32055,6786,-32057,6778,-32059,6770,-32060,6761,-32062,6753,-32064,6745,-32066,6737,-32067,6729,-32069,6720,-32071,6712,-32073,6704,-32074,6696,-32076,6688,-32078,6679,-32079,6671,-32081,6663,-32083,6655,-32085,6647,-32086,6638,-32088,6630,-32090,6622,-32091,6614,-32093,6606,-32095,6597,-32096,6589,-32098,6581,-32100,6573,-32101,6564,-32103,6556,-32105,6548,-32106,6540,-32108,6532,-32110,6523,-32111,6515,-32113,6507,-32115,6499,-32116,6491,-32118,6482,-32120,6474,-32121,6466,-32123,6458,-32125,6450,-32126,6441,-32128,6433,-32130,6425,-32131,6417,-32133,6408,-32135,6400,-32136,6392,-32138,6384,-32140,6376,-32141,6367,-32143,6359,-32144,6351,-32146,6343,-32148,6334,-32149,6326,-32151,6318,-32153,6310,-32154,6302,-32156,6293,-32157,6285,-32159,6277,-32161,6269,-32162,6261,-32164,6252,-32165,6244,-32167,6236,-32169,6228,-32170,6219,-32172,6211,-32173,6203,-32175,6195,-32177,6186,-32178,6178,-32180,6170,-32181,6162,-32183,6154,-32184,6145,-32186,6137,-32188,6129,-32189,6121,-32191,6112,-32192,6104,-32194,6096,-32195,6088,-32197,6080,-32198,6071,-32200,6063,-32202,6055,-32203,6047,-32205,6038,-32206,6030,-32208,6022,-32209,6014,-32211,6005,-32212,5997,-32214,5989,-32215,5981,-32217,5972,-32219,5964,-32220,5956,-32222,5948,-32223,5940,-32225,5931,-32226,5923,-32228,5915,-32229,5907,-32231,5898,-32232,5890,-32234,5882,-32235,5874,-32237,5865,-32238,5857,-32240,5849,-32241,5841,-32243,5832,-32244,5824,-32246,5816,-32247,5808,-32249,5799,-32250,5791,-32252,5783,-32253,5775,-32255,5766,-32256,5758,-32257,5750,-32259,5742,-32260,5733,-32262,5725,-32263,5717,-32265,5709,-32266,5700,-32268,5692,-32269,5684,-32271,5676,-32272,5667,-32274,5659,-32275,5651,-32276,5643,-32278,5634,-32279,5626,-32281,5618,-32282,5610,-32284,5601,-32285,5593,-32287,5585,-32288,5577,-32289,5568,-32291,5560,-32292,5552,-32294,5544,-32295,5535,-32296,5527,-32298,5519,-32299,5511,-32301,5502,-32302,5494,-32304,5486,-32305,5478,-32306,5469,-32308,5461,-32309,5453,-32311,5445,-32312,5436,-32313,5428,-32315,5420,-32316,5411,-32317,5403,-32319,5395,-32320,5387,-32322,5378,-32323,5370,-32324,5362,-32326,5354,-32327,5345,-32328,5337,-32330,5329,-32331,5321,-32333,5312,-32334,5304,-32335,5296,-32337,5287,-32338,5279,-32339,5271,-32341,5263,-32342,5254,-32343,5246,-32345,5238,-32346,5230,-32347,5221,-32349,5213,-32350,5205,-32351,5197,-32353,5188,-32354,5180,-32355,5172,-32357,5163,-32358,5155,-32359,5147,-32361,5139,-32362,5130,-32363,5122,-32365,5114,-32366,5106,-32367,5097,-32369,5089,-32370,5081,-32371,5072,-32372,5064,-32374,5056,-32375,5048,-32376,5039,-32378,5031,-32379,5023,-32380,5014,-32381,5006,-32383,4998,-32384,4990,-32385,4981,-32387,4973,-32388,4965,-32389,4957,-32390,4948,-32392,4940,-32393,4932,-32394,4923,-32395,4915,-32397,4907,-32398,4899,-32399,4890,-32400,4882,-32402,4874,-32403,4865,-32404,4857,-32405,4849,-32407,4841,-32408,4832,-32409,4824,-32410,4816,-32412,4807,-32413,4799,-32414,4791,-32415,4783,-32417,4774,-32418,4766,-32419,4758,-32420,4749,-32421,4741,-32423,4733,-32424,4725,-32425,4716,-32426,4708,-32427,4700,-32429,4691,-32430,4683,-32431,4675,-32432,4666,-32433,4658,-32435,4650,-32436,4642,-32437,4633,-32438,4625,-32439,4617,-32441,4608,-32442,4600,-32443,4592,-32444,4584,-32445,4575,-32446,4567,-32448,4559,-32449,4550,-32450,4542,-32451,4534,-32452,4525,-32453,4517,-32455,4509,-32456,4501,-32457,4492,-32458,4484,-32459,4476,-32460,4467,-32461,4459,-32463,4451,-32464,4443,-32465,4434,-32466,4426,-32467,4418,-32468,4409,-32469,4401,-32471,4393,-32472,4384,-32473,4376,-32474,4368,-32475,4359,-32476,4351,-32477,4343,-32478,4335,-32479,4326,-32481,4318,-32482,4310,-32483,4301,-32484,4293,-32485,4285,-32486,4276,-32487,4268,-32488,4260,-32489,4252,-32490,4243,-32492,4235,-32493,4227,-32494,4218,-32495,4210,-32496,4202,-32497,4193,-32498,4185,-32499,4177,-32500,4168,-32501,4160,-32502,4152,-32503,4144,-32504,4135,-32505,4127,-32507,4119,-32508,4110,-32509,4102,-32510,4094,-32511,4085,-32512,4077,-32513,4069,-32514,4060,-32515,4052,-32516,4044,-32517,4035,-32518,4027,-32519,4019,-32520,4011,-32521,4002,-32522,3994,-32523,3986,-32524,3977,-32525,3969,-32526,3961,-32527,3952,-32528,3944,-32529,3936,-32530,3927,-32531,3919,-32532,3911,-32533,3902,-32534,3894,-32535,3886,-32536,3877,-32537,3869,-32538,3861,-32539,3853,-32540,3844,-32541,3836,-32542,3828,-32543,3819,-32544,3811,-32545,3803,-32546,3794,-32547,3786,-32548,3778,-32549,3769,-32550,3761,-32551,3753,-32552,3744,-32553,3736,-32554,3728,-32555,3719,-32556,3711,-32557,3703,-32558,3694,-32559,3686,-32559,3678,-32560,3669,-32561,3661,-32562,3653,-32563,3644,-32564,3636,-32565,3628,-32566,3619,-32567,3611,-32568,3603,-32569,3594,-32570,3586,-32571,3578,-32572,3570,-32572,3561,-32573,3553,-32574,3545,-32575,3536,-32576,3528,-32577,3520,-32578,3511,-32579,3503,-32580,3495,-32581,3486,-32581,3478,-32582,3470,-32583,3461,-32584,3453,-32585,3445,-32586,3436,-32587,3428,-32588,3420,-32589,3411,-32589,3403,-32590,3395,-32591,3386,-32592,3378,-32593,3370,-32594,3361,-32595,3353,-32595,3345,-32596,3336,-32597,3328,-32598,3320,-32599,3311,-32600,3303,-32601,3295,-32601,3286,-32602,3278,-32603,3270,-32604,3261,-32605,3253,-32606,3245,-32606,3236,-32607,3228,-32608,3220,-32609,3211,-32610,3203,-32611,3195,-32611,3186,-32612,3178,-32613,3170,-32614,3161,-32615,3153,-32615,3145,-32616,3136,-32617,3128,-32618,3120,-32619,3111,-32619,3103,-32620,3094,-32621,3086,-32622,3078,-32623,3069,-32623,3061,-32624,3053,-32625,3044,-32626,3036,-32626,3028,-32627,3019,-32628,3011,-32629,3003,-32630,2994,-32630,2986,-32631,2978,-32632,2969,-32633,2961,-32633,2953,-32634,2944,-32635,2936,-32636,2928,-32636,2919,-32637,2911,-32638,2903,-32639,2894,-32639,2886,-32640,2878,-32641,2869,-32642,2861,-32642,2853,-32643,2844,-32644,2836,-32645,2828,-32645,2819,-32646,2811,-32647,2802,-32647,2794,-32648,2786,-32649,2777,-32650,2769,-32650,2761,-32651,2752,-32652,2744,-32652,2736,-32653,2727,-32654,2719,-32654,2711,-32655,2702,-32656,2694,-32657,2686,-32657,2677,-32658,2669,-32659,2661,-32659,2652,-32660,2644,-32661,2636,-32661,2627,-32662,2619,-32663,2610,-32663,2602,-32664,2594,-32665,2585,-32665,2577,-32666,2569,-32667,2560,-32667,2552,-32668,2544,-32669,2535,-32669,2527,-32670,2519,-32671,2510,-32671,2502,-32672,2494,-32672,2485,-32673,2477,-32674,2468,-32674,2460,-32675,2452,-32676,2443,-32676,2435,-32677,2427,-32677,2418,-32678,2410,-32679,2402,-32679,2393,-32680,2385,-32681,2377,-32681,2368,-32682,2360,-32682,2352,-32683,2343,-32684,2335,-32684,2326,-32685,2318,-32685,2310,-32686,2301,-32687,2293,-32687,2285,-32688,2276,-32688,2268,-32689,2260,-32689,2251,-32690,2243,-32691,2235,-32691,2226,-32692,2218,-32692,2209,-32693,2201,-32693,2193,-32694,2184,-32695,2176,-32695,2168,-32696,2159,-32696,2151,-32697,2143,-32697,2134,-32698,2126,-32698,2117,-32699,2109,-32700,2101,-32700,2092,-32701,2084,-32701,2076,-32702,2067,-32702,2059,-32703,2051,-32703,2042,-32704,2034,-32704,2026,-32705,2017,-32705,2009,-32706,2000,-32706,1992,-32707,1984,-32707,1975,-32708,1967,-32708,1959,-32709,1950,-32709,1942,-32710,1934,-32710,1925,-32711,1917,-32711,1908,-32712,1900,-32712,1892,-32713,1883,-32713,1875,-32714,1867,-32714,1858,-32715,1850,-32715,1842,-32716,1833,-32716,1825,-32717,1816,-32717,1808,-32718,1800,-32718,1791,-32718,1783,-32719,1775,-32719,1766,-32720,1758,-32720,1750,-32721,1741,-32721,1733,-32722,1724,-32722,1716,-32723,1708,-32723,1699,-32723,1691,-32724,1683,-32724,1674,-32725,1666,-32725,1658,-32726,1649,-32726,1641,-32726,1632,-32727,1624,-32727,1616,-32728,1607,-32728,1599,-32728,1591,-32729,1582,-32729,1574,-32730,1565,-32730,1557,-32730,1549,-32731,1540,-32731,1532,-32732,1524,-32732,1515,-32732,1507,-32733,1499,-32733,1490,-32734,1482,-32734,1473,-32734,1465,-32735,1457,-32735,1448,-32735,1440,-32736,1432,-32736,1423,-32737,1415,-32737,1406,-32737,1398,-32738,1390,-32738,1381,-32738,1373,-32739,1365,-32739,1356,-32739,1348,-32740,1339,-32740,1331,-32740,1323,-32741,1314,-32741,1306,-32741,1298,-32742,1289,-32742,1281,-32742,1273,-32743,1264,-32743,1256,-32743,1247,-32744,1239,-32744,1231,-32744,1222,-32745,1214,-32745,1206,-32745,1197,-32746,1189,-32746,1180,-32746,1172,-32747,1164,-32747,1155,-32747,1147,-32747,1139,-32748,1130,-32748,1122,-32748,1113,-32749,1105,-32749,1097,-32749,1088,-32749,1080,-32750,1072,-32750,1063,-32750,1055,-32751,1046,-32751,1038,-32751,1030,-32751,1021,-32752,1013,-32752,1005,-32752,996,-32752,988,-32753,980,-32753,971,-32753,963,-32753,954,-32754,946,-32754,938,-32754,929,-32754,921,-32755,913,-32755,904,-32755,896,-32755,887,-32755,879,-32756,871,-32756,862,-32756,854,-32756,846,-32757,837,-32757,829,-32757,820,-32757,812,-32757,804,-32758,795,-32758,787,-32758,779,-32758,770,-32758,762,-32759,753,-32759,745,-32759,737,-32759,728,-32759,720,-32760,712,-32760,703,-32760,695,-32760,686,-32760,678,-32760,670,-32761,661,-32761,653,-32761,645,-32761,636,-32761,628,-32761,619,-32762,611,-32762,603,-32762,594,-32762,586,-32762,578,-32762,569,-32763,561,-32763,552,-32763,544,-32763,536,-32763,527,-32763,519,-32763,510,-32764,502,-32764,494,-32764,485,-32764,477,-32764,469,-32764,460,-32764,452,-32764,443,-32764,435,-32765,427,-32765,418,-32765,410,-32765,402,-32765,393,-32765,385,-32765,376,-32765,368,-32765,360,-32766,351,-32766,343,-32766,335,-32766,326,-32766,318,-32766,309,-32766,301,-32766,293,-32766,284,-32766,276,-32766,268,-32766,259,-32766,251,-32767,242,-32767,234,-32767,226,-32767,217,-32767,209,-32767,201,-32767,192,-32767,184,-32767,175,-32767,167,-32767,159,-32767,150,-32767,142,-32767,134,-32767,125,-32767,117,-32767,108,-32767,100,-32767,92,-32767,83,-32767,75,-32767,67,-32767,58,-32767,50,-32767,41,-32767,33,-32767,25,-32767,16,-32767,8,-32767,0,-32767,-9,-32767,-17,-32767,-26,-32767,-34,-32767,-42,-32767,-51,-32767,-59,-32767,-68,-32767,-76,-32767,-84,-32767,-93,-32767,-101,-32767,-109,-32767,-118,-32767,-126,-32767,-135,-32767,-143,-32767,-151,-32767,-160,-32767,-168,-32767,-176,-32767,-185,-32767,-193,-32767,-202,-32767,-210,-32767,-218,-32767,-227,-32767,-235,-32767,-243,-32767,-252,-32767,-260,-32766,-269,-32766,-277,-32766,-285,-32766,-294,-32766,-302,-32766,-310,-32766,-319,-32766,-327,-32766,-336,-32766,-344,-32766,-352,-32766,-361,-32766,-369,-32765,-377,-32765,-386,-32765,-394,-32765,-403,-32765,-411,-32765,-419,-32765,-428,-32765,-436,-32765,-444,-32764,-453,-32764,-461,-32764,-470,-32764,-478,-32764,-486,-32764,-495,-32764,-503,-32764,-511,-32764,-520,-32763,-528,-32763,-537,-32763,-545,-32763,-553,-32763,-562,-32763,-570,-32763,-579,-32762,-587,-32762,-595,-32762,-604,-32762,-612,-32762,-620,-32762,-629,-32761,-637,-32761,-646,-32761,-654,-32761,-662,-32761,-671,-32761,-679,-32760,-687,-32760,-696,-32760,-704,-32760,-713,-32760,-721,-32760,-729,-32759,-738,-32759,-746,-32759,-754,-32759,-763,-32759,-771,-32758,-780,-32758,-788,-32758,-796,-32758,-805,-32758,-813,-32757,-821,-32757,-830,-32757,-838,-32757,-847,-32757,-855,-32756,-863,-32756,-872,-32756,-880,-32756,-888,-32755,-897,-32755,-905,-32755,-914,-32755,-922,-32755,-930,-32754,-939,-32754,-947,-32754,-955,-32754,-964,-32753,-972,-32753,-981,-32753,-989,-32753,-997,-32752,-1006,-32752,-1014,-32752,-1022,-32752,-1031,-32751,-1039,-32751,-1047,-32751,-1056,-32751,-1064,-32750,-1073,-32750,-1081,-32750,-1089,-32749,-1098,-32749,-1106,-32749,-1114,-32749,-1123,-32748,-1131,-32748,-1140,-32748,-1148,-32747,-1156,-32747,-1165,-32747,-1173,-32747,-1181,-32746,-1190,-32746,-1198,-32746,-1207,-32745,-1215,-32745,-1223,-32745,-1232,-32744,-1240,-32744,-1248,-32744,-1257,-32743,-1265,-32743,-1274,-32743,-1282,-32742,-1290,-32742,-1299,-32742,-1307,-32741,-1315,-32741,-1324,-32741,-1332,-32740,-1340,-32740,-1349,-32740,-1357,-32739,-1366,-32739,-1374,-32739,-1382,-32738,-1391,-32738,-1399,-32738,-1407,-32737,-1416,-32737,-1424,-32737,-1433,-32736,-1441,-32736,-1449,-32735,-1458,-32735,-1466,-32735,-1474,-32734,-1483,-32734,-1491,-32734,-1500,-32733,-1508,-32733,-1516,-32732,-1525,-32732,-1533,-32732,-1541,-32731,-1550,-32731,-1558,-32730,-1566,-32730,-1575,-32730,-1583,-32729,-1592,-32729,-1600,-32728,-1608,-32728,-1617,-32728,-1625,-32727,-1633,-32727,-1642,-32726,-1650,-32726,-1659,-32726,-1667,-32725,-1675,-32725,-1684,-32724,-1692,-32724,-1700,-32723,-1709,-32723,-1717,-32723,-1725,-32722,-1734,-32722,-1742,-32721,-1751,-32721,-1759,-32720,-1767,-32720,-1776,-32719,-1784,-32719,-1792,-32718,-1801,-32718,-1809,-32718,-1817,-32717,-1826,-32717,-1834,-32716,-1843,-32716,-1851,-32715,-1859,-32715,-1868,-32714,-1876,-32714,-1884,-32713,-1893,-32713,-1901,-32712,-1909,-32712,-1918,-32711,-1926,-32711,-1935,-32710,-1943,-32710,-1951,-32709,-1960,-32709,-1968,-32708,-1976,-32708,-1985,-32707,-1993,-32707,-2001,-32706,-2010,-32706,-2018,-32705,-2027,-32705,-2035,-32704,-2043,-32704,-2052,-32703,-2060,-32703,-2068,-32702,-2077,-32702,-2085,-32701,-2093,-32701,-2102,-32700,-2110,-32700,-2118,-32699,-2127,-32698,-2135,-32698,-2144,-32697,-2152,-32697,-2160,-32696,-2169,-32696,-2177,-32695,-2185,-32695,-2194,-32694,-2202,-32693,-2210,-32693,-2219,-32692,-2227,-32692,-2236,-32691,-2244,-32691,-2252,-32690,-2261,-32689,-2269,-32689,-2277,-32688,-2286,-32688,-2294,-32687,-2302,-32687,-2311,-32686,-2319,-32685,-2327,-32685,-2336,-32684,-2344,-32684,-2353,-32683,-2361,-32682,-2369,-32682,-2378,-32681,-2386,-32681,-2394,-32680,-2403,-32679,-2411,-32679,-2419,-32678,-2428,-32677,-2436,-32677,-2444,-32676,-2453,-32676,-2461,-32675,-2469,-32674,-2478,-32674,-2486,-32673,-2495,-32672,-2503,-32672,-2511,-32671,-2520,-32671,-2528,-32670,-2536,-32669,-2545,-32669,-2553,-32668,-2561,-32667,-2570,-32667,-2578,-32666,-2586,-32665,-2595,-32665,-2603,-32664,-2611,-32663,-2620,-32663,-2628,-32662,-2637,-32661,-2645,-32661,-2653,-32660,-2662,-32659,-2670,-32659,-2678,-32658,-2687,-32657,-2695,-32657,-2703,-32656,-2712,-32655,-2720,-32654,-2728,-32654,-2737,-32653,-2745,-32652,-2753,-32652,-2762,-32651,-2770,-32650,-2778,-32650,-2787,-32649,-2795,-32648,-2803,-32647,-2812,-32647,-2820,-32646,-2829,-32645,-2837,-32645,-2845,-32644,-2854,-32643,-2862,-32642,-2870,-32642,-2879,-32641,-2887,-32640,-2895,-32639,-2904,-32639,-2912,-32638,-2920,-32637,-2929,-32636,-2937,-32636,-2945,-32635,-2954,-32634,-2962,-32633,-2970,-32633,-2979,-32632,-2987,-32631,-2995,-32630,-3004,-32630,-3012,-32629,-3020,-32628,-3029,-32627,-3037,-32626,-3045,-32626,-3054,-32625,-3062,-32624,-3070,-32623,-3079,-32623,-3087,-32622,-3095,-32621,-3104,-32620,-3112,-32619,-3121,-32619,-3129,-32618,-3137,-32617,-3146,-32616,-3154,-32615,-3162,-32615,-3171,-32614,-3179,-32613,-3187,-32612,-3196,-32611,-3204,-32611,-3212,-32610,-3221,-32609,-3229,-32608,-3237,-32607,-3246,-32606,-3254,-32606,-3262,-32605,-3271,-32604,-3279,-32603,-3287,-32602,-3296,-32601,-3304,-32601,-3312,-32600,-3321,-32599,-3329,-32598,-3337,-32597,-3346,-32596,-3354,-32595,-3362,-32595,-3371,-32594,-3379,-32593,-3387,-32592,-3396,-32591,-3404,-32590,-3412,-32589,-3421,-32589,-3429,-32588,-3437,-32587,-3446,-32586,-3454,-32585,-3462,-32584,-3471,-32583,-3479,-32582,-3487,-32581,-3496,-32581,-3504,-32580,-3512,-32579,-3521,-32578,-3529,-32577,-3537,-32576,-3546,-32575,-3554,-32574,-3562,-32573,-3571,-32572,-3579,-32572,-3587,-32571,-3595,-32570,-3604,-32569,-3612,-32568,-3620,-32567,-3629,-32566,-3637,-32565,-3645,-32564,-3654,-32563,-3662,-32562,-3670,-32561,-3679,-32560,-3687,-32559,-3695,-32559,-3704,-32558,-3712,-32557,-3720,-32556,-3729,-32555,-3737,-32554,-3745,-32553,-3754,-32552,-3762,-32551,-3770,-32550,-3779,-32549,-3787,-32548,-3795,-32547,-3804,-32546,-3812,-32545,-3820,-32544,-3829,-32543,-3837,-32542,-3845,-32541,-3854,-32540,-3862,-32539,-3870,-32538,-3878,-32537,-3887,-32536,-3895,-32535,-3903,-32534,-3912,-32533,-3920,-32532,-3928,-32531,-3937,-32530,-3945,-32529,-3953,-32528,-3962,-32527,-3970,-32526,-3978,-32525,-3987,-32524,-3995,-32523,-4003,-32522,-4012,-32521,-4020,-32520,-4028,-32519,-4036,-32518,-4045,-32517,-4053,-32516,-4061,-32515,-4070,-32514,-4078,-32513,-4086,-32512,-4095,-32511,-4103,-32510,-4111,-32509,-4120,-32508,-4128,-32507,-4136,-32505,-4145,-32504,-4153,-32503,-4161,-32502,-4169,-32501,-4178,-32500,-4186,-32499,-4194,-32498,-4203,-32497,-4211,-32496,-4219,-32495,-4228,-32494,-4236,-32493,-4244,-32492,-4253,-32490,-4261,-32489,-4269,-32488,-4277,-32487,-4286,-32486,-4294,-32485,-4302,-32484,-4311,-32483,-4319,-32482,-4327,-32481,-4336,-32479,-4344,-32478,-4352,-32477,-4360,-32476,-4369,-32475,-4377,-32474,-4385,-32473,-4394,-32472,-4402,-32471,-4410,-32469,-4419,-32468,-4427,-32467,-4435,-32466,-4444,-32465,-4452,-32464,-4460,-32463,-4468,-32461,-4477,-32460,-4485,-32459,-4493,-32458,-4502,-32457,-4510,-32456,-4518,-32455,-4526,-32453,-4535,-32452,-4543,-32451,-4551,-32450,-4560,-32449,-4568,-32448,-4576,-32446,-4585,-32445,-4593,-32444,-4601,-32443,-4609,-32442,-4618,-32441,-4626,-32439,-4634,-32438,-4643,-32437,-4651,-32436,-4659,-32435,-4667,-32433,-4676,-32432,-4684,-32431,-4692,-32430,-4701,-32429,-4709,-32427,-4717,-32426,-4726,-32425,-4734,-32424,-4742,-32423,-4750,-32421,-4759,-32420,-4767,-32419,-4775,-32418,-4784,-32417,-4792,-32415,-4800,-32414,-4808,-32413,-4817,-32412,-4825,-32410,-4833,-32409,-4842,-32408,-4850,-32407,-4858,-32405,-4866,-32404,-4875,-32403,-4883,-32402,-4891,-32400,-4900,-32399,-4908,-32398,-4916,-32397,-4924,-32395,-4933,-32394,-4941,-32393,-4949,-32392,-4958,-32390,-4966,-32389,-4974,-32388,-4982,-32387,-4991,-32385,-4999,-32384,-5007,-32383,-5015,-32381,-5024,-32380,-5032,-32379,-5040,-32378,-5049,-32376,-5057,-32375,-5065,-32374,-5073,-32372,-5082,-32371,-5090,-32370,-5098,-32369,-5107,-32367,-5115,-32366,-5123,-32365,-5131,-32363,-5140,-32362,-5148,-32361,-5156,-32359,-5164,-32358,-5173,-32357,-5181,-32355,-5189,-32354,-5198,-32353,-5206,-32351,-5214,-32350,-5222,-32349,-5231,-32347,-5239,-32346,-5247,-32345,-5255,-32343,-5264,-32342,-5272,-32341,-5280,-32339,-5288,-32338,-5297,-32337,-5305,-32335,-5313,-32334,-5322,-32333,-5330,-32331,-5338,-32330,-5346,-32328,-5355,-32327,-5363,-32326,-5371,-32324,-5379,-32323,-5388,-32322,-5396,-32320,-5404,-32319,-5412,-32317,-5421,-32316,-5429,-32315,-5437,-32313,-5446,-32312,-5454,-32311,-5462,-32309,-5470,-32308,-5479,-32306,-5487,-32305,-5495,-32304,-5503,-32302,-5512,-32301,-5520,-32299,-5528,-32298,-5536,-32296,-5545,-32295,-5553,-32294,-5561,-32292,-5569,-32291,-5578,-32289,-5586,-32288,-5594,-32287,-5602,-32285,-5611,-32284,-5619,-32282,-5627,-32281,-5635,-32279,-5644,-32278,-5652,-32276,-5660,-32275,-5668,-32274,-5677,-32272,-5685,-32271,-5693,-32269,-5701,-32268,-5710,-32266,-5718,-32265,-5726,-32263,-5734,-32262,-5743,-32260,-5751,-32259,-5759,-32257,-5767,-32256,-5776,-32255,-5784,-32253,-5792,-32252,-5800,-32250,-5809,-32249,-5817,-32247,-5825,-32246,-5833,-32244,-5842,-32243,-5850,-32241,-5858,-32240,-5866,-32238,-5875,-32237,-5883,-32235,-5891,-32234,-5899,-32232,-5908,-32231,-5916,-32229,-5924,-32228,-5932,-32226,-5941,-32225,-5949,-32223,-5957,-32222,-5965,-32220,-5973,-32219,-5982,-32217,-5990,-32215,-5998,-32214,-6006,-32212,-6015,-32211,-6023,-32209,-6031,-32208,-6039,-32206,-6048,-32205,-6056,-32203,-6064,-32202,-6072,-32200,-6081,-32198,-6089,-32197,-6097,-32195,-6105,-32194,-6113,-32192,-6122,-32191,-6130,-32189,-6138,-32188,-6146,-32186,-6155,-32184,-6163,-32183,-6171,-32181,-6179,-32180,-6187,-32178,-6196,-32177,-6204,-32175,-6212,-32173,-6220,-32172,-6229,-32170,-6237,-32169,-6245,-32167,-6253,-32165,-6262,-32164,-6270,-32162,-6278,-32161,-6286,-32159,-6294,-32157,-6303,-32156,-6311,-32154,-6319,-32153,-6327,-32151,-6335,-32149,-6344,-32148,-6352,-32146,-6360,-32144,-6368,-32143,-6377,-32141,-6385,-32140,-6393,-32138,-6401,-32136,-6409,-32135,-6418,-32133,-6426,-32131,-6434,-32130,-6442,-32128,-6451,-32126,-6459,-32125,-6467,-32123,-6475,-32121,-6483,-32120,-6492,-32118,-6500,-32116,-6508,-32115,-6516,-32113,-6524,-32111,-6533,-32110,-6541,-32108,-6549,-32106,-6557,-32105,-6565,-32103,-6574,-32101,-6582,-32100,-6590,-32098,-6598,-32096,-6607,-32095,-6615,-32093,-6623,-32091,-6631,-32090,-6639,-32088,-6648,-32086,-6656,-32085,-6664,-32083,-6672,-32081,-6680,-32079,-6689,-32078,-6697,-32076,-6705,-32074,-6713,-32073,-6721,-32071,-6730,-32069,-6738,-32067,-6746,-32066,-6754,-32064,-6762,-32062,-6771,-32060,-6779,-32059,-6787,-32057,-6795,-32055,-6803,-32054,-6812,-32052,-6820,-32050,-6828,-32048,-6836,-32047,-6844,-32045,-6852,-32043,-6861,-32041,-6869,-32040,-6877,-32038,-6885,-32036,-6893,-32034,-6902,-32033,-6910,-32031,-6918,-32029,-6926,-32027,-6934,-32025,-6943,-32024,-6951,-32022,-6959,-32020,-6967,-32018,-6975,-32017,-6983,-32015,-6992,-32013,-7000,-32011,-7008,-32009,-7016,-32008,-7024,-32006,-7033,-32004,-7041,-32002,-7049,-32000,-7057,-31999,-7065,-31997,-7073,-31995,-7082,-31993,-7090,-31991,-7098,-31990,-7106,-31988,-7114,-31986,-7123,-31984,-7131,-31982,-7139,-31980,-7147,-31979,-7155,-31977,-7163,-31975,-7172,-31973,-7180,-31971,-7188,-31969,-7196,-31968,-7204,-31966,-7212,-31964,-7221,-31962,-7229,-31960,-7237,-31958,-7245,-31957,-7253,-31955,-7262,-31953,-7270,-31951,-7278,-31949,-7286,-31947,-7294,-31945,-7302,-31944,-7311,-31942,-7319,-31940,-7327,-31938,-7335,-31936,-7343,-31934,-7351,-31932,-7359,-31930,-7368,-31929,-7376,-31927,-7384,-31925,-7392,-31923,-7400,-31921,-7408,-31919,-7417,-31917,-7425,-31915,-7433,-31913,-7441,-31912,-7449,-31910,-7457,-31908,-7466,-31906,-7474,-31904,-7482,-31902,-7490,-31900,-7498,-31898,-7506,-31896,-7515,-31894,-7523,-31892,-7531,-31890,-7539,-31889,-7547,-31887,-7555,-31885,-7563,-31883,-7572,-31881,-7580,-31879,-7588,-31877,-7596,-31875,-7604,-31873,-7612,-31871,-7620,-31869,-7629,-31867,-7637,-31865,-7645,-31863,-7653,-31861,-7661,-31859,-7669,-31857,-7677,-31855,-7686,-31854,-7694,-31852,-7702,-31850,-7710,-31848,-7718,-31846,-7726,-31844,-7734,-31842,-7743,-31840,-7751,-31838,-7759,-31836,-7767,-31834,-7775,-31832,-7783,-31830,-7791,-31828,-7800,-31826,-7808,-31824,-7816,-31822,-7824,-31820,-7832,-31818,-7840,-31816,-7848,-31814,-7857,-31812,-7865,-31810,-7873,-31808,-7881,-31806,-7889,-31804,-7897,-31802,-7905,-31800,-7913,-31798,-7922,-31796,-7930,-31794,-7938,-31792,-7946,-31790,-7954,-31788,-7962,-31786,-7970,-31783,-7978,-31781,-7987,-31779,-7995,-31777,-8003,-31775,-8011,-31773,-8019,-31771,-8027,-31769,-8035,-31767,-8043,-31765,-8052,-31763,-8060,-31761,-8068,-31759,-8076,-31757,-8084,-31755,-8092,-31753,-8100,-31751,-8108,-31749,-8117,-31746,-8125,-31744,-8133,-31742,-8141,-31740,-8149,-31738,-8157,-31736,-8165,-31734,-8173,-31732,-8181,-31730,-8190,-31728,-8198,-31726,-8206,-31724,-8214,-31721,-8222,-31719,-8230,-31717,-8238,-31715,-8246,-31713,-8254,-31711,-8263,-31709,-8271,-31707,-8279,-31705,-8287,-31702,-8295,-31700,-8303,-31698,-8311,-31696,-8319,-31694,-8327,-31692,-8335,-31690,-8344,-31688,-8352,-31685,-8360,-31683,-8368,-31681,-8376,-31679,-8384,-31677,-8392,-31675,-8400,-31673,-8408,-31670,-8416,-31668,-8425,-31666,-8433,-31664,-8441,-31662,-8449,-31660,-8457,-31657,-8465,-31655,-8473,-31653,-8481,-31651,-8489,-31649,-8497,-31647,-8505,-31644,-8514,-31642,-8522,-31640,-8530,-31638,-8538,-31636,-8546,-31634,-8554,-31631,-8562,-31629,-8570,-31627,-8578,-31625,-8586,-31623,-8594,-31620,-8603,-31618,-8611,-31616,-8619,-31614,-8627,-31612,-8635,-31609,-8643,-31607,-8651,-31605,-8659,-31603,-8667,-31601,-8675,-31598,-8683,-31596,-8691,-31594,-8700,-31592,-8708,-31589,-8716,-31587,-8724,-31585,-8732,-31583,-8740,-31581,-8748,-31578,-8756,-31576,-8764,-31574,-8772,-31572,-8780,-31569,-8788,-31567,-8796,-31565,-8804,-31563,-8813,-31560,-8821,-31558,-8829,-31556,-8837,-31554,-8845,-31551,-8853,-31549,-8861,-31547,-8869,-31545,-8877,-31542,-8885,-31540,-8893,-31538,-8901,-31535,-8909,-31533,-8917,-31531,-8925,-31529,-8933,-31526,-8942,-31524,-8950,-31522,-8958,-31519,-8966,-31517,-8974,-31515,-8982,-31513,-8990,-31510,-8998,-31508,-9006,-31506,-9014,-31503,-9022,-31501,-9030,-31499,-9038,-31496,-9046,-31494,-9054,-31492,-9062,-31490,-9070,-31487,-9078,-31485,-9087,-31483,-9095,-31480,-9103,-31478,-9111,-31476,-9119,-31473,-9127,-31471,-9135,-31469,-9143,-31466,-9151,-31464,-9159,-31462,-9167,-31459,-9175,-31457,-9183,-31455,-9191,-31452,-9199,-31450,-9207,-31447,-9215,-31445,-9223,-31443,-9231,-31440,-9239,-31438,-9247,-31436,-9255,-31433,-9263,-31431,-9271,-31429,-9280,-31426,-9288,-31424,-9296,-31421,-9304,-31419,-9312,-31417,-9320,-31414,-9328,-31412,-9336,-31410,-9344,-31407,-9352,-31405,-9360,-31402,-9368,-31400,-9376,-31398,-9384,-31395,-9392,-31393,-9400,-31390,-9408,-31388,-9416,-31386,-9424,-31383,-9432,-31381,-9440,-31378,-9448,-31376,-9456,-31374,-9464,-31371,-9472,-31369,-9480,-31366,-9488,-31364,-9496,-31361,-9504,-31359,-9512,-31357,-9520,-31354,-9528,-31352,-9536,-31349,-9544,-31347,-9552,-31344,-9560,-31342,-9568,-31339,-9576,-31337,-9584,-31335,-9592,-31332,-9600,-31330,-9608,-31327,-9616,-31325,-9624,-31322,-9632,-31320,-9640,-31317,-9648,-31315,-9656,-31312,-9664,-31310,-9672,-31308,-9680,-31305,-9688,-31303,-9696,-31300,-9704,-31298,-9712,-31295,-9720,-31293,-9728,-31290,-9736,-31288,-9744,-31285,-9752,-31283,-9760,-31280,-9768,-31278,-9776,-31275,-9784,-31273,-9792,-31270,-9800,-31268,-9808,-31265,-9816,-31263,-9824,-31260,-9832,-31258,-9840,-31255,-9848,-31253,-9856,-31250,-9864,-31248,-9872,-31245,-9880,-31243,-9888,-31240,-9896,-31237,-9904,-31235,-9912,-31232,-9920,-31230,-9928,-31227,-9936,-31225,-9944,-31222,-9952,-31220,-9960,-31217,-9968,-31215,-9976,-31212,-9984,-31210,-9992,-31207,-10000,-31204,-10008,-31202,-10016,-31199,-10024,-31197,-10032,-31194,-10040,-31192,-10048,-31189,-10056,-31186,-10064,-31184,-10072,-31181,-10080,-31179,-10088,-31176,-10096,-31174,-10104,-31171,-10112,-31168,-10120,-31166,-10128,-31163,-10136,-31161,-10144,-31158,-10152,-31155,-10160,-31153,-10167,-31150,-10175,-31148,-10183,-31145,-10191,-31142,-10199,-31140,-10207,-31137,-10215,-31135,-10223,-31132,-10231,-31129,-10239,-31127,-10247,-31124,-10255,-31122,-10263,-31119,-10271,-31116,-10279,-31114,-10287,-31111,-10295,-31108,-10303,-31106,-10311,-31103,-10319,-31101,-10327,-31098,-10335,-31095,-10343,-31093,-10350,-31090,-10358,-31087,-10366,-31085,-10374,-31082,-10382,-31079,-10390,-31077,-10398,-31074,-10406,-31071,-10414,-31069,-10422,-31066,-10430,-31063,-10438,-31061,-10446,-31058,-10454,-31055,-10462,-31053,-10470,-31050,-10478,-31047,-10485,-31045,-10493,-31042,-10501,-31039,-10509,-31037,-10517,-31034,-10525,-31031,-10533,-31029,-10541,-31026,-10549,-31023,-10557,-31020,-10565,-31018,-10573,-31015,-10581,-31012,-10589,-31010,-10597,-31007,-10604,-31004,-10612,-31002,-10620,-30999,-10628,-30996,-10636,-30993,-10644,-30991,-10652,-30988,-10660,-30985,-10668,-30982,-10676,-30980,-10684,-30977,-10692,-30974,-10700,-30972,-10707,-30969,-10715,-30966,-10723,-30963,-10731,-30961,-10739,-30958,-10747,-30955,-10755,-30952,-10763,-30950,-10771,-30947,-10779,-30944,-10787,-30941,-10795,-30939,-10802,-30936,-10810,-30933,-10818,-30930,-10826,-30928,-10834,-30925,-10842,-30922,-10850,-30919,-10858,-30916,-10866,-30914,-10874,-30911,-10881,-30908,-10889,-30905,-10897,-30903,-10905,-30900,-10913,-30897,-10921,-30894,-10929,-30891,-10937,-30889,-10945,-30886,-10953,-30883,-10960,-30880,-10968,-30877,-10976,-30875,-10984,-30872,-10992,-30869,-11000,-30866,-11008,-30863,-11016,-30861,-11024,-30858,-11031,-30855,-11039,-30852,-11047,-30849,-11055,-30846,-11063,-30844,-11071,-30841,-11079,-30838,-11087,-30835,-11095,-30832,-11102,-30829,-11110,-30827,-11118,-30824,-11126,-30821,-11134,-30818,-11142,-30815,-11150,-30812,-11158,-30810,-11165,-30807,-11173,-30804,-11181,-30801,-11189,-30798,-11197,-30795,-11205,-30792,-11213,-30789,-11221,-30787,-11228,-30784,-11236,-30781,-11244,-30778,-11252,-30775,-11260,-30772,-11268,-30769,-11276,-30767,-11284,-30764,-11291,-30761,-11299,-30758,-11307,-30755,-11315,-30752,-11323,-30749,-11331,-30746,-11339,-30743,-11346,-30740,-11354,-30738,-11362,-30735,-11370,-30732,-11378,-30729,-11386,-30726,-11394,-30723,-11401,-30720,-11409,-30717,-11417,-30714,-11425,-30711,-11433,-30708,-11441,-30706,-11449,-30703,-11456,-30700,-11464,-30697,-11472,-30694,-11480,-30691,-11488,-30688,-11496,-30685,-11503,-30682,-11511,-30679,-11519,-30676,-11527,-30673,-11535,-30670,-11543,-30667,-11551,-30664,-11558,-30661,-11566,-30658,-11574,-30656,-11582,-30653,-11590,-30650,-11598,-30647,-11605,-30644,-11613,-30641,-11621,-30638,-11629,-30635,-11637,-30632,-11645,-30629,-11652,-30626,-11660,-30623,-11668,-30620,-11676,-30617,-11684,-30614,-11692,-30611,-11699,-30608,-11707,-30605,-11715,-30602,-11723,-30599,-11731,-30596,-11738,-30593,-11746,-30590,-11754,-30587,-11762,-30584,-11770,-30581,-11778,-30578,-11785,-30575,-11793,-30572,-11801,-30569,-11809,-30566,-11817,-30563,-11824,-30560,-11832,-30557,-11840,-30554,-11848,-30551,-11856,-30548,-11863,-30545,-11871,-30542,-11879,-30539,-11887,-30536,-11895,-30533,-11903,-30529,-11910,-30526,-11918,-30523,-11926,-30520,-11934,-30517,-11942,-30514,-11949,-30511,-11957,-30508,-11965,-30505,-11973,-30502,-11981,-30499,-11988,-30496,-11996,-30493,-12004,-30490,-12012,-30487,-12020,-30484,-12027,-30481,-12035,-30477,-12043,-30474,-12051,-30471,-12058,-30468,-12066,-30465,-12074,-30462,-12082,-30459,-12090,-30456,-12097,-30453,-12105,-30450,-12113,-30447,-12121,-30443,-12129,-30440,-12136,-30437,-12144,-30434,-12152,-30431,-12160,-30428,-12167,-30425,-12175,-30422,-12183,-30419,-12191,-30416,-12199,-30412,-12206,-30409,-12214,-30406,-12222,-30403,-12230,-30400,-12237,-30397,-12245,-30394,-12253,-30391,-12261,-30387,-12269,-30384,-12276,-30381,-12284,-30378,-12292,-30375,-12300,-30372,-12307,-30369,-12315,-30365,-12323,-30362,-12331,-30359,-12338,-30356,-12346,-30353,-12354,-30350,-12362,-30346,-12369,-30343,-12377,-30340,-12385,-30337,-12393,-30334,-12400,-30331,-12408,-30327,-12416,-30324,-12424,-30321,-12431,-30318,-12439,-30315,-12447,-30312,-12455,-30308,-12462,-30305,-12470,-30302,-12478,-30299,-12486,-30296,-12493,-30292,-12501,-30289,-12509,-30286,-12517,-30283,-12524,-30280,-12532,-30276,-12540,-30273,-12548,-30270,-12555,-30267,-12563,-30264,-12571,-30260,-12579,-30257,-12586,-30254,-12594,-30251,-12602,-30248,-12610,-30244,-12617,-30241,-12625,-30238,-12633,-30235,-12640,-30231,-12648,-30228,-12656,-30225,-12664,-30222,-12671,-30218,-12679,-30215,-12687,-30212,-12695,-30209,-12702,-30206,-12710,-30202,-12718,-30199,-12725,-30196,-12733,-30192,-12741,-30189,-12749,-30186,-12756,-30183,-12764,-30179,-12772,-30176,-12779,-30173,-12787,-30170,-12795,-30166,-12803,-30163,-12810,-30160,-12818,-30157,-12826,-30153,-12833,-30150,-12841,-30147,-12849,-30143,-12857,-30140,-12864,-30137,-12872,-30134,-12880,-30130,-12887,-30127,-12895,-30124,-12903,-30120,-12910,-30117,-12918,-30114,-12926,-30110,-12934,-30107,-12941,-30104,-12949,-30101,-12957,-30097,-12964,-30094,-12972,-30091,-12980,-30087,-12987,-30084,-12995,-30081,-13003,-30077,-13010,-30074,-13018,-30071,-13026,-30067,-13034,-30064,-13041,-30061,-13049,-30057,-13057,-30054,-13064,-30051,-13072,-30047,-13080,-30044,-13087,-30041,-13095,-30037,-13103,-30034,-13110,-30031,-13118,-30027,-13126,-30024,-13133,-30021,-13141,-30017,-13149,-30014,-13156,-30010,-13164,-30007,-13172,-30004,-13179,-30000,-13187,-29997,-13195,-29994,-13202,-29990,-13210,-29987,-13218,-29984,-13225,-29980,-13233,-29977,-13241,-29973,-13248,-29970,-13256,-29967,-13264,-29963,-13271,-29960,-13279,-29956,-13287,-29953,-13294,-29950,-13302,-29946,-13310,-29943,-13317,-29939,-13325,-29936,-13333,-29933,-13340,-29929,-13348,-29926,-13356,-29922,-13363,-29919,-13371,-29916,-13379,-29912,-13386,-29909,-13394,-29905,-13401,-29902,-13409,-29898,-13417,-29895,-13424,-29892,-13432,-29888,-13440,-29885,-13447,-29881,-13455,-29878,-13463,-29874,-13470,-29871,-13478,-29867,-13486,-29864,-13493,-29861,-13501,-29857,-13508,-29854,-13516,-29850,-13524,-29847,-13531,-29843,-13539,-29840,-13547,-29836,-13554,-29833,-13562,-29829,-13569,-29826,-13577,-29823,-13585,-29819,-13592,-29816,-13600,-29812,-13608,-29809,-13615,-29805,-13623,-29802,-13630,-29798,-13638,-29795,-13646,-29791,-13653,-29788,-13661,-29784,-13668,-29781,-13676,-29777,-13684,-29774,-13691,-29770,-13699,-29767,-13707,-29763,-13714,-29760,-13722,-29756,-13729,-29753,-13737,-29749,-13745,-29746,-13752,-29742,-13760,-29739,-13767,-29735,-13775,-29732,-13783,-29728,-13790,-29725,-13798,-29721,-13805,-29718,-13813,-29714,-13821,-29710,-13828,-29707,-13836,-29703,-13843,-29700,-13851,-29696,-13859,-29693,-13866,-29689,-13874,-29686,-13881,-29682,-13889,-29679,-13896,-29675,-13904,-29671,-13912,-29668,-13919,-29664,-13927,-29661,-13934,-29657,-13942,-29654,-13950,-29650,-13957,-29647,-13965,-29643,-13972,-29639,-13980,-29636,-13987,-29632,-13995,-29629,-14003,-29625,-14010,-29622,-14018,-29618,-14025,-29614,-14033,-29611,-14040,-29607,-14048,-29604,-14056,-29600,-14063,-29596,-14071,-29593,-14078,-29589,-14086,-29586,-14093,-29582,-14101,-29578,-14109,-29575,-14116,-29571,-14124,-29568,-14131,-29564,-14139,-29560,-14146,-29557,-14154,-29553,-14161,-29549,-14169,-29546,-14177,-29542,-14184,-29539,-14192,-29535,-14199,-29531,-14207,-29528,-14214,-29524,-14222,-29520,-14229,-29517,-14237,-29513,-14245,-29510,-14252,-29506,-14260,-29502,-14267,-29499,-14275,-29495,-14282,-29491,-14290,-29488,-14297,-29484,-14305,-29480,-14312,-29477,-14320,-29473,-14327,-29469,-14335,-29466,-14343,-29462,-14350,-29458,-14358,-29455,-14365,-29451,-14373,-29447,-14380,-29444,-14388,-29440,-14395,-29436,-14403,-29433,-14410,-29429,-14418,-29425,-14425,-29422,-14433,-29418,-14440,-29414,-14448,-29411,-14455,-29407,-14463,-29403,-14470,-29399,-14478,-29396,-14485,-29392,-14493,-29388,-14500,-29385,-14508,-29381,-14516,-29377,-14523,-29373,-14531,-29370,-14538,-29366,-14546,-29362,-14553,-29359,-14561,-29355,-14568,-29351,-14576,-29347,-14583,-29344,-14591,-29340,-14598,-29336,-14606,-29333,-14613,-29329,-14621,-29325,-14628,-29321,-14636,-29318,-14643,-29314,-14651,-29310,-14658,-29306,-14666,-29303,-14673,-29299,-14681,-29295,-14688,-29291,-14695,-29288,-14703,-29284,-14710,-29280,-14718,-29276,-14725,-29273,-14733,-29269,-14740,-29265,-14748,-29261,-14755,-29257,-14763,-29254,-14770,-29250,-14778,-29246,-14785,-29242,-14793,-29239,-14800,-29235,-14808,-29231,-14815,-29227,-14823,-29223,-14830,-29220,-14838,-29216,-14845,-29212,-14853,-29208,-14860,-29204,-14867,-29201,-14875,-29197,-14882,-29193,-14890,-29189,-14897,-29185,-14905,-29182,-14912,-29178,-14920,-29174,-14927,-29170,-14935,-29166,-14942,-29163,-14950,-29159,-14957,-29155,-14964,-29151,-14972,-29147,-14979,-29143,-14987,-29140,-14994,-29136,-15002,-29132,-15009,-29128,-15017,-29124,-15024,-29120,-15031,-29117,-15039,-29113,-15046,-29109,-15054,-29105,-15061,-29101,-15069,-29097,-15076,-29093,-15084,-29090,-15091,-29086,-15098,-29082,-15106,-29078,-15113,-29074,-15121,-29070,-15128,-29066,-15136,-29063,-15143,-29059,-15150,-29055,-15158,-29051,-15165,-29047,-15173,-29043,-15180,-29039,-15188,-29035,-15195,-29032,-15202,-29028,-15210,-29024,-15217,-29020,-15225,-29016,-15232,-29012,-15239,-29008,-15247,-29004,-15254,-29000,-15262,-28997,-15269,-28993,-15277,-28989,-15284,-28985,-15291,-28981,-15299,-28977,-15306,-28973,-15314,-28969,-15321,-28965,-15328,-28961,-15336,-28957,-15343,-28954,-15351,-28950,-15358,-28946,-15365,-28942,-15373,-28938,-15380,-28934,-15388,-28930,-15395,-28926,-15402,-28922,-15410,-28918,-15417,-28914,-15425,-28910,-15432,-28906,-15439,-28902,-15447,-28898,-15454,-28894,-15462,-28891,-15469,-28887,-15476,-28883,-15484,-28879,-15491,-28875,-15498,-28871,-15506,-28867,-15513,-28863,-15521,-28859,-15528,-28855,-15535,-28851,-15543,-28847,-15550,-28843,-15557,-28839,-15565,-28835,-15572,-28831,-15580,-28827,-15587,-28823,-15594,-28819,-15602,-28815,-15609,-28811,-15616,-28807,-15624,-28803,-15631,-28799,-15639,-28795,-15646,-28791,-15653,-28787,-15661,-28783,-15668,-28779,-15675,-28775,-15683,-28771,-15690,-28767,-15697,-28763,-15705,-28759,-15712,-28755,-15719,-28751,-15727,-28747,-15734,-28743,-15741,-28739,-15749,-28735,-15756,-28731,-15764,-28727,-15771,-28723,-15778,-28719,-15786,-28715,-15793,-28711,-15800,-28707,-15808,-28703,-15815,-28699,-15822,-28695,-15830,-28691,-15837,-28686,-15844,-28682,-15852,-28678,-15859,-28674,-15866,-28670,-15874,-28666,-15881,-28662,-15888,-28658,-15896,-28654,-15903,-28650,-15910,-28646,-15918,-28642,-15925,-28638,-15932,-28634,-15939,-28630,-15947,-28626,-15954,-28621,-15961,-28617,-15969,-28613,-15976,-28609,-15983,-28605,-15991,-28601,-15998,-28597,-16005,-28593,-16013,-28589,-16020,-28585,-16027,-28581,-16035,-28576,-16042,-28572,-16049,-28568,-16056,-28564,-16064,-28560,-16071,-28556,-16078,-28552,-16086,-28548,-16093,-28544,-16100,-28539,-16108,-28535,-16115,-28531,-16122,-28527,-16129,-28523,-16137,-28519,-16144,-28515,-16151,-28511,-16159,-28507,-16166,-28502,-16173,-28498,-16180,-28494,-16188,-28490,-16195,-28486,-16202,-28482,-16210,-28478,-16217,-28473,-16224,-28469,-16231,-28465,-16239,-28461,-16246,-28457,-16253,-28453,-16261,-28448,-16268,-28444,-16275,-28440,-16282,-28436,-16290,-28432,-16297,-28428,-16304,-28424,-16311,-28419,-16319,-28415,-16326,-28411,-16333,-28407,-16340,-28403,-16348,-28398,-16355,-28394,-16362,-28390,-16369,-28386,-16377,-28382}; - -int16_t twb24576[16384] __attribute__((aligned(32))) = {32767,0,32766,-17,32766,-34,32766,-51,32766,-68,32766,-84,32766,-101,32766,-118,32766,-135,32766,-151,32766,-168,32766,-185,32766,-202,32766,-218,32766,-235,32766,-252,32765,-269,32765,-285,32765,-302,32765,-319,32765,-336,32765,-352,32764,-369,32764,-386,32764,-403,32764,-419,32764,-436,32763,-453,32763,-470,32763,-486,32763,-503,32762,-520,32762,-537,32762,-553,32762,-570,32761,-587,32761,-604,32761,-620,32760,-637,32760,-654,32760,-671,32759,-687,32759,-704,32759,-721,32758,-738,32758,-754,32757,-771,32757,-788,32757,-805,32756,-821,32756,-838,32755,-855,32755,-872,32754,-888,32754,-905,32754,-922,32753,-939,32753,-955,32752,-972,32752,-989,32751,-1006,32751,-1022,32750,-1039,32750,-1056,32749,-1073,32748,-1089,32748,-1106,32747,-1123,32747,-1140,32746,-1156,32746,-1173,32745,-1190,32744,-1207,32744,-1223,32743,-1240,32742,-1257,32742,-1274,32741,-1290,32740,-1307,32740,-1324,32739,-1340,32738,-1357,32738,-1374,32737,-1391,32736,-1407,32736,-1424,32735,-1441,32734,-1458,32733,-1474,32733,-1491,32732,-1508,32731,-1525,32730,-1541,32729,-1558,32729,-1575,32728,-1592,32727,-1608,32726,-1625,32725,-1642,32725,-1659,32724,-1675,32723,-1692,32722,-1709,32721,-1725,32720,-1742,32719,-1759,32718,-1776,32717,-1792,32717,-1809,32716,-1826,32715,-1843,32714,-1859,32713,-1876,32712,-1893,32711,-1909,32710,-1926,32709,-1943,32708,-1960,32707,-1976,32706,-1993,32705,-2010,32704,-2027,32703,-2043,32702,-2060,32701,-2077,32700,-2093,32699,-2110,32697,-2127,32696,-2144,32695,-2160,32694,-2177,32693,-2194,32692,-2210,32691,-2227,32690,-2244,32688,-2261,32687,-2277,32686,-2294,32685,-2311,32684,-2327,32683,-2344,32681,-2361,32680,-2378,32679,-2394,32678,-2411,32676,-2428,32675,-2444,32674,-2461,32673,-2478,32671,-2495,32670,-2511,32669,-2528,32668,-2545,32666,-2561,32665,-2578,32664,-2595,32662,-2611,32661,-2628,32660,-2645,32658,-2662,32657,-2678,32656,-2695,32654,-2712,32653,-2728,32651,-2745,32650,-2762,32649,-2778,32647,-2795,32646,-2812,32644,-2829,32643,-2845,32641,-2862,32640,-2879,32638,-2895,32637,-2912,32635,-2929,32634,-2945,32632,-2962,32631,-2979,32629,-2995,32628,-3012,32626,-3029,32625,-3045,32623,-3062,32622,-3079,32620,-3095,32618,-3112,32617,-3129,32615,-3146,32614,-3162,32612,-3179,32610,-3196,32609,-3212,32607,-3229,32605,-3246,32604,-3262,32602,-3279,32600,-3296,32599,-3312,32597,-3329,32595,-3346,32594,-3362,32592,-3379,32590,-3396,32588,-3412,32587,-3429,32585,-3446,32583,-3462,32581,-3479,32580,-3496,32578,-3512,32576,-3529,32574,-3546,32572,-3562,32571,-3579,32569,-3595,32567,-3612,32565,-3629,32563,-3645,32561,-3662,32559,-3679,32558,-3695,32556,-3712,32554,-3729,32552,-3745,32550,-3762,32548,-3779,32546,-3795,32544,-3812,32542,-3829,32540,-3845,32538,-3862,32536,-3878,32534,-3895,32532,-3912,32530,-3928,32528,-3945,32526,-3962,32524,-3978,32522,-3995,32520,-4012,32518,-4028,32516,-4045,32514,-4061,32512,-4078,32510,-4095,32508,-4111,32506,-4128,32503,-4145,32501,-4161,32499,-4178,32497,-4194,32495,-4211,32493,-4228,32491,-4244,32488,-4261,32486,-4277,32484,-4294,32482,-4311,32480,-4327,32477,-4344,32475,-4360,32473,-4377,32471,-4394,32468,-4410,32466,-4427,32464,-4444,32462,-4460,32459,-4477,32457,-4493,32455,-4510,32452,-4526,32450,-4543,32448,-4560,32445,-4576,32443,-4593,32441,-4609,32438,-4626,32436,-4643,32434,-4659,32431,-4676,32429,-4692,32426,-4709,32424,-4726,32422,-4742,32419,-4759,32417,-4775,32414,-4792,32412,-4808,32409,-4825,32407,-4842,32404,-4858,32402,-4875,32399,-4891,32397,-4908,32394,-4924,32392,-4941,32389,-4958,32387,-4974,32384,-4991,32382,-5007,32379,-5024,32377,-5040,32374,-5057,32371,-5073,32369,-5090,32366,-5107,32364,-5123,32361,-5140,32358,-5156,32356,-5173,32353,-5189,32350,-5206,32348,-5222,32345,-5239,32342,-5255,32340,-5272,32337,-5288,32334,-5305,32332,-5322,32329,-5338,32326,-5355,32323,-5371,32321,-5388,32318,-5404,32315,-5421,32312,-5437,32310,-5454,32307,-5470,32304,-5487,32301,-5503,32298,-5520,32295,-5536,32293,-5553,32290,-5569,32287,-5586,32284,-5602,32281,-5619,32278,-5635,32275,-5652,32273,-5668,32270,-5685,32267,-5701,32264,-5718,32261,-5734,32258,-5751,32255,-5767,32252,-5784,32249,-5800,32246,-5817,32243,-5833,32240,-5850,32237,-5866,32234,-5883,32231,-5899,32228,-5916,32225,-5932,32222,-5949,32219,-5965,32216,-5982,32213,-5998,32210,-6015,32207,-6031,32204,-6048,32201,-6064,32197,-6081,32194,-6097,32191,-6113,32188,-6130,32185,-6146,32182,-6163,32179,-6179,32176,-6196,32172,-6212,32169,-6229,32166,-6245,32163,-6262,32160,-6278,32156,-6294,32153,-6311,32150,-6327,32147,-6344,32143,-6360,32140,-6377,32137,-6393,32134,-6409,32130,-6426,32127,-6442,32124,-6459,32120,-6475,32117,-6492,32114,-6508,32110,-6524,32107,-6541,32104,-6557,32100,-6574,32097,-6590,32094,-6607,32090,-6623,32087,-6639,32084,-6656,32080,-6672,32077,-6689,32073,-6705,32070,-6721,32066,-6738,32063,-6754,32059,-6771,32056,-6787,32053,-6803,32049,-6820,32046,-6836,32042,-6852,32039,-6869,32035,-6885,32032,-6902,32028,-6918,32024,-6934,32021,-6951,32017,-6967,32014,-6983,32010,-7000,32007,-7016,32003,-7033,31999,-7049,31996,-7065,31992,-7082,31989,-7098,31985,-7114,31981,-7131,31978,-7147,31974,-7163,31970,-7180,31967,-7196,31963,-7212,31959,-7229,31956,-7245,31952,-7262,31948,-7278,31944,-7294,31941,-7311,31937,-7327,31933,-7343,31929,-7359,31926,-7376,31922,-7392,31918,-7408,31914,-7425,31911,-7441,31907,-7457,31903,-7474,31899,-7490,31895,-7506,31891,-7523,31888,-7539,31884,-7555,31880,-7572,31876,-7588,31872,-7604,31868,-7620,31864,-7637,31860,-7653,31856,-7669,31853,-7686,31849,-7702,31845,-7718,31841,-7734,31837,-7751,31833,-7767,31829,-7783,31825,-7800,31821,-7816,31817,-7832,31813,-7848,31809,-7865,31805,-7881,31801,-7897,31797,-7913,31793,-7930,31789,-7946,31785,-7962,31780,-7978,31776,-7995,31772,-8011,31768,-8027,31764,-8043,31760,-8060,31756,-8076,31752,-8092,31748,-8108,31743,-8125,31739,-8141,31735,-8157,31731,-8173,31727,-8190,31723,-8206,31718,-8222,31714,-8238,31710,-8254,31706,-8271,31701,-8287,31697,-8303,31693,-8319,31689,-8335,31684,-8352,31680,-8368,31676,-8384,31672,-8400,31667,-8416,31663,-8433,31659,-8449,31654,-8465,31650,-8481,31646,-8497,31641,-8514,31637,-8530,31633,-8546,31628,-8562,31624,-8578,31619,-8594,31615,-8611,31611,-8627,31606,-8643,31602,-8659,31597,-8675,31593,-8691,31588,-8708,31584,-8724,31580,-8740,31575,-8756,31571,-8772,31566,-8788,31562,-8804,31557,-8821,31553,-8837,31548,-8853,31544,-8869,31539,-8885,31534,-8901,31530,-8917,31525,-8933,31521,-8950,31516,-8966,31512,-8982,31507,-8998,31502,-9014,31498,-9030,31493,-9046,31489,-9062,31484,-9078,31479,-9095,31475,-9111,31470,-9127,31465,-9143,31461,-9159,31456,-9175,31451,-9191,31446,-9207,31442,-9223,31437,-9239,31432,-9255,31428,-9271,31423,-9288,31418,-9304,31413,-9320,31409,-9336,31404,-9352,31399,-9368,31394,-9384,31389,-9400,31385,-9416,31380,-9432,31375,-9448,31370,-9464,31365,-9480,31360,-9496,31356,-9512,31351,-9528,31346,-9544,31341,-9560,31336,-9576,31331,-9592,31326,-9608,31321,-9624,31316,-9640,31311,-9656,31307,-9672,31302,-9688,31297,-9704,31292,-9720,31287,-9736,31282,-9752,31277,-9768,31272,-9784,31267,-9800,31262,-9816,31257,-9832,31252,-9848,31247,-9864,31242,-9880,31236,-9896,31231,-9912,31226,-9928,31221,-9944,31216,-9960,31211,-9976,31206,-9992,31201,-10008,31196,-10024,31191,-10040,31185,-10056,31180,-10072,31175,-10088,31170,-10104,31165,-10120,31160,-10136,31154,-10152,31149,-10167,31144,-10183,31139,-10199,31134,-10215,31128,-10231,31123,-10247,31118,-10263,31113,-10279,31107,-10295,31102,-10311,31097,-10327,31092,-10343,31086,-10358,31081,-10374,31076,-10390,31070,-10406,31065,-10422,31060,-10438,31054,-10454,31049,-10470,31044,-10485,31038,-10501,31033,-10517,31028,-10533,31022,-10549,31017,-10565,31011,-10581,31006,-10597,31001,-10612,30995,-10628,30990,-10644,30984,-10660,30979,-10676,30973,-10692,30968,-10707,30962,-10723,30957,-10739,30951,-10755,30946,-10771,30940,-10787,30935,-10802,30929,-10818,30924,-10834,30918,-10850,30913,-10866,30907,-10881,30902,-10897,30896,-10913,30890,-10929,30885,-10945,30879,-10960,30874,-10976,30868,-10992,30862,-11008,30857,-11024,30851,-11039,30845,-11055,30840,-11071,30834,-11087,30828,-11102,30823,-11118,30817,-11134,30811,-11150,30806,-11165,30800,-11181,30794,-11197,30788,-11213,30783,-11228,30777,-11244,30771,-11260,30766,-11276,30760,-11291,30754,-11307,30748,-11323,30742,-11339,30737,-11354,30731,-11370,30725,-11386,30719,-11401,30713,-11417,30707,-11433,30702,-11449,30696,-11464,30690,-11480,30684,-11496,30678,-11511,30672,-11527,30666,-11543,30660,-11558,30655,-11574,30649,-11590,30643,-11605,30637,-11621,30631,-11637,30625,-11652,30619,-11668,30613,-11684,30607,-11699,30601,-11715,30595,-11731,30589,-11746,30583,-11762,30577,-11778,30571,-11793,30565,-11809,30559,-11824,30553,-11840,30547,-11856,30541,-11871,30535,-11887,30528,-11903,30522,-11918,30516,-11934,30510,-11949,30504,-11965,30498,-11981,30492,-11996,30486,-12012,30480,-12027,30473,-12043,30467,-12058,30461,-12074,30455,-12090,30449,-12105,30442,-12121,30436,-12136,30430,-12152,30424,-12167,30418,-12183,30411,-12199,30405,-12214,30399,-12230,30393,-12245,30386,-12261,30380,-12276,30374,-12292,30368,-12307,30361,-12323,30355,-12338,30349,-12354,30342,-12369,30336,-12385,30330,-12400,30323,-12416,30317,-12431,30311,-12447,30304,-12462,30298,-12478,30291,-12493,30285,-12509,30279,-12524,30272,-12540,30266,-12555,30259,-12571,30253,-12586,30247,-12602,30240,-12617,30234,-12633,30227,-12648,30221,-12664,30214,-12679,30208,-12695,30201,-12710,30195,-12725,30188,-12741,30182,-12756,30175,-12772,30169,-12787,30162,-12803,30156,-12818,30149,-12833,30142,-12849,30136,-12864,30129,-12880,30123,-12895,30116,-12910,30109,-12926,30103,-12941,30096,-12957,30090,-12972,30083,-12987,30076,-13003,30070,-13018,30063,-13034,30056,-13049,30050,-13064,30043,-13080,30036,-13095,30030,-13110,30023,-13126,30016,-13141,30009,-13156,30003,-13172,29996,-13187,29989,-13202,29983,-13218,29976,-13233,29969,-13248,29962,-13264,29955,-13279,29949,-13294,29942,-13310,29935,-13325,29928,-13340,29921,-13356,29915,-13371,29908,-13386,29901,-13401,29894,-13417,29887,-13432,29880,-13447,29873,-13463,29866,-13478,29860,-13493,29853,-13508,29846,-13524,29839,-13539,29832,-13554,29825,-13569,29818,-13585,29811,-13600,29804,-13615,29797,-13630,29790,-13646,29783,-13661,29776,-13676,29769,-13691,29762,-13707,29755,-13722,29748,-13737,29741,-13752,29734,-13767,29727,-13783,29720,-13798,29713,-13813,29706,-13828,29699,-13843,29692,-13859,29685,-13874,29678,-13889,29670,-13904,29663,-13919,29656,-13934,29649,-13950,29642,-13965,29635,-13980,29628,-13995,29621,-14010,29613,-14025,29606,-14040,29599,-14056,29592,-14071,29585,-14086,29577,-14101,29570,-14116,29563,-14131,29556,-14146,29548,-14161,29541,-14177,29534,-14192,29527,-14207,29519,-14222,29512,-14237,29505,-14252,29498,-14267,29490,-14282,29483,-14297,29476,-14312,29468,-14327,29461,-14343,29454,-14358,29446,-14373,29439,-14388,29432,-14403,29424,-14418,29417,-14433,29410,-14448,29402,-14463,29395,-14478,29387,-14493,29380,-14508,29372,-14523,29365,-14538,29358,-14553,29350,-14568,29343,-14583,29335,-14598,29328,-14613,29320,-14628,29313,-14643,29305,-14658,29298,-14673,29290,-14688,29283,-14703,29275,-14718,29268,-14733,29260,-14748,29253,-14763,29245,-14778,29238,-14793,29230,-14808,29222,-14823,29215,-14838,29207,-14853,29200,-14867,29192,-14882,29184,-14897,29177,-14912,29169,-14927,29162,-14942,29154,-14957,29146,-14972,29139,-14987,29131,-15002,29123,-15017,29116,-15031,29108,-15046,29100,-15061,29092,-15076,29085,-15091,29077,-15106,29069,-15121,29062,-15136,29054,-15150,29046,-15165,29038,-15180,29031,-15195,29023,-15210,29015,-15225,29007,-15239,28999,-15254,28992,-15269,28984,-15284,28976,-15299,28968,-15314,28960,-15328,28953,-15343,28945,-15358,28937,-15373,28929,-15388,28921,-15402,28913,-15417,28905,-15432,28897,-15447,28890,-15462,28882,-15476,28874,-15491,28866,-15506,28858,-15521,28850,-15535,28842,-15550,28834,-15565,28826,-15580,28818,-15594,28810,-15609,28802,-15624,28794,-15639,28786,-15653,28778,-15668,28770,-15683,28762,-15697,28754,-15712,28746,-15727,28738,-15741,28730,-15756,28722,-15771,28714,-15786,28706,-15800,28698,-15815,28690,-15830,28681,-15844,28673,-15859,28665,-15874,28657,-15888,28649,-15903,28641,-15918,28633,-15932,28625,-15947,28616,-15961,28608,-15976,28600,-15991,28592,-16005,28584,-16020,28575,-16035,28567,-16049,28559,-16064,28551,-16078,28543,-16093,28534,-16108,28526,-16122,28518,-16137,28510,-16151,28501,-16166,28493,-16180,28485,-16195,28477,-16210,28468,-16224,28460,-16239,28452,-16253,28443,-16268,28435,-16282,28427,-16297,28418,-16311,28410,-16326,28402,-16340,28393,-16355,28385,-16369,28377,-16384,28368,-16399,28360,-16413,28351,-16428,28343,-16442,28335,-16456,28326,-16471,28318,-16485,28309,-16500,28301,-16514,28292,-16529,28284,-16543,28275,-16558,28267,-16572,28259,-16587,28250,-16601,28242,-16616,28233,-16630,28225,-16644,28216,-16659,28208,-16673,28199,-16688,28190,-16702,28182,-16717,28173,-16731,28165,-16745,28156,-16760,28148,-16774,28139,-16789,28131,-16803,28122,-16817,28113,-16832,28105,-16846,28096,-16860,28087,-16875,28079,-16889,28070,-16904,28062,-16918,28053,-16932,28044,-16947,28036,-16961,28027,-16975,28018,-16990,28009,-17004,28001,-17018,27992,-17033,27983,-17047,27975,-17061,27966,-17075,27957,-17090,27948,-17104,27940,-17118,27931,-17133,27922,-17147,27913,-17161,27905,-17175,27896,-17190,27887,-17204,27878,-17218,27869,-17233,27861,-17247,27852,-17261,27843,-17275,27834,-17289,27825,-17304,27816,-17318,27808,-17332,27799,-17346,27790,-17361,27781,-17375,27772,-17389,27763,-17403,27754,-17417,27745,-17432,27736,-17446,27728,-17460,27719,-17474,27710,-17488,27701,-17502,27692,-17517,27683,-17531,27674,-17545,27665,-17559,27656,-17573,27647,-17587,27638,-17601,27629,-17616,27620,-17630,27611,-17644,27602,-17658,27593,-17672,27584,-17686,27575,-17700,27566,-17714,27557,-17728,27548,-17743,27538,-17757,27529,-17771,27520,-17785,27511,-17799,27502,-17813,27493,-17827,27484,-17841,27475,-17855,27466,-17869,27456,-17883,27447,-17897,27438,-17911,27429,-17925,27420,-17939,27411,-17953,27401,-17967,27392,-17981,27383,-17995,27374,-18009,27365,-18023,27355,-18037,27346,-18051,27337,-18065,27328,-18079,27319,-18093,27309,-18107,27300,-18121,27291,-18135,27281,-18149,27272,-18163,27263,-18177,27254,-18191,27244,-18205,27235,-18219,27226,-18233,27216,-18247,27207,-18261,27198,-18274,27188,-18288,27179,-18302,27170,-18316,27160,-18330,27151,-18344,27141,-18358,27132,-18372,27123,-18386,27113,-18399,27104,-18413,27094,-18427,27085,-18441,27076,-18455,27066,-18469,27057,-18483,27047,-18496,27038,-18510,27028,-18524,27019,-18538,27009,-18552,27000,-18565,26990,-18579,26981,-18593,26971,-18607,26962,-18621,26952,-18634,26943,-18648,26933,-18662,26924,-18676,26914,-18690,26905,-18703,26895,-18717,26885,-18731,26876,-18745,26866,-18758,26857,-18772,26847,-18786,26837,-18799,26828,-18813,26818,-18827,26809,-18841,26799,-18854,26789,-18868,26780,-18882,26770,-18895,26760,-18909,26751,-18923,26741,-18936,26731,-18950,26722,-18964,26712,-18977,26702,-18991,26692,-19005,26683,-19018,26673,-19032,26663,-19046,26654,-19059,26644,-19073,26634,-19087,26624,-19100,26615,-19114,26605,-19127,26595,-19141,26585,-19155,26575,-19168,26566,-19182,26556,-19195,26546,-19209,26536,-19222,26526,-19236,26516,-19250,26507,-19263,26497,-19277,26487,-19290,26477,-19304,26467,-19317,26457,-19331,26447,-19344,26437,-19358,26428,-19371,26418,-19385,26408,-19398,26398,-19412,26388,-19425,26378,-19439,26368,-19452,26358,-19466,26348,-19479,26338,-19493,26328,-19506,26318,-19520,26308,-19533,26298,-19547,26288,-19560,26278,-19574,26268,-19587,26258,-19600,26248,-19614,26238,-19627,26228,-19641,26218,-19654,26208,-19668,26198,-19681,26188,-19694,26178,-19708,26168,-19721,26158,-19734,26148,-19748,26137,-19761,26127,-19775,26117,-19788,26107,-19801,26097,-19815,26087,-19828,26077,-19841,26067,-19855,26056,-19868,26046,-19881,26036,-19895,26026,-19908,26016,-19921,26006,-19934,25995,-19948,25985,-19961,25975,-19974,25965,-19988,25954,-20001,25944,-20014,25934,-20027,25924,-20041,25913,-20054,25903,-20067,25893,-20080,25883,-20094,25872,-20107,25862,-20120,25852,-20133,25842,-20147,25831,-20160,25821,-20173,25811,-20186,25800,-20199,25790,-20213,25780,-20226,25769,-20239,25759,-20252,25749,-20265,25738,-20278,25728,-20292,25717,-20305,25707,-20318,25697,-20331,25686,-20344,25676,-20357,25665,-20370,25655,-20384,25645,-20397,25634,-20410,25624,-20423,25613,-20436,25603,-20449,25592,-20462,25582,-20475,25571,-20488,25561,-20501,25550,-20514,25540,-20528,25529,-20541,25519,-20554,25508,-20567,25498,-20580,25487,-20593,25477,-20606,25466,-20619,25456,-20632,25445,-20645,25435,-20658,25424,-20671,25414,-20684,25403,-20697,25392,-20710,25382,-20723,25371,-20736,25361,-20749,25350,-20762,25339,-20775,25329,-20788,25318,-20801,25307,-20814,25297,-20826,25286,-20839,25276,-20852,25265,-20865,25254,-20878,25243,-20891,25233,-20904,25222,-20917,25211,-20930,25201,-20943,25190,-20956,25179,-20968,25169,-20981,25158,-20994,25147,-21007,25136,-21020,25126,-21033,25115,-21046,25104,-21058,25093,-21071,25083,-21084,25072,-21097,25061,-21110,25050,-21123,25039,-21135,25029,-21148,25018,-21161,25007,-21174,24996,-21187,24985,-21199,24974,-21212,24964,-21225,24953,-21238,24942,-21250,24931,-21263,24920,-21276,24909,-21289,24898,-21301,24887,-21314,24877,-21327,24866,-21340,24855,-21352,24844,-21365,24833,-21378,24822,-21390,24811,-21403,24800,-21416,24789,-21428,24778,-21441,24767,-21454,24756,-21466,24745,-21479,24734,-21492,24723,-21504,24712,-21517,24701,-21530,24690,-21542,24679,-21555,24668,-21567,24657,-21580,24646,-21593,24635,-21605,24624,-21618,24613,-21630,24602,-21643,24591,-21656,24580,-21668,24569,-21681,24558,-21693,24546,-21706,24535,-21718,24524,-21731,24513,-21744,24502,-21756,24491,-21769,24480,-21781,24469,-21794,24457,-21806,24446,-21819,24435,-21831,24424,-21844,24413,-21856,24402,-21869,24390,-21881,24379,-21894,24368,-21906,24357,-21918,24346,-21931,24334,-21943,24323,-21956,24312,-21968,24301,-21981,24289,-21993,24278,-22005,24267,-22018,24256,-22030,24244,-22043,24233,-22055,24222,-22067,24211,-22080,24199,-22092,24188,-22105,24177,-22117,24165,-22129,24154,-22142,24143,-22154,24131,-22166,24120,-22179,24109,-22191,24097,-22203,24086,-22216,24075,-22228,24063,-22240,24052,-22253,24041,-22265,24029,-22277,24018,-22289,24006,-22302,23995,-22314,23984,-22326,23972,-22339,23961,-22351,23949,-22363,23938,-22375,23926,-22388,23915,-22400,23903,-22412,23892,-22424,23881,-22436,23869,-22449,23858,-22461,23846,-22473,23835,-22485,23823,-22497,23812,-22510,23800,-22522,23789,-22534,23777,-22546,23766,-22558,23754,-22570,23742,-22583,23731,-22595,23719,-22607,23708,-22619,23696,-22631,23685,-22643,23673,-22655,23661,-22667,23650,-22679,23638,-22692,23627,-22704,23615,-22716,23603,-22728,23592,-22740,23580,-22752,23569,-22764,23557,-22776,23545,-22788,23534,-22800,23522,-22812,23510,-22824,23499,-22836,23487,-22848,23475,-22860,23464,-22872,23452,-22884,23440,-22896,23428,-22908,23417,-22920,23405,-22932,23393,-22944,23382,-22956,23370,-22968,23358,-22980,23346,-22992,23335,-23004,23323,-23016,23311,-23028,23299,-23040,23287,-23051,23276,-23063,23264,-23075,23252,-23087,23240,-23099,23228,-23111,23217,-23123,23205,-23135,23193,-23147,23181,-23158,23169,-23170,23157,-23182,23146,-23194,23134,-23206,23122,-23218,23110,-23229,23098,-23241,23086,-23253,23074,-23265,23062,-23277,23050,-23288,23039,-23300,23027,-23312,23015,-23324,23003,-23336,22991,-23347,22979,-23359,22967,-23371,22955,-23383,22943,-23394,22931,-23406,22919,-23418,22907,-23429,22895,-23441,22883,-23453,22871,-23465,22859,-23476,22847,-23488,22835,-23500,22823,-23511,22811,-23523,22799,-23535,22787,-23546,22775,-23558,22763,-23570,22751,-23581,22739,-23593,22727,-23604,22715,-23616,22703,-23628,22691,-23639,22678,-23651,22666,-23662,22654,-23674,22642,-23686,22630,-23697,22618,-23709,22606,-23720,22594,-23732,22582,-23743,22569,-23755,22557,-23767,22545,-23778,22533,-23790,22521,-23801,22509,-23813,22496,-23824,22484,-23836,22472,-23847,22460,-23859,22448,-23870,22435,-23882,22423,-23893,22411,-23904,22399,-23916,22387,-23927,22374,-23939,22362,-23950,22350,-23962,22338,-23973,22325,-23985,22313,-23996,22301,-24007,22288,-24019,22276,-24030,22264,-24042,22252,-24053,22239,-24064,22227,-24076,22215,-24087,22202,-24098,22190,-24110,22178,-24121,22165,-24132,22153,-24144,22141,-24155,22128,-24166,22116,-24178,22104,-24189,22091,-24200,22079,-24212,22066,-24223,22054,-24234,22042,-24245,22029,-24257,22017,-24268,22004,-24279,21992,-24290,21980,-24302,21967,-24313,21955,-24324,21942,-24335,21930,-24347,21917,-24358,21905,-24369,21893,-24380,21880,-24391,21868,-24403,21855,-24414,21843,-24425,21830,-24436,21818,-24447,21805,-24458,21793,-24470,21780,-24481,21768,-24492,21755,-24503,21743,-24514,21730,-24525,21717,-24536,21705,-24547,21692,-24559,21680,-24570,21667,-24581,21655,-24592,21642,-24603,21629,-24614,21617,-24625,21604,-24636,21592,-24647,21579,-24658,21566,-24669,21554,-24680,21541,-24691,21529,-24702,21516,-24713,21503,-24724,21491,-24735,21478,-24746,21465,-24757,21453,-24768,21440,-24779,21427,-24790,21415,-24801,21402,-24812,21389,-24823,21377,-24834,21364,-24845,21351,-24856,21339,-24867,21326,-24878,21313,-24888,21300,-24899,21288,-24910,21275,-24921,21262,-24932,21249,-24943,21237,-24954,21224,-24965,21211,-24975,21198,-24986,21186,-24997,21173,-25008,21160,-25019,21147,-25030,21134,-25040,21122,-25051,21109,-25062,21096,-25073,21083,-25084,21070,-25094,21057,-25105,21045,-25116,21032,-25127,21019,-25137,21006,-25148,20993,-25159,20980,-25170,20967,-25180,20955,-25191,20942,-25202,20929,-25212,20916,-25223,20903,-25234,20890,-25244,20877,-25255,20864,-25266,20851,-25277,20838,-25287,20825,-25298,20813,-25308,20800,-25319,20787,-25330,20774,-25340,20761,-25351,20748,-25362,20735,-25372,20722,-25383,20709,-25393,20696,-25404,20683,-25415,20670,-25425,20657,-25436,20644,-25446,20631,-25457,20618,-25467,20605,-25478,20592,-25488,20579,-25499,20566,-25509,20553,-25520,20540,-25530,20527,-25541,20513,-25551,20500,-25562,20487,-25572,20474,-25583,20461,-25593,20448,-25604,20435,-25614,20422,-25625,20409,-25635,20396,-25646,20383,-25656,20369,-25666,20356,-25677,20343,-25687,20330,-25698,20317,-25708,20304,-25718,20291,-25729,20277,-25739,20264,-25750,20251,-25760,20238,-25770,20225,-25781,20212,-25791,20198,-25801,20185,-25812,20172,-25822,20159,-25832,20146,-25843,20132,-25853,20119,-25863,20106,-25873,20093,-25884,20079,-25894,20066,-25904,20053,-25914,20040,-25925,20026,-25935,20013,-25945,20000,-25955,19987,-25966,19973,-25976,19960,-25986,19947,-25996,19933,-26007,19920,-26017,19907,-26027,19894,-26037,19880,-26047,19867,-26057,19854,-26068,19840,-26078,19827,-26088,19814,-26098,19800,-26108,19787,-26118,19774,-26128,19760,-26138,19747,-26149,19733,-26159,19720,-26169,19707,-26179,19693,-26189,19680,-26199,19667,-26209,19653,-26219,19640,-26229,19626,-26239,19613,-26249,19599,-26259,19586,-26269,19573,-26279,19559,-26289,19546,-26299,19532,-26309,19519,-26319,19505,-26329,19492,-26339,19478,-26349,19465,-26359,19451,-26369,19438,-26379,19424,-26389,19411,-26399,19397,-26409,19384,-26419,19370,-26429,19357,-26438,19343,-26448,19330,-26458,19316,-26468,19303,-26478,19289,-26488,19276,-26498,19262,-26508,19249,-26517,19235,-26527,19221,-26537,19208,-26547,19194,-26557,19181,-26567,19167,-26576,19154,-26586,19140,-26596,19126,-26606,19113,-26616,19099,-26625,19086,-26635,19072,-26645,19058,-26655,19045,-26664,19031,-26674,19017,-26684,19004,-26693,18990,-26703,18976,-26713,18963,-26723,18949,-26732,18935,-26742,18922,-26752,18908,-26761,18894,-26771,18881,-26781,18867,-26790,18853,-26800,18840,-26810,18826,-26819,18812,-26829,18798,-26838,18785,-26848,18771,-26858,18757,-26867,18744,-26877,18730,-26886,18716,-26896,18702,-26906,18689,-26915,18675,-26925,18661,-26934,18647,-26944,18633,-26953,18620,-26963,18606,-26972,18592,-26982,18578,-26991,18564,-27001,18551,-27010,18537,-27020,18523,-27029,18509,-27039,18495,-27048,18482,-27058,18468,-27067,18454,-27077,18440,-27086,18426,-27095,18412,-27105,18398,-27114,18385,-27124,18371,-27133,18357,-27142,18343,-27152,18329,-27161,18315,-27171,18301,-27180,18287,-27189,18273,-27199,18260,-27208,18246,-27217,18232,-27227,18218,-27236,18204,-27245,18190,-27255,18176,-27264,18162,-27273,18148,-27282,18134,-27292,18120,-27301,18106,-27310,18092,-27320,18078,-27329,18064,-27338,18050,-27347,18036,-27356,18022,-27366,18008,-27375,17994,-27384,17980,-27393,17966,-27402,17952,-27412,17938,-27421,17924,-27430,17910,-27439,17896,-27448,17882,-27457,17868,-27467,17854,-27476,17840,-27485,17826,-27494,17812,-27503,17798,-27512,17784,-27521,17770,-27530,17756,-27539,17742,-27549,17727,-27558,17713,-27567,17699,-27576,17685,-27585,17671,-27594,17657,-27603,17643,-27612,17629,-27621,17615,-27630,17600,-27639,17586,-27648,17572,-27657,17558,-27666,17544,-27675,17530,-27684,17516,-27693,17501,-27702,17487,-27711,17473,-27720,17459,-27729,17445,-27737,17431,-27746,17416,-27755,17402,-27764,17388,-27773,17374,-27782,17360,-27791,17345,-27800,17331,-27809,17317,-27817,17303,-27826,17288,-27835,17274,-27844,17260,-27853,17246,-27862,17232,-27870,17217,-27879,17203,-27888,17189,-27897,17174,-27906,17160,-27914,17146,-27923,17132,-27932,17117,-27941,17103,-27949,17089,-27958,17074,-27967,17060,-27976,17046,-27984,17032,-27993,17017,-28002,17003,-28010,16989,-28019,16974,-28028,16960,-28037,16946,-28045,16931,-28054,16917,-28063,16903,-28071,16888,-28080,16874,-28088,16859,-28097,16845,-28106,16831,-28114,16816,-28123,16802,-28132,16788,-28140,16773,-28149,16759,-28157,16744,-28166,16730,-28174,16716,-28183,16701,-28191,16687,-28200,16672,-28209,16658,-28217,16643,-28226,16629,-28234,16615,-28243,16600,-28251,16586,-28260,16571,-28268,16557,-28276,16542,-28285,16528,-28293,16513,-28302,16499,-28310,16484,-28319,16470,-28327,16455,-28336,16441,-28344,16427,-28352,16412,-28361,16398,-28369,16383,-28378,16368,-28386,16354,-28394,16339,-28403,16325,-28411,16310,-28419,16296,-28428,16281,-28436,16267,-28444,16252,-28453,16238,-28461,16223,-28469,16209,-28478,16194,-28486,16179,-28494,16165,-28502,16150,-28511,16136,-28519,16121,-28527,16107,-28535,16092,-28544,16077,-28552,16063,-28560,16048,-28568,16034,-28576,16019,-28585,16004,-28593,15990,-28601,15975,-28609,15960,-28617,15946,-28626,15931,-28634,15917,-28642,15902,-28650,15887,-28658,15873,-28666,15858,-28674,15843,-28682,15829,-28691,15814,-28699,15799,-28707,15785,-28715,15770,-28723,15755,-28731,15740,-28739,15726,-28747,15711,-28755,15696,-28763,15682,-28771,15667,-28779,15652,-28787,15638,-28795,15623,-28803,15608,-28811,15593,-28819,15579,-28827,15564,-28835,15549,-28843,15534,-28851,15520,-28859,15505,-28867,15490,-28875,15475,-28883,15461,-28891,15446,-28898,15431,-28906,15416,-28914,15401,-28922,15387,-28930,15372,-28938,15357,-28946,15342,-28954,15327,-28961,15313,-28969,15298,-28977,15283,-28985,15268,-28993,15253,-29000,15238,-29008,15224,-29016,15209,-29024,15194,-29032,15179,-29039,15164,-29047,15149,-29055,15135,-29063,15120,-29070,15105,-29078,15090,-29086,15075,-29093,15060,-29101,15045,-29109,15030,-29117,15016,-29124,15001,-29132,14986,-29140,14971,-29147,14956,-29155,14941,-29163,14926,-29170,14911,-29178,14896,-29185,14881,-29193,14866,-29201,14852,-29208,14837,-29216,14822,-29223,14807,-29231,14792,-29239,14777,-29246,14762,-29254,14747,-29261,14732,-29269,14717,-29276,14702,-29284,14687,-29291,14672,-29299,14657,-29306,14642,-29314,14627,-29321,14612,-29329,14597,-29336,14582,-29344,14567,-29351,14552,-29359,14537,-29366,14522,-29373,14507,-29381,14492,-29388,14477,-29396,14462,-29403,14447,-29411,14432,-29418,14417,-29425,14402,-29433,14387,-29440,14372,-29447,14357,-29455,14342,-29462,14326,-29469,14311,-29477,14296,-29484,14281,-29491,14266,-29499,14251,-29506,14236,-29513,14221,-29520,14206,-29528,14191,-29535,14176,-29542,14160,-29549,14145,-29557,14130,-29564,14115,-29571,14100,-29578,14085,-29586,14070,-29593,14055,-29600,14039,-29607,14024,-29614,14009,-29622,13994,-29629,13979,-29636,13964,-29643,13949,-29650,13933,-29657,13918,-29664,13903,-29671,13888,-29679,13873,-29686,13858,-29693,13842,-29700,13827,-29707,13812,-29714,13797,-29721,13782,-29728,13766,-29735,13751,-29742,13736,-29749,13721,-29756,13706,-29763,13690,-29770,13675,-29777,13660,-29784,13645,-29791,13629,-29798,13614,-29805,13599,-29812,13584,-29819,13568,-29826,13553,-29833,13538,-29840,13523,-29847,13507,-29854,13492,-29861,13477,-29867,13462,-29874,13446,-29881,13431,-29888,13416,-29895,13400,-29902,13385,-29909,13370,-29916,13355,-29922,13339,-29929,13324,-29936,13309,-29943,13293,-29950,13278,-29956,13263,-29963,13247,-29970,13232,-29977,13217,-29984,13201,-29990,13186,-29997,13171,-30004,13155,-30010,13140,-30017,13125,-30024,13109,-30031,13094,-30037,13079,-30044,13063,-30051,13048,-30057,13033,-30064,13017,-30071,13002,-30077,12986,-30084,12971,-30091,12956,-30097,12940,-30104,12925,-30110,12909,-30117,12894,-30124,12879,-30130,12863,-30137,12848,-30143,12832,-30150,12817,-30157,12802,-30163,12786,-30170,12771,-30176,12755,-30183,12740,-30189,12724,-30196,12709,-30202,12694,-30209,12678,-30215,12663,-30222,12647,-30228,12632,-30235,12616,-30241,12601,-30248,12585,-30254,12570,-30260,12554,-30267,12539,-30273,12523,-30280,12508,-30286,12492,-30292,12477,-30299,12461,-30305,12446,-30312,12430,-30318,12415,-30324,12399,-30331,12384,-30337,12368,-30343,12353,-30350,12337,-30356,12322,-30362,12306,-30369,12291,-30375,12275,-30381,12260,-30387,12244,-30394,12229,-30400,12213,-30406,12198,-30412,12182,-30419,12166,-30425,12151,-30431,12135,-30437,12120,-30443,12104,-30450,12089,-30456,12073,-30462,12057,-30468,12042,-30474,12026,-30481,12011,-30487,11995,-30493,11980,-30499,11964,-30505,11948,-30511,11933,-30517,11917,-30523,11902,-30529,11886,-30536,11870,-30542,11855,-30548,11839,-30554,11823,-30560,11808,-30566,11792,-30572,11777,-30578,11761,-30584,11745,-30590,11730,-30596,11714,-30602,11698,-30608,11683,-30614,11667,-30620,11651,-30626,11636,-30632,11620,-30638,11604,-30644,11589,-30650,11573,-30656,11557,-30661,11542,-30667,11526,-30673,11510,-30679,11495,-30685,11479,-30691,11463,-30697,11448,-30703,11432,-30708,11416,-30714,11400,-30720,11385,-30726,11369,-30732,11353,-30738,11338,-30743,11322,-30749,11306,-30755,11290,-30761,11275,-30767,11259,-30772,11243,-30778,11227,-30784,11212,-30789,11196,-30795,11180,-30801,11164,-30807,11149,-30812,11133,-30818,11117,-30824,11101,-30829,11086,-30835,11070,-30841,11054,-30846,11038,-30852,11023,-30858,11007,-30863,10991,-30869,10975,-30875,10959,-30880,10944,-30886,10928,-30891,10912,-30897,10896,-30903,10880,-30908,10865,-30914,10849,-30919,10833,-30925,10817,-30930,10801,-30936,10786,-30941,10770,-30947,10754,-30952,10738,-30958,10722,-30963,10706,-30969,10691,-30974,10675,-30980,10659,-30985,10643,-30991,10627,-30996,10611,-31002,10596,-31007,10580,-31012,10564,-31018,10548,-31023,10532,-31029,10516,-31034,10500,-31039,10484,-31045,10469,-31050,10453,-31055,10437,-31061,10421,-31066,10405,-31071,10389,-31077,10373,-31082,10357,-31087,10342,-31093,10326,-31098,10310,-31103,10294,-31108,10278,-31114,10262,-31119,10246,-31124,10230,-31129,10214,-31135,10198,-31140,10182,-31145,10166,-31150,10151,-31155,10135,-31161,10119,-31166,10103,-31171,10087,-31176,10071,-31181,10055,-31186,10039,-31192,10023,-31197,10007,-31202,9991,-31207,9975,-31212,9959,-31217,9943,-31222,9927,-31227,9911,-31232,9895,-31237,9879,-31243,9863,-31248,9847,-31253,9831,-31258,9815,-31263,9799,-31268,9783,-31273,9767,-31278,9751,-31283,9735,-31288,9719,-31293,9703,-31298,9687,-31303,9671,-31308,9655,-31312,9639,-31317,9623,-31322,9607,-31327,9591,-31332,9575,-31337,9559,-31342,9543,-31347,9527,-31352,9511,-31357,9495,-31361,9479,-31366,9463,-31371,9447,-31376,9431,-31381,9415,-31386,9399,-31390,9383,-31395,9367,-31400,9351,-31405,9335,-31410,9319,-31414,9303,-31419,9287,-31424,9270,-31429,9254,-31433,9238,-31438,9222,-31443,9206,-31447,9190,-31452,9174,-31457,9158,-31462,9142,-31466,9126,-31471,9110,-31476,9094,-31480,9077,-31485,9061,-31490,9045,-31494,9029,-31499,9013,-31503,8997,-31508,8981,-31513,8965,-31517,8949,-31522,8932,-31526,8916,-31531,8900,-31535,8884,-31540,8868,-31545,8852,-31549,8836,-31554,8820,-31558,8803,-31563,8787,-31567,8771,-31572,8755,-31576,8739,-31581,8723,-31585,8707,-31589,8690,-31594,8674,-31598,8658,-31603,8642,-31607,8626,-31612,8610,-31616,8593,-31620,8577,-31625,8561,-31629,8545,-31634,8529,-31638,8513,-31642,8496,-31647,8480,-31651,8464,-31655,8448,-31660,8432,-31664,8415,-31668,8399,-31673,8383,-31677,8367,-31681,8351,-31685,8334,-31690,8318,-31694,8302,-31698,8286,-31702,8270,-31707,8253,-31711,8237,-31715,8221,-31719,8205,-31724,8189,-31728,8172,-31732,8156,-31736,8140,-31740,8124,-31744,8107,-31749,8091,-31753,8075,-31757,8059,-31761,8042,-31765,8026,-31769,8010,-31773,7994,-31777,7977,-31781,7961,-31786,7945,-31790,7929,-31794,7912,-31798,7896,-31802,7880,-31806,7864,-31810,7847,-31814,7831,-31818,7815,-31822,7799,-31826,7782,-31830,7766,-31834,7750,-31838,7733,-31842,7717,-31846,7701,-31850,7685,-31854,7668,-31857,7652,-31861,7636,-31865,7619,-31869,7603,-31873,7587,-31877,7571,-31881,7554,-31885,7538,-31889,7522,-31892,7505,-31896,7489,-31900,7473,-31904,7456,-31908,7440,-31912,7424,-31915,7407,-31919,7391,-31923,7375,-31927,7358,-31930,7342,-31934,7326,-31938,7310,-31942,7293,-31945,7277,-31949,7261,-31953,7244,-31957,7228,-31960,7211,-31964,7195,-31968,7179,-31971,7162,-31975,7146,-31979,7130,-31982,7113,-31986,7097,-31990,7081,-31993,7064,-31997,7048,-32000,7032,-32004,7015,-32008,6999,-32011,6982,-32015,6966,-32018,6950,-32022,6933,-32025,6917,-32029,6901,-32033,6884,-32036,6868,-32040,6851,-32043,6835,-32047,6819,-32050,6802,-32054,6786,-32057,6770,-32060,6753,-32064,6737,-32067,6720,-32071,6704,-32074,6688,-32078,6671,-32081,6655,-32085,6638,-32088,6622,-32091,6606,-32095,6589,-32098,6573,-32101,6556,-32105,6540,-32108,6523,-32111,6507,-32115,6491,-32118,6474,-32121,6458,-32125,6441,-32128,6425,-32131,6408,-32135,6392,-32138,6376,-32141,6359,-32144,6343,-32148,6326,-32151,6310,-32154,6293,-32157,6277,-32161,6261,-32164,6244,-32167,6228,-32170,6211,-32173,6195,-32177,6178,-32180,6162,-32183,6145,-32186,6129,-32189,6112,-32192,6096,-32195,6080,-32198,6063,-32202,6047,-32205,6030,-32208,6014,-32211,5997,-32214,5981,-32217,5964,-32220,5948,-32223,5931,-32226,5915,-32229,5898,-32232,5882,-32235,5865,-32238,5849,-32241,5832,-32244,5816,-32247,5799,-32250,5783,-32253,5766,-32256,5750,-32259,5733,-32262,5717,-32265,5700,-32268,5684,-32271,5667,-32274,5651,-32276,5634,-32279,5618,-32282,5601,-32285,5585,-32288,5568,-32291,5552,-32294,5535,-32296,5519,-32299,5502,-32302,5486,-32305,5469,-32308,5453,-32311,5436,-32313,5420,-32316,5403,-32319,5387,-32322,5370,-32324,5354,-32327,5337,-32330,5321,-32333,5304,-32335,5287,-32338,5271,-32341,5254,-32343,5238,-32346,5221,-32349,5205,-32351,5188,-32354,5172,-32357,5155,-32359,5139,-32362,5122,-32365,5106,-32367,5089,-32370,5072,-32372,5056,-32375,5039,-32378,5023,-32380,5006,-32383,4990,-32385,4973,-32388,4957,-32390,4940,-32393,4923,-32395,4907,-32398,4890,-32400,4874,-32403,4857,-32405,4841,-32408,4824,-32410,4807,-32413,4791,-32415,4774,-32418,4758,-32420,4741,-32423,4725,-32425,4708,-32427,4691,-32430,4675,-32432,4658,-32435,4642,-32437,4625,-32439,4608,-32442,4592,-32444,4575,-32446,4559,-32449,4542,-32451,4525,-32453,4509,-32456,4492,-32458,4476,-32460,4459,-32463,4443,-32465,4426,-32467,4409,-32469,4393,-32472,4376,-32474,4359,-32476,4343,-32478,4326,-32481,4310,-32483,4293,-32485,4276,-32487,4260,-32489,4243,-32492,4227,-32494,4210,-32496,4193,-32498,4177,-32500,4160,-32502,4144,-32504,4127,-32507,4110,-32509,4094,-32511,4077,-32513,4060,-32515,4044,-32517,4027,-32519,4011,-32521,3994,-32523,3977,-32525,3961,-32527,3944,-32529,3927,-32531,3911,-32533,3894,-32535,3877,-32537,3861,-32539,3844,-32541,3828,-32543,3811,-32545,3794,-32547,3778,-32549,3761,-32551,3744,-32553,3728,-32555,3711,-32557,3694,-32559,3678,-32560,3661,-32562,3644,-32564,3628,-32566,3611,-32568,3594,-32570,3578,-32572,3561,-32573,3545,-32575,3528,-32577,3511,-32579,3495,-32581,3478,-32582,3461,-32584,3445,-32586,3428,-32588,3411,-32589,3395,-32591,3378,-32593,3361,-32595,3345,-32596,3328,-32598,3311,-32600,3295,-32601,3278,-32603,3261,-32605,3245,-32606,3228,-32608,3211,-32610,3195,-32611,3178,-32613,3161,-32615,3145,-32616,3128,-32618,3111,-32619,3094,-32621,3078,-32623,3061,-32624,3044,-32626,3028,-32627,3011,-32629,2994,-32630,2978,-32632,2961,-32633,2944,-32635,2928,-32636,2911,-32638,2894,-32639,2878,-32641,2861,-32642,2844,-32644,2828,-32645,2811,-32647,2794,-32648,2777,-32650,2761,-32651,2744,-32652,2727,-32654,2711,-32655,2694,-32657,2677,-32658,2661,-32659,2644,-32661,2627,-32662,2610,-32663,2594,-32665,2577,-32666,2560,-32667,2544,-32669,2527,-32670,2510,-32671,2494,-32672,2477,-32674,2460,-32675,2443,-32676,2427,-32677,2410,-32679,2393,-32680,2377,-32681,2360,-32682,2343,-32684,2326,-32685,2310,-32686,2293,-32687,2276,-32688,2260,-32689,2243,-32691,2226,-32692,2209,-32693,2193,-32694,2176,-32695,2159,-32696,2143,-32697,2126,-32698,2109,-32700,2092,-32701,2076,-32702,2059,-32703,2042,-32704,2026,-32705,2009,-32706,1992,-32707,1975,-32708,1959,-32709,1942,-32710,1925,-32711,1908,-32712,1892,-32713,1875,-32714,1858,-32715,1842,-32716,1825,-32717,1808,-32718,1791,-32718,1775,-32719,1758,-32720,1741,-32721,1724,-32722,1708,-32723,1691,-32724,1674,-32725,1658,-32726,1641,-32726,1624,-32727,1607,-32728,1591,-32729,1574,-32730,1557,-32730,1540,-32731,1524,-32732,1507,-32733,1490,-32734,1473,-32734,1457,-32735,1440,-32736,1423,-32737,1406,-32737,1390,-32738,1373,-32739,1356,-32739,1339,-32740,1323,-32741,1306,-32741,1289,-32742,1273,-32743,1256,-32743,1239,-32744,1222,-32745,1206,-32745,1189,-32746,1172,-32747,1155,-32747,1139,-32748,1122,-32748,1105,-32749,1088,-32749,1072,-32750,1055,-32751,1038,-32751,1021,-32752,1005,-32752,988,-32753,971,-32753,954,-32754,938,-32754,921,-32755,904,-32755,887,-32755,871,-32756,854,-32756,837,-32757,820,-32757,804,-32758,787,-32758,770,-32758,753,-32759,737,-32759,720,-32760,703,-32760,686,-32760,670,-32761,653,-32761,636,-32761,619,-32762,603,-32762,586,-32762,569,-32763,552,-32763,536,-32763,519,-32763,502,-32764,485,-32764,469,-32764,452,-32764,435,-32765,418,-32765,402,-32765,385,-32765,368,-32765,351,-32766,335,-32766,318,-32766,301,-32766,284,-32766,268,-32766,251,-32767,234,-32767,217,-32767,201,-32767,184,-32767,167,-32767,150,-32767,134,-32767,117,-32767,100,-32767,83,-32767,67,-32767,50,-32767,33,-32767,16,-32767,0,-32767,-17,-32767,-34,-32767,-51,-32767,-68,-32767,-84,-32767,-101,-32767,-118,-32767,-135,-32767,-151,-32767,-168,-32767,-185,-32767,-202,-32767,-218,-32767,-235,-32767,-252,-32767,-269,-32766,-285,-32766,-302,-32766,-319,-32766,-336,-32766,-352,-32766,-369,-32765,-386,-32765,-403,-32765,-419,-32765,-436,-32765,-453,-32764,-470,-32764,-486,-32764,-503,-32764,-520,-32763,-537,-32763,-553,-32763,-570,-32763,-587,-32762,-604,-32762,-620,-32762,-637,-32761,-654,-32761,-671,-32761,-687,-32760,-704,-32760,-721,-32760,-738,-32759,-754,-32759,-771,-32758,-788,-32758,-805,-32758,-821,-32757,-838,-32757,-855,-32756,-872,-32756,-888,-32755,-905,-32755,-922,-32755,-939,-32754,-955,-32754,-972,-32753,-989,-32753,-1006,-32752,-1022,-32752,-1039,-32751,-1056,-32751,-1073,-32750,-1089,-32749,-1106,-32749,-1123,-32748,-1140,-32748,-1156,-32747,-1173,-32747,-1190,-32746,-1207,-32745,-1223,-32745,-1240,-32744,-1257,-32743,-1274,-32743,-1290,-32742,-1307,-32741,-1324,-32741,-1340,-32740,-1357,-32739,-1374,-32739,-1391,-32738,-1407,-32737,-1424,-32737,-1441,-32736,-1458,-32735,-1474,-32734,-1491,-32734,-1508,-32733,-1525,-32732,-1541,-32731,-1558,-32730,-1575,-32730,-1592,-32729,-1608,-32728,-1625,-32727,-1642,-32726,-1659,-32726,-1675,-32725,-1692,-32724,-1709,-32723,-1725,-32722,-1742,-32721,-1759,-32720,-1776,-32719,-1792,-32718,-1809,-32718,-1826,-32717,-1843,-32716,-1859,-32715,-1876,-32714,-1893,-32713,-1909,-32712,-1926,-32711,-1943,-32710,-1960,-32709,-1976,-32708,-1993,-32707,-2010,-32706,-2027,-32705,-2043,-32704,-2060,-32703,-2077,-32702,-2093,-32701,-2110,-32700,-2127,-32698,-2144,-32697,-2160,-32696,-2177,-32695,-2194,-32694,-2210,-32693,-2227,-32692,-2244,-32691,-2261,-32689,-2277,-32688,-2294,-32687,-2311,-32686,-2327,-32685,-2344,-32684,-2361,-32682,-2378,-32681,-2394,-32680,-2411,-32679,-2428,-32677,-2444,-32676,-2461,-32675,-2478,-32674,-2495,-32672,-2511,-32671,-2528,-32670,-2545,-32669,-2561,-32667,-2578,-32666,-2595,-32665,-2611,-32663,-2628,-32662,-2645,-32661,-2662,-32659,-2678,-32658,-2695,-32657,-2712,-32655,-2728,-32654,-2745,-32652,-2762,-32651,-2778,-32650,-2795,-32648,-2812,-32647,-2829,-32645,-2845,-32644,-2862,-32642,-2879,-32641,-2895,-32639,-2912,-32638,-2929,-32636,-2945,-32635,-2962,-32633,-2979,-32632,-2995,-32630,-3012,-32629,-3029,-32627,-3045,-32626,-3062,-32624,-3079,-32623,-3095,-32621,-3112,-32619,-3129,-32618,-3146,-32616,-3162,-32615,-3179,-32613,-3196,-32611,-3212,-32610,-3229,-32608,-3246,-32606,-3262,-32605,-3279,-32603,-3296,-32601,-3312,-32600,-3329,-32598,-3346,-32596,-3362,-32595,-3379,-32593,-3396,-32591,-3412,-32589,-3429,-32588,-3446,-32586,-3462,-32584,-3479,-32582,-3496,-32581,-3512,-32579,-3529,-32577,-3546,-32575,-3562,-32573,-3579,-32572,-3595,-32570,-3612,-32568,-3629,-32566,-3645,-32564,-3662,-32562,-3679,-32560,-3695,-32559,-3712,-32557,-3729,-32555,-3745,-32553,-3762,-32551,-3779,-32549,-3795,-32547,-3812,-32545,-3829,-32543,-3845,-32541,-3862,-32539,-3878,-32537,-3895,-32535,-3912,-32533,-3928,-32531,-3945,-32529,-3962,-32527,-3978,-32525,-3995,-32523,-4012,-32521,-4028,-32519,-4045,-32517,-4061,-32515,-4078,-32513,-4095,-32511,-4111,-32509,-4128,-32507,-4145,-32504,-4161,-32502,-4178,-32500,-4194,-32498,-4211,-32496,-4228,-32494,-4244,-32492,-4261,-32489,-4277,-32487,-4294,-32485,-4311,-32483,-4327,-32481,-4344,-32478,-4360,-32476,-4377,-32474,-4394,-32472,-4410,-32469,-4427,-32467,-4444,-32465,-4460,-32463,-4477,-32460,-4493,-32458,-4510,-32456,-4526,-32453,-4543,-32451,-4560,-32449,-4576,-32446,-4593,-32444,-4609,-32442,-4626,-32439,-4643,-32437,-4659,-32435,-4676,-32432,-4692,-32430,-4709,-32427,-4726,-32425,-4742,-32423,-4759,-32420,-4775,-32418,-4792,-32415,-4808,-32413,-4825,-32410,-4842,-32408,-4858,-32405,-4875,-32403,-4891,-32400,-4908,-32398,-4924,-32395,-4941,-32393,-4958,-32390,-4974,-32388,-4991,-32385,-5007,-32383,-5024,-32380,-5040,-32378,-5057,-32375,-5073,-32372,-5090,-32370,-5107,-32367,-5123,-32365,-5140,-32362,-5156,-32359,-5173,-32357,-5189,-32354,-5206,-32351,-5222,-32349,-5239,-32346,-5255,-32343,-5272,-32341,-5288,-32338,-5305,-32335,-5322,-32333,-5338,-32330,-5355,-32327,-5371,-32324,-5388,-32322,-5404,-32319,-5421,-32316,-5437,-32313,-5454,-32311,-5470,-32308,-5487,-32305,-5503,-32302,-5520,-32299,-5536,-32296,-5553,-32294,-5569,-32291,-5586,-32288,-5602,-32285,-5619,-32282,-5635,-32279,-5652,-32276,-5668,-32274,-5685,-32271,-5701,-32268,-5718,-32265,-5734,-32262,-5751,-32259,-5767,-32256,-5784,-32253,-5800,-32250,-5817,-32247,-5833,-32244,-5850,-32241,-5866,-32238,-5883,-32235,-5899,-32232,-5916,-32229,-5932,-32226,-5949,-32223,-5965,-32220,-5982,-32217,-5998,-32214,-6015,-32211,-6031,-32208,-6048,-32205,-6064,-32202,-6081,-32198,-6097,-32195,-6113,-32192,-6130,-32189,-6146,-32186,-6163,-32183,-6179,-32180,-6196,-32177,-6212,-32173,-6229,-32170,-6245,-32167,-6262,-32164,-6278,-32161,-6294,-32157,-6311,-32154,-6327,-32151,-6344,-32148,-6360,-32144,-6377,-32141,-6393,-32138,-6409,-32135,-6426,-32131,-6442,-32128,-6459,-32125,-6475,-32121,-6492,-32118,-6508,-32115,-6524,-32111,-6541,-32108,-6557,-32105,-6574,-32101,-6590,-32098,-6607,-32095,-6623,-32091,-6639,-32088,-6656,-32085,-6672,-32081,-6689,-32078,-6705,-32074,-6721,-32071,-6738,-32067,-6754,-32064,-6771,-32060,-6787,-32057,-6803,-32054,-6820,-32050,-6836,-32047,-6852,-32043,-6869,-32040,-6885,-32036,-6902,-32033,-6918,-32029,-6934,-32025,-6951,-32022,-6967,-32018,-6983,-32015,-7000,-32011,-7016,-32008,-7033,-32004,-7049,-32000,-7065,-31997,-7082,-31993,-7098,-31990,-7114,-31986,-7131,-31982,-7147,-31979,-7163,-31975,-7180,-31971,-7196,-31968,-7212,-31964,-7229,-31960,-7245,-31957,-7262,-31953,-7278,-31949,-7294,-31945,-7311,-31942,-7327,-31938,-7343,-31934,-7359,-31930,-7376,-31927,-7392,-31923,-7408,-31919,-7425,-31915,-7441,-31912,-7457,-31908,-7474,-31904,-7490,-31900,-7506,-31896,-7523,-31892,-7539,-31889,-7555,-31885,-7572,-31881,-7588,-31877,-7604,-31873,-7620,-31869,-7637,-31865,-7653,-31861,-7669,-31857,-7686,-31854,-7702,-31850,-7718,-31846,-7734,-31842,-7751,-31838,-7767,-31834,-7783,-31830,-7800,-31826,-7816,-31822,-7832,-31818,-7848,-31814,-7865,-31810,-7881,-31806,-7897,-31802,-7913,-31798,-7930,-31794,-7946,-31790,-7962,-31786,-7978,-31781,-7995,-31777,-8011,-31773,-8027,-31769,-8043,-31765,-8060,-31761,-8076,-31757,-8092,-31753,-8108,-31749,-8125,-31744,-8141,-31740,-8157,-31736,-8173,-31732,-8190,-31728,-8206,-31724,-8222,-31719,-8238,-31715,-8254,-31711,-8271,-31707,-8287,-31702,-8303,-31698,-8319,-31694,-8335,-31690,-8352,-31685,-8368,-31681,-8384,-31677,-8400,-31673,-8416,-31668,-8433,-31664,-8449,-31660,-8465,-31655,-8481,-31651,-8497,-31647,-8514,-31642,-8530,-31638,-8546,-31634,-8562,-31629,-8578,-31625,-8594,-31620,-8611,-31616,-8627,-31612,-8643,-31607,-8659,-31603,-8675,-31598,-8691,-31594,-8708,-31589,-8724,-31585,-8740,-31581,-8756,-31576,-8772,-31572,-8788,-31567,-8804,-31563,-8821,-31558,-8837,-31554,-8853,-31549,-8869,-31545,-8885,-31540,-8901,-31535,-8917,-31531,-8933,-31526,-8950,-31522,-8966,-31517,-8982,-31513,-8998,-31508,-9014,-31503,-9030,-31499,-9046,-31494,-9062,-31490,-9078,-31485,-9095,-31480,-9111,-31476,-9127,-31471,-9143,-31466,-9159,-31462,-9175,-31457,-9191,-31452,-9207,-31447,-9223,-31443,-9239,-31438,-9255,-31433,-9271,-31429,-9288,-31424,-9304,-31419,-9320,-31414,-9336,-31410,-9352,-31405,-9368,-31400,-9384,-31395,-9400,-31390,-9416,-31386,-9432,-31381,-9448,-31376,-9464,-31371,-9480,-31366,-9496,-31361,-9512,-31357,-9528,-31352,-9544,-31347,-9560,-31342,-9576,-31337,-9592,-31332,-9608,-31327,-9624,-31322,-9640,-31317,-9656,-31312,-9672,-31308,-9688,-31303,-9704,-31298,-9720,-31293,-9736,-31288,-9752,-31283,-9768,-31278,-9784,-31273,-9800,-31268,-9816,-31263,-9832,-31258,-9848,-31253,-9864,-31248,-9880,-31243,-9896,-31237,-9912,-31232,-9928,-31227,-9944,-31222,-9960,-31217,-9976,-31212,-9992,-31207,-10008,-31202,-10024,-31197,-10040,-31192,-10056,-31186,-10072,-31181,-10088,-31176,-10104,-31171,-10120,-31166,-10136,-31161,-10152,-31155,-10167,-31150,-10183,-31145,-10199,-31140,-10215,-31135,-10231,-31129,-10247,-31124,-10263,-31119,-10279,-31114,-10295,-31108,-10311,-31103,-10327,-31098,-10343,-31093,-10358,-31087,-10374,-31082,-10390,-31077,-10406,-31071,-10422,-31066,-10438,-31061,-10454,-31055,-10470,-31050,-10485,-31045,-10501,-31039,-10517,-31034,-10533,-31029,-10549,-31023,-10565,-31018,-10581,-31012,-10597,-31007,-10612,-31002,-10628,-30996,-10644,-30991,-10660,-30985,-10676,-30980,-10692,-30974,-10707,-30969,-10723,-30963,-10739,-30958,-10755,-30952,-10771,-30947,-10787,-30941,-10802,-30936,-10818,-30930,-10834,-30925,-10850,-30919,-10866,-30914,-10881,-30908,-10897,-30903,-10913,-30897,-10929,-30891,-10945,-30886,-10960,-30880,-10976,-30875,-10992,-30869,-11008,-30863,-11024,-30858,-11039,-30852,-11055,-30846,-11071,-30841,-11087,-30835,-11102,-30829,-11118,-30824,-11134,-30818,-11150,-30812,-11165,-30807,-11181,-30801,-11197,-30795,-11213,-30789,-11228,-30784,-11244,-30778,-11260,-30772,-11276,-30767,-11291,-30761,-11307,-30755,-11323,-30749,-11339,-30743,-11354,-30738,-11370,-30732,-11386,-30726,-11401,-30720,-11417,-30714,-11433,-30708,-11449,-30703,-11464,-30697,-11480,-30691,-11496,-30685,-11511,-30679,-11527,-30673,-11543,-30667,-11558,-30661,-11574,-30656,-11590,-30650,-11605,-30644,-11621,-30638,-11637,-30632,-11652,-30626,-11668,-30620,-11684,-30614,-11699,-30608,-11715,-30602,-11731,-30596,-11746,-30590,-11762,-30584,-11778,-30578,-11793,-30572,-11809,-30566,-11824,-30560,-11840,-30554,-11856,-30548,-11871,-30542,-11887,-30536,-11903,-30529,-11918,-30523,-11934,-30517,-11949,-30511,-11965,-30505,-11981,-30499,-11996,-30493,-12012,-30487,-12027,-30481,-12043,-30474,-12058,-30468,-12074,-30462,-12090,-30456,-12105,-30450,-12121,-30443,-12136,-30437,-12152,-30431,-12167,-30425,-12183,-30419,-12199,-30412,-12214,-30406,-12230,-30400,-12245,-30394,-12261,-30387,-12276,-30381,-12292,-30375,-12307,-30369,-12323,-30362,-12338,-30356,-12354,-30350,-12369,-30343,-12385,-30337,-12400,-30331,-12416,-30324,-12431,-30318,-12447,-30312,-12462,-30305,-12478,-30299,-12493,-30292,-12509,-30286,-12524,-30280,-12540,-30273,-12555,-30267,-12571,-30260,-12586,-30254,-12602,-30248,-12617,-30241,-12633,-30235,-12648,-30228,-12664,-30222,-12679,-30215,-12695,-30209,-12710,-30202,-12725,-30196,-12741,-30189,-12756,-30183,-12772,-30176,-12787,-30170,-12803,-30163,-12818,-30157,-12833,-30150,-12849,-30143,-12864,-30137,-12880,-30130,-12895,-30124,-12910,-30117,-12926,-30110,-12941,-30104,-12957,-30097,-12972,-30091,-12987,-30084,-13003,-30077,-13018,-30071,-13034,-30064,-13049,-30057,-13064,-30051,-13080,-30044,-13095,-30037,-13110,-30031,-13126,-30024,-13141,-30017,-13156,-30010,-13172,-30004,-13187,-29997,-13202,-29990,-13218,-29984,-13233,-29977,-13248,-29970,-13264,-29963,-13279,-29956,-13294,-29950,-13310,-29943,-13325,-29936,-13340,-29929,-13356,-29922,-13371,-29916,-13386,-29909,-13401,-29902,-13417,-29895,-13432,-29888,-13447,-29881,-13463,-29874,-13478,-29867,-13493,-29861,-13508,-29854,-13524,-29847,-13539,-29840,-13554,-29833,-13569,-29826,-13585,-29819,-13600,-29812,-13615,-29805,-13630,-29798,-13646,-29791,-13661,-29784,-13676,-29777,-13691,-29770,-13707,-29763,-13722,-29756,-13737,-29749,-13752,-29742,-13767,-29735,-13783,-29728,-13798,-29721,-13813,-29714,-13828,-29707,-13843,-29700,-13859,-29693,-13874,-29686,-13889,-29679,-13904,-29671,-13919,-29664,-13934,-29657,-13950,-29650,-13965,-29643,-13980,-29636,-13995,-29629,-14010,-29622,-14025,-29614,-14040,-29607,-14056,-29600,-14071,-29593,-14086,-29586,-14101,-29578,-14116,-29571,-14131,-29564,-14146,-29557,-14161,-29549,-14177,-29542,-14192,-29535,-14207,-29528,-14222,-29520,-14237,-29513,-14252,-29506,-14267,-29499,-14282,-29491,-14297,-29484,-14312,-29477,-14327,-29469,-14343,-29462,-14358,-29455,-14373,-29447,-14388,-29440,-14403,-29433,-14418,-29425,-14433,-29418,-14448,-29411,-14463,-29403,-14478,-29396,-14493,-29388,-14508,-29381,-14523,-29373,-14538,-29366,-14553,-29359,-14568,-29351,-14583,-29344,-14598,-29336,-14613,-29329,-14628,-29321,-14643,-29314,-14658,-29306,-14673,-29299,-14688,-29291,-14703,-29284,-14718,-29276,-14733,-29269,-14748,-29261,-14763,-29254,-14778,-29246,-14793,-29239,-14808,-29231,-14823,-29223,-14838,-29216,-14853,-29208,-14867,-29201,-14882,-29193,-14897,-29185,-14912,-29178,-14927,-29170,-14942,-29163,-14957,-29155,-14972,-29147,-14987,-29140,-15002,-29132,-15017,-29124,-15031,-29117,-15046,-29109,-15061,-29101,-15076,-29093,-15091,-29086,-15106,-29078,-15121,-29070,-15136,-29063,-15150,-29055,-15165,-29047,-15180,-29039,-15195,-29032,-15210,-29024,-15225,-29016,-15239,-29008,-15254,-29000,-15269,-28993,-15284,-28985,-15299,-28977,-15314,-28969,-15328,-28961,-15343,-28954,-15358,-28946,-15373,-28938,-15388,-28930,-15402,-28922,-15417,-28914,-15432,-28906,-15447,-28898,-15462,-28891,-15476,-28883,-15491,-28875,-15506,-28867,-15521,-28859,-15535,-28851,-15550,-28843,-15565,-28835,-15580,-28827,-15594,-28819,-15609,-28811,-15624,-28803,-15639,-28795,-15653,-28787,-15668,-28779,-15683,-28771,-15697,-28763,-15712,-28755,-15727,-28747,-15741,-28739,-15756,-28731,-15771,-28723,-15786,-28715,-15800,-28707,-15815,-28699,-15830,-28691,-15844,-28682,-15859,-28674,-15874,-28666,-15888,-28658,-15903,-28650,-15918,-28642,-15932,-28634,-15947,-28626,-15961,-28617,-15976,-28609,-15991,-28601,-16005,-28593,-16020,-28585,-16035,-28576,-16049,-28568,-16064,-28560,-16078,-28552,-16093,-28544,-16108,-28535,-16122,-28527,-16137,-28519,-16151,-28511,-16166,-28502,-16180,-28494,-16195,-28486,-16210,-28478,-16224,-28469,-16239,-28461,-16253,-28453,-16268,-28444,-16282,-28436,-16297,-28428,-16311,-28419,-16326,-28411,-16340,-28403,-16355,-28394,-16369,-28386,-16384,-28378,-16399,-28369,-16413,-28361,-16428,-28352,-16442,-28344,-16456,-28336,-16471,-28327,-16485,-28319,-16500,-28310,-16514,-28302,-16529,-28293,-16543,-28285,-16558,-28276,-16572,-28268,-16587,-28260,-16601,-28251,-16616,-28243,-16630,-28234,-16644,-28226,-16659,-28217,-16673,-28209,-16688,-28200,-16702,-28191,-16717,-28183,-16731,-28174,-16745,-28166,-16760,-28157,-16774,-28149,-16789,-28140,-16803,-28132,-16817,-28123,-16832,-28114,-16846,-28106,-16860,-28097,-16875,-28088,-16889,-28080,-16904,-28071,-16918,-28063,-16932,-28054,-16947,-28045,-16961,-28037,-16975,-28028,-16990,-28019,-17004,-28010,-17018,-28002,-17033,-27993,-17047,-27984,-17061,-27976,-17075,-27967,-17090,-27958,-17104,-27949,-17118,-27941,-17133,-27932,-17147,-27923,-17161,-27914,-17175,-27906,-17190,-27897,-17204,-27888,-17218,-27879,-17233,-27870,-17247,-27862,-17261,-27853,-17275,-27844,-17289,-27835,-17304,-27826,-17318,-27817,-17332,-27809,-17346,-27800,-17361,-27791,-17375,-27782,-17389,-27773,-17403,-27764,-17417,-27755,-17432,-27746,-17446,-27737,-17460,-27729,-17474,-27720,-17488,-27711,-17502,-27702,-17517,-27693,-17531,-27684,-17545,-27675,-17559,-27666,-17573,-27657,-17587,-27648,-17601,-27639,-17616,-27630,-17630,-27621,-17644,-27612,-17658,-27603,-17672,-27594,-17686,-27585,-17700,-27576,-17714,-27567,-17728,-27558,-17743,-27549,-17757,-27539,-17771,-27530,-17785,-27521,-17799,-27512,-17813,-27503,-17827,-27494,-17841,-27485,-17855,-27476,-17869,-27467,-17883,-27457,-17897,-27448,-17911,-27439,-17925,-27430,-17939,-27421,-17953,-27412,-17967,-27402,-17981,-27393,-17995,-27384,-18009,-27375,-18023,-27366,-18037,-27356,-18051,-27347,-18065,-27338,-18079,-27329,-18093,-27320,-18107,-27310,-18121,-27301,-18135,-27292,-18149,-27282,-18163,-27273,-18177,-27264,-18191,-27255,-18205,-27245,-18219,-27236,-18233,-27227,-18247,-27217,-18261,-27208,-18274,-27199,-18288,-27189,-18302,-27180,-18316,-27171,-18330,-27161,-18344,-27152,-18358,-27142,-18372,-27133,-18386,-27124,-18399,-27114,-18413,-27105,-18427,-27095,-18441,-27086,-18455,-27077,-18469,-27067,-18483,-27058,-18496,-27048,-18510,-27039,-18524,-27029,-18538,-27020,-18552,-27010,-18565,-27001,-18579,-26991,-18593,-26982,-18607,-26972,-18621,-26963,-18634,-26953,-18648,-26944,-18662,-26934,-18676,-26925,-18690,-26915,-18703,-26906,-18717,-26896,-18731,-26886,-18745,-26877,-18758,-26867,-18772,-26858,-18786,-26848,-18799,-26838,-18813,-26829,-18827,-26819,-18841,-26810,-18854,-26800,-18868,-26790,-18882,-26781,-18895,-26771,-18909,-26761,-18923,-26752,-18936,-26742,-18950,-26732,-18964,-26723,-18977,-26713,-18991,-26703,-19005,-26693,-19018,-26684,-19032,-26674,-19046,-26664,-19059,-26655,-19073,-26645,-19087,-26635,-19100,-26625,-19114,-26616,-19127,-26606,-19141,-26596,-19155,-26586,-19168,-26576,-19182,-26567,-19195,-26557,-19209,-26547,-19222,-26537,-19236,-26527,-19250,-26517,-19263,-26508,-19277,-26498,-19290,-26488,-19304,-26478,-19317,-26468,-19331,-26458,-19344,-26448,-19358,-26438,-19371,-26429,-19385,-26419,-19398,-26409,-19412,-26399,-19425,-26389,-19439,-26379,-19452,-26369,-19466,-26359,-19479,-26349,-19493,-26339,-19506,-26329,-19520,-26319,-19533,-26309,-19547,-26299,-19560,-26289,-19574,-26279,-19587,-26269,-19600,-26259,-19614,-26249,-19627,-26239,-19641,-26229,-19654,-26219,-19668,-26209,-19681,-26199,-19694,-26189,-19708,-26179,-19721,-26169,-19734,-26159,-19748,-26149,-19761,-26138,-19775,-26128,-19788,-26118,-19801,-26108,-19815,-26098,-19828,-26088,-19841,-26078,-19855,-26068,-19868,-26057,-19881,-26047,-19895,-26037,-19908,-26027,-19921,-26017,-19934,-26007,-19948,-25996,-19961,-25986,-19974,-25976,-19988,-25966,-20001,-25955,-20014,-25945,-20027,-25935,-20041,-25925,-20054,-25914,-20067,-25904,-20080,-25894,-20094,-25884,-20107,-25873,-20120,-25863,-20133,-25853,-20147,-25843,-20160,-25832,-20173,-25822,-20186,-25812,-20199,-25801,-20213,-25791,-20226,-25781,-20239,-25770,-20252,-25760,-20265,-25750,-20278,-25739,-20292,-25729,-20305,-25718,-20318,-25708,-20331,-25698,-20344,-25687,-20357,-25677,-20370,-25666,-20384,-25656,-20397,-25646,-20410,-25635,-20423,-25625,-20436,-25614,-20449,-25604,-20462,-25593,-20475,-25583,-20488,-25572,-20501,-25562,-20514,-25551,-20528,-25541,-20541,-25530,-20554,-25520,-20567,-25509,-20580,-25499,-20593,-25488,-20606,-25478,-20619,-25467,-20632,-25457,-20645,-25446,-20658,-25436,-20671,-25425,-20684,-25415,-20697,-25404,-20710,-25393,-20723,-25383,-20736,-25372,-20749,-25362,-20762,-25351,-20775,-25340,-20788,-25330,-20801,-25319,-20814,-25308,-20826,-25298,-20839,-25287,-20852,-25277,-20865,-25266,-20878,-25255,-20891,-25244,-20904,-25234,-20917,-25223,-20930,-25212,-20943,-25202,-20956,-25191,-20968,-25180,-20981,-25170,-20994,-25159,-21007,-25148,-21020,-25137,-21033,-25127,-21046,-25116,-21058,-25105,-21071,-25094,-21084,-25084,-21097,-25073,-21110,-25062,-21123,-25051,-21135,-25040,-21148,-25030,-21161,-25019,-21174,-25008,-21187,-24997,-21199,-24986,-21212,-24975,-21225,-24965,-21238,-24954,-21250,-24943,-21263,-24932,-21276,-24921,-21289,-24910,-21301,-24899,-21314,-24888,-21327,-24878,-21340,-24867,-21352,-24856,-21365,-24845,-21378,-24834,-21390,-24823,-21403,-24812,-21416,-24801,-21428,-24790,-21441,-24779,-21454,-24768,-21466,-24757,-21479,-24746,-21492,-24735,-21504,-24724,-21517,-24713,-21530,-24702,-21542,-24691,-21555,-24680,-21567,-24669,-21580,-24658,-21593,-24647,-21605,-24636,-21618,-24625,-21630,-24614,-21643,-24603,-21656,-24592,-21668,-24581,-21681,-24570,-21693,-24559,-21706,-24547,-21718,-24536,-21731,-24525,-21744,-24514,-21756,-24503,-21769,-24492,-21781,-24481,-21794,-24470,-21806,-24458,-21819,-24447,-21831,-24436,-21844,-24425,-21856,-24414,-21869,-24403,-21881,-24391,-21894,-24380,-21906,-24369,-21918,-24358,-21931,-24347,-21943,-24335,-21956,-24324,-21968,-24313,-21981,-24302,-21993,-24290,-22005,-24279,-22018,-24268,-22030,-24257,-22043,-24245,-22055,-24234,-22067,-24223,-22080,-24212,-22092,-24200,-22105,-24189,-22117,-24178,-22129,-24166,-22142,-24155,-22154,-24144,-22166,-24132,-22179,-24121,-22191,-24110,-22203,-24098,-22216,-24087,-22228,-24076,-22240,-24064,-22253,-24053,-22265,-24042,-22277,-24030,-22289,-24019,-22302,-24007,-22314,-23996,-22326,-23985,-22339,-23973,-22351,-23962,-22363,-23950,-22375,-23939,-22388,-23927,-22400,-23916,-22412,-23904,-22424,-23893,-22436,-23882,-22449,-23870,-22461,-23859,-22473,-23847,-22485,-23836,-22497,-23824,-22510,-23813,-22522,-23801,-22534,-23790,-22546,-23778,-22558,-23767,-22570,-23755,-22583,-23743,-22595,-23732,-22607,-23720,-22619,-23709,-22631,-23697,-22643,-23686,-22655,-23674,-22667,-23662,-22679,-23651,-22692,-23639,-22704,-23628,-22716,-23616,-22728,-23604,-22740,-23593,-22752,-23581,-22764,-23570,-22776,-23558,-22788,-23546,-22800,-23535,-22812,-23523,-22824,-23511,-22836,-23500,-22848,-23488,-22860,-23476,-22872,-23465,-22884,-23453,-22896,-23441,-22908,-23429,-22920,-23418,-22932,-23406,-22944,-23394,-22956,-23383,-22968,-23371,-22980,-23359,-22992,-23347,-23004,-23336,-23016,-23324,-23028,-23312,-23040,-23300,-23051,-23288,-23063,-23277,-23075,-23265,-23087,-23253,-23099,-23241,-23111,-23229,-23123,-23218,-23135,-23206,-23147,-23194,-23158,-23182,-23170,-23170,-23182,-23158,-23194,-23147,-23206,-23135,-23218,-23123,-23229,-23111,-23241,-23099,-23253,-23087,-23265,-23075,-23277,-23063,-23288,-23051,-23300,-23040,-23312,-23028,-23324,-23016,-23336,-23004,-23347,-22992,-23359,-22980,-23371,-22968,-23383,-22956,-23394,-22944,-23406,-22932,-23418,-22920,-23429,-22908,-23441,-22896,-23453,-22884,-23465,-22872,-23476,-22860,-23488,-22848,-23500,-22836,-23511,-22824,-23523,-22812,-23535,-22800,-23546,-22788,-23558,-22776,-23570,-22764,-23581,-22752,-23593,-22740,-23604,-22728,-23616,-22716,-23628,-22704,-23639,-22692,-23651,-22679,-23662,-22667,-23674,-22655,-23686,-22643,-23697,-22631,-23709,-22619,-23720,-22607,-23732,-22595,-23743,-22583,-23755,-22570,-23767,-22558,-23778,-22546,-23790,-22534,-23801,-22522,-23813,-22510,-23824,-22497,-23836,-22485,-23847,-22473,-23859,-22461,-23870,-22449,-23882,-22436,-23893,-22424,-23904,-22412,-23916,-22400,-23927,-22388,-23939,-22375,-23950,-22363,-23962,-22351,-23973,-22339,-23985,-22326,-23996,-22314,-24007,-22302,-24019,-22289,-24030,-22277,-24042,-22265,-24053,-22253,-24064,-22240,-24076,-22228,-24087,-22216,-24098,-22203,-24110,-22191,-24121,-22179,-24132,-22166,-24144,-22154,-24155,-22142,-24166,-22129,-24178,-22117,-24189,-22105,-24200,-22092,-24212,-22080,-24223,-22067,-24234,-22055,-24245,-22043,-24257,-22030,-24268,-22018,-24279,-22005,-24290,-21993,-24302,-21981,-24313,-21968,-24324,-21956,-24335,-21943,-24347,-21931,-24358,-21918,-24369,-21906,-24380,-21894,-24391,-21881,-24403,-21869,-24414,-21856,-24425,-21844,-24436,-21831,-24447,-21819,-24458,-21806,-24470,-21794,-24481,-21781,-24492,-21769,-24503,-21756,-24514,-21744,-24525,-21731,-24536,-21718,-24547,-21706,-24559,-21693,-24570,-21681,-24581,-21668,-24592,-21656,-24603,-21643,-24614,-21630,-24625,-21618,-24636,-21605,-24647,-21593,-24658,-21580,-24669,-21567,-24680,-21555,-24691,-21542,-24702,-21530,-24713,-21517,-24724,-21504,-24735,-21492,-24746,-21479,-24757,-21466,-24768,-21454,-24779,-21441,-24790,-21428,-24801,-21416,-24812,-21403,-24823,-21390,-24834,-21378,-24845,-21365,-24856,-21352,-24867,-21340,-24878,-21327,-24888,-21314,-24899,-21301,-24910,-21289,-24921,-21276,-24932,-21263,-24943,-21250,-24954,-21238,-24965,-21225,-24975,-21212,-24986,-21199,-24997,-21187,-25008,-21174,-25019,-21161,-25030,-21148,-25040,-21135,-25051,-21123,-25062,-21110,-25073,-21097,-25084,-21084,-25094,-21071,-25105,-21058,-25116,-21046,-25127,-21033,-25137,-21020,-25148,-21007,-25159,-20994,-25170,-20981,-25180,-20968,-25191,-20956,-25202,-20943,-25212,-20930,-25223,-20917,-25234,-20904,-25244,-20891,-25255,-20878,-25266,-20865,-25277,-20852,-25287,-20839,-25298,-20826,-25308,-20814,-25319,-20801,-25330,-20788,-25340,-20775,-25351,-20762,-25362,-20749,-25372,-20736,-25383,-20723,-25393,-20710,-25404,-20697,-25415,-20684,-25425,-20671,-25436,-20658,-25446,-20645,-25457,-20632,-25467,-20619,-25478,-20606,-25488,-20593,-25499,-20580,-25509,-20567,-25520,-20554,-25530,-20541,-25541,-20528,-25551,-20514,-25562,-20501,-25572,-20488,-25583,-20475,-25593,-20462,-25604,-20449,-25614,-20436,-25625,-20423,-25635,-20410,-25646,-20397,-25656,-20384,-25666,-20370,-25677,-20357,-25687,-20344,-25698,-20331,-25708,-20318,-25718,-20305,-25729,-20292,-25739,-20278,-25750,-20265,-25760,-20252,-25770,-20239,-25781,-20226,-25791,-20213,-25801,-20199,-25812,-20186,-25822,-20173,-25832,-20160,-25843,-20147,-25853,-20133,-25863,-20120,-25873,-20107,-25884,-20094,-25894,-20080,-25904,-20067,-25914,-20054,-25925,-20041,-25935,-20027,-25945,-20014,-25955,-20001,-25966,-19988,-25976,-19974,-25986,-19961,-25996,-19948,-26007,-19934,-26017,-19921,-26027,-19908,-26037,-19895,-26047,-19881,-26057,-19868,-26068,-19855,-26078,-19841,-26088,-19828,-26098,-19815,-26108,-19801,-26118,-19788,-26128,-19775,-26138,-19761,-26149,-19748,-26159,-19734,-26169,-19721,-26179,-19708,-26189,-19694,-26199,-19681,-26209,-19668,-26219,-19654,-26229,-19641,-26239,-19627,-26249,-19614,-26259,-19600,-26269,-19587,-26279,-19574,-26289,-19560,-26299,-19547,-26309,-19533,-26319,-19520,-26329,-19506,-26339,-19493,-26349,-19479,-26359,-19466,-26369,-19452,-26379,-19439,-26389,-19425,-26399,-19412,-26409,-19398,-26419,-19385,-26429,-19371,-26438,-19358,-26448,-19344,-26458,-19331,-26468,-19317,-26478,-19304,-26488,-19290,-26498,-19277,-26508,-19263,-26517,-19250,-26527,-19236,-26537,-19222,-26547,-19209,-26557,-19195,-26567,-19182,-26576,-19168,-26586,-19155,-26596,-19141,-26606,-19127,-26616,-19114,-26625,-19100,-26635,-19087,-26645,-19073,-26655,-19059,-26664,-19046,-26674,-19032,-26684,-19018,-26693,-19005,-26703,-18991,-26713,-18977,-26723,-18964,-26732,-18950,-26742,-18936,-26752,-18923,-26761,-18909,-26771,-18895,-26781,-18882,-26790,-18868,-26800,-18854,-26810,-18841,-26819,-18827,-26829,-18813,-26838,-18799,-26848,-18786,-26858,-18772,-26867,-18758,-26877,-18745,-26886,-18731,-26896,-18717,-26906,-18703,-26915,-18690,-26925,-18676,-26934,-18662,-26944,-18648,-26953,-18634,-26963,-18621,-26972,-18607,-26982,-18593,-26991,-18579,-27001,-18565,-27010,-18552,-27020,-18538,-27029,-18524,-27039,-18510,-27048,-18496,-27058,-18483,-27067,-18469,-27077,-18455,-27086,-18441,-27095,-18427,-27105,-18413,-27114,-18399,-27124,-18386,-27133,-18372,-27142,-18358,-27152,-18344,-27161,-18330,-27171,-18316,-27180,-18302,-27189,-18288,-27199,-18274,-27208,-18261,-27217,-18247,-27227,-18233,-27236,-18219,-27245,-18205,-27255,-18191,-27264,-18177,-27273,-18163,-27282,-18149,-27292,-18135,-27301,-18121,-27310,-18107,-27320,-18093,-27329,-18079,-27338,-18065,-27347,-18051,-27356,-18037,-27366,-18023,-27375,-18009,-27384,-17995,-27393,-17981,-27402,-17967,-27412,-17953,-27421,-17939,-27430,-17925,-27439,-17911,-27448,-17897,-27457,-17883,-27467,-17869,-27476,-17855,-27485,-17841,-27494,-17827,-27503,-17813,-27512,-17799,-27521,-17785,-27530,-17771,-27539,-17757,-27549,-17743,-27558,-17728,-27567,-17714,-27576,-17700,-27585,-17686,-27594,-17672,-27603,-17658,-27612,-17644,-27621,-17630,-27630,-17616,-27639,-17601,-27648,-17587,-27657,-17573,-27666,-17559,-27675,-17545,-27684,-17531,-27693,-17517,-27702,-17502,-27711,-17488,-27720,-17474,-27729,-17460,-27737,-17446,-27746,-17432,-27755,-17417,-27764,-17403,-27773,-17389,-27782,-17375,-27791,-17361,-27800,-17346,-27809,-17332,-27817,-17318,-27826,-17304,-27835,-17289,-27844,-17275,-27853,-17261,-27862,-17247,-27870,-17233,-27879,-17218,-27888,-17204,-27897,-17190,-27906,-17175,-27914,-17161,-27923,-17147,-27932,-17133,-27941,-17118,-27949,-17104,-27958,-17090,-27967,-17075,-27976,-17061,-27984,-17047,-27993,-17033,-28002,-17018,-28010,-17004,-28019,-16990,-28028,-16975,-28037,-16961,-28045,-16947,-28054,-16932,-28063,-16918,-28071,-16904,-28080,-16889,-28088,-16875,-28097,-16860,-28106,-16846,-28114,-16832,-28123,-16817,-28132,-16803,-28140,-16789,-28149,-16774,-28157,-16760,-28166,-16745,-28174,-16731,-28183,-16717,-28191,-16702,-28200,-16688,-28209,-16673,-28217,-16659,-28226,-16644,-28234,-16630,-28243,-16616,-28251,-16601,-28260,-16587,-28268,-16572,-28276,-16558,-28285,-16543,-28293,-16529,-28302,-16514,-28310,-16500,-28319,-16485,-28327,-16471,-28336,-16456,-28344,-16442,-28352,-16428,-28361,-16413,-28369,-16399,-28378,-16384,-28386,-16369,-28394,-16355,-28403,-16340,-28411,-16326,-28419,-16311,-28428,-16297,-28436,-16282,-28444,-16268,-28453,-16253,-28461,-16239,-28469,-16224,-28478,-16210,-28486,-16195,-28494,-16180,-28502,-16166,-28511,-16151,-28519,-16137,-28527,-16122,-28535,-16108,-28544,-16093,-28552,-16078,-28560,-16064,-28568,-16049,-28576,-16035,-28585,-16020,-28593,-16005,-28601,-15991,-28609,-15976,-28617,-15961,-28626,-15947,-28634,-15932,-28642,-15918,-28650,-15903,-28658,-15888,-28666,-15874,-28674,-15859,-28682,-15844,-28691,-15830,-28699,-15815,-28707,-15800,-28715,-15786,-28723,-15771,-28731,-15756,-28739,-15741,-28747,-15727,-28755,-15712,-28763,-15697,-28771,-15683,-28779,-15668,-28787,-15653,-28795,-15639,-28803,-15624,-28811,-15609,-28819,-15594,-28827,-15580,-28835,-15565,-28843,-15550,-28851,-15535,-28859,-15521,-28867,-15506,-28875,-15491,-28883,-15476,-28891,-15462,-28898,-15447,-28906,-15432,-28914,-15417,-28922,-15402,-28930,-15388,-28938,-15373,-28946,-15358,-28954,-15343,-28961,-15328,-28969,-15314,-28977,-15299,-28985,-15284,-28993,-15269,-29000,-15254,-29008,-15239,-29016,-15225,-29024,-15210,-29032,-15195,-29039,-15180,-29047,-15165,-29055,-15150,-29063,-15136,-29070,-15121,-29078,-15106,-29086,-15091,-29093,-15076,-29101,-15061,-29109,-15046,-29117,-15031,-29124,-15017,-29132,-15002,-29140,-14987,-29147,-14972,-29155,-14957,-29163,-14942,-29170,-14927,-29178,-14912,-29185,-14897,-29193,-14882,-29201,-14867,-29208,-14853,-29216,-14838,-29223,-14823,-29231,-14808,-29239,-14793,-29246,-14778,-29254,-14763,-29261,-14748,-29269,-14733,-29276,-14718,-29284,-14703,-29291,-14688,-29299,-14673,-29306,-14658,-29314,-14643,-29321,-14628,-29329,-14613,-29336,-14598,-29344,-14583,-29351,-14568,-29359,-14553,-29366,-14538,-29373,-14523,-29381,-14508,-29388,-14493,-29396,-14478,-29403,-14463,-29411,-14448,-29418,-14433,-29425,-14418,-29433,-14403,-29440,-14388,-29447,-14373,-29455,-14358,-29462,-14343,-29469,-14327,-29477,-14312,-29484,-14297,-29491,-14282,-29499,-14267,-29506,-14252,-29513,-14237,-29520,-14222,-29528,-14207,-29535,-14192,-29542,-14177,-29549,-14161,-29557,-14146,-29564,-14131,-29571,-14116,-29578,-14101,-29586,-14086,-29593,-14071,-29600,-14056,-29607,-14040,-29614,-14025,-29622,-14010,-29629,-13995,-29636,-13980,-29643,-13965,-29650,-13950,-29657,-13934,-29664,-13919,-29671,-13904,-29679,-13889,-29686,-13874,-29693,-13859,-29700,-13843,-29707,-13828,-29714,-13813,-29721,-13798,-29728,-13783,-29735,-13767,-29742,-13752,-29749,-13737,-29756,-13722,-29763,-13707,-29770,-13691,-29777,-13676,-29784,-13661,-29791,-13646,-29798,-13630,-29805,-13615,-29812,-13600,-29819,-13585,-29826,-13569,-29833,-13554,-29840,-13539,-29847,-13524,-29854,-13508,-29861,-13493,-29867,-13478,-29874,-13463,-29881,-13447,-29888,-13432,-29895,-13417,-29902,-13401,-29909,-13386,-29916,-13371,-29922,-13356,-29929,-13340,-29936,-13325,-29943,-13310,-29950,-13294,-29956,-13279,-29963,-13264,-29970,-13248,-29977,-13233,-29984,-13218,-29990,-13202,-29997,-13187,-30004,-13172,-30010,-13156,-30017,-13141,-30024,-13126,-30031,-13110,-30037,-13095,-30044,-13080,-30051,-13064,-30057,-13049,-30064,-13034,-30071,-13018,-30077,-13003,-30084,-12987,-30091,-12972,-30097,-12957,-30104,-12941,-30110,-12926,-30117,-12910,-30124,-12895,-30130,-12880,-30137,-12864,-30143,-12849,-30150,-12833,-30157,-12818,-30163,-12803,-30170,-12787,-30176,-12772,-30183,-12756,-30189,-12741,-30196,-12725,-30202,-12710,-30209,-12695,-30215,-12679,-30222,-12664,-30228,-12648,-30235,-12633,-30241,-12617,-30248,-12602,-30254,-12586,-30260,-12571,-30267,-12555,-30273,-12540,-30280,-12524,-30286,-12509,-30292,-12493,-30299,-12478,-30305,-12462,-30312,-12447,-30318,-12431,-30324,-12416,-30331,-12400,-30337,-12385,-30343,-12369,-30350,-12354,-30356,-12338,-30362,-12323,-30369,-12307,-30375,-12292,-30381,-12276,-30387,-12261,-30394,-12245,-30400,-12230,-30406,-12214,-30412,-12199,-30419,-12183,-30425,-12167,-30431,-12152,-30437,-12136,-30443,-12121,-30450,-12105,-30456,-12090,-30462,-12074,-30468,-12058,-30474,-12043,-30481,-12027,-30487,-12012,-30493,-11996,-30499,-11981,-30505,-11965,-30511,-11949,-30517,-11934,-30523,-11918,-30529,-11903,-30536,-11887,-30542,-11871,-30548,-11856,-30554,-11840,-30560,-11824,-30566,-11809,-30572,-11793,-30578,-11778,-30584,-11762,-30590,-11746,-30596,-11731,-30602,-11715,-30608,-11699,-30614,-11684,-30620,-11668,-30626,-11652,-30632,-11637,-30638,-11621,-30644,-11605,-30650,-11590,-30656,-11574,-30661,-11558,-30667,-11543,-30673,-11527,-30679,-11511,-30685,-11496,-30691,-11480,-30697,-11464,-30703,-11449,-30708,-11433,-30714,-11417,-30720,-11401,-30726,-11386,-30732,-11370,-30738,-11354,-30743,-11339,-30749,-11323,-30755,-11307,-30761,-11291,-30767,-11276,-30772,-11260,-30778,-11244,-30784,-11228,-30789,-11213,-30795,-11197,-30801,-11181,-30807,-11165,-30812,-11150,-30818,-11134,-30824,-11118,-30829,-11102,-30835,-11087,-30841,-11071,-30846,-11055,-30852,-11039,-30858,-11024,-30863,-11008,-30869,-10992,-30875,-10976,-30880,-10960,-30886,-10945,-30891,-10929,-30897,-10913,-30903,-10897,-30908,-10881,-30914,-10866,-30919,-10850,-30925,-10834,-30930,-10818,-30936,-10802,-30941,-10787,-30947,-10771,-30952,-10755,-30958,-10739,-30963,-10723,-30969,-10707,-30974,-10692,-30980,-10676,-30985,-10660,-30991,-10644,-30996,-10628,-31002,-10612,-31007,-10597,-31012,-10581,-31018,-10565,-31023,-10549,-31029,-10533,-31034,-10517,-31039,-10501,-31045,-10485,-31050,-10470,-31055,-10454,-31061,-10438,-31066,-10422,-31071,-10406,-31077,-10390,-31082,-10374,-31087,-10358,-31093,-10343,-31098,-10327,-31103,-10311,-31108,-10295,-31114,-10279,-31119,-10263,-31124,-10247,-31129,-10231,-31135,-10215,-31140,-10199,-31145,-10183,-31150,-10167,-31155,-10152,-31161,-10136,-31166,-10120,-31171,-10104,-31176,-10088,-31181,-10072,-31186,-10056,-31192,-10040,-31197,-10024,-31202,-10008,-31207,-9992,-31212,-9976,-31217,-9960,-31222,-9944,-31227,-9928,-31232,-9912,-31237,-9896,-31243,-9880,-31248,-9864,-31253,-9848,-31258,-9832,-31263,-9816,-31268,-9800,-31273,-9784,-31278,-9768,-31283,-9752,-31288,-9736,-31293,-9720,-31298,-9704,-31303,-9688,-31308,-9672,-31312,-9656,-31317,-9640,-31322,-9624,-31327,-9608,-31332,-9592,-31337,-9576,-31342,-9560,-31347,-9544,-31352,-9528,-31357,-9512,-31361,-9496,-31366,-9480,-31371,-9464,-31376,-9448,-31381,-9432,-31386,-9416,-31390,-9400,-31395,-9384,-31400,-9368,-31405,-9352,-31410,-9336,-31414,-9320,-31419,-9304,-31424,-9288,-31429,-9271,-31433,-9255,-31438,-9239,-31443,-9223,-31447,-9207,-31452,-9191,-31457,-9175,-31462,-9159,-31466,-9143,-31471,-9127,-31476,-9111,-31480,-9095,-31485,-9078,-31490,-9062,-31494,-9046,-31499,-9030,-31503,-9014,-31508,-8998,-31513,-8982,-31517,-8966,-31522,-8950,-31526,-8933,-31531,-8917,-31535,-8901,-31540,-8885,-31545,-8869,-31549,-8853,-31554,-8837,-31558,-8821,-31563,-8804,-31567,-8788,-31572,-8772,-31576,-8756,-31581,-8740,-31585,-8724,-31589,-8708,-31594,-8691,-31598,-8675,-31603,-8659,-31607,-8643,-31612,-8627,-31616,-8611,-31620,-8594,-31625,-8578,-31629,-8562,-31634,-8546,-31638,-8530,-31642,-8514,-31647,-8497,-31651,-8481,-31655,-8465,-31660,-8449,-31664,-8433,-31668,-8416,-31673,-8400,-31677,-8384,-31681,-8368,-31685,-8352,-31690,-8335,-31694,-8319,-31698,-8303,-31702,-8287,-31707,-8271,-31711,-8254,-31715,-8238,-31719,-8222,-31724,-8206,-31728,-8190,-31732,-8173,-31736,-8157,-31740,-8141,-31744,-8125,-31749,-8108,-31753,-8092,-31757,-8076,-31761,-8060,-31765,-8043,-31769,-8027,-31773,-8011,-31777,-7995,-31781,-7978,-31786,-7962,-31790,-7946,-31794,-7930,-31798,-7913,-31802,-7897,-31806,-7881,-31810,-7865,-31814,-7848,-31818,-7832,-31822,-7816,-31826,-7800,-31830,-7783,-31834,-7767,-31838,-7751,-31842,-7734,-31846,-7718,-31850,-7702,-31854,-7686,-31857,-7669,-31861,-7653,-31865,-7637,-31869,-7620,-31873,-7604,-31877,-7588,-31881,-7572,-31885,-7555,-31889,-7539,-31892,-7523,-31896,-7506,-31900,-7490,-31904,-7474,-31908,-7457,-31912,-7441,-31915,-7425,-31919,-7408,-31923,-7392,-31927,-7376,-31930,-7359,-31934,-7343,-31938,-7327,-31942,-7311,-31945,-7294,-31949,-7278,-31953,-7262,-31957,-7245,-31960,-7229,-31964,-7212,-31968,-7196,-31971,-7180,-31975,-7163,-31979,-7147,-31982,-7131,-31986,-7114,-31990,-7098,-31993,-7082,-31997,-7065,-32000,-7049,-32004,-7033,-32008,-7016,-32011,-7000,-32015,-6983,-32018,-6967,-32022,-6951,-32025,-6934,-32029,-6918,-32033,-6902,-32036,-6885,-32040,-6869,-32043,-6852,-32047,-6836,-32050,-6820,-32054,-6803,-32057,-6787,-32060,-6771,-32064,-6754,-32067,-6738,-32071,-6721,-32074,-6705,-32078,-6689,-32081,-6672,-32085,-6656,-32088,-6639,-32091,-6623,-32095,-6607,-32098,-6590,-32101,-6574,-32105,-6557,-32108,-6541,-32111,-6524,-32115,-6508,-32118,-6492,-32121,-6475,-32125,-6459,-32128,-6442,-32131,-6426,-32135,-6409,-32138,-6393,-32141,-6377,-32144,-6360,-32148,-6344,-32151,-6327,-32154,-6311,-32157,-6294,-32161,-6278,-32164,-6262,-32167,-6245,-32170,-6229,-32173,-6212,-32177,-6196,-32180,-6179,-32183,-6163,-32186,-6146,-32189,-6130,-32192,-6113,-32195,-6097,-32198,-6081,-32202,-6064,-32205,-6048,-32208,-6031,-32211,-6015,-32214,-5998,-32217,-5982,-32220,-5965,-32223,-5949,-32226,-5932,-32229,-5916,-32232,-5899,-32235,-5883,-32238,-5866,-32241,-5850,-32244,-5833,-32247,-5817,-32250,-5800,-32253,-5784,-32256,-5767,-32259,-5751,-32262,-5734,-32265,-5718,-32268,-5701,-32271,-5685,-32274,-5668,-32276,-5652,-32279,-5635,-32282,-5619,-32285,-5602,-32288,-5586,-32291,-5569,-32294,-5553,-32296,-5536,-32299,-5520,-32302,-5503,-32305,-5487,-32308,-5470,-32311,-5454,-32313,-5437,-32316,-5421,-32319,-5404,-32322,-5388,-32324,-5371,-32327,-5355,-32330,-5338,-32333,-5322,-32335,-5305,-32338,-5288,-32341,-5272,-32343,-5255,-32346,-5239,-32349,-5222,-32351,-5206,-32354,-5189,-32357,-5173,-32359,-5156,-32362,-5140,-32365,-5123,-32367,-5107,-32370,-5090,-32372,-5073,-32375,-5057,-32378,-5040,-32380,-5024,-32383,-5007,-32385,-4991,-32388,-4974,-32390,-4958,-32393,-4941,-32395,-4924,-32398,-4908,-32400,-4891,-32403,-4875,-32405,-4858,-32408,-4842,-32410,-4825,-32413,-4808,-32415,-4792,-32418,-4775,-32420,-4759,-32423,-4742,-32425,-4726,-32427,-4709,-32430,-4692,-32432,-4676,-32435,-4659,-32437,-4643,-32439,-4626,-32442,-4609,-32444,-4593,-32446,-4576,-32449,-4560,-32451,-4543,-32453,-4526,-32456,-4510,-32458,-4493,-32460,-4477,-32463,-4460,-32465,-4444,-32467,-4427,-32469,-4410,-32472,-4394,-32474,-4377,-32476,-4360,-32478,-4344,-32481,-4327,-32483,-4311,-32485,-4294,-32487,-4277,-32489,-4261,-32492,-4244,-32494,-4228,-32496,-4211,-32498,-4194,-32500,-4178,-32502,-4161,-32504,-4145,-32507,-4128,-32509,-4111,-32511,-4095,-32513,-4078,-32515,-4061,-32517,-4045,-32519,-4028,-32521,-4012,-32523,-3995,-32525,-3978,-32527,-3962,-32529,-3945,-32531,-3928,-32533,-3912,-32535,-3895,-32537,-3878,-32539,-3862,-32541,-3845,-32543,-3829,-32545,-3812,-32547,-3795,-32549,-3779,-32551,-3762,-32553,-3745,-32555,-3729,-32557,-3712,-32559,-3695,-32560,-3679,-32562,-3662,-32564,-3645,-32566,-3629,-32568,-3612,-32570,-3595,-32572,-3579,-32573,-3562,-32575,-3546,-32577,-3529,-32579,-3512,-32581,-3496,-32582,-3479,-32584,-3462,-32586,-3446,-32588,-3429,-32589,-3412,-32591,-3396,-32593,-3379,-32595,-3362,-32596,-3346,-32598,-3329,-32600,-3312,-32601,-3296,-32603,-3279,-32605,-3262,-32606,-3246,-32608,-3229,-32610,-3212,-32611,-3196,-32613,-3179,-32615,-3162,-32616,-3146,-32618,-3129,-32619,-3112,-32621,-3095,-32623,-3079,-32624,-3062,-32626,-3045,-32627,-3029,-32629,-3012,-32630,-2995,-32632,-2979,-32633,-2962,-32635,-2945,-32636,-2929,-32638,-2912,-32639,-2895,-32641,-2879,-32642,-2862,-32644,-2845,-32645,-2829,-32647,-2812,-32648,-2795,-32650,-2778,-32651,-2762,-32652,-2745,-32654,-2728,-32655,-2712,-32657,-2695,-32658,-2678,-32659,-2662,-32661,-2645,-32662,-2628,-32663,-2611,-32665,-2595,-32666,-2578,-32667,-2561,-32669,-2545,-32670,-2528,-32671,-2511,-32672,-2495,-32674,-2478,-32675,-2461,-32676,-2444,-32677,-2428,-32679,-2411,-32680,-2394,-32681,-2378,-32682,-2361,-32684,-2344,-32685,-2327,-32686,-2311,-32687,-2294,-32688,-2277,-32689,-2261,-32691,-2244,-32692,-2227,-32693,-2210,-32694,-2194,-32695,-2177,-32696,-2160,-32697,-2144,-32698,-2127,-32700,-2110,-32701,-2093,-32702,-2077,-32703,-2060,-32704,-2043,-32705,-2027,-32706,-2010,-32707,-1993,-32708,-1976,-32709,-1960,-32710,-1943,-32711,-1926,-32712,-1909,-32713,-1893,-32714,-1876,-32715,-1859,-32716,-1843,-32717,-1826,-32718,-1809,-32718,-1792,-32719,-1776,-32720,-1759,-32721,-1742,-32722,-1725,-32723,-1709,-32724,-1692,-32725,-1675,-32726,-1659,-32726,-1642,-32727,-1625,-32728,-1608,-32729,-1592,-32730,-1575,-32730,-1558,-32731,-1541,-32732,-1525,-32733,-1508,-32734,-1491,-32734,-1474,-32735,-1458,-32736,-1441,-32737,-1424,-32737,-1407,-32738,-1391,-32739,-1374,-32739,-1357,-32740,-1340,-32741,-1324,-32741,-1307,-32742,-1290,-32743,-1274,-32743,-1257,-32744,-1240,-32745,-1223,-32745,-1207,-32746,-1190,-32747,-1173,-32747,-1156,-32748,-1140,-32748,-1123,-32749,-1106,-32749,-1089,-32750,-1073,-32751,-1056,-32751,-1039,-32752,-1022,-32752,-1006,-32753,-989,-32753,-972,-32754,-955,-32754,-939,-32755,-922,-32755,-905,-32755,-888,-32756,-872,-32756,-855,-32757,-838,-32757,-821,-32758,-805,-32758,-788,-32758,-771,-32759,-754,-32759,-738,-32760,-721,-32760,-704,-32760,-687,-32761,-671,-32761,-654,-32761,-637,-32762,-620,-32762,-604,-32762,-587,-32763,-570,-32763,-553,-32763,-537,-32763,-520,-32764,-503,-32764,-486,-32764,-470,-32764,-453,-32765,-436,-32765,-419,-32765,-403,-32765,-386,-32765,-369,-32766,-352,-32766,-336,-32766,-319,-32766,-302,-32766,-285,-32766,-269,-32767,-252,-32767,-235,-32767,-218,-32767,-202,-32767,-185,-32767,-168,-32767,-151,-32767,-135,-32767,-118,-32767,-101,-32767,-84,-32767,-68,-32767,-51,-32767,-34,-32767,-17,-32767,-1,-32767,16,-32767,33,-32767,50,-32767,67,-32767,83,-32767,100,-32767,117,-32767,134,-32767,150,-32767,167,-32767,184,-32767,201,-32767,217,-32767,234,-32767,251,-32766,268,-32766,284,-32766,301,-32766,318,-32766,335,-32766,351,-32765,368,-32765,385,-32765,402,-32765,418,-32765,435,-32764,452,-32764,469,-32764,485,-32764,502,-32763,519,-32763,536,-32763,552,-32763,569,-32762,586,-32762,603,-32762,619,-32761,636,-32761,653,-32761,670,-32760,686,-32760,703,-32760,720,-32759,737,-32759,753,-32758,770,-32758,787,-32758,804,-32757,820,-32757,837,-32756,854,-32756,871,-32755,887,-32755,904,-32755,921,-32754,938,-32754,954,-32753,971,-32753,988,-32752,1005,-32752,1021,-32751,1038,-32751,1055,-32750,1072,-32749,1088,-32749,1105,-32748,1122,-32748,1139,-32747,1155,-32747,1172,-32746,1189,-32745,1206,-32745,1222,-32744,1239,-32743,1256,-32743,1273,-32742,1289,-32741,1306,-32741,1323,-32740,1339,-32739,1356,-32739,1373,-32738,1390,-32737,1406,-32737,1423,-32736,1440,-32735,1457,-32734,1473,-32734,1490,-32733,1507,-32732,1524,-32731,1540,-32730,1557,-32730,1574,-32729,1591,-32728,1607,-32727,1624,-32726,1641,-32726,1658,-32725,1674,-32724,1691,-32723,1708,-32722,1724,-32721,1741,-32720,1758,-32719,1775,-32718,1791,-32718,1808,-32717,1825,-32716,1842,-32715,1858,-32714,1875,-32713,1892,-32712,1908,-32711,1925,-32710,1942,-32709,1959,-32708,1975,-32707,1992,-32706,2009,-32705,2026,-32704,2042,-32703,2059,-32702,2076,-32701,2092,-32700,2109,-32698,2126,-32697,2143,-32696,2159,-32695,2176,-32694,2193,-32693,2209,-32692,2226,-32691,2243,-32689,2260,-32688,2276,-32687,2293,-32686,2310,-32685,2326,-32684,2343,-32682,2360,-32681,2377,-32680,2393,-32679,2410,-32677,2427,-32676,2443,-32675,2460,-32674,2477,-32672,2494,-32671,2510,-32670,2527,-32669,2544,-32667,2560,-32666,2577,-32665,2594,-32663,2610,-32662,2627,-32661,2644,-32659,2661,-32658,2677,-32657,2694,-32655,2711,-32654,2727,-32652,2744,-32651,2761,-32650,2777,-32648,2794,-32647,2811,-32645,2828,-32644,2844,-32642,2861,-32641,2878,-32639,2894,-32638,2911,-32636,2928,-32635,2944,-32633,2961,-32632,2978,-32630,2994,-32629,3011,-32627,3028,-32626,3044,-32624,3061,-32623,3078,-32621,3094,-32619,3111,-32618,3128,-32616,3145,-32615,3161,-32613,3178,-32611,3195,-32610,3211,-32608,3228,-32606,3245,-32605,3261,-32603,3278,-32601,3295,-32600,3311,-32598,3328,-32596,3345,-32595,3361,-32593,3378,-32591,3395,-32589,3411,-32588,3428,-32586,3445,-32584,3461,-32582,3478,-32581,3495,-32579,3511,-32577,3528,-32575,3545,-32573,3561,-32572,3578,-32570,3594,-32568,3611,-32566,3628,-32564,3644,-32562,3661,-32560,3678,-32559,3694,-32557,3711,-32555,3728,-32553,3744,-32551,3761,-32549,3778,-32547,3794,-32545,3811,-32543,3828,-32541,3844,-32539,3861,-32537,3877,-32535,3894,-32533,3911,-32531,3927,-32529,3944,-32527,3961,-32525,3977,-32523,3994,-32521,4011,-32519,4027,-32517,4044,-32515,4060,-32513,4077,-32511,4094,-32509,4110,-32507,4127,-32504,4144,-32502,4160,-32500,4177,-32498,4193,-32496,4210,-32494,4227,-32492,4243,-32489,4260,-32487,4276,-32485,4293,-32483,4310,-32481,4326,-32478,4343,-32476,4359,-32474,4376,-32472,4393,-32469,4409,-32467,4426,-32465,4443,-32463,4459,-32460,4476,-32458,4492,-32456,4509,-32453,4525,-32451,4542,-32449,4559,-32446,4575,-32444,4592,-32442,4608,-32439,4625,-32437,4642,-32435,4658,-32432,4675,-32430,4691,-32427,4708,-32425,4725,-32423,4741,-32420,4758,-32418,4774,-32415,4791,-32413,4807,-32410,4824,-32408,4841,-32405,4857,-32403,4874,-32400,4890,-32398,4907,-32395,4923,-32393,4940,-32390,4957,-32388,4973,-32385,4990,-32383,5006,-32380,5023,-32378,5039,-32375,5056,-32372,5072,-32370,5089,-32367,5106,-32365,5122,-32362,5139,-32359,5155,-32357,5172,-32354,5188,-32351,5205,-32349,5221,-32346,5238,-32343,5254,-32341,5271,-32338,5287,-32335,5304,-32333,5321,-32330,5337,-32327,5354,-32324,5370,-32322,5387,-32319,5403,-32316,5420,-32313,5436,-32311,5453,-32308,5469,-32305,5486,-32302,5502,-32299,5519,-32296,5535,-32294,5552,-32291,5568,-32288,5585,-32285,5601,-32282,5618,-32279,5634,-32276,5651,-32274,5667,-32271,5684,-32268,5700,-32265,5717,-32262,5733,-32259,5750,-32256,5766,-32253,5783,-32250,5799,-32247,5816,-32244,5832,-32241,5849,-32238,5865,-32235,5882,-32232,5898,-32229,5915,-32226,5931,-32223,5948,-32220,5964,-32217,5981,-32214,5997,-32211,6014,-32208,6030,-32205,6047,-32202,6063,-32198,6080,-32195,6096,-32192,6112,-32189,6129,-32186,6145,-32183,6162,-32180,6178,-32177,6195,-32173,6211,-32170,6228,-32167,6244,-32164,6261,-32161,6277,-32157,6293,-32154,6310,-32151,6326,-32148,6343,-32144,6359,-32141,6376,-32138,6392,-32135,6408,-32131,6425,-32128,6441,-32125,6458,-32121,6474,-32118,6491,-32115,6507,-32111,6523,-32108,6540,-32105,6556,-32101,6573,-32098,6589,-32095,6606,-32091,6622,-32088,6638,-32085,6655,-32081,6671,-32078,6688,-32074,6704,-32071,6720,-32067,6737,-32064,6753,-32060,6770,-32057,6786,-32054,6802,-32050,6819,-32047,6835,-32043,6851,-32040,6868,-32036,6884,-32033,6901,-32029,6917,-32025,6933,-32022,6950,-32018,6966,-32015,6982,-32011,6999,-32008,7015,-32004,7032,-32000,7048,-31997,7064,-31993,7081,-31990,7097,-31986,7113,-31982,7130,-31979,7146,-31975,7162,-31971,7179,-31968,7195,-31964,7211,-31960,7228,-31957,7244,-31953,7261,-31949,7277,-31945,7293,-31942,7310,-31938,7326,-31934,7342,-31930,7358,-31927,7375,-31923,7391,-31919,7407,-31915,7424,-31912,7440,-31908,7456,-31904,7473,-31900,7489,-31896,7505,-31892,7522,-31889,7538,-31885,7554,-31881,7571,-31877,7587,-31873,7603,-31869,7619,-31865,7636,-31861,7652,-31857,7668,-31854,7685,-31850,7701,-31846,7717,-31842,7733,-31838,7750,-31834,7766,-31830,7782,-31826,7799,-31822,7815,-31818,7831,-31814,7847,-31810,7864,-31806,7880,-31802,7896,-31798,7912,-31794,7929,-31790,7945,-31786,7961,-31781,7977,-31777,7994,-31773,8010,-31769,8026,-31765,8042,-31761,8059,-31757,8075,-31753,8091,-31749,8107,-31744,8124,-31740,8140,-31736,8156,-31732,8172,-31728,8189,-31724,8205,-31719,8221,-31715,8237,-31711,8253,-31707,8270,-31702,8286,-31698,8302,-31694,8318,-31690,8334,-31685,8351,-31681,8367,-31677,8383,-31673,8399,-31668,8415,-31664,8432,-31660,8448,-31655,8464,-31651,8480,-31647,8496,-31642,8513,-31638,8529,-31634,8545,-31629,8561,-31625,8577,-31620,8593,-31616,8610,-31612,8626,-31607,8642,-31603,8658,-31598,8674,-31594,8690,-31589,8707,-31585,8723,-31581,8739,-31576,8755,-31572,8771,-31567,8787,-31563,8803,-31558,8820,-31554,8836,-31549,8852,-31545,8868,-31540,8884,-31535,8900,-31531,8916,-31526,8932,-31522,8949,-31517,8965,-31513,8981,-31508,8997,-31503,9013,-31499,9029,-31494,9045,-31490,9061,-31485,9077,-31480,9094,-31476,9110,-31471,9126,-31466,9142,-31462,9158,-31457,9174,-31452,9190,-31447,9206,-31443,9222,-31438,9238,-31433,9254,-31429,9270,-31424,9287,-31419,9303,-31414,9319,-31410,9335,-31405,9351,-31400,9367,-31395,9383,-31390,9399,-31386,9415,-31381,9431,-31376,9447,-31371,9463,-31366,9479,-31361,9495,-31357,9511,-31352,9527,-31347,9543,-31342,9559,-31337,9575,-31332,9591,-31327,9607,-31322,9623,-31317,9639,-31312,9655,-31308,9671,-31303,9687,-31298,9703,-31293,9719,-31288,9735,-31283,9751,-31278,9767,-31273,9783,-31268,9799,-31263,9815,-31258,9831,-31253,9847,-31248,9863,-31243,9879,-31237,9895,-31232,9911,-31227,9927,-31222,9943,-31217,9959,-31212,9975,-31207,9991,-31202,10007,-31197,10023,-31192,10039,-31186,10055,-31181,10071,-31176,10087,-31171,10103,-31166,10119,-31161,10135,-31155,10151,-31150,10166,-31145,10182,-31140,10198,-31135,10214,-31129,10230,-31124,10246,-31119,10262,-31114,10278,-31108,10294,-31103,10310,-31098,10326,-31093,10342,-31087,10357,-31082,10373,-31077,10389,-31071,10405,-31066,10421,-31061,10437,-31055,10453,-31050,10469,-31045,10484,-31039,10500,-31034,10516,-31029,10532,-31023,10548,-31018,10564,-31012,10580,-31007,10596,-31002,10611,-30996,10627,-30991,10643,-30985,10659,-30980,10675,-30974,10691,-30969,10706,-30963,10722,-30958,10738,-30952,10754,-30947,10770,-30941,10786,-30936,10801,-30930,10817,-30925,10833,-30919,10849,-30914,10865,-30908,10880,-30903,10896,-30897,10912,-30891,10928,-30886,10944,-30880,10959,-30875,10975,-30869,10991,-30863,11007,-30858,11023,-30852,11038,-30846,11054,-30841,11070,-30835,11086,-30829,11101,-30824,11117,-30818,11133,-30812,11149,-30807,11164,-30801,11180,-30795,11196,-30789,11212,-30784,11227,-30778,11243,-30772,11259,-30767,11275,-30761,11290,-30755,11306,-30749,11322,-30743,11338,-30738,11353,-30732,11369,-30726,11385,-30720,11400,-30714,11416,-30708,11432,-30703,11448,-30697,11463,-30691,11479,-30685,11495,-30679,11510,-30673,11526,-30667,11542,-30661,11557,-30656,11573,-30650,11589,-30644,11604,-30638,11620,-30632,11636,-30626,11651,-30620,11667,-30614,11683,-30608,11698,-30602,11714,-30596,11730,-30590,11745,-30584,11761,-30578,11777,-30572,11792,-30566,11808,-30560,11823,-30554,11839,-30548,11855,-30542,11870,-30536,11886,-30529,11902,-30523,11917,-30517,11933,-30511,11948,-30505,11964,-30499,11980,-30493,11995,-30487,12011,-30481,12026,-30474,12042,-30468,12057,-30462,12073,-30456,12089,-30450,12104,-30443,12120,-30437,12135,-30431,12151,-30425,12166,-30419,12182,-30412,12198,-30406,12213,-30400,12229,-30394,12244,-30387,12260,-30381,12275,-30375,12291,-30369,12306,-30362,12322,-30356,12337,-30350,12353,-30343,12368,-30337,12384,-30331,12399,-30324,12415,-30318,12430,-30312,12446,-30305,12461,-30299,12477,-30292,12492,-30286,12508,-30280,12523,-30273,12539,-30267,12554,-30260,12570,-30254,12585,-30248,12601,-30241,12616,-30235,12632,-30228,12647,-30222,12663,-30215,12678,-30209,12694,-30202,12709,-30196,12724,-30189,12740,-30183,12755,-30176,12771,-30170,12786,-30163,12802,-30157,12817,-30150,12832,-30143,12848,-30137,12863,-30130,12879,-30124,12894,-30117,12909,-30110,12925,-30104,12940,-30097,12956,-30091,12971,-30084,12986,-30077,13002,-30071,13017,-30064,13033,-30057,13048,-30051,13063,-30044,13079,-30037,13094,-30031,13109,-30024,13125,-30017,13140,-30010,13155,-30004,13171,-29997,13186,-29990,13201,-29984,13217,-29977,13232,-29970,13247,-29963,13263,-29956,13278,-29950,13293,-29943,13309,-29936,13324,-29929,13339,-29922,13355,-29916,13370,-29909,13385,-29902,13400,-29895,13416,-29888,13431,-29881,13446,-29874,13462,-29867,13477,-29861,13492,-29854,13507,-29847,13523,-29840,13538,-29833,13553,-29826,13568,-29819,13584,-29812,13599,-29805,13614,-29798,13629,-29791,13645,-29784,13660,-29777,13675,-29770,13690,-29763,13706,-29756,13721,-29749,13736,-29742,13751,-29735,13766,-29728,13782,-29721,13797,-29714,13812,-29707,13827,-29700,13842,-29693,13858,-29686,13873,-29679,13888,-29671,13903,-29664,13918,-29657,13933,-29650,13949,-29643,13964,-29636,13979,-29629,13994,-29622,14009,-29614,14024,-29607,14039,-29600,14055,-29593,14070,-29586,14085,-29578,14100,-29571,14115,-29564,14130,-29557,14145,-29549,14160,-29542,14176,-29535,14191,-29528,14206,-29520,14221,-29513,14236,-29506,14251,-29499,14266,-29491,14281,-29484,14296,-29477,14311,-29469,14326,-29462,14342,-29455,14357,-29447,14372,-29440,14387,-29433,14402,-29425,14417,-29418,14432,-29411,14447,-29403,14462,-29396,14477,-29388,14492,-29381,14507,-29373,14522,-29366,14537,-29359,14552,-29351,14567,-29344,14582,-29336,14597,-29329,14612,-29321,14627,-29314,14642,-29306,14657,-29299,14672,-29291,14687,-29284,14702,-29276,14717,-29269,14732,-29261,14747,-29254,14762,-29246,14777,-29239,14792,-29231,14807,-29223,14822,-29216,14837,-29208,14852,-29201,14866,-29193,14881,-29185,14896,-29178,14911,-29170,14926,-29163,14941,-29155,14956,-29147,14971,-29140,14986,-29132,15001,-29124,15016,-29117,15030,-29109,15045,-29101,15060,-29093,15075,-29086,15090,-29078,15105,-29070,15120,-29063,15135,-29055,15149,-29047,15164,-29039,15179,-29032,15194,-29024,15209,-29016,15224,-29008,15238,-29000,15253,-28993,15268,-28985,15283,-28977,15298,-28969,15313,-28961,15327,-28954,15342,-28946,15357,-28938,15372,-28930,15387,-28922,15401,-28914,15416,-28906,15431,-28898,15446,-28891,15461,-28883,15475,-28875,15490,-28867,15505,-28859,15520,-28851,15534,-28843,15549,-28835,15564,-28827,15579,-28819,15593,-28811,15608,-28803,15623,-28795,15638,-28787,15652,-28779,15667,-28771,15682,-28763,15696,-28755,15711,-28747,15726,-28739,15740,-28731,15755,-28723,15770,-28715,15785,-28707,15799,-28699,15814,-28691,15829,-28682,15843,-28674,15858,-28666,15873,-28658,15887,-28650,15902,-28642,15917,-28634,15931,-28626,15946,-28617,15960,-28609,15975,-28601,15990,-28593,16004,-28585,16019,-28576,16034,-28568,16048,-28560,16063,-28552,16077,-28544,16092,-28535,16107,-28527,16121,-28519,16136,-28511,16150,-28502,16165,-28494,16179,-28486,16194,-28478,16209,-28469,16223,-28461,16238,-28453,16252,-28444,16267,-28436,16281,-28428,16296,-28419,16310,-28411,16325,-28403,16339,-28394,16354,-28386,16368,-28378,16383,-28369,16398,-28361,16412,-28352,16427,-28344,16441,-28336,16455,-28327,16470,-28319,16484,-28310,16499,-28302,16513,-28293,16528,-28285,16542,-28276,16557,-28268,16571,-28260,16586,-28251,16600,-28243,16615,-28234,16629,-28226,16643,-28217,16658,-28209,16672,-28200,16687,-28191,16701,-28183,16716,-28174,16730,-28166,16744,-28157,16759,-28149,16773,-28140,16788,-28132,16802,-28123,16816,-28114,16831,-28106,16845,-28097,16859,-28088,16874,-28080,16888,-28071,16903,-28063,16917,-28054,16931,-28045,16946,-28037,16960,-28028,16974,-28019,16989,-28010,17003,-28002,17017,-27993,17032,-27984,17046,-27976,17060,-27967,17074,-27958,17089,-27949,17103,-27941,17117,-27932,17132,-27923,17146,-27914,17160,-27906,17174,-27897,17189,-27888,17203,-27879,17217,-27870,17232,-27862,17246,-27853,17260,-27844,17274,-27835,17288,-27826,17303,-27817,17317,-27809,17331,-27800,17345,-27791,17360,-27782,17374,-27773,17388,-27764,17402,-27755,17416,-27746,17431,-27737,17445,-27729,17459,-27720,17473,-27711,17487,-27702,17501,-27693,17516,-27684,17530,-27675,17544,-27666,17558,-27657,17572,-27648,17586,-27639,17600,-27630,17615,-27621,17629,-27612,17643,-27603,17657,-27594,17671,-27585,17685,-27576,17699,-27567,17713,-27558,17727,-27549,17742,-27539,17756,-27530,17770,-27521,17784,-27512,17798,-27503,17812,-27494,17826,-27485,17840,-27476,17854,-27467,17868,-27457,17882,-27448,17896,-27439,17910,-27430,17924,-27421,17938,-27412,17952,-27402,17966,-27393,17980,-27384,17994,-27375,18008,-27366,18022,-27356,18036,-27347,18050,-27338,18064,-27329,18078,-27320,18092,-27310,18106,-27301,18120,-27292,18134,-27282,18148,-27273,18162,-27264,18176,-27255,18190,-27245,18204,-27236,18218,-27227,18232,-27217,18246,-27208,18260,-27199,18273,-27189,18287,-27180,18301,-27171,18315,-27161,18329,-27152,18343,-27142,18357,-27133,18371,-27124,18385,-27114,18398,-27105,18412,-27095,18426,-27086,18440,-27077,18454,-27067,18468,-27058,18482,-27048,18495,-27039,18509,-27029,18523,-27020,18537,-27010,18551,-27001,18564,-26991,18578,-26982,18592,-26972,18606,-26963,18620,-26953,18633,-26944,18647,-26934,18661,-26925,18675,-26915,18689,-26906,18702,-26896,18716,-26886,18730,-26877,18744,-26867,18757,-26858,18771,-26848,18785,-26838,18798,-26829,18812,-26819,18826,-26810,18840,-26800,18853,-26790,18867,-26781,18881,-26771,18894,-26761,18908,-26752,18922,-26742,18935,-26732,18949,-26723,18963,-26713,18976,-26703,18990,-26693,19004,-26684,19017,-26674,19031,-26664,19045,-26655,19058,-26645,19072,-26635,19086,-26625,19099,-26616,19113,-26606,19126,-26596,19140,-26586,19154,-26576,19167,-26567,19181,-26557,19194,-26547,19208,-26537,19221,-26527,19235,-26517,19249,-26508,19262,-26498,19276,-26488,19289,-26478,19303,-26468,19316,-26458,19330,-26448,19343,-26438,19357,-26429,19370,-26419,19384,-26409,19397,-26399,19411,-26389,19424,-26379,19438,-26369,19451,-26359,19465,-26349,19478,-26339,19492,-26329,19505,-26319,19519,-26309,19532,-26299,19546,-26289,19559,-26279,19573,-26269,19586,-26259,19599,-26249,19613,-26239,19626,-26229,19640,-26219,19653,-26209,19667,-26199,19680,-26189,19693,-26179,19707,-26169,19720,-26159,19733,-26149,19747,-26138,19760,-26128,19774,-26118,19787,-26108,19800,-26098,19814,-26088,19827,-26078,19840,-26068,19854,-26057,19867,-26047,19880,-26037,19894,-26027,19907,-26017,19920,-26007,19933,-25996,19947,-25986,19960,-25976,19973,-25966,19987,-25955,20000,-25945,20013,-25935,20026,-25925,20040,-25914,20053,-25904,20066,-25894,20079,-25884,20093,-25873,20106,-25863,20119,-25853,20132,-25843,20146,-25832,20159,-25822,20172,-25812,20185,-25801,20198,-25791,20212,-25781,20225,-25770,20238,-25760,20251,-25750,20264,-25739,20277,-25729,20291,-25718,20304,-25708,20317,-25698,20330,-25687,20343,-25677,20356,-25666,20369,-25656,20383,-25646,20396,-25635,20409,-25625,20422,-25614,20435,-25604,20448,-25593,20461,-25583,20474,-25572,20487,-25562,20500,-25551,20513,-25541,20527,-25530,20540,-25520,20553,-25509,20566,-25499,20579,-25488,20592,-25478,20605,-25467,20618,-25457,20631,-25446,20644,-25436,20657,-25425,20670,-25415,20683,-25404,20696,-25393,20709,-25383,20722,-25372,20735,-25362,20748,-25351,20761,-25340,20774,-25330,20787,-25319,20800,-25308,20813,-25298,20825,-25287,20838,-25277,20851,-25266,20864,-25255,20877,-25244,20890,-25234,20903,-25223,20916,-25212,20929,-25202,20942,-25191,20955,-25180,20967,-25170,20980,-25159,20993,-25148,21006,-25137,21019,-25127,21032,-25116,21045,-25105,21057,-25094,21070,-25084,21083,-25073,21096,-25062,21109,-25051,21122,-25040,21134,-25030,21147,-25019,21160,-25008,21173,-24997,21186,-24986,21198,-24975,21211,-24965,21224,-24954,21237,-24943,21249,-24932,21262,-24921,21275,-24910,21288,-24899,21300,-24888,21313,-24878,21326,-24867,21339,-24856,21351,-24845,21364,-24834,21377,-24823,21389,-24812,21402,-24801,21415,-24790,21427,-24779,21440,-24768,21453,-24757,21465,-24746,21478,-24735,21491,-24724,21503,-24713,21516,-24702,21529,-24691,21541,-24680,21554,-24669,21566,-24658,21579,-24647,21592,-24636,21604,-24625,21617,-24614,21629,-24603,21642,-24592,21655,-24581,21667,-24570,21680,-24559,21692,-24547,21705,-24536,21717,-24525,21730,-24514,21743,-24503,21755,-24492,21768,-24481,21780,-24470,21793,-24458,21805,-24447,21818,-24436,21830,-24425,21843,-24414,21855,-24403,21868,-24391,21880,-24380,21893,-24369,21905,-24358,21917,-24347,21930,-24335,21942,-24324,21955,-24313,21967,-24302,21980,-24290,21992,-24279,22004,-24268,22017,-24257,22029,-24245,22042,-24234,22054,-24223,22066,-24212,22079,-24200,22091,-24189,22104,-24178,22116,-24166,22128,-24155,22141,-24144,22153,-24132,22165,-24121,22178,-24110,22190,-24098,22202,-24087,22215,-24076,22227,-24064,22239,-24053,22252,-24042,22264,-24030,22276,-24019,22288,-24007,22301,-23996,22313,-23985,22325,-23973,22338,-23962,22350,-23950,22362,-23939,22374,-23927,22387,-23916,22399,-23904,22411,-23893,22423,-23882,22435,-23870,22448,-23859,22460,-23847,22472,-23836,22484,-23824,22496,-23813,22509,-23801,22521,-23790,22533,-23778,22545,-23767,22557,-23755,22569,-23743,22582,-23732,22594,-23720,22606,-23709,22618,-23697,22630,-23686,22642,-23674,22654,-23662,22666,-23651,22678,-23639,22691,-23628,22703,-23616,22715,-23604,22727,-23593,22739,-23581,22751,-23570,22763,-23558,22775,-23546,22787,-23535,22799,-23523,22811,-23511,22823,-23500,22835,-23488,22847,-23476,22859,-23465,22871,-23453,22883,-23441,22895,-23429,22907,-23418,22919,-23406,22931,-23394,22943,-23383,22955,-23371,22967,-23359,22979,-23347,22991,-23336,23003,-23324,23015,-23312,23027,-23300,23039,-23288,23050,-23277,23062,-23265,23074,-23253,23086,-23241,23098,-23229,23110,-23218,23122,-23206,23134,-23194,23146,-23182,23157,-23170,23169,-23158,23181,-23147,23193,-23135,23205,-23123,23217,-23111,23228,-23099,23240,-23087,23252,-23075,23264,-23063,23276,-23051,23287,-23040,23299,-23028,23311,-23016,23323,-23004,23335,-22992,23346,-22980,23358,-22968,23370,-22956,23382,-22944,23393,-22932,23405,-22920,23417,-22908,23428,-22896,23440,-22884,23452,-22872,23464,-22860,23475,-22848,23487,-22836,23499,-22824,23510,-22812,23522,-22800,23534,-22788,23545,-22776,23557,-22764,23569,-22752,23580,-22740,23592,-22728,23603,-22716,23615,-22704,23627,-22692,23638,-22679,23650,-22667,23661,-22655,23673,-22643,23685,-22631,23696,-22619,23708,-22607,23719,-22595,23731,-22583,23742,-22570,23754,-22558,23766,-22546,23777,-22534,23789,-22522,23800,-22510,23812,-22497,23823,-22485,23835,-22473,23846,-22461,23858,-22449,23869,-22436,23881,-22424,23892,-22412,23903,-22400,23915,-22388,23926,-22375,23938,-22363,23949,-22351,23961,-22339,23972,-22326,23984,-22314,23995,-22302,24006,-22289,24018,-22277,24029,-22265,24041,-22253,24052,-22240,24063,-22228,24075,-22216,24086,-22203,24097,-22191,24109,-22179,24120,-22166,24131,-22154,24143,-22142,24154,-22129,24165,-22117,24177,-22105,24188,-22092,24199,-22080,24211,-22067,24222,-22055,24233,-22043,24244,-22030,24256,-22018,24267,-22005,24278,-21993,24289,-21981,24301,-21968,24312,-21956,24323,-21943,24334,-21931,24346,-21918,24357,-21906,24368,-21894,24379,-21881,24390,-21869,24402,-21856,24413,-21844,24424,-21831,24435,-21819,24446,-21806,24457,-21794,24469,-21781,24480,-21769,24491,-21756,24502,-21744,24513,-21731,24524,-21718,24535,-21706,24546,-21693,24558,-21681,24569,-21668,24580,-21656,24591,-21643,24602,-21630,24613,-21618,24624,-21605,24635,-21593,24646,-21580,24657,-21567,24668,-21555,24679,-21542,24690,-21530,24701,-21517,24712,-21504,24723,-21492,24734,-21479,24745,-21466,24756,-21454,24767,-21441,24778,-21428,24789,-21416,24800,-21403,24811,-21390,24822,-21378,24833,-21365,24844,-21352,24855,-21340,24866,-21327,24877,-21314,24887,-21301,24898,-21289,24909,-21276,24920,-21263,24931,-21250,24942,-21238,24953,-21225,24964,-21212,24974,-21199,24985,-21187,24996,-21174,25007,-21161,25018,-21148,25029,-21135,25039,-21123,25050,-21110,25061,-21097,25072,-21084,25083,-21071,25093,-21058,25104,-21046,25115,-21033,25126,-21020,25136,-21007,25147,-20994,25158,-20981,25169,-20968,25179,-20956,25190,-20943,25201,-20930,25211,-20917,25222,-20904,25233,-20891,25243,-20878,25254,-20865,25265,-20852,25276,-20839,25286,-20826,25297,-20814,25307,-20801,25318,-20788,25329,-20775,25339,-20762,25350,-20749,25361,-20736,25371,-20723,25382,-20710,25392,-20697,25403,-20684,25414,-20671,25424,-20658,25435,-20645,25445,-20632,25456,-20619,25466,-20606,25477,-20593,25487,-20580,25498,-20567,25508,-20554,25519,-20541,25529,-20528,25540,-20514,25550,-20501,25561,-20488,25571,-20475,25582,-20462,25592,-20449,25603,-20436,25613,-20423,25624,-20410,25634,-20397,25645,-20384,25655,-20370,25665,-20357,25676,-20344,25686,-20331,25697,-20318,25707,-20305,25717,-20292,25728,-20278,25738,-20265,25749,-20252,25759,-20239,25769,-20226,25780,-20213,25790,-20199,25800,-20186,25811,-20173,25821,-20160,25831,-20147,25842,-20133,25852,-20120,25862,-20107,25872,-20094,25883,-20080,25893,-20067,25903,-20054,25913,-20041,25924,-20027,25934,-20014,25944,-20001,25954,-19988,25965,-19974,25975,-19961,25985,-19948,25995,-19934,26006,-19921,26016,-19908,26026,-19895,26036,-19881,26046,-19868,26056,-19855,26067,-19841,26077,-19828,26087,-19815,26097,-19801,26107,-19788,26117,-19775,26127,-19761,26137,-19748,26148,-19734,26158,-19721,26168,-19708,26178,-19694,26188,-19681,26198,-19668,26208,-19654,26218,-19641,26228,-19627,26238,-19614,26248,-19600,26258,-19587,26268,-19574,26278,-19560,26288,-19547,26298,-19533,26308,-19520,26318,-19506,26328,-19493,26338,-19479,26348,-19466,26358,-19452,26368,-19439,26378,-19425,26388,-19412,26398,-19398,26408,-19385,26418,-19371,26428,-19358,26437,-19344,26447,-19331,26457,-19317,26467,-19304,26477,-19290,26487,-19277,26497,-19263,26507,-19250,26516,-19236,26526,-19222,26536,-19209,26546,-19195,26556,-19182,26566,-19168,26575,-19155,26585,-19141,26595,-19127,26605,-19114,26615,-19100,26624,-19087,26634,-19073,26644,-19059,26654,-19046,26663,-19032,26673,-19018,26683,-19005,26692,-18991,26702,-18977,26712,-18964,26722,-18950,26731,-18936,26741,-18923,26751,-18909,26760,-18895,26770,-18882,26780,-18868,26789,-18854,26799,-18841,26809,-18827,26818,-18813,26828,-18799,26837,-18786,26847,-18772,26857,-18758,26866,-18745,26876,-18731,26885,-18717,26895,-18703,26905,-18690,26914,-18676,26924,-18662,26933,-18648,26943,-18634,26952,-18621,26962,-18607,26971,-18593,26981,-18579,26990,-18565,27000,-18552,27009,-18538,27019,-18524,27028,-18510,27038,-18496,27047,-18483,27057,-18469,27066,-18455,27076,-18441,27085,-18427,27094,-18413,27104,-18399,27113,-18386,27123,-18372,27132,-18358,27141,-18344,27151,-18330,27160,-18316,27170,-18302,27179,-18288,27188,-18274,27198,-18261,27207,-18247,27216,-18233,27226,-18219,27235,-18205,27244,-18191,27254,-18177,27263,-18163,27272,-18149,27281,-18135,27291,-18121,27300,-18107,27309,-18093,27319,-18079,27328,-18065,27337,-18051,27346,-18037,27355,-18023,27365,-18009,27374,-17995,27383,-17981,27392,-17967,27401,-17953,27411,-17939,27420,-17925,27429,-17911,27438,-17897,27447,-17883,27456,-17869,27466,-17855,27475,-17841,27484,-17827,27493,-17813,27502,-17799,27511,-17785,27520,-17771,27529,-17757,27538,-17743,27548,-17728,27557,-17714,27566,-17700,27575,-17686,27584,-17672,27593,-17658,27602,-17644,27611,-17630,27620,-17616,27629,-17601,27638,-17587,27647,-17573,27656,-17559,27665,-17545,27674,-17531,27683,-17517,27692,-17502,27701,-17488,27710,-17474,27719,-17460,27728,-17446,27736,-17432,27745,-17417,27754,-17403,27763,-17389,27772,-17375,27781,-17361,27790,-17346,27799,-17332,27808,-17318,27816,-17304,27825,-17289,27834,-17275,27843,-17261,27852,-17247,27861,-17233,27869,-17218,27878,-17204,27887,-17190,27896,-17175,27905,-17161,27913,-17147,27922,-17133,27931,-17118,27940,-17104,27948,-17090,27957,-17075,27966,-17061,27975,-17047,27983,-17033,27992,-17018,28001,-17004,28009,-16990,28018,-16975,28027,-16961,28036,-16947,28044,-16932,28053,-16918,28062,-16904,28070,-16889,28079,-16875,28087,-16860,28096,-16846,28105,-16832,28113,-16817,28122,-16803,28131,-16789,28139,-16774,28148,-16760,28156,-16745,28165,-16731,28173,-16717,28182,-16702,28190,-16688,28199,-16673,28208,-16659,28216,-16644,28225,-16630,28233,-16616,28242,-16601,28250,-16587,28259,-16572,28267,-16558,28275,-16543,28284,-16529,28292,-16514,28301,-16500,28309,-16485,28318,-16471,28326,-16456,28335,-16442,28343,-16428,28351,-16413,28360,-16399,28368}; diff --git a/openair1/PHY/TOOLS/twiddle6144.h b/openair1/PHY/TOOLS/twiddle6144.h deleted file mode 100644 index 6fc18ebfbe0cbe52c5da48026e59f209e696e87d..0000000000000000000000000000000000000000 --- a/openair1/PHY/TOOLS/twiddle6144.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:2047)/6144)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*(0:2:4094)/6144)); -twa2 = zeros(1,4096); -twb2 = zeros(1,4096); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); - - - */ -int16_t twa6144[4096] __attribute__((aligned(32))) = {32767,0,32766,-34,32766,-68,32766,-101,32766,-135,32766,-168,32766,-202,32766,-235,32765,-269,32765,-302,32765,-336,32764,-369,32764,-403,32764,-436,32763,-470,32763,-503,32762,-537,32762,-570,32761,-604,32760,-637,32760,-671,32759,-704,32758,-738,32757,-771,32757,-805,32756,-838,32755,-872,32754,-905,32753,-939,32752,-972,32751,-1006,32750,-1039,32749,-1073,32748,-1106,32747,-1140,32746,-1173,32744,-1207,32743,-1240,32742,-1274,32740,-1307,32739,-1340,32738,-1374,32736,-1407,32735,-1441,32733,-1474,32732,-1508,32730,-1541,32729,-1575,32727,-1608,32725,-1642,32724,-1675,32722,-1709,32720,-1742,32718,-1776,32717,-1809,32715,-1843,32713,-1876,32711,-1909,32709,-1943,32707,-1976,32705,-2010,32703,-2043,32701,-2077,32699,-2110,32696,-2144,32694,-2177,32692,-2210,32690,-2244,32687,-2277,32685,-2311,32683,-2344,32680,-2378,32678,-2411,32675,-2444,32673,-2478,32670,-2511,32668,-2545,32665,-2578,32662,-2611,32660,-2645,32657,-2678,32654,-2712,32651,-2745,32649,-2778,32646,-2812,32643,-2845,32640,-2879,32637,-2912,32634,-2945,32631,-2979,32628,-3012,32625,-3045,32622,-3079,32618,-3112,32615,-3146,32612,-3179,32609,-3212,32605,-3246,32602,-3279,32599,-3312,32595,-3346,32592,-3379,32588,-3412,32585,-3446,32581,-3479,32578,-3512,32574,-3546,32571,-3579,32567,-3612,32563,-3645,32559,-3679,32556,-3712,32552,-3745,32548,-3779,32544,-3812,32540,-3845,32536,-3878,32532,-3912,32528,-3945,32524,-3978,32520,-4012,32516,-4045,32512,-4078,32508,-4111,32503,-4145,32499,-4178,32495,-4211,32491,-4244,32486,-4277,32482,-4311,32477,-4344,32473,-4377,32468,-4410,32464,-4444,32459,-4477,32455,-4510,32450,-4543,32445,-4576,32441,-4609,32436,-4643,32431,-4676,32426,-4709,32422,-4742,32417,-4775,32412,-4808,32407,-4842,32402,-4875,32397,-4908,32392,-4941,32387,-4974,32382,-5007,32377,-5040,32371,-5073,32366,-5107,32361,-5140,32356,-5173,32350,-5206,32345,-5239,32340,-5272,32334,-5305,32329,-5338,32323,-5371,32318,-5404,32312,-5437,32307,-5470,32301,-5503,32295,-5536,32290,-5569,32284,-5602,32278,-5635,32273,-5668,32267,-5701,32261,-5734,32255,-5767,32249,-5800,32243,-5833,32237,-5866,32231,-5899,32225,-5932,32219,-5965,32213,-5998,32207,-6031,32201,-6064,32194,-6097,32188,-6130,32182,-6163,32176,-6196,32169,-6229,32163,-6262,32156,-6294,32150,-6327,32143,-6360,32137,-6393,32130,-6426,32124,-6459,32117,-6492,32110,-6524,32104,-6557,32097,-6590,32090,-6623,32084,-6656,32077,-6689,32070,-6721,32063,-6754,32056,-6787,32049,-6820,32042,-6852,32035,-6885,32028,-6918,32021,-6951,32014,-6983,32007,-7016,31999,-7049,31992,-7082,31985,-7114,31978,-7147,31970,-7180,31963,-7212,31956,-7245,31948,-7278,31941,-7311,31933,-7343,31926,-7376,31918,-7408,31911,-7441,31903,-7474,31895,-7506,31888,-7539,31880,-7572,31872,-7604,31864,-7637,31856,-7669,31849,-7702,31841,-7734,31833,-7767,31825,-7800,31817,-7832,31809,-7865,31801,-7897,31793,-7930,31785,-7962,31776,-7995,31768,-8027,31760,-8060,31752,-8092,31743,-8125,31735,-8157,31727,-8190,31718,-8222,31710,-8254,31701,-8287,31693,-8319,31684,-8352,31676,-8384,31667,-8416,31659,-8449,31650,-8481,31641,-8514,31633,-8546,31624,-8578,31615,-8611,31606,-8643,31597,-8675,31588,-8708,31580,-8740,31571,-8772,31562,-8804,31553,-8837,31544,-8869,31534,-8901,31525,-8933,31516,-8966,31507,-8998,31498,-9030,31489,-9062,31479,-9095,31470,-9127,31461,-9159,31451,-9191,31442,-9223,31432,-9255,31423,-9288,31413,-9320,31404,-9352,31394,-9384,31385,-9416,31375,-9448,31365,-9480,31356,-9512,31346,-9544,31336,-9576,31326,-9608,31316,-9640,31307,-9672,31297,-9704,31287,-9736,31277,-9768,31267,-9800,31257,-9832,31247,-9864,31236,-9896,31226,-9928,31216,-9960,31206,-9992,31196,-10024,31185,-10056,31175,-10088,31165,-10120,31154,-10152,31144,-10183,31134,-10215,31123,-10247,31113,-10279,31102,-10311,31092,-10343,31081,-10374,31070,-10406,31060,-10438,31049,-10470,31038,-10501,31028,-10533,31017,-10565,31006,-10597,30995,-10628,30984,-10660,30973,-10692,30962,-10723,30951,-10755,30940,-10787,30929,-10818,30918,-10850,30907,-10881,30896,-10913,30885,-10945,30874,-10976,30862,-11008,30851,-11039,30840,-11071,30828,-11102,30817,-11134,30806,-11165,30794,-11197,30783,-11228,30771,-11260,30760,-11291,30748,-11323,30737,-11354,30725,-11386,30713,-11417,30702,-11449,30690,-11480,30678,-11511,30666,-11543,30655,-11574,30643,-11605,30631,-11637,30619,-11668,30607,-11699,30595,-11731,30583,-11762,30571,-11793,30559,-11824,30547,-11856,30535,-11887,30522,-11918,30510,-11949,30498,-11981,30486,-12012,30473,-12043,30461,-12074,30449,-12105,30436,-12136,30424,-12167,30411,-12199,30399,-12230,30386,-12261,30374,-12292,30361,-12323,30349,-12354,30336,-12385,30323,-12416,30311,-12447,30298,-12478,30285,-12509,30272,-12540,30259,-12571,30247,-12602,30234,-12633,30221,-12664,30208,-12695,30195,-12725,30182,-12756,30169,-12787,30156,-12818,30142,-12849,30129,-12880,30116,-12910,30103,-12941,30090,-12972,30076,-13003,30063,-13034,30050,-13064,30036,-13095,30023,-13126,30009,-13156,29996,-13187,29983,-13218,29969,-13248,29955,-13279,29942,-13310,29928,-13340,29915,-13371,29901,-13401,29887,-13432,29873,-13463,29860,-13493,29846,-13524,29832,-13554,29818,-13585,29804,-13615,29790,-13646,29776,-13676,29762,-13707,29748,-13737,29734,-13767,29720,-13798,29706,-13828,29692,-13859,29678,-13889,29663,-13919,29649,-13950,29635,-13980,29621,-14010,29606,-14040,29592,-14071,29577,-14101,29563,-14131,29548,-14161,29534,-14192,29519,-14222,29505,-14252,29490,-14282,29476,-14312,29461,-14343,29446,-14373,29432,-14403,29417,-14433,29402,-14463,29387,-14493,29372,-14523,29358,-14553,29343,-14583,29328,-14613,29313,-14643,29298,-14673,29283,-14703,29268,-14733,29253,-14763,29238,-14793,29222,-14823,29207,-14853,29192,-14882,29177,-14912,29162,-14942,29146,-14972,29131,-15002,29116,-15031,29100,-15061,29085,-15091,29069,-15121,29054,-15150,29038,-15180,29023,-15210,29007,-15239,28992,-15269,28976,-15299,28960,-15328,28945,-15358,28929,-15388,28913,-15417,28897,-15447,28882,-15476,28866,-15506,28850,-15535,28834,-15565,28818,-15594,28802,-15624,28786,-15653,28770,-15683,28754,-15712,28738,-15741,28722,-15771,28706,-15800,28690,-15830,28673,-15859,28657,-15888,28641,-15918,28625,-15947,28608,-15976,28592,-16005,28575,-16035,28559,-16064,28543,-16093,28526,-16122,28510,-16151,28493,-16180,28477,-16210,28460,-16239,28443,-16268,28427,-16297,28410,-16326,28393,-16355,28377,-16384,28360,-16413,28343,-16442,28326,-16471,28309,-16500,28292,-16529,28275,-16558,28259,-16587,28242,-16616,28225,-16644,28208,-16673,28190,-16702,28173,-16731,28156,-16760,28139,-16789,28122,-16817,28105,-16846,28087,-16875,28070,-16904,28053,-16932,28036,-16961,28018,-16990,28001,-17018,27983,-17047,27966,-17075,27948,-17104,27931,-17133,27913,-17161,27896,-17190,27878,-17218,27861,-17247,27843,-17275,27825,-17304,27808,-17332,27790,-17361,27772,-17389,27754,-17417,27736,-17446,27719,-17474,27701,-17502,27683,-17531,27665,-17559,27647,-17587,27629,-17616,27611,-17644,27593,-17672,27575,-17700,27557,-17728,27538,-17757,27520,-17785,27502,-17813,27484,-17841,27466,-17869,27447,-17897,27429,-17925,27411,-17953,27392,-17981,27374,-18009,27355,-18037,27337,-18065,27319,-18093,27300,-18121,27281,-18149,27263,-18177,27244,-18205,27226,-18233,27207,-18261,27188,-18288,27170,-18316,27151,-18344,27132,-18372,27113,-18399,27094,-18427,27076,-18455,27057,-18483,27038,-18510,27019,-18538,27000,-18565,26981,-18593,26962,-18621,26943,-18648,26924,-18676,26905,-18703,26885,-18731,26866,-18758,26847,-18786,26828,-18813,26809,-18841,26789,-18868,26770,-18895,26751,-18923,26731,-18950,26712,-18977,26692,-19005,26673,-19032,26654,-19059,26634,-19087,26615,-19114,26595,-19141,26575,-19168,26556,-19195,26536,-19222,26516,-19250,26497,-19277,26477,-19304,26457,-19331,26437,-19358,26418,-19385,26398,-19412,26378,-19439,26358,-19466,26338,-19493,26318,-19520,26298,-19547,26278,-19574,26258,-19600,26238,-19627,26218,-19654,26198,-19681,26178,-19708,26158,-19734,26137,-19761,26117,-19788,26097,-19815,26077,-19841,26056,-19868,26036,-19895,26016,-19921,25995,-19948,25975,-19974,25954,-20001,25934,-20027,25913,-20054,25893,-20080,25872,-20107,25852,-20133,25831,-20160,25811,-20186,25790,-20213,25769,-20239,25749,-20265,25728,-20292,25707,-20318,25686,-20344,25665,-20370,25645,-20397,25624,-20423,25603,-20449,25582,-20475,25561,-20501,25540,-20528,25519,-20554,25498,-20580,25477,-20606,25456,-20632,25435,-20658,25414,-20684,25392,-20710,25371,-20736,25350,-20762,25329,-20788,25307,-20814,25286,-20839,25265,-20865,25243,-20891,25222,-20917,25201,-20943,25179,-20968,25158,-20994,25136,-21020,25115,-21046,25093,-21071,25072,-21097,25050,-21123,25029,-21148,25007,-21174,24985,-21199,24964,-21225,24942,-21250,24920,-21276,24898,-21301,24877,-21327,24855,-21352,24833,-21378,24811,-21403,24789,-21428,24767,-21454,24745,-21479,24723,-21504,24701,-21530,24679,-21555,24657,-21580,24635,-21605,24613,-21630,24591,-21656,24569,-21681,24546,-21706,24524,-21731,24502,-21756,24480,-21781,24457,-21806,24435,-21831,24413,-21856,24390,-21881,24368,-21906,24346,-21931,24323,-21956,24301,-21981,24278,-22005,24256,-22030,24233,-22055,24211,-22080,24188,-22105,24165,-22129,24143,-22154,24120,-22179,24097,-22203,24075,-22228,24052,-22253,24029,-22277,24006,-22302,23984,-22326,23961,-22351,23938,-22375,23915,-22400,23892,-22424,23869,-22449,23846,-22473,23823,-22497,23800,-22522,23777,-22546,23754,-22570,23731,-22595,23708,-22619,23685,-22643,23661,-22667,23638,-22692,23615,-22716,23592,-22740,23569,-22764,23545,-22788,23522,-22812,23499,-22836,23475,-22860,23452,-22884,23428,-22908,23405,-22932,23382,-22956,23358,-22980,23335,-23004,23311,-23028,23287,-23051,23264,-23075,23240,-23099,23217,-23123,23193,-23147,23169,-23170,23146,-23194,23122,-23218,23098,-23241,23074,-23265,23050,-23288,23027,-23312,23003,-23336,22979,-23359,22955,-23383,22931,-23406,22907,-23429,22883,-23453,22859,-23476,22835,-23500,22811,-23523,22787,-23546,22763,-23570,22739,-23593,22715,-23616,22691,-23639,22666,-23662,22642,-23686,22618,-23709,22594,-23732,22569,-23755,22545,-23778,22521,-23801,22496,-23824,22472,-23847,22448,-23870,22423,-23893,22399,-23916,22374,-23939,22350,-23962,22325,-23985,22301,-24007,22276,-24030,22252,-24053,22227,-24076,22202,-24098,22178,-24121,22153,-24144,22128,-24166,22104,-24189,22079,-24212,22054,-24234,22029,-24257,22004,-24279,21980,-24302,21955,-24324,21930,-24347,21905,-24369,21880,-24391,21855,-24414,21830,-24436,21805,-24458,21780,-24481,21755,-24503,21730,-24525,21705,-24547,21680,-24570,21655,-24592,21629,-24614,21604,-24636,21579,-24658,21554,-24680,21529,-24702,21503,-24724,21478,-24746,21453,-24768,21427,-24790,21402,-24812,21377,-24834,21351,-24856,21326,-24878,21300,-24899,21275,-24921,21249,-24943,21224,-24965,21198,-24986,21173,-25008,21147,-25030,21122,-25051,21096,-25073,21070,-25094,21045,-25116,21019,-25137,20993,-25159,20967,-25180,20942,-25202,20916,-25223,20890,-25244,20864,-25266,20838,-25287,20813,-25308,20787,-25330,20761,-25351,20735,-25372,20709,-25393,20683,-25415,20657,-25436,20631,-25457,20605,-25478,20579,-25499,20553,-25520,20527,-25541,20500,-25562,20474,-25583,20448,-25604,20422,-25625,20396,-25646,20369,-25666,20343,-25687,20317,-25708,20291,-25729,20264,-25750,20238,-25770,20212,-25791,20185,-25812,20159,-25832,20132,-25853,20106,-25873,20079,-25894,20053,-25914,20026,-25935,20000,-25955,19973,-25976,19947,-25996,19920,-26017,19894,-26037,19867,-26057,19840,-26078,19814,-26098,19787,-26118,19760,-26138,19733,-26159,19707,-26179,19680,-26199,19653,-26219,19626,-26239,19599,-26259,19573,-26279,19546,-26299,19519,-26319,19492,-26339,19465,-26359,19438,-26379,19411,-26399,19384,-26419,19357,-26438,19330,-26458,19303,-26478,19276,-26498,19249,-26517,19221,-26537,19194,-26557,19167,-26576,19140,-26596,19113,-26616,19086,-26635,19058,-26655,19031,-26674,19004,-26693,18976,-26713,18949,-26732,18922,-26752,18894,-26771,18867,-26790,18840,-26810,18812,-26829,18785,-26848,18757,-26867,18730,-26886,18702,-26906,18675,-26925,18647,-26944,18620,-26963,18592,-26982,18564,-27001,18537,-27020,18509,-27039,18482,-27058,18454,-27077,18426,-27095,18398,-27114,18371,-27133,18343,-27152,18315,-27171,18287,-27189,18260,-27208,18232,-27227,18204,-27245,18176,-27264,18148,-27282,18120,-27301,18092,-27320,18064,-27338,18036,-27356,18008,-27375,17980,-27393,17952,-27412,17924,-27430,17896,-27448,17868,-27467,17840,-27485,17812,-27503,17784,-27521,17756,-27539,17727,-27558,17699,-27576,17671,-27594,17643,-27612,17615,-27630,17586,-27648,17558,-27666,17530,-27684,17501,-27702,17473,-27720,17445,-27737,17416,-27755,17388,-27773,17360,-27791,17331,-27809,17303,-27826,17274,-27844,17246,-27862,17217,-27879,17189,-27897,17160,-27914,17132,-27932,17103,-27949,17074,-27967,17046,-27984,17017,-28002,16989,-28019,16960,-28037,16931,-28054,16903,-28071,16874,-28088,16845,-28106,16816,-28123,16788,-28140,16759,-28157,16730,-28174,16701,-28191,16672,-28209,16643,-28226,16615,-28243,16586,-28260,16557,-28276,16528,-28293,16499,-28310,16470,-28327,16441,-28344,16412,-28361,16383,-28378,16354,-28394,16325,-28411,16296,-28428,16267,-28444,16238,-28461,16209,-28478,16179,-28494,16150,-28511,16121,-28527,16092,-28544,16063,-28560,16034,-28576,16004,-28593,15975,-28609,15946,-28626,15917,-28642,15887,-28658,15858,-28674,15829,-28691,15799,-28707,15770,-28723,15740,-28739,15711,-28755,15682,-28771,15652,-28787,15623,-28803,15593,-28819,15564,-28835,15534,-28851,15505,-28867,15475,-28883,15446,-28898,15416,-28914,15387,-28930,15357,-28946,15327,-28961,15298,-28977,15268,-28993,15238,-29008,15209,-29024,15179,-29039,15149,-29055,15120,-29070,15090,-29086,15060,-29101,15030,-29117,15001,-29132,14971,-29147,14941,-29163,14911,-29178,14881,-29193,14852,-29208,14822,-29223,14792,-29239,14762,-29254,14732,-29269,14702,-29284,14672,-29299,14642,-29314,14612,-29329,14582,-29344,14552,-29359,14522,-29373,14492,-29388,14462,-29403,14432,-29418,14402,-29433,14372,-29447,14342,-29462,14311,-29477,14281,-29491,14251,-29506,14221,-29520,14191,-29535,14160,-29549,14130,-29564,14100,-29578,14070,-29593,14039,-29607,14009,-29622,13979,-29636,13949,-29650,13918,-29664,13888,-29679,13858,-29693,13827,-29707,13797,-29721,13766,-29735,13736,-29749,13706,-29763,13675,-29777,13645,-29791,13614,-29805,13584,-29819,13553,-29833,13523,-29847,13492,-29861,13462,-29874,13431,-29888,13400,-29902,13370,-29916,13339,-29929,13309,-29943,13278,-29956,13247,-29970,13217,-29984,13186,-29997,13155,-30010,13125,-30024,13094,-30037,13063,-30051,13033,-30064,13002,-30077,12971,-30091,12940,-30104,12909,-30117,12879,-30130,12848,-30143,12817,-30157,12786,-30170,12755,-30183,12724,-30196,12694,-30209,12663,-30222,12632,-30235,12601,-30248,12570,-30260,12539,-30273,12508,-30286,12477,-30299,12446,-30312,12415,-30324,12384,-30337,12353,-30350,12322,-30362,12291,-30375,12260,-30387,12229,-30400,12198,-30412,12166,-30425,12135,-30437,12104,-30450,12073,-30462,12042,-30474,12011,-30487,11980,-30499,11948,-30511,11917,-30523,11886,-30536,11855,-30548,11823,-30560,11792,-30572,11761,-30584,11730,-30596,11698,-30608,11667,-30620,11636,-30632,11604,-30644,11573,-30656,11542,-30667,11510,-30679,11479,-30691,11448,-30703,11416,-30714,11385,-30726,11353,-30738,11322,-30749,11290,-30761,11259,-30772,11227,-30784,11196,-30795,11164,-30807,11133,-30818,11101,-30829,11070,-30841,11038,-30852,11007,-30863,10975,-30875,10944,-30886,10912,-30897,10880,-30908,10849,-30919,10817,-30930,10786,-30941,10754,-30952,10722,-30963,10691,-30974,10659,-30985,10627,-30996,10596,-31007,10564,-31018,10532,-31029,10500,-31039,10469,-31050,10437,-31061,10405,-31071,10373,-31082,10342,-31093,10310,-31103,10278,-31114,10246,-31124,10214,-31135,10182,-31145,10151,-31155,10119,-31166,10087,-31176,10055,-31186,10023,-31197,9991,-31207,9959,-31217,9927,-31227,9895,-31237,9863,-31248,9831,-31258,9799,-31268,9767,-31278,9735,-31288,9703,-31298,9671,-31308,9639,-31317,9607,-31327,9575,-31337,9543,-31347,9511,-31357,9479,-31366,9447,-31376,9415,-31386,9383,-31395,9351,-31405,9319,-31414,9287,-31424,9254,-31433,9222,-31443,9190,-31452,9158,-31462,9126,-31471,9094,-31480,9061,-31490,9029,-31499,8997,-31508,8965,-31517,8932,-31526,8900,-31535,8868,-31545,8836,-31554,8803,-31563,8771,-31572,8739,-31581,8707,-31589,8674,-31598,8642,-31607,8610,-31616,8577,-31625,8545,-31634,8513,-31642,8480,-31651,8448,-31660,8415,-31668,8383,-31677,8351,-31685,8318,-31694,8286,-31702,8253,-31711,8221,-31719,8189,-31728,8156,-31736,8124,-31744,8091,-31753,8059,-31761,8026,-31769,7994,-31777,7961,-31786,7929,-31794,7896,-31802,7864,-31810,7831,-31818,7799,-31826,7766,-31834,7733,-31842,7701,-31850,7668,-31857,7636,-31865,7603,-31873,7571,-31881,7538,-31889,7505,-31896,7473,-31904,7440,-31912,7407,-31919,7375,-31927,7342,-31934,7310,-31942,7277,-31949,7244,-31957,7211,-31964,7179,-31971,7146,-31979,7113,-31986,7081,-31993,7048,-32000,7015,-32008,6982,-32015,6950,-32022,6917,-32029,6884,-32036,6851,-32043,6819,-32050,6786,-32057,6753,-32064,6720,-32071,6688,-32078,6655,-32085,6622,-32091,6589,-32098,6556,-32105,6523,-32111,6491,-32118,6458,-32125,6425,-32131,6392,-32138,6359,-32144,6326,-32151,6293,-32157,6261,-32164,6228,-32170,6195,-32177,6162,-32183,6129,-32189,6096,-32195,6063,-32202,6030,-32208,5997,-32214,5964,-32220,5931,-32226,5898,-32232,5865,-32238,5832,-32244,5799,-32250,5766,-32256,5733,-32262,5700,-32268,5667,-32274,5634,-32279,5601,-32285,5568,-32291,5535,-32296,5502,-32302,5469,-32308,5436,-32313,5403,-32319,5370,-32324,5337,-32330,5304,-32335,5271,-32341,5238,-32346,5205,-32351,5172,-32357,5139,-32362,5106,-32367,5072,-32372,5039,-32378,5006,-32383,4973,-32388,4940,-32393,4907,-32398,4874,-32403,4841,-32408,4807,-32413,4774,-32418,4741,-32423,4708,-32427,4675,-32432,4642,-32437,4608,-32442,4575,-32446,4542,-32451,4509,-32456,4476,-32460,4443,-32465,4409,-32469,4376,-32474,4343,-32478,4310,-32483,4276,-32487,4243,-32492,4210,-32496,4177,-32500,4144,-32504,4110,-32509,4077,-32513,4044,-32517,4011,-32521,3977,-32525,3944,-32529,3911,-32533,3877,-32537,3844,-32541,3811,-32545,3778,-32549,3744,-32553,3711,-32557,3678,-32560,3644,-32564,3611,-32568,3578,-32572,3545,-32575,3511,-32579,3478,-32582,3445,-32586,3411,-32589,3378,-32593,3345,-32596,3311,-32600,3278,-32603,3245,-32606,3211,-32610,3178,-32613,3145,-32616,3111,-32619,3078,-32623,3044,-32626,3011,-32629,2978,-32632,2944,-32635,2911,-32638,2878,-32641,2844,-32644,2811,-32647,2777,-32650,2744,-32652,2711,-32655,2677,-32658,2644,-32661,2610,-32663,2577,-32666,2544,-32669,2510,-32671,2477,-32674,2443,-32676,2410,-32679,2377,-32681,2343,-32684,2310,-32686,2276,-32688,2243,-32691,2209,-32693,2176,-32695,2143,-32697,2109,-32700,2076,-32702,2042,-32704,2009,-32706,1975,-32708,1942,-32710,1908,-32712,1875,-32714,1842,-32716,1808,-32718,1775,-32719,1741,-32721,1708,-32723,1674,-32725,1641,-32726,1607,-32728,1574,-32730,1540,-32731,1507,-32733,1473,-32734,1440,-32736,1406,-32737,1373,-32739,1339,-32740,1306,-32741,1273,-32743,1239,-32744,1206,-32745,1172,-32747,1139,-32748,1105,-32749,1072,-32750,1038,-32751,1005,-32752,971,-32753,938,-32754,904,-32755,871,-32756,837,-32757,804,-32758,770,-32758,737,-32759,703,-32760,670,-32761,636,-32761,603,-32762,569,-32763,536,-32763,502,-32764,469,-32764,435,-32765,402,-32765,368,-32765,335,-32766,301,-32766,268,-32766,234,-32767,201,-32767,167,-32767,134,-32767,100,-32767,67,-32767,33,-32767,0,-32767,-34,-32767,-68,-32767,-101,-32767,-135,-32767,-168,-32767,-202,-32767,-235,-32767,-269,-32766,-302,-32766,-336,-32766,-369,-32765,-403,-32765,-436,-32765,-470,-32764,-503,-32764,-537,-32763,-570,-32763,-604,-32762,-637,-32761,-671,-32761,-704,-32760,-738,-32759,-771,-32758,-805,-32758,-838,-32757,-872,-32756,-905,-32755,-939,-32754,-972,-32753,-1006,-32752,-1039,-32751,-1073,-32750,-1106,-32749,-1140,-32748,-1173,-32747,-1207,-32745,-1240,-32744,-1274,-32743,-1307,-32741,-1340,-32740,-1374,-32739,-1407,-32737,-1441,-32736,-1474,-32734,-1508,-32733,-1541,-32731,-1575,-32730,-1608,-32728,-1642,-32726,-1675,-32725,-1709,-32723,-1742,-32721,-1776,-32719,-1809,-32718,-1843,-32716,-1876,-32714,-1909,-32712,-1943,-32710,-1976,-32708,-2010,-32706,-2043,-32704,-2077,-32702,-2110,-32700,-2144,-32697,-2177,-32695,-2210,-32693,-2244,-32691,-2277,-32688,-2311,-32686,-2344,-32684,-2378,-32681,-2411,-32679,-2444,-32676,-2478,-32674,-2511,-32671,-2545,-32669,-2578,-32666,-2611,-32663,-2645,-32661,-2678,-32658,-2712,-32655,-2745,-32652,-2778,-32650,-2812,-32647,-2845,-32644,-2879,-32641,-2912,-32638,-2945,-32635,-2979,-32632,-3012,-32629,-3045,-32626,-3079,-32623,-3112,-32619,-3146,-32616,-3179,-32613,-3212,-32610,-3246,-32606,-3279,-32603,-3312,-32600,-3346,-32596,-3379,-32593,-3412,-32589,-3446,-32586,-3479,-32582,-3512,-32579,-3546,-32575,-3579,-32572,-3612,-32568,-3645,-32564,-3679,-32560,-3712,-32557,-3745,-32553,-3779,-32549,-3812,-32545,-3845,-32541,-3878,-32537,-3912,-32533,-3945,-32529,-3978,-32525,-4012,-32521,-4045,-32517,-4078,-32513,-4111,-32509,-4145,-32504,-4178,-32500,-4211,-32496,-4244,-32492,-4277,-32487,-4311,-32483,-4344,-32478,-4377,-32474,-4410,-32469,-4444,-32465,-4477,-32460,-4510,-32456,-4543,-32451,-4576,-32446,-4609,-32442,-4643,-32437,-4676,-32432,-4709,-32427,-4742,-32423,-4775,-32418,-4808,-32413,-4842,-32408,-4875,-32403,-4908,-32398,-4941,-32393,-4974,-32388,-5007,-32383,-5040,-32378,-5073,-32372,-5107,-32367,-5140,-32362,-5173,-32357,-5206,-32351,-5239,-32346,-5272,-32341,-5305,-32335,-5338,-32330,-5371,-32324,-5404,-32319,-5437,-32313,-5470,-32308,-5503,-32302,-5536,-32296,-5569,-32291,-5602,-32285,-5635,-32279,-5668,-32274,-5701,-32268,-5734,-32262,-5767,-32256,-5800,-32250,-5833,-32244,-5866,-32238,-5899,-32232,-5932,-32226,-5965,-32220,-5998,-32214,-6031,-32208,-6064,-32202,-6097,-32195,-6130,-32189,-6163,-32183,-6196,-32177,-6229,-32170,-6262,-32164,-6294,-32157,-6327,-32151,-6360,-32144,-6393,-32138,-6426,-32131,-6459,-32125,-6492,-32118,-6524,-32111,-6557,-32105,-6590,-32098,-6623,-32091,-6656,-32085,-6689,-32078,-6721,-32071,-6754,-32064,-6787,-32057,-6820,-32050,-6852,-32043,-6885,-32036,-6918,-32029,-6951,-32022,-6983,-32015,-7016,-32008,-7049,-32000,-7082,-31993,-7114,-31986,-7147,-31979,-7180,-31971,-7212,-31964,-7245,-31957,-7278,-31949,-7311,-31942,-7343,-31934,-7376,-31927,-7408,-31919,-7441,-31912,-7474,-31904,-7506,-31896,-7539,-31889,-7572,-31881,-7604,-31873,-7637,-31865,-7669,-31857,-7702,-31850,-7734,-31842,-7767,-31834,-7800,-31826,-7832,-31818,-7865,-31810,-7897,-31802,-7930,-31794,-7962,-31786,-7995,-31777,-8027,-31769,-8060,-31761,-8092,-31753,-8125,-31744,-8157,-31736,-8190,-31728,-8222,-31719,-8254,-31711,-8287,-31702,-8319,-31694,-8352,-31685,-8384,-31677,-8416,-31668,-8449,-31660,-8481,-31651,-8514,-31642,-8546,-31634,-8578,-31625,-8611,-31616,-8643,-31607,-8675,-31598,-8708,-31589,-8740,-31581,-8772,-31572,-8804,-31563,-8837,-31554,-8869,-31545,-8901,-31535,-8933,-31526,-8966,-31517,-8998,-31508,-9030,-31499,-9062,-31490,-9095,-31480,-9127,-31471,-9159,-31462,-9191,-31452,-9223,-31443,-9255,-31433,-9288,-31424,-9320,-31414,-9352,-31405,-9384,-31395,-9416,-31386,-9448,-31376,-9480,-31366,-9512,-31357,-9544,-31347,-9576,-31337,-9608,-31327,-9640,-31317,-9672,-31308,-9704,-31298,-9736,-31288,-9768,-31278,-9800,-31268,-9832,-31258,-9864,-31248,-9896,-31237,-9928,-31227,-9960,-31217,-9992,-31207,-10024,-31197,-10056,-31186,-10088,-31176,-10120,-31166,-10152,-31155,-10183,-31145,-10215,-31135,-10247,-31124,-10279,-31114,-10311,-31103,-10343,-31093,-10374,-31082,-10406,-31071,-10438,-31061,-10470,-31050,-10501,-31039,-10533,-31029,-10565,-31018,-10597,-31007,-10628,-30996,-10660,-30985,-10692,-30974,-10723,-30963,-10755,-30952,-10787,-30941,-10818,-30930,-10850,-30919,-10881,-30908,-10913,-30897,-10945,-30886,-10976,-30875,-11008,-30863,-11039,-30852,-11071,-30841,-11102,-30829,-11134,-30818,-11165,-30807,-11197,-30795,-11228,-30784,-11260,-30772,-11291,-30761,-11323,-30749,-11354,-30738,-11386,-30726,-11417,-30714,-11449,-30703,-11480,-30691,-11511,-30679,-11543,-30667,-11574,-30656,-11605,-30644,-11637,-30632,-11668,-30620,-11699,-30608,-11731,-30596,-11762,-30584,-11793,-30572,-11824,-30560,-11856,-30548,-11887,-30536,-11918,-30523,-11949,-30511,-11981,-30499,-12012,-30487,-12043,-30474,-12074,-30462,-12105,-30450,-12136,-30437,-12167,-30425,-12199,-30412,-12230,-30400,-12261,-30387,-12292,-30375,-12323,-30362,-12354,-30350,-12385,-30337,-12416,-30324,-12447,-30312,-12478,-30299,-12509,-30286,-12540,-30273,-12571,-30260,-12602,-30248,-12633,-30235,-12664,-30222,-12695,-30209,-12725,-30196,-12756,-30183,-12787,-30170,-12818,-30157,-12849,-30143,-12880,-30130,-12910,-30117,-12941,-30104,-12972,-30091,-13003,-30077,-13034,-30064,-13064,-30051,-13095,-30037,-13126,-30024,-13156,-30010,-13187,-29997,-13218,-29984,-13248,-29970,-13279,-29956,-13310,-29943,-13340,-29929,-13371,-29916,-13401,-29902,-13432,-29888,-13463,-29874,-13493,-29861,-13524,-29847,-13554,-29833,-13585,-29819,-13615,-29805,-13646,-29791,-13676,-29777,-13707,-29763,-13737,-29749,-13767,-29735,-13798,-29721,-13828,-29707,-13859,-29693,-13889,-29679,-13919,-29664,-13950,-29650,-13980,-29636,-14010,-29622,-14040,-29607,-14071,-29593,-14101,-29578,-14131,-29564,-14161,-29549,-14192,-29535,-14222,-29520,-14252,-29506,-14282,-29491,-14312,-29477,-14343,-29462,-14373,-29447,-14403,-29433,-14433,-29418,-14463,-29403,-14493,-29388,-14523,-29373,-14553,-29359,-14583,-29344,-14613,-29329,-14643,-29314,-14673,-29299,-14703,-29284,-14733,-29269,-14763,-29254,-14793,-29239,-14823,-29223,-14853,-29208,-14882,-29193,-14912,-29178,-14942,-29163,-14972,-29147,-15002,-29132,-15031,-29117,-15061,-29101,-15091,-29086,-15121,-29070,-15150,-29055,-15180,-29039,-15210,-29024,-15239,-29008,-15269,-28993,-15299,-28977,-15328,-28961,-15358,-28946,-15388,-28930,-15417,-28914,-15447,-28898,-15476,-28883,-15506,-28867,-15535,-28851,-15565,-28835,-15594,-28819,-15624,-28803,-15653,-28787,-15683,-28771,-15712,-28755,-15741,-28739,-15771,-28723,-15800,-28707,-15830,-28691,-15859,-28674,-15888,-28658,-15918,-28642,-15947,-28626,-15976,-28609,-16005,-28593,-16035,-28576,-16064,-28560,-16093,-28544,-16122,-28527,-16151,-28511,-16180,-28494,-16210,-28478,-16239,-28461,-16268,-28444,-16297,-28428,-16326,-28411,-16355,-28394}; - - - -int16_t twb6144[4096] __attribute__((aligned(32))) = {32767,0,32766,-68,32766,-135,32766,-202,32765,-269,32765,-336,32764,-403,32763,-470,32762,-537,32761,-604,32760,-671,32758,-738,32757,-805,32755,-872,32753,-939,32751,-1006,32749,-1073,32747,-1140,32744,-1207,32742,-1274,32739,-1340,32736,-1407,32733,-1474,32730,-1541,32727,-1608,32724,-1675,32720,-1742,32717,-1809,32713,-1876,32709,-1943,32705,-2010,32701,-2077,32696,-2144,32692,-2210,32687,-2277,32683,-2344,32678,-2411,32673,-2478,32668,-2545,32662,-2611,32657,-2678,32651,-2745,32646,-2812,32640,-2879,32634,-2945,32628,-3012,32622,-3079,32615,-3146,32609,-3212,32602,-3279,32595,-3346,32588,-3412,32581,-3479,32574,-3546,32567,-3612,32559,-3679,32552,-3745,32544,-3812,32536,-3878,32528,-3945,32520,-4012,32512,-4078,32503,-4145,32495,-4211,32486,-4277,32477,-4344,32468,-4410,32459,-4477,32450,-4543,32441,-4609,32431,-4676,32422,-4742,32412,-4808,32402,-4875,32392,-4941,32382,-5007,32371,-5073,32361,-5140,32350,-5206,32340,-5272,32329,-5338,32318,-5404,32307,-5470,32295,-5536,32284,-5602,32273,-5668,32261,-5734,32249,-5800,32237,-5866,32225,-5932,32213,-5998,32201,-6064,32188,-6130,32176,-6196,32163,-6262,32150,-6327,32137,-6393,32124,-6459,32110,-6524,32097,-6590,32084,-6656,32070,-6721,32056,-6787,32042,-6852,32028,-6918,32014,-6983,31999,-7049,31985,-7114,31970,-7180,31956,-7245,31941,-7311,31926,-7376,31911,-7441,31895,-7506,31880,-7572,31864,-7637,31849,-7702,31833,-7767,31817,-7832,31801,-7897,31785,-7962,31768,-8027,31752,-8092,31735,-8157,31718,-8222,31701,-8287,31684,-8352,31667,-8416,31650,-8481,31633,-8546,31615,-8611,31597,-8675,31580,-8740,31562,-8804,31544,-8869,31525,-8933,31507,-8998,31489,-9062,31470,-9127,31451,-9191,31432,-9255,31413,-9320,31394,-9384,31375,-9448,31356,-9512,31336,-9576,31316,-9640,31297,-9704,31277,-9768,31257,-9832,31236,-9896,31216,-9960,31196,-10024,31175,-10088,31154,-10152,31134,-10215,31113,-10279,31092,-10343,31070,-10406,31049,-10470,31028,-10533,31006,-10597,30984,-10660,30962,-10723,30940,-10787,30918,-10850,30896,-10913,30874,-10976,30851,-11039,30828,-11102,30806,-11165,30783,-11228,30760,-11291,30737,-11354,30713,-11417,30690,-11480,30666,-11543,30643,-11605,30619,-11668,30595,-11731,30571,-11793,30547,-11856,30522,-11918,30498,-11981,30473,-12043,30449,-12105,30424,-12167,30399,-12230,30374,-12292,30349,-12354,30323,-12416,30298,-12478,30272,-12540,30247,-12602,30221,-12664,30195,-12725,30169,-12787,30142,-12849,30116,-12910,30090,-12972,30063,-13034,30036,-13095,30009,-13156,29983,-13218,29955,-13279,29928,-13340,29901,-13401,29873,-13463,29846,-13524,29818,-13585,29790,-13646,29762,-13707,29734,-13767,29706,-13828,29678,-13889,29649,-13950,29621,-14010,29592,-14071,29563,-14131,29534,-14192,29505,-14252,29476,-14312,29446,-14373,29417,-14433,29387,-14493,29358,-14553,29328,-14613,29298,-14673,29268,-14733,29238,-14793,29207,-14853,29177,-14912,29146,-14972,29116,-15031,29085,-15091,29054,-15150,29023,-15210,28992,-15269,28960,-15328,28929,-15388,28897,-15447,28866,-15506,28834,-15565,28802,-15624,28770,-15683,28738,-15741,28706,-15800,28673,-15859,28641,-15918,28608,-15976,28575,-16035,28543,-16093,28510,-16151,28477,-16210,28443,-16268,28410,-16326,28377,-16384,28343,-16442,28309,-16500,28275,-16558,28242,-16616,28208,-16673,28173,-16731,28139,-16789,28105,-16846,28070,-16904,28036,-16961,28001,-17018,27966,-17075,27931,-17133,27896,-17190,27861,-17247,27825,-17304,27790,-17361,27754,-17417,27719,-17474,27683,-17531,27647,-17587,27611,-17644,27575,-17700,27538,-17757,27502,-17813,27466,-17869,27429,-17925,27392,-17981,27355,-18037,27319,-18093,27281,-18149,27244,-18205,27207,-18261,27170,-18316,27132,-18372,27094,-18427,27057,-18483,27019,-18538,26981,-18593,26943,-18648,26905,-18703,26866,-18758,26828,-18813,26789,-18868,26751,-18923,26712,-18977,26673,-19032,26634,-19087,26595,-19141,26556,-19195,26516,-19250,26477,-19304,26437,-19358,26398,-19412,26358,-19466,26318,-19520,26278,-19574,26238,-19627,26198,-19681,26158,-19734,26117,-19788,26077,-19841,26036,-19895,25995,-19948,25954,-20001,25913,-20054,25872,-20107,25831,-20160,25790,-20213,25749,-20265,25707,-20318,25665,-20370,25624,-20423,25582,-20475,25540,-20528,25498,-20580,25456,-20632,25414,-20684,25371,-20736,25329,-20788,25286,-20839,25243,-20891,25201,-20943,25158,-20994,25115,-21046,25072,-21097,25029,-21148,24985,-21199,24942,-21250,24898,-21301,24855,-21352,24811,-21403,24767,-21454,24723,-21504,24679,-21555,24635,-21605,24591,-21656,24546,-21706,24502,-21756,24457,-21806,24413,-21856,24368,-21906,24323,-21956,24278,-22005,24233,-22055,24188,-22105,24143,-22154,24097,-22203,24052,-22253,24006,-22302,23961,-22351,23915,-22400,23869,-22449,23823,-22497,23777,-22546,23731,-22595,23685,-22643,23638,-22692,23592,-22740,23545,-22788,23499,-22836,23452,-22884,23405,-22932,23358,-22980,23311,-23028,23264,-23075,23217,-23123,23169,-23170,23122,-23218,23074,-23265,23027,-23312,22979,-23359,22931,-23406,22883,-23453,22835,-23500,22787,-23546,22739,-23593,22691,-23639,22642,-23686,22594,-23732,22545,-23778,22496,-23824,22448,-23870,22399,-23916,22350,-23962,22301,-24007,22252,-24053,22202,-24098,22153,-24144,22104,-24189,22054,-24234,22004,-24279,21955,-24324,21905,-24369,21855,-24414,21805,-24458,21755,-24503,21705,-24547,21655,-24592,21604,-24636,21554,-24680,21503,-24724,21453,-24768,21402,-24812,21351,-24856,21300,-24899,21249,-24943,21198,-24986,21147,-25030,21096,-25073,21045,-25116,20993,-25159,20942,-25202,20890,-25244,20838,-25287,20787,-25330,20735,-25372,20683,-25415,20631,-25457,20579,-25499,20527,-25541,20474,-25583,20422,-25625,20369,-25666,20317,-25708,20264,-25750,20212,-25791,20159,-25832,20106,-25873,20053,-25914,20000,-25955,19947,-25996,19894,-26037,19840,-26078,19787,-26118,19733,-26159,19680,-26199,19626,-26239,19573,-26279,19519,-26319,19465,-26359,19411,-26399,19357,-26438,19303,-26478,19249,-26517,19194,-26557,19140,-26596,19086,-26635,19031,-26674,18976,-26713,18922,-26752,18867,-26790,18812,-26829,18757,-26867,18702,-26906,18647,-26944,18592,-26982,18537,-27020,18482,-27058,18426,-27095,18371,-27133,18315,-27171,18260,-27208,18204,-27245,18148,-27282,18092,-27320,18036,-27356,17980,-27393,17924,-27430,17868,-27467,17812,-27503,17756,-27539,17699,-27576,17643,-27612,17586,-27648,17530,-27684,17473,-27720,17416,-27755,17360,-27791,17303,-27826,17246,-27862,17189,-27897,17132,-27932,17074,-27967,17017,-28002,16960,-28037,16903,-28071,16845,-28106,16788,-28140,16730,-28174,16672,-28209,16615,-28243,16557,-28276,16499,-28310,16441,-28344,16383,-28378,16325,-28411,16267,-28444,16209,-28478,16150,-28511,16092,-28544,16034,-28576,15975,-28609,15917,-28642,15858,-28674,15799,-28707,15740,-28739,15682,-28771,15623,-28803,15564,-28835,15505,-28867,15446,-28898,15387,-28930,15327,-28961,15268,-28993,15209,-29024,15149,-29055,15090,-29086,15030,-29117,14971,-29147,14911,-29178,14852,-29208,14792,-29239,14732,-29269,14672,-29299,14612,-29329,14552,-29359,14492,-29388,14432,-29418,14372,-29447,14311,-29477,14251,-29506,14191,-29535,14130,-29564,14070,-29593,14009,-29622,13949,-29650,13888,-29679,13827,-29707,13766,-29735,13706,-29763,13645,-29791,13584,-29819,13523,-29847,13462,-29874,13400,-29902,13339,-29929,13278,-29956,13217,-29984,13155,-30010,13094,-30037,13033,-30064,12971,-30091,12909,-30117,12848,-30143,12786,-30170,12724,-30196,12663,-30222,12601,-30248,12539,-30273,12477,-30299,12415,-30324,12353,-30350,12291,-30375,12229,-30400,12166,-30425,12104,-30450,12042,-30474,11980,-30499,11917,-30523,11855,-30548,11792,-30572,11730,-30596,11667,-30620,11604,-30644,11542,-30667,11479,-30691,11416,-30714,11353,-30738,11290,-30761,11227,-30784,11164,-30807,11101,-30829,11038,-30852,10975,-30875,10912,-30897,10849,-30919,10786,-30941,10722,-30963,10659,-30985,10596,-31007,10532,-31029,10469,-31050,10405,-31071,10342,-31093,10278,-31114,10214,-31135,10151,-31155,10087,-31176,10023,-31197,9959,-31217,9895,-31237,9831,-31258,9767,-31278,9703,-31298,9639,-31317,9575,-31337,9511,-31357,9447,-31376,9383,-31395,9319,-31414,9254,-31433,9190,-31452,9126,-31471,9061,-31490,8997,-31508,8932,-31526,8868,-31545,8803,-31563,8739,-31581,8674,-31598,8610,-31616,8545,-31634,8480,-31651,8415,-31668,8351,-31685,8286,-31702,8221,-31719,8156,-31736,8091,-31753,8026,-31769,7961,-31786,7896,-31802,7831,-31818,7766,-31834,7701,-31850,7636,-31865,7571,-31881,7505,-31896,7440,-31912,7375,-31927,7310,-31942,7244,-31957,7179,-31971,7113,-31986,7048,-32000,6982,-32015,6917,-32029,6851,-32043,6786,-32057,6720,-32071,6655,-32085,6589,-32098,6523,-32111,6458,-32125,6392,-32138,6326,-32151,6261,-32164,6195,-32177,6129,-32189,6063,-32202,5997,-32214,5931,-32226,5865,-32238,5799,-32250,5733,-32262,5667,-32274,5601,-32285,5535,-32296,5469,-32308,5403,-32319,5337,-32330,5271,-32341,5205,-32351,5139,-32362,5072,-32372,5006,-32383,4940,-32393,4874,-32403,4807,-32413,4741,-32423,4675,-32432,4608,-32442,4542,-32451,4476,-32460,4409,-32469,4343,-32478,4276,-32487,4210,-32496,4144,-32504,4077,-32513,4011,-32521,3944,-32529,3877,-32537,3811,-32545,3744,-32553,3678,-32560,3611,-32568,3545,-32575,3478,-32582,3411,-32589,3345,-32596,3278,-32603,3211,-32610,3145,-32616,3078,-32623,3011,-32629,2944,-32635,2878,-32641,2811,-32647,2744,-32652,2677,-32658,2610,-32663,2544,-32669,2477,-32674,2410,-32679,2343,-32684,2276,-32688,2209,-32693,2143,-32697,2076,-32702,2009,-32706,1942,-32710,1875,-32714,1808,-32718,1741,-32721,1674,-32725,1607,-32728,1540,-32731,1473,-32734,1406,-32737,1339,-32740,1273,-32743,1206,-32745,1139,-32748,1072,-32750,1005,-32752,938,-32754,871,-32756,804,-32758,737,-32759,670,-32761,603,-32762,536,-32763,469,-32764,402,-32765,335,-32766,268,-32766,201,-32767,134,-32767,67,-32767,0,-32767,-68,-32767,-135,-32767,-202,-32767,-269,-32766,-336,-32766,-403,-32765,-470,-32764,-537,-32763,-604,-32762,-671,-32761,-738,-32759,-805,-32758,-872,-32756,-939,-32754,-1006,-32752,-1073,-32750,-1140,-32748,-1207,-32745,-1274,-32743,-1340,-32740,-1407,-32737,-1474,-32734,-1541,-32731,-1608,-32728,-1675,-32725,-1742,-32721,-1809,-32718,-1876,-32714,-1943,-32710,-2010,-32706,-2077,-32702,-2144,-32697,-2210,-32693,-2277,-32688,-2344,-32684,-2411,-32679,-2478,-32674,-2545,-32669,-2611,-32663,-2678,-32658,-2745,-32652,-2812,-32647,-2879,-32641,-2945,-32635,-3012,-32629,-3079,-32623,-3146,-32616,-3212,-32610,-3279,-32603,-3346,-32596,-3412,-32589,-3479,-32582,-3546,-32575,-3612,-32568,-3679,-32560,-3745,-32553,-3812,-32545,-3878,-32537,-3945,-32529,-4012,-32521,-4078,-32513,-4145,-32504,-4211,-32496,-4277,-32487,-4344,-32478,-4410,-32469,-4477,-32460,-4543,-32451,-4609,-32442,-4676,-32432,-4742,-32423,-4808,-32413,-4875,-32403,-4941,-32393,-5007,-32383,-5073,-32372,-5140,-32362,-5206,-32351,-5272,-32341,-5338,-32330,-5404,-32319,-5470,-32308,-5536,-32296,-5602,-32285,-5668,-32274,-5734,-32262,-5800,-32250,-5866,-32238,-5932,-32226,-5998,-32214,-6064,-32202,-6130,-32189,-6196,-32177,-6262,-32164,-6327,-32151,-6393,-32138,-6459,-32125,-6524,-32111,-6590,-32098,-6656,-32085,-6721,-32071,-6787,-32057,-6852,-32043,-6918,-32029,-6983,-32015,-7049,-32000,-7114,-31986,-7180,-31971,-7245,-31957,-7311,-31942,-7376,-31927,-7441,-31912,-7506,-31896,-7572,-31881,-7637,-31865,-7702,-31850,-7767,-31834,-7832,-31818,-7897,-31802,-7962,-31786,-8027,-31769,-8092,-31753,-8157,-31736,-8222,-31719,-8287,-31702,-8352,-31685,-8416,-31668,-8481,-31651,-8546,-31634,-8611,-31616,-8675,-31598,-8740,-31581,-8804,-31563,-8869,-31545,-8933,-31526,-8998,-31508,-9062,-31490,-9127,-31471,-9191,-31452,-9255,-31433,-9320,-31414,-9384,-31395,-9448,-31376,-9512,-31357,-9576,-31337,-9640,-31317,-9704,-31298,-9768,-31278,-9832,-31258,-9896,-31237,-9960,-31217,-10024,-31197,-10088,-31176,-10152,-31155,-10215,-31135,-10279,-31114,-10343,-31093,-10406,-31071,-10470,-31050,-10533,-31029,-10597,-31007,-10660,-30985,-10723,-30963,-10787,-30941,-10850,-30919,-10913,-30897,-10976,-30875,-11039,-30852,-11102,-30829,-11165,-30807,-11228,-30784,-11291,-30761,-11354,-30738,-11417,-30714,-11480,-30691,-11543,-30667,-11605,-30644,-11668,-30620,-11731,-30596,-11793,-30572,-11856,-30548,-11918,-30523,-11981,-30499,-12043,-30474,-12105,-30450,-12167,-30425,-12230,-30400,-12292,-30375,-12354,-30350,-12416,-30324,-12478,-30299,-12540,-30273,-12602,-30248,-12664,-30222,-12725,-30196,-12787,-30170,-12849,-30143,-12910,-30117,-12972,-30091,-13034,-30064,-13095,-30037,-13156,-30010,-13218,-29984,-13279,-29956,-13340,-29929,-13401,-29902,-13463,-29874,-13524,-29847,-13585,-29819,-13646,-29791,-13707,-29763,-13767,-29735,-13828,-29707,-13889,-29679,-13950,-29650,-14010,-29622,-14071,-29593,-14131,-29564,-14192,-29535,-14252,-29506,-14312,-29477,-14373,-29447,-14433,-29418,-14493,-29388,-14553,-29359,-14613,-29329,-14673,-29299,-14733,-29269,-14793,-29239,-14853,-29208,-14912,-29178,-14972,-29147,-15031,-29117,-15091,-29086,-15150,-29055,-15210,-29024,-15269,-28993,-15328,-28961,-15388,-28930,-15447,-28898,-15506,-28867,-15565,-28835,-15624,-28803,-15683,-28771,-15741,-28739,-15800,-28707,-15859,-28674,-15918,-28642,-15976,-28609,-16035,-28576,-16093,-28544,-16151,-28511,-16210,-28478,-16268,-28444,-16326,-28411,-16384,-28378,-16442,-28344,-16500,-28310,-16558,-28276,-16616,-28243,-16673,-28209,-16731,-28174,-16789,-28140,-16846,-28106,-16904,-28071,-16961,-28037,-17018,-28002,-17075,-27967,-17133,-27932,-17190,-27897,-17247,-27862,-17304,-27826,-17361,-27791,-17417,-27755,-17474,-27720,-17531,-27684,-17587,-27648,-17644,-27612,-17700,-27576,-17757,-27539,-17813,-27503,-17869,-27467,-17925,-27430,-17981,-27393,-18037,-27356,-18093,-27320,-18149,-27282,-18205,-27245,-18261,-27208,-18316,-27171,-18372,-27133,-18427,-27095,-18483,-27058,-18538,-27020,-18593,-26982,-18648,-26944,-18703,-26906,-18758,-26867,-18813,-26829,-18868,-26790,-18923,-26752,-18977,-26713,-19032,-26674,-19087,-26635,-19141,-26596,-19195,-26557,-19250,-26517,-19304,-26478,-19358,-26438,-19412,-26399,-19466,-26359,-19520,-26319,-19574,-26279,-19627,-26239,-19681,-26199,-19734,-26159,-19788,-26118,-19841,-26078,-19895,-26037,-19948,-25996,-20001,-25955,-20054,-25914,-20107,-25873,-20160,-25832,-20213,-25791,-20265,-25750,-20318,-25708,-20370,-25666,-20423,-25625,-20475,-25583,-20528,-25541,-20580,-25499,-20632,-25457,-20684,-25415,-20736,-25372,-20788,-25330,-20839,-25287,-20891,-25244,-20943,-25202,-20994,-25159,-21046,-25116,-21097,-25073,-21148,-25030,-21199,-24986,-21250,-24943,-21301,-24899,-21352,-24856,-21403,-24812,-21454,-24768,-21504,-24724,-21555,-24680,-21605,-24636,-21656,-24592,-21706,-24547,-21756,-24503,-21806,-24458,-21856,-24414,-21906,-24369,-21956,-24324,-22005,-24279,-22055,-24234,-22105,-24189,-22154,-24144,-22203,-24098,-22253,-24053,-22302,-24007,-22351,-23962,-22400,-23916,-22449,-23870,-22497,-23824,-22546,-23778,-22595,-23732,-22643,-23686,-22692,-23639,-22740,-23593,-22788,-23546,-22836,-23500,-22884,-23453,-22932,-23406,-22980,-23359,-23028,-23312,-23075,-23265,-23123,-23218,-23170,-23170,-23218,-23123,-23265,-23075,-23312,-23028,-23359,-22980,-23406,-22932,-23453,-22884,-23500,-22836,-23546,-22788,-23593,-22740,-23639,-22692,-23686,-22643,-23732,-22595,-23778,-22546,-23824,-22497,-23870,-22449,-23916,-22400,-23962,-22351,-24007,-22302,-24053,-22253,-24098,-22203,-24144,-22154,-24189,-22105,-24234,-22055,-24279,-22005,-24324,-21956,-24369,-21906,-24414,-21856,-24458,-21806,-24503,-21756,-24547,-21706,-24592,-21656,-24636,-21605,-24680,-21555,-24724,-21504,-24768,-21454,-24812,-21403,-24856,-21352,-24899,-21301,-24943,-21250,-24986,-21199,-25030,-21148,-25073,-21097,-25116,-21046,-25159,-20994,-25202,-20943,-25244,-20891,-25287,-20839,-25330,-20788,-25372,-20736,-25415,-20684,-25457,-20632,-25499,-20580,-25541,-20528,-25583,-20475,-25625,-20423,-25666,-20370,-25708,-20318,-25750,-20265,-25791,-20213,-25832,-20160,-25873,-20107,-25914,-20054,-25955,-20001,-25996,-19948,-26037,-19895,-26078,-19841,-26118,-19788,-26159,-19734,-26199,-19681,-26239,-19627,-26279,-19574,-26319,-19520,-26359,-19466,-26399,-19412,-26438,-19358,-26478,-19304,-26517,-19250,-26557,-19195,-26596,-19141,-26635,-19087,-26674,-19032,-26713,-18977,-26752,-18923,-26790,-18868,-26829,-18813,-26867,-18758,-26906,-18703,-26944,-18648,-26982,-18593,-27020,-18538,-27058,-18483,-27095,-18427,-27133,-18372,-27171,-18316,-27208,-18261,-27245,-18205,-27282,-18149,-27320,-18093,-27356,-18037,-27393,-17981,-27430,-17925,-27467,-17869,-27503,-17813,-27539,-17757,-27576,-17700,-27612,-17644,-27648,-17587,-27684,-17531,-27720,-17474,-27755,-17417,-27791,-17361,-27826,-17304,-27862,-17247,-27897,-17190,-27932,-17133,-27967,-17075,-28002,-17018,-28037,-16961,-28071,-16904,-28106,-16846,-28140,-16789,-28174,-16731,-28209,-16673,-28243,-16616,-28276,-16558,-28310,-16500,-28344,-16442,-28378,-16384,-28411,-16326,-28444,-16268,-28478,-16210,-28511,-16151,-28544,-16093,-28576,-16035,-28609,-15976,-28642,-15918,-28674,-15859,-28707,-15800,-28739,-15741,-28771,-15683,-28803,-15624,-28835,-15565,-28867,-15506,-28898,-15447,-28930,-15388,-28961,-15328,-28993,-15269,-29024,-15210,-29055,-15150,-29086,-15091,-29117,-15031,-29147,-14972,-29178,-14912,-29208,-14853,-29239,-14793,-29269,-14733,-29299,-14673,-29329,-14613,-29359,-14553,-29388,-14493,-29418,-14433,-29447,-14373,-29477,-14312,-29506,-14252,-29535,-14192,-29564,-14131,-29593,-14071,-29622,-14010,-29650,-13950,-29679,-13889,-29707,-13828,-29735,-13767,-29763,-13707,-29791,-13646,-29819,-13585,-29847,-13524,-29874,-13463,-29902,-13401,-29929,-13340,-29956,-13279,-29984,-13218,-30010,-13156,-30037,-13095,-30064,-13034,-30091,-12972,-30117,-12910,-30143,-12849,-30170,-12787,-30196,-12725,-30222,-12664,-30248,-12602,-30273,-12540,-30299,-12478,-30324,-12416,-30350,-12354,-30375,-12292,-30400,-12230,-30425,-12167,-30450,-12105,-30474,-12043,-30499,-11981,-30523,-11918,-30548,-11856,-30572,-11793,-30596,-11731,-30620,-11668,-30644,-11605,-30667,-11543,-30691,-11480,-30714,-11417,-30738,-11354,-30761,-11291,-30784,-11228,-30807,-11165,-30829,-11102,-30852,-11039,-30875,-10976,-30897,-10913,-30919,-10850,-30941,-10787,-30963,-10723,-30985,-10660,-31007,-10597,-31029,-10533,-31050,-10470,-31071,-10406,-31093,-10343,-31114,-10279,-31135,-10215,-31155,-10152,-31176,-10088,-31197,-10024,-31217,-9960,-31237,-9896,-31258,-9832,-31278,-9768,-31298,-9704,-31317,-9640,-31337,-9576,-31357,-9512,-31376,-9448,-31395,-9384,-31414,-9320,-31433,-9255,-31452,-9191,-31471,-9127,-31490,-9062,-31508,-8998,-31526,-8933,-31545,-8869,-31563,-8804,-31581,-8740,-31598,-8675,-31616,-8611,-31634,-8546,-31651,-8481,-31668,-8416,-31685,-8352,-31702,-8287,-31719,-8222,-31736,-8157,-31753,-8092,-31769,-8027,-31786,-7962,-31802,-7897,-31818,-7832,-31834,-7767,-31850,-7702,-31865,-7637,-31881,-7572,-31896,-7506,-31912,-7441,-31927,-7376,-31942,-7311,-31957,-7245,-31971,-7180,-31986,-7114,-32000,-7049,-32015,-6983,-32029,-6918,-32043,-6852,-32057,-6787,-32071,-6721,-32085,-6656,-32098,-6590,-32111,-6524,-32125,-6459,-32138,-6393,-32151,-6327,-32164,-6262,-32177,-6196,-32189,-6130,-32202,-6064,-32214,-5998,-32226,-5932,-32238,-5866,-32250,-5800,-32262,-5734,-32274,-5668,-32285,-5602,-32296,-5536,-32308,-5470,-32319,-5404,-32330,-5338,-32341,-5272,-32351,-5206,-32362,-5140,-32372,-5073,-32383,-5007,-32393,-4941,-32403,-4875,-32413,-4808,-32423,-4742,-32432,-4676,-32442,-4609,-32451,-4543,-32460,-4477,-32469,-4410,-32478,-4344,-32487,-4277,-32496,-4211,-32504,-4145,-32513,-4078,-32521,-4012,-32529,-3945,-32537,-3878,-32545,-3812,-32553,-3745,-32560,-3679,-32568,-3612,-32575,-3546,-32582,-3479,-32589,-3412,-32596,-3346,-32603,-3279,-32610,-3212,-32616,-3146,-32623,-3079,-32629,-3012,-32635,-2945,-32641,-2879,-32647,-2812,-32652,-2745,-32658,-2678,-32663,-2611,-32669,-2545,-32674,-2478,-32679,-2411,-32684,-2344,-32688,-2277,-32693,-2210,-32697,-2144,-32702,-2077,-32706,-2010,-32710,-1943,-32714,-1876,-32718,-1809,-32721,-1742,-32725,-1675,-32728,-1608,-32731,-1541,-32734,-1474,-32737,-1407,-32740,-1340,-32743,-1274,-32745,-1207,-32748,-1140,-32750,-1073,-32752,-1006,-32754,-939,-32756,-872,-32758,-805,-32759,-738,-32761,-671,-32762,-604,-32763,-537,-32764,-470,-32765,-403,-32766,-336,-32766,-269,-32767,-202,-32767,-135,-32767,-68,-32767,-1,-32767,67,-32767,134,-32767,201,-32766,268,-32766,335,-32765,402,-32764,469,-32763,536,-32762,603,-32761,670,-32759,737,-32758,804,-32756,871,-32754,938,-32752,1005,-32750,1072,-32748,1139,-32745,1206,-32743,1273,-32740,1339,-32737,1406,-32734,1473,-32731,1540,-32728,1607,-32725,1674,-32721,1741,-32718,1808,-32714,1875,-32710,1942,-32706,2009,-32702,2076,-32697,2143,-32693,2209,-32688,2276,-32684,2343,-32679,2410,-32674,2477,-32669,2544,-32663,2610,-32658,2677,-32652,2744,-32647,2811,-32641,2878,-32635,2944,-32629,3011,-32623,3078,-32616,3145,-32610,3211,-32603,3278,-32596,3345,-32589,3411,-32582,3478,-32575,3545,-32568,3611,-32560,3678,-32553,3744,-32545,3811,-32537,3877,-32529,3944,-32521,4011,-32513,4077,-32504,4144,-32496,4210,-32487,4276,-32478,4343,-32469,4409,-32460,4476,-32451,4542,-32442,4608,-32432,4675,-32423,4741,-32413,4807,-32403,4874,-32393,4940,-32383,5006,-32372,5072,-32362,5139,-32351,5205,-32341,5271,-32330,5337,-32319,5403,-32308,5469,-32296,5535,-32285,5601,-32274,5667,-32262,5733,-32250,5799,-32238,5865,-32226,5931,-32214,5997,-32202,6063,-32189,6129,-32177,6195,-32164,6261,-32151,6326,-32138,6392,-32125,6458,-32111,6523,-32098,6589,-32085,6655,-32071,6720,-32057,6786,-32043,6851,-32029,6917,-32015,6982,-32000,7048,-31986,7113,-31971,7179,-31957,7244,-31942,7310,-31927,7375,-31912,7440,-31896,7505,-31881,7571,-31865,7636,-31850,7701,-31834,7766,-31818,7831,-31802,7896,-31786,7961,-31769,8026,-31753,8091,-31736,8156,-31719,8221,-31702,8286,-31685,8351,-31668,8415,-31651,8480,-31634,8545,-31616,8610,-31598,8674,-31581,8739,-31563,8803,-31545,8868,-31526,8932,-31508,8997,-31490,9061,-31471,9126,-31452,9190,-31433,9254,-31414,9319,-31395,9383,-31376,9447,-31357,9511,-31337,9575,-31317,9639,-31298,9703,-31278,9767,-31258,9831,-31237,9895,-31217,9959,-31197,10023,-31176,10087,-31155,10151,-31135,10214,-31114,10278,-31093,10342,-31071,10405,-31050,10469,-31029,10532,-31007,10596,-30985,10659,-30963,10722,-30941,10786,-30919,10849,-30897,10912,-30875,10975,-30852,11038,-30829,11101,-30807,11164,-30784,11227,-30761,11290,-30738,11353,-30714,11416,-30691,11479,-30667,11542,-30644,11604,-30620,11667,-30596,11730,-30572,11792,-30548,11855,-30523,11917,-30499,11980,-30474,12042,-30450,12104,-30425,12166,-30400,12229,-30375,12291,-30350,12353,-30324,12415,-30299,12477,-30273,12539,-30248,12601,-30222,12663,-30196,12724,-30170,12786,-30143,12848,-30117,12909,-30091,12971,-30064,13033,-30037,13094,-30010,13155,-29984,13217,-29956,13278,-29929,13339,-29902,13400,-29874,13462,-29847,13523,-29819,13584,-29791,13645,-29763,13706,-29735,13766,-29707,13827,-29679,13888,-29650,13949,-29622,14009,-29593,14070,-29564,14130,-29535,14191,-29506,14251,-29477,14311,-29447,14372,-29418,14432,-29388,14492,-29359,14552,-29329,14612,-29299,14672,-29269,14732,-29239,14792,-29208,14852,-29178,14911,-29147,14971,-29117,15030,-29086,15090,-29055,15149,-29024,15209,-28993,15268,-28961,15327,-28930,15387,-28898,15446,-28867,15505,-28835,15564,-28803,15623,-28771,15682,-28739,15740,-28707,15799,-28674,15858,-28642,15917,-28609,15975,-28576,16034,-28544,16092,-28511,16150,-28478,16209,-28444,16267,-28411,16325,-28378,16383,-28344,16441,-28310,16499,-28276,16557,-28243,16615,-28209,16672,-28174,16730,-28140,16788,-28106,16845,-28071,16903,-28037,16960,-28002,17017,-27967,17074,-27932,17132,-27897,17189,-27862,17246,-27826,17303,-27791,17360,-27755,17416,-27720,17473,-27684,17530,-27648,17586,-27612,17643,-27576,17699,-27539,17756,-27503,17812,-27467,17868,-27430,17924,-27393,17980,-27356,18036,-27320,18092,-27282,18148,-27245,18204,-27208,18260,-27171,18315,-27133,18371,-27095,18426,-27058,18482,-27020,18537,-26982,18592,-26944,18647,-26906,18702,-26867,18757,-26829,18812,-26790,18867,-26752,18922,-26713,18976,-26674,19031,-26635,19086,-26596,19140,-26557,19194,-26517,19249,-26478,19303,-26438,19357,-26399,19411,-26359,19465,-26319,19519,-26279,19573,-26239,19626,-26199,19680,-26159,19733,-26118,19787,-26078,19840,-26037,19894,-25996,19947,-25955,20000,-25914,20053,-25873,20106,-25832,20159,-25791,20212,-25750,20264,-25708,20317,-25666,20369,-25625,20422,-25583,20474,-25541,20527,-25499,20579,-25457,20631,-25415,20683,-25372,20735,-25330,20787,-25287,20838,-25244,20890,-25202,20942,-25159,20993,-25116,21045,-25073,21096,-25030,21147,-24986,21198,-24943,21249,-24899,21300,-24856,21351,-24812,21402,-24768,21453,-24724,21503,-24680,21554,-24636,21604,-24592,21655,-24547,21705,-24503,21755,-24458,21805,-24414,21855,-24369,21905,-24324,21955,-24279,22004,-24234,22054,-24189,22104,-24144,22153,-24098,22202,-24053,22252,-24007,22301,-23962,22350,-23916,22399,-23870,22448,-23824,22496,-23778,22545,-23732,22594,-23686,22642,-23639,22691,-23593,22739,-23546,22787,-23500,22835,-23453,22883,-23406,22931,-23359,22979,-23312,23027,-23265,23074,-23218,23122,-23170,23169,-23123,23217,-23075,23264,-23028,23311,-22980,23358,-22932,23405,-22884,23452,-22836,23499,-22788,23545,-22740,23592,-22692,23638,-22643,23685,-22595,23731,-22546,23777,-22497,23823,-22449,23869,-22400,23915,-22351,23961,-22302,24006,-22253,24052,-22203,24097,-22154,24143,-22105,24188,-22055,24233,-22005,24278,-21956,24323,-21906,24368,-21856,24413,-21806,24457,-21756,24502,-21706,24546,-21656,24591,-21605,24635,-21555,24679,-21504,24723,-21454,24767,-21403,24811,-21352,24855,-21301,24898,-21250,24942,-21199,24985,-21148,25029,-21097,25072,-21046,25115,-20994,25158,-20943,25201,-20891,25243,-20839,25286,-20788,25329,-20736,25371,-20684,25414,-20632,25456,-20580,25498,-20528,25540,-20475,25582,-20423,25624,-20370,25665,-20318,25707,-20265,25749,-20213,25790,-20160,25831,-20107,25872,-20054,25913,-20001,25954,-19948,25995,-19895,26036,-19841,26077,-19788,26117,-19734,26158,-19681,26198,-19627,26238,-19574,26278,-19520,26318,-19466,26358,-19412,26398,-19358,26437,-19304,26477,-19250,26516,-19195,26556,-19141,26595,-19087,26634,-19032,26673,-18977,26712,-18923,26751,-18868,26789,-18813,26828,-18758,26866,-18703,26905,-18648,26943,-18593,26981,-18538,27019,-18483,27057,-18427,27094,-18372,27132,-18316,27170,-18261,27207,-18205,27244,-18149,27281,-18093,27319,-18037,27355,-17981,27392,-17925,27429,-17869,27466,-17813,27502,-17757,27538,-17700,27575,-17644,27611,-17587,27647,-17531,27683,-17474,27719,-17417,27754,-17361,27790,-17304,27825,-17247,27861,-17190,27896,-17133,27931,-17075,27966,-17018,28001,-16961,28036,-16904,28070,-16846,28105,-16789,28139,-16731,28173,-16673,28208,-16616,28242,-16558,28275,-16500,28309,-16442,28343}; diff --git a/openair1/PHY/TOOLS/twiddles4096.h b/openair1/PHY/TOOLS/twiddles4096.h deleted file mode 100644 index af2b6a8887619bd82949cfa72ac54f814d5b83a6..0000000000000000000000000000000000000000 --- a/openair1/PHY/TOOLS/twiddles4096.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:1023)/4096)); -twb = floor(32767*exp(-sqrt(-1)*2*pi*2*(0:1023)/4096)); -twc = floor(32767*exp(-sqrt(-1)*2*pi*3*(0:1023)/4096)); -twa2 = zeros(1,2*1024); -twb2 = zeros(1,2*1024); -twc2 = zeros(1,2*1024); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -twb2(1:2:end) = real(twb); -twb2(2:2:end) = imag(twb); -twc2(1:2:end) = real(twc); -twc2(2:2:end) = imag(twc); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t tw4096[3*1024*2] = {"); -fprintf(fd,"%d,",twa2); -fprintf(fd,"%d,",twb2); -fprintf(fd,"%d,",twc2(1:(1024*2)-1)); -fprintf(fd,"%d};\n",twc2(end)); -fclose(fd); -*/ -static int16_t tw4096[3*1024*2] = {32767,0,32766,-51,32766,-101,32766,-151,32766,-202,32766,-252,32765,-302,32765,-352,32764,-403,32763,-453,32763,-503,32762,-553,32761,-604,32760,-654,32759,-704,32758,-754,32757,-805,32755,-855,32754,-905,32753,-955,32751,-1006,32750,-1056,32748,-1106,32746,-1156,32744,-1207,32742,-1257,32740,-1307,32738,-1357,32736,-1407,32734,-1458,32732,-1508,32729,-1558,32727,-1608,32725,-1659,32722,-1709,32719,-1759,32717,-1809,32714,-1859,32711,-1909,32708,-1960,32705,-2010,32702,-2060,32699,-2110,32695,-2160,32692,-2210,32688,-2261,32685,-2311,32681,-2361,32678,-2411,32674,-2461,32670,-2511,32666,-2561,32662,-2611,32658,-2662,32654,-2712,32650,-2762,32646,-2812,32641,-2862,32637,-2912,32632,-2962,32628,-3012,32623,-3062,32618,-3112,32614,-3162,32609,-3212,32604,-3262,32599,-3312,32594,-3362,32588,-3412,32583,-3462,32578,-3512,32572,-3562,32567,-3612,32561,-3662,32556,-3712,32550,-3762,32544,-3812,32538,-3862,32532,-3912,32526,-3962,32520,-4012,32514,-4061,32508,-4111,32501,-4161,32495,-4211,32488,-4261,32482,-4311,32475,-4360,32468,-4410,32462,-4460,32455,-4510,32448,-4560,32441,-4609,32434,-4659,32426,-4709,32419,-4759,32412,-4808,32404,-4858,32397,-4908,32389,-4958,32382,-5007,32374,-5057,32366,-5107,32358,-5156,32350,-5206,32342,-5255,32334,-5305,32326,-5355,32318,-5404,32310,-5454,32301,-5503,32293,-5553,32284,-5602,32275,-5652,32267,-5701,32258,-5751,32249,-5800,32240,-5850,32231,-5899,32222,-5949,32213,-5998,32204,-6048,32194,-6097,32185,-6146,32176,-6196,32166,-6245,32156,-6294,32147,-6344,32137,-6393,32127,-6442,32117,-6492,32107,-6541,32097,-6590,32087,-6639,32077,-6689,32066,-6738,32056,-6787,32046,-6836,32035,-6885,32024,-6934,32014,-6983,32003,-7033,31992,-7082,31981,-7131,31970,-7180,31959,-7229,31948,-7278,31937,-7327,31926,-7376,31914,-7425,31903,-7474,31891,-7523,31880,-7572,31868,-7620,31856,-7669,31845,-7718,31833,-7767,31821,-7816,31809,-7865,31797,-7913,31785,-7962,31772,-8011,31760,-8060,31748,-8108,31735,-8157,31723,-8206,31710,-8254,31697,-8303,31684,-8352,31672,-8400,31659,-8449,31646,-8497,31633,-8546,31619,-8594,31606,-8643,31593,-8691,31580,-8740,31566,-8788,31553,-8837,31539,-8885,31525,-8933,31512,-8982,31498,-9030,31484,-9078,31470,-9127,31456,-9175,31442,-9223,31428,-9271,31413,-9320,31399,-9368,31385,-9416,31370,-9464,31356,-9512,31341,-9560,31326,-9608,31311,-9656,31297,-9704,31282,-9752,31267,-9800,31252,-9848,31236,-9896,31221,-9944,31206,-9992,31191,-10040,31175,-10088,31160,-10136,31144,-10183,31128,-10231,31113,-10279,31097,-10327,31081,-10374,31065,-10422,31049,-10470,31033,-10517,31017,-10565,31001,-10612,30984,-10660,30968,-10707,30951,-10755,30935,-10802,30918,-10850,30902,-10897,30885,-10945,30868,-10992,30851,-11039,30834,-11087,30817,-11134,30800,-11181,30783,-11228,30766,-11276,30748,-11323,30731,-11370,30713,-11417,30696,-11464,30678,-11511,30660,-11558,30643,-11605,30625,-11652,30607,-11699,30589,-11746,30571,-11793,30553,-11840,30535,-11887,30516,-11934,30498,-11981,30480,-12027,30461,-12074,30442,-12121,30424,-12167,30405,-12214,30386,-12261,30368,-12307,30349,-12354,30330,-12400,30311,-12447,30291,-12493,30272,-12540,30253,-12586,30234,-12633,30214,-12679,30195,-12725,30175,-12772,30156,-12818,30136,-12864,30116,-12910,30096,-12957,30076,-13003,30056,-13049,30036,-13095,30016,-13141,29996,-13187,29976,-13233,29955,-13279,29935,-13325,29915,-13371,29894,-13417,29873,-13463,29853,-13508,29832,-13554,29811,-13600,29790,-13646,29769,-13691,29748,-13737,29727,-13783,29706,-13828,29685,-13874,29663,-13919,29642,-13965,29621,-14010,29599,-14056,29577,-14101,29556,-14146,29534,-14192,29512,-14237,29490,-14282,29468,-14327,29446,-14373,29424,-14418,29402,-14463,29380,-14508,29358,-14553,29335,-14598,29313,-14643,29290,-14688,29268,-14733,29245,-14778,29222,-14823,29200,-14867,29177,-14912,29154,-14957,29131,-15002,29108,-15046,29085,-15091,29062,-15136,29038,-15180,29015,-15225,28992,-15269,28968,-15314,28945,-15358,28921,-15402,28897,-15447,28874,-15491,28850,-15535,28826,-15580,28802,-15624,28778,-15668,28754,-15712,28730,-15756,28706,-15800,28681,-15844,28657,-15888,28633,-15932,28608,-15976,28584,-16020,28559,-16064,28534,-16108,28510,-16151,28485,-16195,28460,-16239,28435,-16282,28410,-16326,28385,-16369,28360,-16413,28335,-16456,28309,-16500,28284,-16543,28259,-16587,28233,-16630,28208,-16673,28182,-16717,28156,-16760,28131,-16803,28105,-16846,28079,-16889,28053,-16932,28027,-16975,28001,-17018,27975,-17061,27948,-17104,27922,-17147,27896,-17190,27869,-17233,27843,-17275,27816,-17318,27790,-17361,27763,-17403,27736,-17446,27710,-17488,27683,-17531,27656,-17573,27629,-17616,27602,-17658,27575,-17700,27548,-17743,27520,-17785,27493,-17827,27466,-17869,27438,-17911,27411,-17953,27383,-17995,27355,-18037,27328,-18079,27300,-18121,27272,-18163,27244,-18205,27216,-18247,27188,-18288,27160,-18330,27132,-18372,27104,-18413,27076,-18455,27047,-18496,27019,-18538,26990,-18579,26962,-18621,26933,-18662,26905,-18703,26876,-18745,26847,-18786,26818,-18827,26789,-18868,26760,-18909,26731,-18950,26702,-18991,26673,-19032,26644,-19073,26615,-19114,26585,-19155,26556,-19195,26526,-19236,26497,-19277,26467,-19317,26437,-19358,26408,-19398,26378,-19439,26348,-19479,26318,-19520,26288,-19560,26258,-19600,26228,-19641,26198,-19681,26168,-19721,26137,-19761,26107,-19801,26077,-19841,26046,-19881,26016,-19921,25985,-19961,25954,-20001,25924,-20041,25893,-20080,25862,-20120,25831,-20160,25800,-20199,25769,-20239,25738,-20278,25707,-20318,25676,-20357,25645,-20397,25613,-20436,25582,-20475,25550,-20514,25519,-20554,25487,-20593,25456,-20632,25424,-20671,25392,-20710,25361,-20749,25329,-20788,25297,-20826,25265,-20865,25233,-20904,25201,-20943,25169,-20981,25136,-21020,25104,-21058,25072,-21097,25039,-21135,25007,-21174,24974,-21212,24942,-21250,24909,-21289,24877,-21327,24844,-21365,24811,-21403,24778,-21441,24745,-21479,24712,-21517,24679,-21555,24646,-21593,24613,-21630,24580,-21668,24546,-21706,24513,-21744,24480,-21781,24446,-21819,24413,-21856,24379,-21894,24346,-21931,24312,-21968,24278,-22005,24244,-22043,24211,-22080,24177,-22117,24143,-22154,24109,-22191,24075,-22228,24041,-22265,24006,-22302,23972,-22339,23938,-22375,23903,-22412,23869,-22449,23835,-22485,23800,-22522,23766,-22558,23731,-22595,23696,-22631,23661,-22667,23627,-22704,23592,-22740,23557,-22776,23522,-22812,23487,-22848,23452,-22884,23417,-22920,23382,-22956,23346,-22992,23311,-23028,23276,-23063,23240,-23099,23205,-23135,23169,-23170,23134,-23206,23098,-23241,23062,-23277,23027,-23312,22991,-23347,22955,-23383,22919,-23418,22883,-23453,22847,-23488,22811,-23523,22775,-23558,22739,-23593,22703,-23628,22666,-23662,22630,-23697,22594,-23732,22557,-23767,22521,-23801,22484,-23836,22448,-23870,22411,-23904,22374,-23939,22338,-23973,22301,-24007,22264,-24042,22227,-24076,22190,-24110,22153,-24144,22116,-24178,22079,-24212,22042,-24245,22004,-24279,21967,-24313,21930,-24347,21893,-24380,21855,-24414,21818,-24447,21780,-24481,21743,-24514,21705,-24547,21667,-24581,21629,-24614,21592,-24647,21554,-24680,21516,-24713,21478,-24746,21440,-24779,21402,-24812,21364,-24845,21326,-24878,21288,-24910,21249,-24943,21211,-24975,21173,-25008,21134,-25040,21096,-25073,21057,-25105,21019,-25137,20980,-25170,20942,-25202,20903,-25234,20864,-25266,20825,-25298,20787,-25330,20748,-25362,20709,-25393,20670,-25425,20631,-25457,20592,-25488,20553,-25520,20513,-25551,20474,-25583,20435,-25614,20396,-25646,20356,-25677,20317,-25708,20277,-25739,20238,-25770,20198,-25801,20159,-25832,20119,-25863,20079,-25894,20040,-25925,20000,-25955,19960,-25986,19920,-26017,19880,-26047,19840,-26078,19800,-26108,19760,-26138,19720,-26169,19680,-26199,19640,-26229,19599,-26259,19559,-26289,19519,-26319,19478,-26349,19438,-26379,19397,-26409,19357,-26438,19316,-26468,19276,-26498,19235,-26527,19194,-26557,19154,-26586,19113,-26616,19072,-26645,19031,-26674,18990,-26703,18949,-26732,18908,-26761,18867,-26790,18826,-26819,18785,-26848,18744,-26877,18702,-26906,18661,-26934,18620,-26963,18578,-26991,18537,-27020,18495,-27048,18454,-27077,18412,-27105,18371,-27133,18329,-27161,18287,-27189,18246,-27217,18204,-27245,18162,-27273,18120,-27301,18078,-27329,18036,-27356,17994,-27384,17952,-27412,17910,-27439,17868,-27467,17826,-27494,17784,-27521,17742,-27549,17699,-27576,17657,-27603,17615,-27630,17572,-27657,17530,-27684,17487,-27711,17445,-27737,17402,-27764,17360,-27791,17317,-27817,17274,-27844,17232,-27870,17189,-27897,17146,-27923,17103,-27949,17060,-27976,17017,-28002,16974,-28028,16931,-28054,16888,-28080,16845,-28106,16802,-28132,16759,-28157,16716,-28183,16672,-28209,16629,-28234,16586,-28260,16542,-28285,16499,-28310,16455,-28336,16412,-28361,16368,-28386,16325,-28411,16281,-28436,16238,-28461,16194,-28486,16150,-28511,16107,-28535,16063,-28560,16019,-28585,15975,-28609,15931,-28634,15887,-28658,15843,-28682,15799,-28707,15755,-28731,15711,-28755,15667,-28779,15623,-28803,15579,-28827,15534,-28851,15490,-28875,15446,-28898,15401,-28922,15357,-28946,15313,-28969,15268,-28993,15224,-29016,15179,-29039,15135,-29063,15090,-29086,15045,-29109,15001,-29132,14956,-29155,14911,-29178,14866,-29201,14822,-29223,14777,-29246,14732,-29269,14687,-29291,14642,-29314,14597,-29336,14552,-29359,14507,-29381,14462,-29403,14417,-29425,14372,-29447,14326,-29469,14281,-29491,14236,-29513,14191,-29535,14145,-29557,14100,-29578,14055,-29600,14009,-29622,13964,-29643,13918,-29664,13873,-29686,13827,-29707,13782,-29728,13736,-29749,13690,-29770,13645,-29791,13599,-29812,13553,-29833,13507,-29854,13462,-29874,13416,-29895,13370,-29916,13324,-29936,13278,-29956,13232,-29977,13186,-29997,13140,-30017,13094,-30037,13048,-30057,13002,-30077,12956,-30097,12909,-30117,12863,-30137,12817,-30157,12771,-30176,12724,-30196,12678,-30215,12632,-30235,12585,-30254,12539,-30273,12492,-30292,12446,-30312,12399,-30331,12353,-30350,12306,-30369,12260,-30387,12213,-30406,12166,-30425,12120,-30443,12073,-30462,12026,-30481,11980,-30499,11933,-30517,11886,-30536,11839,-30554,11792,-30572,11745,-30590,11698,-30608,11651,-30626,11604,-30644,11557,-30661,11510,-30679,11463,-30697,11416,-30714,11369,-30732,11322,-30749,11275,-30767,11227,-30784,11180,-30801,11133,-30818,11086,-30835,11038,-30852,10991,-30869,10944,-30886,10896,-30903,10849,-30919,10801,-30936,10754,-30952,10706,-30969,10659,-30985,10611,-31002,10564,-31018,10516,-31034,10469,-31050,10421,-31066,10373,-31082,10326,-31098,10278,-31114,10230,-31129,10182,-31145,10135,-31161,10087,-31176,10039,-31192,9991,-31207,9943,-31222,9895,-31237,9847,-31253,9799,-31268,9751,-31283,9703,-31298,9655,-31312,9607,-31327,9559,-31342,9511,-31357,9463,-31371,9415,-31386,9367,-31400,9319,-31414,9270,-31429,9222,-31443,9174,-31457,9126,-31471,9077,-31485,9029,-31499,8981,-31513,8932,-31526,8884,-31540,8836,-31554,8787,-31567,8739,-31581,8690,-31594,8642,-31607,8593,-31620,8545,-31634,8496,-31647,8448,-31660,8399,-31673,8351,-31685,8302,-31698,8253,-31711,8205,-31724,8156,-31736,8107,-31749,8059,-31761,8010,-31773,7961,-31786,7912,-31798,7864,-31810,7815,-31822,7766,-31834,7717,-31846,7668,-31857,7619,-31869,7571,-31881,7522,-31892,7473,-31904,7424,-31915,7375,-31927,7326,-31938,7277,-31949,7228,-31960,7179,-31971,7130,-31982,7081,-31993,7032,-32004,6982,-32015,6933,-32025,6884,-32036,6835,-32047,6786,-32057,6737,-32067,6688,-32078,6638,-32088,6589,-32098,6540,-32108,6491,-32118,6441,-32128,6392,-32138,6343,-32148,6293,-32157,6244,-32167,6195,-32177,6145,-32186,6096,-32195,6047,-32205,5997,-32214,5948,-32223,5898,-32232,5849,-32241,5799,-32250,5750,-32259,5700,-32268,5651,-32276,5601,-32285,5552,-32294,5502,-32302,5453,-32311,5403,-32319,5354,-32327,5304,-32335,5254,-32343,5205,-32351,5155,-32359,5106,-32367,5056,-32375,5006,-32383,4957,-32390,4907,-32398,4857,-32405,4807,-32413,4758,-32420,4708,-32427,4658,-32435,4608,-32442,4559,-32449,4509,-32456,4459,-32463,4409,-32469,4359,-32476,4310,-32483,4260,-32489,4210,-32496,4160,-32502,4110,-32509,4060,-32515,4011,-32521,3961,-32527,3911,-32533,3861,-32539,3811,-32545,3761,-32551,3711,-32557,3661,-32562,3611,-32568,3561,-32573,3511,-32579,3461,-32584,3411,-32589,3361,-32595,3311,-32600,3261,-32605,3211,-32610,3161,-32615,3111,-32619,3061,-32624,3011,-32629,2961,-32633,2911,-32638,2861,-32642,2811,-32647,2761,-32651,2711,-32655,2661,-32659,2610,-32663,2560,-32667,2510,-32671,2460,-32675,2410,-32679,2360,-32682,2310,-32686,2260,-32689,2209,-32693,2159,-32696,2109,-32700,2059,-32703,2009,-32706,1959,-32709,1908,-32712,1858,-32715,1808,-32718,1758,-32720,1708,-32723,1658,-32726,1607,-32728,1557,-32730,1507,-32733,1457,-32735,1406,-32737,1356,-32739,1306,-32741,1256,-32743,1206,-32745,1155,-32747,1105,-32749,1055,-32751,1005,-32752,954,-32754,904,-32755,854,-32756,804,-32758,753,-32759,703,-32760,653,-32761,603,-32762,552,-32763,502,-32764,452,-32764,402,-32765,351,-32766,301,-32766,251,-32767,201,-32767,150,-32767,100,-32767,50,-32767,32767,0,32766,-101,32766,-202,32765,-302,32764,-403,32763,-503,32761,-604,32759,-704,32757,-805,32754,-905,32751,-1006,32748,-1106,32744,-1207,32740,-1307,32736,-1407,32732,-1508,32727,-1608,32722,-1709,32717,-1809,32711,-1909,32705,-2010,32699,-2110,32692,-2210,32685,-2311,32678,-2411,32670,-2511,32662,-2611,32654,-2712,32646,-2812,32637,-2912,32628,-3012,32618,-3112,32609,-3212,32599,-3312,32588,-3412,32578,-3512,32567,-3612,32556,-3712,32544,-3812,32532,-3912,32520,-4012,32508,-4111,32495,-4211,32482,-4311,32468,-4410,32455,-4510,32441,-4609,32426,-4709,32412,-4808,32397,-4908,32382,-5007,32366,-5107,32350,-5206,32334,-5305,32318,-5404,32301,-5503,32284,-5602,32267,-5701,32249,-5800,32231,-5899,32213,-5998,32194,-6097,32176,-6196,32156,-6294,32137,-6393,32117,-6492,32097,-6590,32077,-6689,32056,-6787,32035,-6885,32014,-6983,31992,-7082,31970,-7180,31948,-7278,31926,-7376,31903,-7474,31880,-7572,31856,-7669,31833,-7767,31809,-7865,31785,-7962,31760,-8060,31735,-8157,31710,-8254,31684,-8352,31659,-8449,31633,-8546,31606,-8643,31580,-8740,31553,-8837,31525,-8933,31498,-9030,31470,-9127,31442,-9223,31413,-9320,31385,-9416,31356,-9512,31326,-9608,31297,-9704,31267,-9800,31236,-9896,31206,-9992,31175,-10088,31144,-10183,31113,-10279,31081,-10374,31049,-10470,31017,-10565,30984,-10660,30951,-10755,30918,-10850,30885,-10945,30851,-11039,30817,-11134,30783,-11228,30748,-11323,30713,-11417,30678,-11511,30643,-11605,30607,-11699,30571,-11793,30535,-11887,30498,-11981,30461,-12074,30424,-12167,30386,-12261,30349,-12354,30311,-12447,30272,-12540,30234,-12633,30195,-12725,30156,-12818,30116,-12910,30076,-13003,30036,-13095,29996,-13187,29955,-13279,29915,-13371,29873,-13463,29832,-13554,29790,-13646,29748,-13737,29706,-13828,29663,-13919,29621,-14010,29577,-14101,29534,-14192,29490,-14282,29446,-14373,29402,-14463,29358,-14553,29313,-14643,29268,-14733,29222,-14823,29177,-14912,29131,-15002,29085,-15091,29038,-15180,28992,-15269,28945,-15358,28897,-15447,28850,-15535,28802,-15624,28754,-15712,28706,-15800,28657,-15888,28608,-15976,28559,-16064,28510,-16151,28460,-16239,28410,-16326,28360,-16413,28309,-16500,28259,-16587,28208,-16673,28156,-16760,28105,-16846,28053,-16932,28001,-17018,27948,-17104,27896,-17190,27843,-17275,27790,-17361,27736,-17446,27683,-17531,27629,-17616,27575,-17700,27520,-17785,27466,-17869,27411,-17953,27355,-18037,27300,-18121,27244,-18205,27188,-18288,27132,-18372,27076,-18455,27019,-18538,26962,-18621,26905,-18703,26847,-18786,26789,-18868,26731,-18950,26673,-19032,26615,-19114,26556,-19195,26497,-19277,26437,-19358,26378,-19439,26318,-19520,26258,-19600,26198,-19681,26137,-19761,26077,-19841,26016,-19921,25954,-20001,25893,-20080,25831,-20160,25769,-20239,25707,-20318,25645,-20397,25582,-20475,25519,-20554,25456,-20632,25392,-20710,25329,-20788,25265,-20865,25201,-20943,25136,-21020,25072,-21097,25007,-21174,24942,-21250,24877,-21327,24811,-21403,24745,-21479,24679,-21555,24613,-21630,24546,-21706,24480,-21781,24413,-21856,24346,-21931,24278,-22005,24211,-22080,24143,-22154,24075,-22228,24006,-22302,23938,-22375,23869,-22449,23800,-22522,23731,-22595,23661,-22667,23592,-22740,23522,-22812,23452,-22884,23382,-22956,23311,-23028,23240,-23099,23169,-23170,23098,-23241,23027,-23312,22955,-23383,22883,-23453,22811,-23523,22739,-23593,22666,-23662,22594,-23732,22521,-23801,22448,-23870,22374,-23939,22301,-24007,22227,-24076,22153,-24144,22079,-24212,22004,-24279,21930,-24347,21855,-24414,21780,-24481,21705,-24547,21629,-24614,21554,-24680,21478,-24746,21402,-24812,21326,-24878,21249,-24943,21173,-25008,21096,-25073,21019,-25137,20942,-25202,20864,-25266,20787,-25330,20709,-25393,20631,-25457,20553,-25520,20474,-25583,20396,-25646,20317,-25708,20238,-25770,20159,-25832,20079,-25894,20000,-25955,19920,-26017,19840,-26078,19760,-26138,19680,-26199,19599,-26259,19519,-26319,19438,-26379,19357,-26438,19276,-26498,19194,-26557,19113,-26616,19031,-26674,18949,-26732,18867,-26790,18785,-26848,18702,-26906,18620,-26963,18537,-27020,18454,-27077,18371,-27133,18287,-27189,18204,-27245,18120,-27301,18036,-27356,17952,-27412,17868,-27467,17784,-27521,17699,-27576,17615,-27630,17530,-27684,17445,-27737,17360,-27791,17274,-27844,17189,-27897,17103,-27949,17017,-28002,16931,-28054,16845,-28106,16759,-28157,16672,-28209,16586,-28260,16499,-28310,16412,-28361,16325,-28411,16238,-28461,16150,-28511,16063,-28560,15975,-28609,15887,-28658,15799,-28707,15711,-28755,15623,-28803,15534,-28851,15446,-28898,15357,-28946,15268,-28993,15179,-29039,15090,-29086,15001,-29132,14911,-29178,14822,-29223,14732,-29269,14642,-29314,14552,-29359,14462,-29403,14372,-29447,14281,-29491,14191,-29535,14100,-29578,14009,-29622,13918,-29664,13827,-29707,13736,-29749,13645,-29791,13553,-29833,13462,-29874,13370,-29916,13278,-29956,13186,-29997,13094,-30037,13002,-30077,12909,-30117,12817,-30157,12724,-30196,12632,-30235,12539,-30273,12446,-30312,12353,-30350,12260,-30387,12166,-30425,12073,-30462,11980,-30499,11886,-30536,11792,-30572,11698,-30608,11604,-30644,11510,-30679,11416,-30714,11322,-30749,11227,-30784,11133,-30818,11038,-30852,10944,-30886,10849,-30919,10754,-30952,10659,-30985,10564,-31018,10469,-31050,10373,-31082,10278,-31114,10182,-31145,10087,-31176,9991,-31207,9895,-31237,9799,-31268,9703,-31298,9607,-31327,9511,-31357,9415,-31386,9319,-31414,9222,-31443,9126,-31471,9029,-31499,8932,-31526,8836,-31554,8739,-31581,8642,-31607,8545,-31634,8448,-31660,8351,-31685,8253,-31711,8156,-31736,8059,-31761,7961,-31786,7864,-31810,7766,-31834,7668,-31857,7571,-31881,7473,-31904,7375,-31927,7277,-31949,7179,-31971,7081,-31993,6982,-32015,6884,-32036,6786,-32057,6688,-32078,6589,-32098,6491,-32118,6392,-32138,6293,-32157,6195,-32177,6096,-32195,5997,-32214,5898,-32232,5799,-32250,5700,-32268,5601,-32285,5502,-32302,5403,-32319,5304,-32335,5205,-32351,5106,-32367,5006,-32383,4907,-32398,4807,-32413,4708,-32427,4608,-32442,4509,-32456,4409,-32469,4310,-32483,4210,-32496,4110,-32509,4011,-32521,3911,-32533,3811,-32545,3711,-32557,3611,-32568,3511,-32579,3411,-32589,3311,-32600,3211,-32610,3111,-32619,3011,-32629,2911,-32638,2811,-32647,2711,-32655,2610,-32663,2510,-32671,2410,-32679,2310,-32686,2209,-32693,2109,-32700,2009,-32706,1908,-32712,1808,-32718,1708,-32723,1607,-32728,1507,-32733,1406,-32737,1306,-32741,1206,-32745,1105,-32749,1005,-32752,904,-32755,804,-32758,703,-32760,603,-32762,502,-32764,402,-32765,301,-32766,201,-32767,100,-32767,0,-32767,-101,-32767,-202,-32767,-302,-32766,-403,-32765,-503,-32764,-604,-32762,-704,-32760,-805,-32758,-905,-32755,-1006,-32752,-1106,-32749,-1207,-32745,-1307,-32741,-1407,-32737,-1508,-32733,-1608,-32728,-1709,-32723,-1809,-32718,-1909,-32712,-2010,-32706,-2110,-32700,-2210,-32693,-2311,-32686,-2411,-32679,-2511,-32671,-2611,-32663,-2712,-32655,-2812,-32647,-2912,-32638,-3012,-32629,-3112,-32619,-3212,-32610,-3312,-32600,-3412,-32589,-3512,-32579,-3612,-32568,-3712,-32557,-3812,-32545,-3912,-32533,-4012,-32521,-4111,-32509,-4211,-32496,-4311,-32483,-4410,-32469,-4510,-32456,-4609,-32442,-4709,-32427,-4808,-32413,-4908,-32398,-5007,-32383,-5107,-32367,-5206,-32351,-5305,-32335,-5404,-32319,-5503,-32302,-5602,-32285,-5701,-32268,-5800,-32250,-5899,-32232,-5998,-32214,-6097,-32195,-6196,-32177,-6294,-32157,-6393,-32138,-6492,-32118,-6590,-32098,-6689,-32078,-6787,-32057,-6885,-32036,-6983,-32015,-7082,-31993,-7180,-31971,-7278,-31949,-7376,-31927,-7474,-31904,-7572,-31881,-7669,-31857,-7767,-31834,-7865,-31810,-7962,-31786,-8060,-31761,-8157,-31736,-8254,-31711,-8352,-31685,-8449,-31660,-8546,-31634,-8643,-31607,-8740,-31581,-8837,-31554,-8933,-31526,-9030,-31499,-9127,-31471,-9223,-31443,-9320,-31414,-9416,-31386,-9512,-31357,-9608,-31327,-9704,-31298,-9800,-31268,-9896,-31237,-9992,-31207,-10088,-31176,-10183,-31145,-10279,-31114,-10374,-31082,-10470,-31050,-10565,-31018,-10660,-30985,-10755,-30952,-10850,-30919,-10945,-30886,-11039,-30852,-11134,-30818,-11228,-30784,-11323,-30749,-11417,-30714,-11511,-30679,-11605,-30644,-11699,-30608,-11793,-30572,-11887,-30536,-11981,-30499,-12074,-30462,-12167,-30425,-12261,-30387,-12354,-30350,-12447,-30312,-12540,-30273,-12633,-30235,-12725,-30196,-12818,-30157,-12910,-30117,-13003,-30077,-13095,-30037,-13187,-29997,-13279,-29956,-13371,-29916,-13463,-29874,-13554,-29833,-13646,-29791,-13737,-29749,-13828,-29707,-13919,-29664,-14010,-29622,-14101,-29578,-14192,-29535,-14282,-29491,-14373,-29447,-14463,-29403,-14553,-29359,-14643,-29314,-14733,-29269,-14823,-29223,-14912,-29178,-15002,-29132,-15091,-29086,-15180,-29039,-15269,-28993,-15358,-28946,-15447,-28898,-15535,-28851,-15624,-28803,-15712,-28755,-15800,-28707,-15888,-28658,-15976,-28609,-16064,-28560,-16151,-28511,-16239,-28461,-16326,-28411,-16413,-28361,-16500,-28310,-16587,-28260,-16673,-28209,-16760,-28157,-16846,-28106,-16932,-28054,-17018,-28002,-17104,-27949,-17190,-27897,-17275,-27844,-17361,-27791,-17446,-27737,-17531,-27684,-17616,-27630,-17700,-27576,-17785,-27521,-17869,-27467,-17953,-27412,-18037,-27356,-18121,-27301,-18205,-27245,-18288,-27189,-18372,-27133,-18455,-27077,-18538,-27020,-18621,-26963,-18703,-26906,-18786,-26848,-18868,-26790,-18950,-26732,-19032,-26674,-19114,-26616,-19195,-26557,-19277,-26498,-19358,-26438,-19439,-26379,-19520,-26319,-19600,-26259,-19681,-26199,-19761,-26138,-19841,-26078,-19921,-26017,-20001,-25955,-20080,-25894,-20160,-25832,-20239,-25770,-20318,-25708,-20397,-25646,-20475,-25583,-20554,-25520,-20632,-25457,-20710,-25393,-20788,-25330,-20865,-25266,-20943,-25202,-21020,-25137,-21097,-25073,-21174,-25008,-21250,-24943,-21327,-24878,-21403,-24812,-21479,-24746,-21555,-24680,-21630,-24614,-21706,-24547,-21781,-24481,-21856,-24414,-21931,-24347,-22005,-24279,-22080,-24212,-22154,-24144,-22228,-24076,-22302,-24007,-22375,-23939,-22449,-23870,-22522,-23801,-22595,-23732,-22667,-23662,-22740,-23593,-22812,-23523,-22884,-23453,-22956,-23383,-23028,-23312,-23099,-23241,-23170,-23170,-23241,-23099,-23312,-23028,-23383,-22956,-23453,-22884,-23523,-22812,-23593,-22740,-23662,-22667,-23732,-22595,-23801,-22522,-23870,-22449,-23939,-22375,-24007,-22302,-24076,-22228,-24144,-22154,-24212,-22080,-24279,-22005,-24347,-21931,-24414,-21856,-24481,-21781,-24547,-21706,-24614,-21630,-24680,-21555,-24746,-21479,-24812,-21403,-24878,-21327,-24943,-21250,-25008,-21174,-25073,-21097,-25137,-21020,-25202,-20943,-25266,-20865,-25330,-20788,-25393,-20710,-25457,-20632,-25520,-20554,-25583,-20475,-25646,-20397,-25708,-20318,-25770,-20239,-25832,-20160,-25894,-20080,-25955,-20001,-26017,-19921,-26078,-19841,-26138,-19761,-26199,-19681,-26259,-19600,-26319,-19520,-26379,-19439,-26438,-19358,-26498,-19277,-26557,-19195,-26616,-19114,-26674,-19032,-26732,-18950,-26790,-18868,-26848,-18786,-26906,-18703,-26963,-18621,-27020,-18538,-27077,-18455,-27133,-18372,-27189,-18288,-27245,-18205,-27301,-18121,-27356,-18037,-27412,-17953,-27467,-17869,-27521,-17785,-27576,-17700,-27630,-17616,-27684,-17531,-27737,-17446,-27791,-17361,-27844,-17275,-27897,-17190,-27949,-17104,-28002,-17018,-28054,-16932,-28106,-16846,-28157,-16760,-28209,-16673,-28260,-16587,-28310,-16500,-28361,-16413,-28411,-16326,-28461,-16239,-28511,-16151,-28560,-16064,-28609,-15976,-28658,-15888,-28707,-15800,-28755,-15712,-28803,-15624,-28851,-15535,-28898,-15447,-28946,-15358,-28993,-15269,-29039,-15180,-29086,-15091,-29132,-15002,-29178,-14912,-29223,-14823,-29269,-14733,-29314,-14643,-29359,-14553,-29403,-14463,-29447,-14373,-29491,-14282,-29535,-14192,-29578,-14101,-29622,-14010,-29664,-13919,-29707,-13828,-29749,-13737,-29791,-13646,-29833,-13554,-29874,-13463,-29916,-13371,-29956,-13279,-29997,-13187,-30037,-13095,-30077,-13003,-30117,-12910,-30157,-12818,-30196,-12725,-30235,-12633,-30273,-12540,-30312,-12447,-30350,-12354,-30387,-12261,-30425,-12167,-30462,-12074,-30499,-11981,-30536,-11887,-30572,-11793,-30608,-11699,-30644,-11605,-30679,-11511,-30714,-11417,-30749,-11323,-30784,-11228,-30818,-11134,-30852,-11039,-30886,-10945,-30919,-10850,-30952,-10755,-30985,-10660,-31018,-10565,-31050,-10470,-31082,-10374,-31114,-10279,-31145,-10183,-31176,-10088,-31207,-9992,-31237,-9896,-31268,-9800,-31298,-9704,-31327,-9608,-31357,-9512,-31386,-9416,-31414,-9320,-31443,-9223,-31471,-9127,-31499,-9030,-31526,-8933,-31554,-8837,-31581,-8740,-31607,-8643,-31634,-8546,-31660,-8449,-31685,-8352,-31711,-8254,-31736,-8157,-31761,-8060,-31786,-7962,-31810,-7865,-31834,-7767,-31857,-7669,-31881,-7572,-31904,-7474,-31927,-7376,-31949,-7278,-31971,-7180,-31993,-7082,-32015,-6983,-32036,-6885,-32057,-6787,-32078,-6689,-32098,-6590,-32118,-6492,-32138,-6393,-32157,-6294,-32177,-6196,-32195,-6097,-32214,-5998,-32232,-5899,-32250,-5800,-32268,-5701,-32285,-5602,-32302,-5503,-32319,-5404,-32335,-5305,-32351,-5206,-32367,-5107,-32383,-5007,-32398,-4908,-32413,-4808,-32427,-4709,-32442,-4609,-32456,-4510,-32469,-4410,-32483,-4311,-32496,-4211,-32509,-4111,-32521,-4012,-32533,-3912,-32545,-3812,-32557,-3712,-32568,-3612,-32579,-3512,-32589,-3412,-32600,-3312,-32610,-3212,-32619,-3112,-32629,-3012,-32638,-2912,-32647,-2812,-32655,-2712,-32663,-2611,-32671,-2511,-32679,-2411,-32686,-2311,-32693,-2210,-32700,-2110,-32706,-2010,-32712,-1909,-32718,-1809,-32723,-1709,-32728,-1608,-32733,-1508,-32737,-1407,-32741,-1307,-32745,-1207,-32749,-1106,-32752,-1006,-32755,-905,-32758,-805,-32760,-704,-32762,-604,-32764,-503,-32765,-403,-32766,-302,-32767,-202,-32767,-101,32767,0,32766,-151,32765,-302,32763,-453,32761,-604,32758,-754,32754,-905,32750,-1056,32744,-1207,32738,-1357,32732,-1508,32725,-1659,32717,-1809,32708,-1960,32699,-2110,32688,-2261,32678,-2411,32666,-2561,32654,-2712,32641,-2862,32628,-3012,32614,-3162,32599,-3312,32583,-3462,32567,-3612,32550,-3762,32532,-3912,32514,-4061,32495,-4211,32475,-4360,32455,-4510,32434,-4659,32412,-4808,32389,-4958,32366,-5107,32342,-5255,32318,-5404,32293,-5553,32267,-5701,32240,-5850,32213,-5998,32185,-6146,32156,-6294,32127,-6442,32097,-6590,32066,-6738,32035,-6885,32003,-7033,31970,-7180,31937,-7327,31903,-7474,31868,-7620,31833,-7767,31797,-7913,31760,-8060,31723,-8206,31684,-8352,31646,-8497,31606,-8643,31566,-8788,31525,-8933,31484,-9078,31442,-9223,31399,-9368,31356,-9512,31311,-9656,31267,-9800,31221,-9944,31175,-10088,31128,-10231,31081,-10374,31033,-10517,30984,-10660,30935,-10802,30885,-10945,30834,-11087,30783,-11228,30731,-11370,30678,-11511,30625,-11652,30571,-11793,30516,-11934,30461,-12074,30405,-12214,30349,-12354,30291,-12493,30234,-12633,30175,-12772,30116,-12910,30056,-13049,29996,-13187,29935,-13325,29873,-13463,29811,-13600,29748,-13737,29685,-13874,29621,-14010,29556,-14146,29490,-14282,29424,-14418,29358,-14553,29290,-14688,29222,-14823,29154,-14957,29085,-15091,29015,-15225,28945,-15358,28874,-15491,28802,-15624,28730,-15756,28657,-15888,28584,-16020,28510,-16151,28435,-16282,28360,-16413,28284,-16543,28208,-16673,28131,-16803,28053,-16932,27975,-17061,27896,-17190,27816,-17318,27736,-17446,27656,-17573,27575,-17700,27493,-17827,27411,-17953,27328,-18079,27244,-18205,27160,-18330,27076,-18455,26990,-18579,26905,-18703,26818,-18827,26731,-18950,26644,-19073,26556,-19195,26467,-19317,26378,-19439,26288,-19560,26198,-19681,26107,-19801,26016,-19921,25924,-20041,25831,-20160,25738,-20278,25645,-20397,25550,-20514,25456,-20632,25361,-20749,25265,-20865,25169,-20981,25072,-21097,24974,-21212,24877,-21327,24778,-21441,24679,-21555,24580,-21668,24480,-21781,24379,-21894,24278,-22005,24177,-22117,24075,-22228,23972,-22339,23869,-22449,23766,-22558,23661,-22667,23557,-22776,23452,-22884,23346,-22992,23240,-23099,23134,-23206,23027,-23312,22919,-23418,22811,-23523,22703,-23628,22594,-23732,22484,-23836,22374,-23939,22264,-24042,22153,-24144,22042,-24245,21930,-24347,21818,-24447,21705,-24547,21592,-24647,21478,-24746,21364,-24845,21249,-24943,21134,-25040,21019,-25137,20903,-25234,20787,-25330,20670,-25425,20553,-25520,20435,-25614,20317,-25708,20198,-25801,20079,-25894,19960,-25986,19840,-26078,19720,-26169,19599,-26259,19478,-26349,19357,-26438,19235,-26527,19113,-26616,18990,-26703,18867,-26790,18744,-26877,18620,-26963,18495,-27048,18371,-27133,18246,-27217,18120,-27301,17994,-27384,17868,-27467,17742,-27549,17615,-27630,17487,-27711,17360,-27791,17232,-27870,17103,-27949,16974,-28028,16845,-28106,16716,-28183,16586,-28260,16455,-28336,16325,-28411,16194,-28486,16063,-28560,15931,-28634,15799,-28707,15667,-28779,15534,-28851,15401,-28922,15268,-28993,15135,-29063,15001,-29132,14866,-29201,14732,-29269,14597,-29336,14462,-29403,14326,-29469,14191,-29535,14055,-29600,13918,-29664,13782,-29728,13645,-29791,13507,-29854,13370,-29916,13232,-29977,13094,-30037,12956,-30097,12817,-30157,12678,-30215,12539,-30273,12399,-30331,12260,-30387,12120,-30443,11980,-30499,11839,-30554,11698,-30608,11557,-30661,11416,-30714,11275,-30767,11133,-30818,10991,-30869,10849,-30919,10706,-30969,10564,-31018,10421,-31066,10278,-31114,10135,-31161,9991,-31207,9847,-31253,9703,-31298,9559,-31342,9415,-31386,9270,-31429,9126,-31471,8981,-31513,8836,-31554,8690,-31594,8545,-31634,8399,-31673,8253,-31711,8107,-31749,7961,-31786,7815,-31822,7668,-31857,7522,-31892,7375,-31927,7228,-31960,7081,-31993,6933,-32025,6786,-32057,6638,-32088,6491,-32118,6343,-32148,6195,-32177,6047,-32205,5898,-32232,5750,-32259,5601,-32285,5453,-32311,5304,-32335,5155,-32359,5006,-32383,4857,-32405,4708,-32427,4559,-32449,4409,-32469,4260,-32489,4110,-32509,3961,-32527,3811,-32545,3661,-32562,3511,-32579,3361,-32595,3211,-32610,3061,-32624,2911,-32638,2761,-32651,2610,-32663,2460,-32675,2310,-32686,2159,-32696,2009,-32706,1858,-32715,1708,-32723,1557,-32730,1406,-32737,1256,-32743,1105,-32749,954,-32754,804,-32758,653,-32761,502,-32764,351,-32766,201,-32767,50,-32767,-101,-32767,-252,-32767,-403,-32765,-553,-32763,-704,-32760,-855,-32756,-1006,-32752,-1156,-32747,-1307,-32741,-1458,-32735,-1608,-32728,-1759,-32720,-1909,-32712,-2060,-32703,-2210,-32693,-2361,-32682,-2511,-32671,-2662,-32659,-2812,-32647,-2962,-32633,-3112,-32619,-3262,-32605,-3412,-32589,-3562,-32573,-3712,-32557,-3862,-32539,-4012,-32521,-4161,-32502,-4311,-32483,-4460,-32463,-4609,-32442,-4759,-32420,-4908,-32398,-5057,-32375,-5206,-32351,-5355,-32327,-5503,-32302,-5652,-32276,-5800,-32250,-5949,-32223,-6097,-32195,-6245,-32167,-6393,-32138,-6541,-32108,-6689,-32078,-6836,-32047,-6983,-32015,-7131,-31982,-7278,-31949,-7425,-31915,-7572,-31881,-7718,-31846,-7865,-31810,-8011,-31773,-8157,-31736,-8303,-31698,-8449,-31660,-8594,-31620,-8740,-31581,-8885,-31540,-9030,-31499,-9175,-31457,-9320,-31414,-9464,-31371,-9608,-31327,-9752,-31283,-9896,-31237,-10040,-31192,-10183,-31145,-10327,-31098,-10470,-31050,-10612,-31002,-10755,-30952,-10897,-30903,-11039,-30852,-11181,-30801,-11323,-30749,-11464,-30697,-11605,-30644,-11746,-30590,-11887,-30536,-12027,-30481,-12167,-30425,-12307,-30369,-12447,-30312,-12586,-30254,-12725,-30196,-12864,-30137,-13003,-30077,-13141,-30017,-13279,-29956,-13417,-29895,-13554,-29833,-13691,-29770,-13828,-29707,-13965,-29643,-14101,-29578,-14237,-29513,-14373,-29447,-14508,-29381,-14643,-29314,-14778,-29246,-14912,-29178,-15046,-29109,-15180,-29039,-15314,-28969,-15447,-28898,-15580,-28827,-15712,-28755,-15844,-28682,-15976,-28609,-16108,-28535,-16239,-28461,-16369,-28386,-16500,-28310,-16630,-28234,-16760,-28157,-16889,-28080,-17018,-28002,-17147,-27923,-17275,-27844,-17403,-27764,-17531,-27684,-17658,-27603,-17785,-27521,-17911,-27439,-18037,-27356,-18163,-27273,-18288,-27189,-18413,-27105,-18538,-27020,-18662,-26934,-18786,-26848,-18909,-26761,-19032,-26674,-19155,-26586,-19277,-26498,-19398,-26409,-19520,-26319,-19641,-26229,-19761,-26138,-19881,-26047,-20001,-25955,-20120,-25863,-20239,-25770,-20357,-25677,-20475,-25583,-20593,-25488,-20710,-25393,-20826,-25298,-20943,-25202,-21058,-25105,-21174,-25008,-21289,-24910,-21403,-24812,-21517,-24713,-21630,-24614,-21744,-24514,-21856,-24414,-21968,-24313,-22080,-24212,-22191,-24110,-22302,-24007,-22412,-23904,-22522,-23801,-22631,-23697,-22740,-23593,-22848,-23488,-22956,-23383,-23063,-23277,-23170,-23170,-23277,-23063,-23383,-22956,-23488,-22848,-23593,-22740,-23697,-22631,-23801,-22522,-23904,-22412,-24007,-22302,-24110,-22191,-24212,-22080,-24313,-21968,-24414,-21856,-24514,-21744,-24614,-21630,-24713,-21517,-24812,-21403,-24910,-21289,-25008,-21174,-25105,-21058,-25202,-20943,-25298,-20826,-25393,-20710,-25488,-20593,-25583,-20475,-25677,-20357,-25770,-20239,-25863,-20120,-25955,-20001,-26047,-19881,-26138,-19761,-26229,-19641,-26319,-19520,-26409,-19398,-26498,-19277,-26586,-19155,-26674,-19032,-26761,-18909,-26848,-18786,-26934,-18662,-27020,-18538,-27105,-18413,-27189,-18288,-27273,-18163,-27356,-18037,-27439,-17911,-27521,-17785,-27603,-17658,-27684,-17531,-27764,-17403,-27844,-17275,-27923,-17147,-28002,-17018,-28080,-16889,-28157,-16760,-28234,-16630,-28310,-16500,-28386,-16369,-28461,-16239,-28535,-16108,-28609,-15976,-28682,-15844,-28755,-15712,-28827,-15580,-28898,-15447,-28969,-15314,-29039,-15180,-29109,-15046,-29178,-14912,-29246,-14778,-29314,-14643,-29381,-14508,-29447,-14373,-29513,-14237,-29578,-14101,-29643,-13965,-29707,-13828,-29770,-13691,-29833,-13554,-29895,-13417,-29956,-13279,-30017,-13141,-30077,-13003,-30137,-12864,-30196,-12725,-30254,-12586,-30312,-12447,-30369,-12307,-30425,-12167,-30481,-12027,-30536,-11887,-30590,-11746,-30644,-11605,-30697,-11464,-30749,-11323,-30801,-11181,-30852,-11039,-30903,-10897,-30952,-10755,-31002,-10612,-31050,-10470,-31098,-10327,-31145,-10183,-31192,-10040,-31237,-9896,-31283,-9752,-31327,-9608,-31371,-9464,-31414,-9320,-31457,-9175,-31499,-9030,-31540,-8885,-31581,-8740,-31620,-8594,-31660,-8449,-31698,-8303,-31736,-8157,-31773,-8011,-31810,-7865,-31846,-7718,-31881,-7572,-31915,-7425,-31949,-7278,-31982,-7131,-32015,-6983,-32047,-6836,-32078,-6689,-32108,-6541,-32138,-6393,-32167,-6245,-32195,-6097,-32223,-5949,-32250,-5800,-32276,-5652,-32302,-5503,-32327,-5355,-32351,-5206,-32375,-5057,-32398,-4908,-32420,-4759,-32442,-4609,-32463,-4460,-32483,-4311,-32502,-4161,-32521,-4012,-32539,-3862,-32557,-3712,-32573,-3562,-32589,-3412,-32605,-3262,-32619,-3112,-32633,-2962,-32647,-2812,-32659,-2662,-32671,-2511,-32682,-2361,-32693,-2210,-32703,-2060,-32712,-1909,-32720,-1759,-32728,-1608,-32735,-1458,-32741,-1307,-32747,-1156,-32752,-1006,-32756,-855,-32760,-704,-32763,-553,-32765,-403,-32767,-252,-32767,-101,-32767,50,-32767,201,-32766,351,-32764,502,-32761,653,-32758,804,-32754,954,-32749,1105,-32743,1256,-32737,1406,-32730,1557,-32723,1708,-32715,1858,-32706,2009,-32696,2159,-32686,2310,-32675,2460,-32663,2610,-32651,2761,-32638,2911,-32624,3061,-32610,3211,-32595,3361,-32579,3511,-32562,3661,-32545,3811,-32527,3961,-32509,4110,-32489,4260,-32469,4409,-32449,4559,-32427,4708,-32405,4857,-32383,5006,-32359,5155,-32335,5304,-32311,5453,-32285,5601,-32259,5750,-32232,5898,-32205,6047,-32177,6195,-32148,6343,-32118,6491,-32088,6638,-32057,6786,-32025,6933,-31993,7081,-31960,7228,-31927,7375,-31892,7522,-31857,7668,-31822,7815,-31786,7961,-31749,8107,-31711,8253,-31673,8399,-31634,8545,-31594,8690,-31554,8836,-31513,8981,-31471,9126,-31429,9270,-31386,9415,-31342,9559,-31298,9703,-31253,9847,-31207,9991,-31161,10135,-31114,10278,-31066,10421,-31018,10564,-30969,10706,-30919,10849,-30869,10991,-30818,11133,-30767,11275,-30714,11416,-30661,11557,-30608,11698,-30554,11839,-30499,11980,-30443,12120,-30387,12260,-30331,12399,-30273,12539,-30215,12678,-30157,12817,-30097,12956,-30037,13094,-29977,13232,-29916,13370,-29854,13507,-29791,13645,-29728,13782,-29664,13918,-29600,14055,-29535,14191,-29469,14326,-29403,14462,-29336,14597,-29269,14732,-29201,14866,-29132,15001,-29063,15135,-28993,15268,-28922,15401,-28851,15534,-28779,15667,-28707,15799,-28634,15931,-28560,16063,-28486,16194,-28411,16325,-28336,16455,-28260,16586,-28183,16716,-28106,16845,-28028,16974,-27949,17103,-27870,17232,-27791,17360,-27711,17487,-27630,17615,-27549,17742,-27467,17868,-27384,17994,-27301,18120,-27217,18246,-27133,18371,-27048,18495,-26963,18620,-26877,18744,-26790,18867,-26703,18990,-26616,19113,-26527,19235,-26438,19357,-26349,19478,-26259,19599,-26169,19720,-26078,19840,-25986,19960,-25894,20079,-25801,20198,-25708,20317,-25614,20435,-25520,20553,-25425,20670,-25330,20787,-25234,20903,-25137,21019,-25040,21134,-24943,21249,-24845,21364,-24746,21478,-24647,21592,-24547,21705,-24447,21818,-24347,21930,-24245,22042,-24144,22153,-24042,22264,-23939,22374,-23836,22484,-23732,22594,-23628,22703,-23523,22811,-23418,22919,-23312,23027,-23206,23134,-23099,23240,-22992,23346,-22884,23452,-22776,23557,-22667,23661,-22558,23766,-22449,23869,-22339,23972,-22228,24075,-22117,24177,-22005,24278,-21894,24379,-21781,24480,-21668,24580,-21555,24679,-21441,24778,-21327,24877,-21212,24974,-21097,25072,-20981,25169,-20865,25265,-20749,25361,-20632,25456,-20514,25550,-20397,25645,-20278,25738,-20160,25831,-20041,25924,-19921,26016,-19801,26107,-19681,26198,-19560,26288,-19439,26378,-19317,26467,-19195,26556,-19073,26644,-18950,26731,-18827,26818,-18703,26905,-18579,26990,-18455,27076,-18330,27160,-18205,27244,-18079,27328,-17953,27411,-17827,27493,-17700,27575,-17573,27656,-17446,27736,-17318,27816,-17190,27896,-17061,27975,-16932,28053,-16803,28131,-16673,28208,-16543,28284,-16413,28360,-16282,28435,-16151,28510,-16020,28584,-15888,28657,-15756,28730,-15624,28802,-15491,28874,-15358,28945,-15225,29015,-15091,29085,-14957,29154,-14823,29222,-14688,29290,-14553,29358,-14418,29424,-14282,29490,-14146,29556,-14010,29621,-13874,29685,-13737,29748,-13600,29811,-13463,29873,-13325,29935,-13187,29996,-13049,30056,-12910,30116,-12772,30175,-12633,30234,-12493,30291,-12354,30349,-12214,30405,-12074,30461,-11934,30516,-11793,30571,-11652,30625,-11511,30678,-11370,30731,-11228,30783,-11087,30834,-10945,30885,-10802,30935,-10660,30984,-10517,31033,-10374,31081,-10231,31128,-10088,31175,-9944,31221,-9800,31267,-9656,31311,-9512,31356,-9368,31399,-9223,31442,-9078,31484,-8933,31525,-8788,31566,-8643,31606,-8497,31646,-8352,31684,-8206,31723,-8060,31760,-7913,31797,-7767,31833,-7620,31868,-7474,31903,-7327,31937,-7180,31970,-7033,32003,-6885,32035,-6738,32066,-6590,32097,-6442,32127,-6294,32156,-6146,32185,-5998,32213,-5850,32240,-5701,32267,-5553,32293,-5404,32318,-5255,32342,-5107,32366,-4958,32389,-4808,32412,-4659,32434,-4510,32455,-4360,32475,-4211,32495,-4061,32514,-3912,32532,-3762,32550,-3612,32567,-3462,32583,-3312,32599,-3162,32614,-3012,32628,-2862,32641,-2712,32654,-2561,32666,-2411,32678,-2261,32688,-2110,32699,-1960,32708,-1809,32717,-1659,32725,-1508,32732,-1357,32738,-1207,32744,-1056,32750,-905,32754,-754,32758,-604,32761,-453,32763,-302,32765,-151,32766}; diff --git a/openair1/PHY/TOOLS/twiddles8192.h b/openair1/PHY/TOOLS/twiddles8192.h deleted file mode 100644 index 6b76619013387f85ddac1292a29fa5b39fff4ecd..0000000000000000000000000000000000000000 --- a/openair1/PHY/TOOLS/twiddles8192.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The OpenAirInterface Software Alliance licenses this file to You under - * the OAI Public License, Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.openairinterface.org/?page_id=698 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *------------------------------------------------------------------------------- - * For more information about the OpenAirInterface (OAI) Software Alliance: - * contact@openairinterface.org - */ - -/* Twiddles generated with -twa = floor(32767*exp(-sqrt(-1)*2*pi*(0:4095)/8192)); -twa2 = zeros(1,2*4096); -twa2(1:2:end) = real(twa); -twa2(2:2:end) = imag(twa); -fd=fopen("twiddle_tmp.txt","w"); -fprintf(fd,"static int16_t tw8192[4096*2] = {"); -fprintf(fd,"%d,",twa2(1:(4096*2)-1)); -fprintf(fd,"%d};\n",twa2(end)); -fclose(fd); -*/ -static int16_t tw8192[4096*2] = {32767,0,32766,-26,32766,-51,32766,-76,32766,-101,32766,-126,32766,-151,32766,-176,32766,-202,32766,-227,32766,-252,32765,-277,32765,-302,32765,-327,32765,-352,32764,-377,32764,-403,32764,-428,32763,-453,32763,-478,32763,-503,32762,-528,32762,-553,32761,-579,32761,-604,32760,-629,32760,-654,32759,-679,32759,-704,32758,-729,32758,-754,32757,-780,32757,-805,32756,-830,32755,-855,32755,-880,32754,-905,32753,-930,32753,-955,32752,-981,32751,-1006,32750,-1031,32750,-1056,32749,-1081,32748,-1106,32747,-1131,32746,-1156,32745,-1181,32744,-1207,32743,-1232,32742,-1257,32741,-1282,32740,-1307,32739,-1332,32738,-1357,32737,-1382,32736,-1407,32735,-1433,32734,-1458,32733,-1483,32732,-1508,32731,-1533,32729,-1558,32728,-1583,32727,-1608,32726,-1633,32725,-1659,32723,-1684,32722,-1709,32721,-1734,32719,-1759,32718,-1784,32717,-1809,32715,-1834,32714,-1859,32712,-1884,32711,-1909,32709,-1935,32708,-1960,32706,-1985,32705,-2010,32703,-2035,32702,-2060,32700,-2085,32699,-2110,32697,-2135,32695,-2160,32694,-2185,32692,-2210,32690,-2236,32688,-2261,32687,-2286,32685,-2311,32683,-2336,32681,-2361,32680,-2386,32678,-2411,32676,-2436,32674,-2461,32672,-2486,32670,-2511,32668,-2536,32666,-2561,32664,-2586,32662,-2611,32660,-2637,32658,-2662,32656,-2687,32654,-2712,32652,-2737,32650,-2762,32648,-2787,32646,-2812,32644,-2837,32641,-2862,32639,-2887,32637,-2912,32635,-2937,32632,-2962,32630,-2987,32628,-3012,32625,-3037,32623,-3062,32621,-3087,32618,-3112,32616,-3137,32614,-3162,32611,-3187,32609,-3212,32606,-3237,32604,-3262,32601,-3287,32599,-3312,32596,-3337,32594,-3362,32591,-3387,32588,-3412,32586,-3437,32583,-3462,32580,-3487,32578,-3512,32575,-3537,32572,-3562,32570,-3587,32567,-3612,32564,-3637,32561,-3662,32558,-3687,32556,-3712,32553,-3737,32550,-3762,32547,-3787,32544,-3812,32541,-3837,32538,-3862,32535,-3887,32532,-3912,32529,-3937,32526,-3962,32523,-3987,32520,-4012,32517,-4036,32514,-4061,32511,-4086,32508,-4111,32504,-4136,32501,-4161,32498,-4186,32495,-4211,32492,-4236,32488,-4261,32485,-4286,32482,-4311,32478,-4336,32475,-4360,32472,-4385,32468,-4410,32465,-4435,32462,-4460,32458,-4485,32455,-4510,32451,-4535,32448,-4560,32444,-4585,32441,-4609,32437,-4634,32434,-4659,32430,-4684,32426,-4709,32423,-4734,32419,-4759,32416,-4784,32412,-4808,32408,-4833,32404,-4858,32401,-4883,32397,-4908,32393,-4933,32389,-4958,32386,-4982,32382,-5007,32378,-5032,32374,-5057,32370,-5082,32366,-5107,32362,-5131,32358,-5156,32354,-5181,32350,-5206,32346,-5231,32342,-5255,32338,-5280,32334,-5305,32330,-5330,32326,-5355,32322,-5379,32318,-5404,32314,-5429,32310,-5454,32305,-5479,32301,-5503,32297,-5528,32293,-5553,32288,-5578,32284,-5602,32280,-5627,32275,-5652,32271,-5677,32267,-5701,32262,-5726,32258,-5751,32254,-5776,32249,-5800,32245,-5825,32240,-5850,32236,-5875,32231,-5899,32227,-5924,32222,-5949,32218,-5973,32213,-5998,32208,-6023,32204,-6048,32199,-6072,32194,-6097,32190,-6122,32185,-6146,32180,-6171,32176,-6196,32171,-6220,32166,-6245,32161,-6270,32156,-6294,32152,-6319,32147,-6344,32142,-6368,32137,-6393,32132,-6418,32127,-6442,32122,-6467,32117,-6492,32112,-6516,32107,-6541,32102,-6565,32097,-6590,32092,-6615,32087,-6639,32082,-6664,32077,-6689,32072,-6713,32066,-6738,32061,-6762,32056,-6787,32051,-6812,32046,-6836,32040,-6861,32035,-6885,32030,-6910,32024,-6934,32019,-6959,32014,-6983,32008,-7008,32003,-7033,31998,-7057,31992,-7082,31987,-7106,31981,-7131,31976,-7155,31970,-7180,31965,-7204,31959,-7229,31954,-7253,31948,-7278,31943,-7302,31937,-7327,31931,-7351,31926,-7376,31920,-7400,31914,-7425,31909,-7449,31903,-7474,31897,-7498,31891,-7523,31886,-7547,31880,-7572,31874,-7596,31868,-7620,31862,-7645,31856,-7669,31851,-7694,31845,-7718,31839,-7743,31833,-7767,31827,-7791,31821,-7816,31815,-7840,31809,-7865,31803,-7889,31797,-7913,31791,-7938,31785,-7962,31778,-7987,31772,-8011,31766,-8035,31760,-8060,31754,-8084,31748,-8108,31741,-8133,31735,-8157,31729,-8181,31723,-8206,31716,-8230,31710,-8254,31704,-8279,31697,-8303,31691,-8327,31684,-8352,31678,-8376,31672,-8400,31665,-8425,31659,-8449,31652,-8473,31646,-8497,31639,-8522,31633,-8546,31626,-8570,31619,-8594,31613,-8619,31606,-8643,31600,-8667,31593,-8691,31586,-8716,31580,-8740,31573,-8764,31566,-8788,31559,-8813,31553,-8837,31546,-8861,31539,-8885,31532,-8909,31525,-8933,31518,-8958,31512,-8982,31505,-9006,31498,-9030,31491,-9054,31484,-9078,31477,-9103,31470,-9127,31463,-9151,31456,-9175,31449,-9199,31442,-9223,31435,-9247,31428,-9271,31420,-9296,31413,-9320,31406,-9344,31399,-9368,31392,-9392,31385,-9416,31377,-9440,31370,-9464,31363,-9488,31356,-9512,31348,-9536,31341,-9560,31334,-9584,31326,-9608,31319,-9632,31311,-9656,31304,-9680,31297,-9704,31289,-9728,31282,-9752,31274,-9776,31267,-9800,31259,-9824,31252,-9848,31244,-9872,31236,-9896,31229,-9920,31221,-9944,31214,-9968,31206,-9992,31198,-10016,31191,-10040,31183,-10064,31175,-10088,31167,-10112,31160,-10136,31152,-10160,31144,-10183,31136,-10207,31128,-10231,31121,-10255,31113,-10279,31105,-10303,31097,-10327,31089,-10350,31081,-10374,31073,-10398,31065,-10422,31057,-10446,31049,-10470,31041,-10493,31033,-10517,31025,-10541,31017,-10565,31009,-10589,31001,-10612,30992,-10636,30984,-10660,30976,-10684,30968,-10707,30960,-10731,30951,-10755,30943,-10779,30935,-10802,30927,-10826,30918,-10850,30910,-10874,30902,-10897,30893,-10921,30885,-10945,30876,-10968,30868,-10992,30860,-11016,30851,-11039,30843,-11063,30834,-11087,30826,-11110,30817,-11134,30809,-11158,30800,-11181,30791,-11205,30783,-11228,30774,-11252,30766,-11276,30757,-11299,30748,-11323,30739,-11346,30731,-11370,30722,-11394,30713,-11417,30705,-11441,30696,-11464,30687,-11488,30678,-11511,30669,-11535,30660,-11558,30652,-11582,30643,-11605,30634,-11629,30625,-11652,30616,-11676,30607,-11699,30598,-11723,30589,-11746,30580,-11770,30571,-11793,30562,-11817,30553,-11840,30544,-11863,30535,-11887,30525,-11910,30516,-11934,30507,-11957,30498,-11981,30489,-12004,30480,-12027,30470,-12051,30461,-12074,30452,-12097,30442,-12121,30433,-12144,30424,-12167,30415,-12191,30405,-12214,30396,-12237,30386,-12261,30377,-12284,30368,-12307,30358,-12331,30349,-12354,30339,-12377,30330,-12400,30320,-12424,30311,-12447,30301,-12470,30291,-12493,30282,-12517,30272,-12540,30263,-12563,30253,-12586,30243,-12610,30234,-12633,30224,-12656,30214,-12679,30205,-12702,30195,-12725,30185,-12749,30175,-12772,30165,-12795,30156,-12818,30146,-12841,30136,-12864,30126,-12887,30116,-12910,30106,-12934,30096,-12957,30086,-12980,30076,-13003,30066,-13026,30056,-13049,30046,-13072,30036,-13095,30026,-13118,30016,-13141,30006,-13164,29996,-13187,29986,-13210,29976,-13233,29966,-13256,29955,-13279,29945,-13302,29935,-13325,29925,-13348,29915,-13371,29904,-13394,29894,-13417,29884,-13440,29873,-13463,29863,-13486,29853,-13508,29842,-13531,29832,-13554,29822,-13577,29811,-13600,29801,-13623,29790,-13646,29780,-13668,29769,-13691,29759,-13714,29748,-13737,29738,-13760,29727,-13783,29717,-13805,29706,-13828,29695,-13851,29685,-13874,29674,-13896,29663,-13919,29653,-13942,29642,-13965,29631,-13987,29621,-14010,29610,-14033,29599,-14056,29588,-14078,29577,-14101,29567,-14124,29556,-14146,29545,-14169,29534,-14192,29523,-14214,29512,-14237,29501,-14260,29490,-14282,29479,-14305,29468,-14327,29457,-14350,29446,-14373,29435,-14395,29424,-14418,29413,-14440,29402,-14463,29391,-14485,29380,-14508,29369,-14531,29358,-14553,29346,-14576,29335,-14598,29324,-14621,29313,-14643,29302,-14666,29290,-14688,29279,-14710,29268,-14733,29256,-14755,29245,-14778,29234,-14800,29222,-14823,29211,-14845,29200,-14867,29188,-14890,29177,-14912,29165,-14935,29154,-14957,29142,-14979,29131,-15002,29119,-15024,29108,-15046,29096,-15069,29085,-15091,29073,-15113,29062,-15136,29050,-15158,29038,-15180,29027,-15202,29015,-15225,29003,-15247,28992,-15269,28980,-15291,28968,-15314,28956,-15336,28945,-15358,28933,-15380,28921,-15402,28909,-15425,28897,-15447,28886,-15469,28874,-15491,28862,-15513,28850,-15535,28838,-15557,28826,-15580,28814,-15602,28802,-15624,28790,-15646,28778,-15668,28766,-15690,28754,-15712,28742,-15734,28730,-15756,28718,-15778,28706,-15800,28694,-15822,28681,-15844,28669,-15866,28657,-15888,28645,-15910,28633,-15932,28620,-15954,28608,-15976,28596,-15998,28584,-16020,28571,-16042,28559,-16064,28547,-16086,28534,-16108,28522,-16129,28510,-16151,28497,-16173,28485,-16195,28472,-16217,28460,-16239,28447,-16261,28435,-16282,28423,-16304,28410,-16326,28397,-16348,28385,-16369,28372,-16391,28360,-16413,28347,-16435,28335,-16456,28322,-16478,28309,-16500,28297,-16522,28284,-16543,28271,-16565,28259,-16587,28246,-16608,28233,-16630,28220,-16652,28208,-16673,28195,-16695,28182,-16717,28169,-16738,28156,-16760,28143,-16781,28131,-16803,28118,-16825,28105,-16846,28092,-16868,28079,-16889,28066,-16911,28053,-16932,28040,-16954,28027,-16975,28014,-16997,28001,-17018,27988,-17040,27975,-17061,27962,-17083,27948,-17104,27935,-17125,27922,-17147,27909,-17168,27896,-17190,27883,-17211,27869,-17233,27856,-17254,27843,-17275,27830,-17297,27816,-17318,27803,-17339,27790,-17361,27777,-17382,27763,-17403,27750,-17424,27736,-17446,27723,-17467,27710,-17488,27696,-17510,27683,-17531,27669,-17552,27656,-17573,27642,-17594,27629,-17616,27615,-17637,27602,-17658,27588,-17679,27575,-17700,27561,-17721,27548,-17743,27534,-17764,27520,-17785,27507,-17806,27493,-17827,27479,-17848,27466,-17869,27452,-17890,27438,-17911,27424,-17932,27411,-17953,27397,-17974,27383,-17995,27369,-18016,27355,-18037,27342,-18058,27328,-18079,27314,-18100,27300,-18121,27286,-18142,27272,-18163,27258,-18184,27244,-18205,27230,-18226,27216,-18247,27202,-18268,27188,-18288,27174,-18309,27160,-18330,27146,-18351,27132,-18372,27118,-18393,27104,-18413,27090,-18434,27076,-18455,27061,-18476,27047,-18496,27033,-18517,27019,-18538,27005,-18559,26990,-18579,26976,-18600,26962,-18621,26948,-18641,26933,-18662,26919,-18683,26905,-18703,26890,-18724,26876,-18745,26861,-18765,26847,-18786,26833,-18806,26818,-18827,26804,-18847,26789,-18868,26775,-18889,26760,-18909,26746,-18930,26731,-18950,26717,-18971,26702,-18991,26688,-19012,26673,-19032,26658,-19052,26644,-19073,26629,-19093,26615,-19114,26600,-19134,26585,-19155,26570,-19175,26556,-19195,26541,-19216,26526,-19236,26512,-19256,26497,-19277,26482,-19297,26467,-19317,26452,-19338,26437,-19358,26423,-19378,26408,-19398,26393,-19419,26378,-19439,26363,-19459,26348,-19479,26333,-19500,26318,-19520,26303,-19540,26288,-19560,26273,-19580,26258,-19600,26243,-19621,26228,-19641,26213,-19661,26198,-19681,26183,-19701,26168,-19721,26153,-19741,26137,-19761,26122,-19781,26107,-19801,26092,-19821,26077,-19841,26061,-19861,26046,-19881,26031,-19901,26016,-19921,26000,-19941,25985,-19961,25970,-19981,25954,-20001,25939,-20021,25924,-20041,25908,-20061,25893,-20080,25878,-20100,25862,-20120,25847,-20140,25831,-20160,25816,-20180,25800,-20199,25785,-20219,25769,-20239,25754,-20259,25738,-20278,25723,-20298,25707,-20318,25691,-20338,25676,-20357,25660,-20377,25645,-20397,25629,-20416,25613,-20436,25598,-20456,25582,-20475,25566,-20495,25550,-20514,25535,-20534,25519,-20554,25503,-20573,25487,-20593,25472,-20612,25456,-20632,25440,-20651,25424,-20671,25408,-20690,25392,-20710,25376,-20729,25361,-20749,25345,-20768,25329,-20788,25313,-20807,25297,-20826,25281,-20846,25265,-20865,25249,-20885,25233,-20904,25217,-20923,25201,-20943,25185,-20962,25169,-20981,25152,-21001,25136,-21020,25120,-21039,25104,-21058,25088,-21078,25072,-21097,25056,-21116,25039,-21135,25023,-21155,25007,-21174,24991,-21193,24974,-21212,24958,-21231,24942,-21250,24926,-21269,24909,-21289,24893,-21308,24877,-21327,24860,-21346,24844,-21365,24827,-21384,24811,-21403,24795,-21422,24778,-21441,24762,-21460,24745,-21479,24729,-21498,24712,-21517,24696,-21536,24679,-21555,24663,-21574,24646,-21593,24630,-21612,24613,-21630,24596,-21649,24580,-21668,24563,-21687,24546,-21706,24530,-21725,24513,-21744,24496,-21762,24480,-21781,24463,-21800,24446,-21819,24430,-21837,24413,-21856,24396,-21875,24379,-21894,24362,-21912,24346,-21931,24329,-21950,24312,-21968,24295,-21987,24278,-22005,24261,-22024,24244,-22043,24228,-22061,24211,-22080,24194,-22098,24177,-22117,24160,-22136,24143,-22154,24126,-22173,24109,-22191,24092,-22210,24075,-22228,24058,-22246,24041,-22265,24023,-22283,24006,-22302,23989,-22320,23972,-22339,23955,-22357,23938,-22375,23921,-22394,23903,-22412,23886,-22430,23869,-22449,23852,-22467,23835,-22485,23817,-22504,23800,-22522,23783,-22540,23766,-22558,23748,-22576,23731,-22595,23714,-22613,23696,-22631,23679,-22649,23661,-22667,23644,-22686,23627,-22704,23609,-22722,23592,-22740,23574,-22758,23557,-22776,23539,-22794,23522,-22812,23504,-22830,23487,-22848,23469,-22866,23452,-22884,23434,-22902,23417,-22920,23399,-22938,23382,-22956,23364,-22974,23346,-22992,23329,-23010,23311,-23028,23293,-23046,23276,-23063,23258,-23081,23240,-23099,23223,-23117,23205,-23135,23187,-23152,23169,-23170,23151,-23188,23134,-23206,23116,-23224,23098,-23241,23080,-23259,23062,-23277,23045,-23294,23027,-23312,23009,-23330,22991,-23347,22973,-23365,22955,-23383,22937,-23400,22919,-23418,22901,-23435,22883,-23453,22865,-23470,22847,-23488,22829,-23505,22811,-23523,22793,-23540,22775,-23558,22757,-23575,22739,-23593,22721,-23610,22703,-23628,22685,-23645,22666,-23662,22648,-23680,22630,-23697,22612,-23715,22594,-23732,22575,-23749,22557,-23767,22539,-23784,22521,-23801,22503,-23818,22484,-23836,22466,-23853,22448,-23870,22429,-23887,22411,-23904,22393,-23922,22374,-23939,22356,-23956,22338,-23973,22319,-23990,22301,-24007,22282,-24024,22264,-24042,22245,-24059,22227,-24076,22209,-24093,22190,-24110,22172,-24127,22153,-24144,22135,-24161,22116,-24178,22097,-24195,22079,-24212,22060,-24229,22042,-24245,22023,-24262,22004,-24279,21986,-24296,21967,-24313,21949,-24330,21930,-24347,21911,-24363,21893,-24380,21874,-24397,21855,-24414,21836,-24431,21818,-24447,21799,-24464,21780,-24481,21761,-24497,21743,-24514,21724,-24531,21705,-24547,21686,-24564,21667,-24581,21648,-24597,21629,-24614,21611,-24631,21592,-24647,21573,-24664,21554,-24680,21535,-24697,21516,-24713,21497,-24730,21478,-24746,21459,-24763,21440,-24779,21421,-24796,21402,-24812,21383,-24828,21364,-24845,21345,-24861,21326,-24878,21307,-24894,21288,-24910,21268,-24927,21249,-24943,21230,-24959,21211,-24975,21192,-24992,21173,-25008,21154,-25024,21134,-25040,21115,-25057,21096,-25073,21077,-25089,21057,-25105,21038,-25121,21019,-25137,21000,-25153,20980,-25170,20961,-25186,20942,-25202,20922,-25218,20903,-25234,20884,-25250,20864,-25266,20845,-25282,20825,-25298,20806,-25314,20787,-25330,20767,-25346,20748,-25362,20728,-25377,20709,-25393,20689,-25409,20670,-25425,20650,-25441,20631,-25457,20611,-25473,20592,-25488,20572,-25504,20553,-25520,20533,-25536,20513,-25551,20494,-25567,20474,-25583,20455,-25599,20435,-25614,20415,-25630,20396,-25646,20376,-25661,20356,-25677,20337,-25692,20317,-25708,20297,-25724,20277,-25739,20258,-25755,20238,-25770,20218,-25786,20198,-25801,20179,-25817,20159,-25832,20139,-25848,20119,-25863,20099,-25879,20079,-25894,20060,-25909,20040,-25925,20020,-25940,20000,-25955,19980,-25971,19960,-25986,19940,-26001,19920,-26017,19900,-26032,19880,-26047,19860,-26062,19840,-26078,19820,-26093,19800,-26108,19780,-26123,19760,-26138,19740,-26154,19720,-26169,19700,-26184,19680,-26199,19660,-26214,19640,-26229,19620,-26244,19599,-26259,19579,-26274,19559,-26289,19539,-26304,19519,-26319,19499,-26334,19478,-26349,19458,-26364,19438,-26379,19418,-26394,19397,-26409,19377,-26424,19357,-26438,19337,-26453,19316,-26468,19296,-26483,19276,-26498,19255,-26513,19235,-26527,19215,-26542,19194,-26557,19174,-26571,19154,-26586,19133,-26601,19113,-26616,19092,-26630,19072,-26645,19051,-26659,19031,-26674,19011,-26689,18990,-26703,18970,-26718,18949,-26732,18929,-26747,18908,-26761,18888,-26776,18867,-26790,18846,-26805,18826,-26819,18805,-26834,18785,-26848,18764,-26862,18744,-26877,18723,-26891,18702,-26906,18682,-26920,18661,-26934,18640,-26949,18620,-26963,18599,-26977,18578,-26991,18558,-27006,18537,-27020,18516,-27034,18495,-27048,18475,-27062,18454,-27077,18433,-27091,18412,-27105,18392,-27119,18371,-27133,18350,-27147,18329,-27161,18308,-27175,18287,-27189,18267,-27203,18246,-27217,18225,-27231,18204,-27245,18183,-27259,18162,-27273,18141,-27287,18120,-27301,18099,-27315,18078,-27329,18057,-27343,18036,-27356,18015,-27370,17994,-27384,17973,-27398,17952,-27412,17931,-27425,17910,-27439,17889,-27453,17868,-27467,17847,-27480,17826,-27494,17805,-27508,17784,-27521,17763,-27535,17742,-27549,17720,-27562,17699,-27576,17678,-27589,17657,-27603,17636,-27616,17615,-27630,17593,-27643,17572,-27657,17551,-27670,17530,-27684,17509,-27697,17487,-27711,17466,-27724,17445,-27737,17423,-27751,17402,-27764,17381,-27778,17360,-27791,17338,-27804,17317,-27817,17296,-27831,17274,-27844,17253,-27857,17232,-27870,17210,-27884,17189,-27897,17167,-27910,17146,-27923,17124,-27936,17103,-27949,17082,-27963,17060,-27976,17039,-27989,17017,-28002,16996,-28015,16974,-28028,16953,-28041,16931,-28054,16910,-28067,16888,-28080,16867,-28093,16845,-28106,16824,-28119,16802,-28132,16780,-28144,16759,-28157,16737,-28170,16716,-28183,16694,-28196,16672,-28209,16651,-28221,16629,-28234,16607,-28247,16586,-28260,16564,-28272,16542,-28285,16521,-28298,16499,-28310,16477,-28323,16455,-28336,16434,-28348,16412,-28361,16390,-28373,16368,-28386,16347,-28398,16325,-28411,16303,-28424,16281,-28436,16260,-28448,16238,-28461,16216,-28473,16194,-28486,16172,-28498,16150,-28511,16128,-28523,16107,-28535,16085,-28548,16063,-28560,16041,-28572,16019,-28585,15997,-28597,15975,-28609,15953,-28621,15931,-28634,15909,-28646,15887,-28658,15865,-28670,15843,-28682,15821,-28695,15799,-28707,15777,-28719,15755,-28731,15733,-28743,15711,-28755,15689,-28767,15667,-28779,15645,-28791,15623,-28803,15601,-28815,15579,-28827,15556,-28839,15534,-28851,15512,-28863,15490,-28875,15468,-28887,15446,-28898,15424,-28910,15401,-28922,15379,-28934,15357,-28946,15335,-28957,15313,-28969,15290,-28981,15268,-28993,15246,-29004,15224,-29016,15201,-29028,15179,-29039,15157,-29051,15135,-29063,15112,-29074,15090,-29086,15068,-29097,15045,-29109,15023,-29120,15001,-29132,14978,-29143,14956,-29155,14934,-29166,14911,-29178,14889,-29189,14866,-29201,14844,-29212,14822,-29223,14799,-29235,14777,-29246,14754,-29257,14732,-29269,14709,-29280,14687,-29291,14665,-29303,14642,-29314,14620,-29325,14597,-29336,14575,-29347,14552,-29359,14530,-29370,14507,-29381,14484,-29392,14462,-29403,14439,-29414,14417,-29425,14394,-29436,14372,-29447,14349,-29458,14326,-29469,14304,-29480,14281,-29491,14259,-29502,14236,-29513,14213,-29524,14191,-29535,14168,-29546,14145,-29557,14123,-29568,14100,-29578,14077,-29589,14055,-29600,14032,-29611,14009,-29622,13986,-29632,13964,-29643,13941,-29654,13918,-29664,13895,-29675,13873,-29686,13850,-29696,13827,-29707,13804,-29718,13782,-29728,13759,-29739,13736,-29749,13713,-29760,13690,-29770,13667,-29781,13645,-29791,13622,-29802,13599,-29812,13576,-29823,13553,-29833,13530,-29843,13507,-29854,13485,-29864,13462,-29874,13439,-29885,13416,-29895,13393,-29905,13370,-29916,13347,-29926,13324,-29936,13301,-29946,13278,-29956,13255,-29967,13232,-29977,13209,-29987,13186,-29997,13163,-30007,13140,-30017,13117,-30027,13094,-30037,13071,-30047,13048,-30057,13025,-30067,13002,-30077,12979,-30087,12956,-30097,12933,-30107,12909,-30117,12886,-30127,12863,-30137,12840,-30147,12817,-30157,12794,-30166,12771,-30176,12748,-30186,12724,-30196,12701,-30206,12678,-30215,12655,-30225,12632,-30235,12609,-30244,12585,-30254,12562,-30264,12539,-30273,12516,-30283,12492,-30292,12469,-30302,12446,-30312,12423,-30321,12399,-30331,12376,-30340,12353,-30350,12330,-30359,12306,-30369,12283,-30378,12260,-30387,12236,-30397,12213,-30406,12190,-30416,12166,-30425,12143,-30434,12120,-30443,12096,-30453,12073,-30462,12050,-30471,12026,-30481,12003,-30490,11980,-30499,11956,-30508,11933,-30517,11909,-30526,11886,-30536,11862,-30545,11839,-30554,11816,-30563,11792,-30572,11769,-30581,11745,-30590,11722,-30599,11698,-30608,11675,-30617,11651,-30626,11628,-30635,11604,-30644,11581,-30653,11557,-30661,11534,-30670,11510,-30679,11487,-30688,11463,-30697,11440,-30706,11416,-30714,11393,-30723,11369,-30732,11345,-30740,11322,-30749,11298,-30758,11275,-30767,11251,-30775,11227,-30784,11204,-30792,11180,-30801,11157,-30810,11133,-30818,11109,-30827,11086,-30835,11062,-30844,11038,-30852,11015,-30861,10991,-30869,10967,-30877,10944,-30886,10920,-30894,10896,-30903,10873,-30911,10849,-30919,10825,-30928,10801,-30936,10778,-30944,10754,-30952,10730,-30961,10706,-30969,10683,-30977,10659,-30985,10635,-30993,10611,-31002,10588,-31010,10564,-31018,10540,-31026,10516,-31034,10492,-31042,10469,-31050,10445,-31058,10421,-31066,10397,-31074,10373,-31082,10349,-31090,10326,-31098,10302,-31106,10278,-31114,10254,-31122,10230,-31129,10206,-31137,10182,-31145,10159,-31153,10135,-31161,10111,-31168,10087,-31176,10063,-31184,10039,-31192,10015,-31199,9991,-31207,9967,-31215,9943,-31222,9919,-31230,9895,-31237,9871,-31245,9847,-31253,9823,-31260,9799,-31268,9775,-31275,9751,-31283,9727,-31290,9703,-31298,9679,-31305,9655,-31312,9631,-31320,9607,-31327,9583,-31335,9559,-31342,9535,-31349,9511,-31357,9487,-31364,9463,-31371,9439,-31378,9415,-31386,9391,-31393,9367,-31400,9343,-31407,9319,-31414,9295,-31421,9270,-31429,9246,-31436,9222,-31443,9198,-31450,9174,-31457,9150,-31464,9126,-31471,9102,-31478,9077,-31485,9053,-31492,9029,-31499,9005,-31506,8981,-31513,8957,-31519,8932,-31526,8908,-31533,8884,-31540,8860,-31547,8836,-31554,8812,-31560,8787,-31567,8763,-31574,8739,-31581,8715,-31587,8690,-31594,8666,-31601,8642,-31607,8618,-31614,8593,-31620,8569,-31627,8545,-31634,8521,-31640,8496,-31647,8472,-31653,8448,-31660,8424,-31666,8399,-31673,8375,-31679,8351,-31685,8326,-31692,8302,-31698,8278,-31705,8253,-31711,8229,-31717,8205,-31724,8180,-31730,8156,-31736,8132,-31742,8107,-31749,8083,-31755,8059,-31761,8034,-31767,8010,-31773,7986,-31779,7961,-31786,7937,-31792,7912,-31798,7888,-31804,7864,-31810,7839,-31816,7815,-31822,7790,-31828,7766,-31834,7742,-31840,7717,-31846,7693,-31852,7668,-31857,7644,-31863,7619,-31869,7595,-31875,7571,-31881,7546,-31887,7522,-31892,7497,-31898,7473,-31904,7448,-31910,7424,-31915,7399,-31921,7375,-31927,7350,-31932,7326,-31938,7301,-31944,7277,-31949,7252,-31955,7228,-31960,7203,-31966,7179,-31971,7154,-31977,7130,-31982,7105,-31988,7081,-31993,7056,-31999,7032,-32004,7007,-32009,6982,-32015,6958,-32020,6933,-32025,6909,-32031,6884,-32036,6860,-32041,6835,-32047,6811,-32052,6786,-32057,6761,-32062,6737,-32067,6712,-32073,6688,-32078,6663,-32083,6638,-32088,6614,-32093,6589,-32098,6564,-32103,6540,-32108,6515,-32113,6491,-32118,6466,-32123,6441,-32128,6417,-32133,6392,-32138,6367,-32143,6343,-32148,6318,-32153,6293,-32157,6269,-32162,6244,-32167,6219,-32172,6195,-32177,6170,-32181,6145,-32186,6121,-32191,6096,-32195,6071,-32200,6047,-32205,6022,-32209,5997,-32214,5972,-32219,5948,-32223,5923,-32228,5898,-32232,5874,-32237,5849,-32241,5824,-32246,5799,-32250,5775,-32255,5750,-32259,5725,-32263,5700,-32268,5676,-32272,5651,-32276,5626,-32281,5601,-32285,5577,-32289,5552,-32294,5527,-32298,5502,-32302,5478,-32306,5453,-32311,5428,-32315,5403,-32319,5378,-32323,5354,-32327,5329,-32331,5304,-32335,5279,-32339,5254,-32343,5230,-32347,5205,-32351,5180,-32355,5155,-32359,5130,-32363,5106,-32367,5081,-32371,5056,-32375,5031,-32379,5006,-32383,4981,-32387,4957,-32390,4932,-32394,4907,-32398,4882,-32402,4857,-32405,4832,-32409,4807,-32413,4783,-32417,4758,-32420,4733,-32424,4708,-32427,4683,-32431,4658,-32435,4633,-32438,4608,-32442,4584,-32445,4559,-32449,4534,-32452,4509,-32456,4484,-32459,4459,-32463,4434,-32466,4409,-32469,4384,-32473,4359,-32476,4335,-32479,4310,-32483,4285,-32486,4260,-32489,4235,-32493,4210,-32496,4185,-32499,4160,-32502,4135,-32505,4110,-32509,4085,-32512,4060,-32515,4035,-32518,4011,-32521,3986,-32524,3961,-32527,3936,-32530,3911,-32533,3886,-32536,3861,-32539,3836,-32542,3811,-32545,3786,-32548,3761,-32551,3736,-32554,3711,-32557,3686,-32559,3661,-32562,3636,-32565,3611,-32568,3586,-32571,3561,-32573,3536,-32576,3511,-32579,3486,-32581,3461,-32584,3436,-32587,3411,-32589,3386,-32592,3361,-32595,3336,-32597,3311,-32600,3286,-32602,3261,-32605,3236,-32607,3211,-32610,3186,-32612,3161,-32615,3136,-32617,3111,-32619,3086,-32622,3061,-32624,3036,-32626,3011,-32629,2986,-32631,2961,-32633,2936,-32636,2911,-32638,2886,-32640,2861,-32642,2836,-32645,2811,-32647,2786,-32649,2761,-32651,2736,-32653,2711,-32655,2686,-32657,2661,-32659,2636,-32661,2610,-32663,2585,-32665,2560,-32667,2535,-32669,2510,-32671,2485,-32673,2460,-32675,2435,-32677,2410,-32679,2385,-32681,2360,-32682,2335,-32684,2310,-32686,2285,-32688,2260,-32689,2235,-32691,2209,-32693,2184,-32695,2159,-32696,2134,-32698,2109,-32700,2084,-32701,2059,-32703,2034,-32704,2009,-32706,1984,-32707,1959,-32709,1934,-32710,1908,-32712,1883,-32713,1858,-32715,1833,-32716,1808,-32718,1783,-32719,1758,-32720,1733,-32722,1708,-32723,1683,-32724,1658,-32726,1632,-32727,1607,-32728,1582,-32729,1557,-32730,1532,-32732,1507,-32733,1482,-32734,1457,-32735,1432,-32736,1406,-32737,1381,-32738,1356,-32739,1331,-32740,1306,-32741,1281,-32742,1256,-32743,1231,-32744,1206,-32745,1180,-32746,1155,-32747,1130,-32748,1105,-32749,1080,-32750,1055,-32751,1030,-32751,1005,-32752,980,-32753,954,-32754,929,-32754,904,-32755,879,-32756,854,-32756,829,-32757,804,-32758,779,-32758,753,-32759,728,-32759,703,-32760,678,-32760,653,-32761,628,-32761,603,-32762,578,-32762,552,-32763,527,-32763,502,-32764,477,-32764,452,-32764,427,-32765,402,-32765,376,-32765,351,-32766,326,-32766,301,-32766,276,-32766,251,-32767,226,-32767,201,-32767,175,-32767,150,-32767,125,-32767,100,-32767,75,-32767,50,-32767,25,-32767,0,-32767,-26,-32767,-51,-32767,-76,-32767,-101,-32767,-126,-32767,-151,-32767,-176,-32767,-202,-32767,-227,-32767,-252,-32767,-277,-32766,-302,-32766,-327,-32766,-352,-32766,-377,-32765,-403,-32765,-428,-32765,-453,-32764,-478,-32764,-503,-32764,-528,-32763,-553,-32763,-579,-32762,-604,-32762,-629,-32761,-654,-32761,-679,-32760,-704,-32760,-729,-32759,-754,-32759,-780,-32758,-805,-32758,-830,-32757,-855,-32756,-880,-32756,-905,-32755,-930,-32754,-955,-32754,-981,-32753,-1006,-32752,-1031,-32751,-1056,-32751,-1081,-32750,-1106,-32749,-1131,-32748,-1156,-32747,-1181,-32746,-1207,-32745,-1232,-32744,-1257,-32743,-1282,-32742,-1307,-32741,-1332,-32740,-1357,-32739,-1382,-32738,-1407,-32737,-1433,-32736,-1458,-32735,-1483,-32734,-1508,-32733,-1533,-32732,-1558,-32730,-1583,-32729,-1608,-32728,-1633,-32727,-1659,-32726,-1684,-32724,-1709,-32723,-1734,-32722,-1759,-32720,-1784,-32719,-1809,-32718,-1834,-32716,-1859,-32715,-1884,-32713,-1909,-32712,-1935,-32710,-1960,-32709,-1985,-32707,-2010,-32706,-2035,-32704,-2060,-32703,-2085,-32701,-2110,-32700,-2135,-32698,-2160,-32696,-2185,-32695,-2210,-32693,-2236,-32691,-2261,-32689,-2286,-32688,-2311,-32686,-2336,-32684,-2361,-32682,-2386,-32681,-2411,-32679,-2436,-32677,-2461,-32675,-2486,-32673,-2511,-32671,-2536,-32669,-2561,-32667,-2586,-32665,-2611,-32663,-2637,-32661,-2662,-32659,-2687,-32657,-2712,-32655,-2737,-32653,-2762,-32651,-2787,-32649,-2812,-32647,-2837,-32645,-2862,-32642,-2887,-32640,-2912,-32638,-2937,-32636,-2962,-32633,-2987,-32631,-3012,-32629,-3037,-32626,-3062,-32624,-3087,-32622,-3112,-32619,-3137,-32617,-3162,-32615,-3187,-32612,-3212,-32610,-3237,-32607,-3262,-32605,-3287,-32602,-3312,-32600,-3337,-32597,-3362,-32595,-3387,-32592,-3412,-32589,-3437,-32587,-3462,-32584,-3487,-32581,-3512,-32579,-3537,-32576,-3562,-32573,-3587,-32571,-3612,-32568,-3637,-32565,-3662,-32562,-3687,-32559,-3712,-32557,-3737,-32554,-3762,-32551,-3787,-32548,-3812,-32545,-3837,-32542,-3862,-32539,-3887,-32536,-3912,-32533,-3937,-32530,-3962,-32527,-3987,-32524,-4012,-32521,-4036,-32518,-4061,-32515,-4086,-32512,-4111,-32509,-4136,-32505,-4161,-32502,-4186,-32499,-4211,-32496,-4236,-32493,-4261,-32489,-4286,-32486,-4311,-32483,-4336,-32479,-4360,-32476,-4385,-32473,-4410,-32469,-4435,-32466,-4460,-32463,-4485,-32459,-4510,-32456,-4535,-32452,-4560,-32449,-4585,-32445,-4609,-32442,-4634,-32438,-4659,-32435,-4684,-32431,-4709,-32427,-4734,-32424,-4759,-32420,-4784,-32417,-4808,-32413,-4833,-32409,-4858,-32405,-4883,-32402,-4908,-32398,-4933,-32394,-4958,-32390,-4982,-32387,-5007,-32383,-5032,-32379,-5057,-32375,-5082,-32371,-5107,-32367,-5131,-32363,-5156,-32359,-5181,-32355,-5206,-32351,-5231,-32347,-5255,-32343,-5280,-32339,-5305,-32335,-5330,-32331,-5355,-32327,-5379,-32323,-5404,-32319,-5429,-32315,-5454,-32311,-5479,-32306,-5503,-32302,-5528,-32298,-5553,-32294,-5578,-32289,-5602,-32285,-5627,-32281,-5652,-32276,-5677,-32272,-5701,-32268,-5726,-32263,-5751,-32259,-5776,-32255,-5800,-32250,-5825,-32246,-5850,-32241,-5875,-32237,-5899,-32232,-5924,-32228,-5949,-32223,-5973,-32219,-5998,-32214,-6023,-32209,-6048,-32205,-6072,-32200,-6097,-32195,-6122,-32191,-6146,-32186,-6171,-32181,-6196,-32177,-6220,-32172,-6245,-32167,-6270,-32162,-6294,-32157,-6319,-32153,-6344,-32148,-6368,-32143,-6393,-32138,-6418,-32133,-6442,-32128,-6467,-32123,-6492,-32118,-6516,-32113,-6541,-32108,-6565,-32103,-6590,-32098,-6615,-32093,-6639,-32088,-6664,-32083,-6689,-32078,-6713,-32073,-6738,-32067,-6762,-32062,-6787,-32057,-6812,-32052,-6836,-32047,-6861,-32041,-6885,-32036,-6910,-32031,-6934,-32025,-6959,-32020,-6983,-32015,-7008,-32009,-7033,-32004,-7057,-31999,-7082,-31993,-7106,-31988,-7131,-31982,-7155,-31977,-7180,-31971,-7204,-31966,-7229,-31960,-7253,-31955,-7278,-31949,-7302,-31944,-7327,-31938,-7351,-31932,-7376,-31927,-7400,-31921,-7425,-31915,-7449,-31910,-7474,-31904,-7498,-31898,-7523,-31892,-7547,-31887,-7572,-31881,-7596,-31875,-7620,-31869,-7645,-31863,-7669,-31857,-7694,-31852,-7718,-31846,-7743,-31840,-7767,-31834,-7791,-31828,-7816,-31822,-7840,-31816,-7865,-31810,-7889,-31804,-7913,-31798,-7938,-31792,-7962,-31786,-7987,-31779,-8011,-31773,-8035,-31767,-8060,-31761,-8084,-31755,-8108,-31749,-8133,-31742,-8157,-31736,-8181,-31730,-8206,-31724,-8230,-31717,-8254,-31711,-8279,-31705,-8303,-31698,-8327,-31692,-8352,-31685,-8376,-31679,-8400,-31673,-8425,-31666,-8449,-31660,-8473,-31653,-8497,-31647,-8522,-31640,-8546,-31634,-8570,-31627,-8594,-31620,-8619,-31614,-8643,-31607,-8667,-31601,-8691,-31594,-8716,-31587,-8740,-31581,-8764,-31574,-8788,-31567,-8813,-31560,-8837,-31554,-8861,-31547,-8885,-31540,-8909,-31533,-8933,-31526,-8958,-31519,-8982,-31513,-9006,-31506,-9030,-31499,-9054,-31492,-9078,-31485,-9103,-31478,-9127,-31471,-9151,-31464,-9175,-31457,-9199,-31450,-9223,-31443,-9247,-31436,-9271,-31429,-9296,-31421,-9320,-31414,-9344,-31407,-9368,-31400,-9392,-31393,-9416,-31386,-9440,-31378,-9464,-31371,-9488,-31364,-9512,-31357,-9536,-31349,-9560,-31342,-9584,-31335,-9608,-31327,-9632,-31320,-9656,-31312,-9680,-31305,-9704,-31298,-9728,-31290,-9752,-31283,-9776,-31275,-9800,-31268,-9824,-31260,-9848,-31253,-9872,-31245,-9896,-31237,-9920,-31230,-9944,-31222,-9968,-31215,-9992,-31207,-10016,-31199,-10040,-31192,-10064,-31184,-10088,-31176,-10112,-31168,-10136,-31161,-10160,-31153,-10183,-31145,-10207,-31137,-10231,-31129,-10255,-31122,-10279,-31114,-10303,-31106,-10327,-31098,-10350,-31090,-10374,-31082,-10398,-31074,-10422,-31066,-10446,-31058,-10470,-31050,-10493,-31042,-10517,-31034,-10541,-31026,-10565,-31018,-10589,-31010,-10612,-31002,-10636,-30993,-10660,-30985,-10684,-30977,-10707,-30969,-10731,-30961,-10755,-30952,-10779,-30944,-10802,-30936,-10826,-30928,-10850,-30919,-10874,-30911,-10897,-30903,-10921,-30894,-10945,-30886,-10968,-30877,-10992,-30869,-11016,-30861,-11039,-30852,-11063,-30844,-11087,-30835,-11110,-30827,-11134,-30818,-11158,-30810,-11181,-30801,-11205,-30792,-11228,-30784,-11252,-30775,-11276,-30767,-11299,-30758,-11323,-30749,-11346,-30740,-11370,-30732,-11394,-30723,-11417,-30714,-11441,-30706,-11464,-30697,-11488,-30688,-11511,-30679,-11535,-30670,-11558,-30661,-11582,-30653,-11605,-30644,-11629,-30635,-11652,-30626,-11676,-30617,-11699,-30608,-11723,-30599,-11746,-30590,-11770,-30581,-11793,-30572,-11817,-30563,-11840,-30554,-11863,-30545,-11887,-30536,-11910,-30526,-11934,-30517,-11957,-30508,-11981,-30499,-12004,-30490,-12027,-30481,-12051,-30471,-12074,-30462,-12097,-30453,-12121,-30443,-12144,-30434,-12167,-30425,-12191,-30416,-12214,-30406,-12237,-30397,-12261,-30387,-12284,-30378,-12307,-30369,-12331,-30359,-12354,-30350,-12377,-30340,-12400,-30331,-12424,-30321,-12447,-30312,-12470,-30302,-12493,-30292,-12517,-30283,-12540,-30273,-12563,-30264,-12586,-30254,-12610,-30244,-12633,-30235,-12656,-30225,-12679,-30215,-12702,-30206,-12725,-30196,-12749,-30186,-12772,-30176,-12795,-30166,-12818,-30157,-12841,-30147,-12864,-30137,-12887,-30127,-12910,-30117,-12934,-30107,-12957,-30097,-12980,-30087,-13003,-30077,-13026,-30067,-13049,-30057,-13072,-30047,-13095,-30037,-13118,-30027,-13141,-30017,-13164,-30007,-13187,-29997,-13210,-29987,-13233,-29977,-13256,-29967,-13279,-29956,-13302,-29946,-13325,-29936,-13348,-29926,-13371,-29916,-13394,-29905,-13417,-29895,-13440,-29885,-13463,-29874,-13486,-29864,-13508,-29854,-13531,-29843,-13554,-29833,-13577,-29823,-13600,-29812,-13623,-29802,-13646,-29791,-13668,-29781,-13691,-29770,-13714,-29760,-13737,-29749,-13760,-29739,-13783,-29728,-13805,-29718,-13828,-29707,-13851,-29696,-13874,-29686,-13896,-29675,-13919,-29664,-13942,-29654,-13965,-29643,-13987,-29632,-14010,-29622,-14033,-29611,-14056,-29600,-14078,-29589,-14101,-29578,-14124,-29568,-14146,-29557,-14169,-29546,-14192,-29535,-14214,-29524,-14237,-29513,-14260,-29502,-14282,-29491,-14305,-29480,-14327,-29469,-14350,-29458,-14373,-29447,-14395,-29436,-14418,-29425,-14440,-29414,-14463,-29403,-14485,-29392,-14508,-29381,-14531,-29370,-14553,-29359,-14576,-29347,-14598,-29336,-14621,-29325,-14643,-29314,-14666,-29303,-14688,-29291,-14710,-29280,-14733,-29269,-14755,-29257,-14778,-29246,-14800,-29235,-14823,-29223,-14845,-29212,-14867,-29201,-14890,-29189,-14912,-29178,-14935,-29166,-14957,-29155,-14979,-29143,-15002,-29132,-15024,-29120,-15046,-29109,-15069,-29097,-15091,-29086,-15113,-29074,-15136,-29063,-15158,-29051,-15180,-29039,-15202,-29028,-15225,-29016,-15247,-29004,-15269,-28993,-15291,-28981,-15314,-28969,-15336,-28957,-15358,-28946,-15380,-28934,-15402,-28922,-15425,-28910,-15447,-28898,-15469,-28887,-15491,-28875,-15513,-28863,-15535,-28851,-15557,-28839,-15580,-28827,-15602,-28815,-15624,-28803,-15646,-28791,-15668,-28779,-15690,-28767,-15712,-28755,-15734,-28743,-15756,-28731,-15778,-28719,-15800,-28707,-15822,-28695,-15844,-28682,-15866,-28670,-15888,-28658,-15910,-28646,-15932,-28634,-15954,-28621,-15976,-28609,-15998,-28597,-16020,-28585,-16042,-28572,-16064,-28560,-16086,-28548,-16108,-28535,-16129,-28523,-16151,-28511,-16173,-28498,-16195,-28486,-16217,-28473,-16239,-28461,-16261,-28448,-16282,-28436,-16304,-28424,-16326,-28411,-16348,-28398,-16369,-28386,-16391,-28373,-16413,-28361,-16435,-28348,-16456,-28336,-16478,-28323,-16500,-28310,-16522,-28298,-16543,-28285,-16565,-28272,-16587,-28260,-16608,-28247,-16630,-28234,-16652,-28221,-16673,-28209,-16695,-28196,-16717,-28183,-16738,-28170,-16760,-28157,-16781,-28144,-16803,-28132,-16825,-28119,-16846,-28106,-16868,-28093,-16889,-28080,-16911,-28067,-16932,-28054,-16954,-28041,-16975,-28028,-16997,-28015,-17018,-28002,-17040,-27989,-17061,-27976,-17083,-27963,-17104,-27949,-17125,-27936,-17147,-27923,-17168,-27910,-17190,-27897,-17211,-27884,-17233,-27870,-17254,-27857,-17275,-27844,-17297,-27831,-17318,-27817,-17339,-27804,-17361,-27791,-17382,-27778,-17403,-27764,-17424,-27751,-17446,-27737,-17467,-27724,-17488,-27711,-17510,-27697,-17531,-27684,-17552,-27670,-17573,-27657,-17594,-27643,-17616,-27630,-17637,-27616,-17658,-27603,-17679,-27589,-17700,-27576,-17721,-27562,-17743,-27549,-17764,-27535,-17785,-27521,-17806,-27508,-17827,-27494,-17848,-27480,-17869,-27467,-17890,-27453,-17911,-27439,-17932,-27425,-17953,-27412,-17974,-27398,-17995,-27384,-18016,-27370,-18037,-27356,-18058,-27343,-18079,-27329,-18100,-27315,-18121,-27301,-18142,-27287,-18163,-27273,-18184,-27259,-18205,-27245,-18226,-27231,-18247,-27217,-18268,-27203,-18288,-27189,-18309,-27175,-18330,-27161,-18351,-27147,-18372,-27133,-18393,-27119,-18413,-27105,-18434,-27091,-18455,-27077,-18476,-27062,-18496,-27048,-18517,-27034,-18538,-27020,-18559,-27006,-18579,-26991,-18600,-26977,-18621,-26963,-18641,-26949,-18662,-26934,-18683,-26920,-18703,-26906,-18724,-26891,-18745,-26877,-18765,-26862,-18786,-26848,-18806,-26834,-18827,-26819,-18847,-26805,-18868,-26790,-18889,-26776,-18909,-26761,-18930,-26747,-18950,-26732,-18971,-26718,-18991,-26703,-19012,-26689,-19032,-26674,-19052,-26659,-19073,-26645,-19093,-26630,-19114,-26616,-19134,-26601,-19155,-26586,-19175,-26571,-19195,-26557,-19216,-26542,-19236,-26527,-19256,-26513,-19277,-26498,-19297,-26483,-19317,-26468,-19338,-26453,-19358,-26438,-19378,-26424,-19398,-26409,-19419,-26394,-19439,-26379,-19459,-26364,-19479,-26349,-19500,-26334,-19520,-26319,-19540,-26304,-19560,-26289,-19580,-26274,-19600,-26259,-19621,-26244,-19641,-26229,-19661,-26214,-19681,-26199,-19701,-26184,-19721,-26169,-19741,-26154,-19761,-26138,-19781,-26123,-19801,-26108,-19821,-26093,-19841,-26078,-19861,-26062,-19881,-26047,-19901,-26032,-19921,-26017,-19941,-26001,-19961,-25986,-19981,-25971,-20001,-25955,-20021,-25940,-20041,-25925,-20061,-25909,-20080,-25894,-20100,-25879,-20120,-25863,-20140,-25848,-20160,-25832,-20180,-25817,-20199,-25801,-20219,-25786,-20239,-25770,-20259,-25755,-20278,-25739,-20298,-25724,-20318,-25708,-20338,-25692,-20357,-25677,-20377,-25661,-20397,-25646,-20416,-25630,-20436,-25614,-20456,-25599,-20475,-25583,-20495,-25567,-20514,-25551,-20534,-25536,-20554,-25520,-20573,-25504,-20593,-25488,-20612,-25473,-20632,-25457,-20651,-25441,-20671,-25425,-20690,-25409,-20710,-25393,-20729,-25377,-20749,-25362,-20768,-25346,-20788,-25330,-20807,-25314,-20826,-25298,-20846,-25282,-20865,-25266,-20885,-25250,-20904,-25234,-20923,-25218,-20943,-25202,-20962,-25186,-20981,-25170,-21001,-25153,-21020,-25137,-21039,-25121,-21058,-25105,-21078,-25089,-21097,-25073,-21116,-25057,-21135,-25040,-21155,-25024,-21174,-25008,-21193,-24992,-21212,-24975,-21231,-24959,-21250,-24943,-21269,-24927,-21289,-24910,-21308,-24894,-21327,-24878,-21346,-24861,-21365,-24845,-21384,-24828,-21403,-24812,-21422,-24796,-21441,-24779,-21460,-24763,-21479,-24746,-21498,-24730,-21517,-24713,-21536,-24697,-21555,-24680,-21574,-24664,-21593,-24647,-21612,-24631,-21630,-24614,-21649,-24597,-21668,-24581,-21687,-24564,-21706,-24547,-21725,-24531,-21744,-24514,-21762,-24497,-21781,-24481,-21800,-24464,-21819,-24447,-21837,-24431,-21856,-24414,-21875,-24397,-21894,-24380,-21912,-24363,-21931,-24347,-21950,-24330,-21968,-24313,-21987,-24296,-22005,-24279,-22024,-24262,-22043,-24245,-22061,-24229,-22080,-24212,-22098,-24195,-22117,-24178,-22136,-24161,-22154,-24144,-22173,-24127,-22191,-24110,-22210,-24093,-22228,-24076,-22246,-24059,-22265,-24042,-22283,-24024,-22302,-24007,-22320,-23990,-22339,-23973,-22357,-23956,-22375,-23939,-22394,-23922,-22412,-23904,-22430,-23887,-22449,-23870,-22467,-23853,-22485,-23836,-22504,-23818,-22522,-23801,-22540,-23784,-22558,-23767,-22576,-23749,-22595,-23732,-22613,-23715,-22631,-23697,-22649,-23680,-22667,-23662,-22686,-23645,-22704,-23628,-22722,-23610,-22740,-23593,-22758,-23575,-22776,-23558,-22794,-23540,-22812,-23523,-22830,-23505,-22848,-23488,-22866,-23470,-22884,-23453,-22902,-23435,-22920,-23418,-22938,-23400,-22956,-23383,-22974,-23365,-22992,-23347,-23010,-23330,-23028,-23312,-23046,-23294,-23063,-23277,-23081,-23259,-23099,-23241,-23117,-23224,-23135,-23206,-23152,-23188,-23170,-23170,-23188,-23152,-23206,-23135,-23224,-23117,-23241,-23099,-23259,-23081,-23277,-23063,-23294,-23046,-23312,-23028,-23330,-23010,-23347,-22992,-23365,-22974,-23383,-22956,-23400,-22938,-23418,-22920,-23435,-22902,-23453,-22884,-23470,-22866,-23488,-22848,-23505,-22830,-23523,-22812,-23540,-22794,-23558,-22776,-23575,-22758,-23593,-22740,-23610,-22722,-23628,-22704,-23645,-22686,-23662,-22667,-23680,-22649,-23697,-22631,-23715,-22613,-23732,-22595,-23749,-22576,-23767,-22558,-23784,-22540,-23801,-22522,-23818,-22504,-23836,-22485,-23853,-22467,-23870,-22449,-23887,-22430,-23904,-22412,-23922,-22394,-23939,-22375,-23956,-22357,-23973,-22339,-23990,-22320,-24007,-22302,-24024,-22283,-24042,-22265,-24059,-22246,-24076,-22228,-24093,-22210,-24110,-22191,-24127,-22173,-24144,-22154,-24161,-22136,-24178,-22117,-24195,-22098,-24212,-22080,-24229,-22061,-24245,-22043,-24262,-22024,-24279,-22005,-24296,-21987,-24313,-21968,-24330,-21950,-24347,-21931,-24363,-21912,-24380,-21894,-24397,-21875,-24414,-21856,-24431,-21837,-24447,-21819,-24464,-21800,-24481,-21781,-24497,-21762,-24514,-21744,-24531,-21725,-24547,-21706,-24564,-21687,-24581,-21668,-24597,-21649,-24614,-21630,-24631,-21612,-24647,-21593,-24664,-21574,-24680,-21555,-24697,-21536,-24713,-21517,-24730,-21498,-24746,-21479,-24763,-21460,-24779,-21441,-24796,-21422,-24812,-21403,-24828,-21384,-24845,-21365,-24861,-21346,-24878,-21327,-24894,-21308,-24910,-21289,-24927,-21269,-24943,-21250,-24959,-21231,-24975,-21212,-24992,-21193,-25008,-21174,-25024,-21155,-25040,-21135,-25057,-21116,-25073,-21097,-25089,-21078,-25105,-21058,-25121,-21039,-25137,-21020,-25153,-21001,-25170,-20981,-25186,-20962,-25202,-20943,-25218,-20923,-25234,-20904,-25250,-20885,-25266,-20865,-25282,-20846,-25298,-20826,-25314,-20807,-25330,-20788,-25346,-20768,-25362,-20749,-25377,-20729,-25393,-20710,-25409,-20690,-25425,-20671,-25441,-20651,-25457,-20632,-25473,-20612,-25488,-20593,-25504,-20573,-25520,-20554,-25536,-20534,-25551,-20514,-25567,-20495,-25583,-20475,-25599,-20456,-25614,-20436,-25630,-20416,-25646,-20397,-25661,-20377,-25677,-20357,-25692,-20338,-25708,-20318,-25724,-20298,-25739,-20278,-25755,-20259,-25770,-20239,-25786,-20219,-25801,-20199,-25817,-20180,-25832,-20160,-25848,-20140,-25863,-20120,-25879,-20100,-25894,-20080,-25909,-20061,-25925,-20041,-25940,-20021,-25955,-20001,-25971,-19981,-25986,-19961,-26001,-19941,-26017,-19921,-26032,-19901,-26047,-19881,-26062,-19861,-26078,-19841,-26093,-19821,-26108,-19801,-26123,-19781,-26138,-19761,-26154,-19741,-26169,-19721,-26184,-19701,-26199,-19681,-26214,-19661,-26229,-19641,-26244,-19621,-26259,-19600,-26274,-19580,-26289,-19560,-26304,-19540,-26319,-19520,-26334,-19500,-26349,-19479,-26364,-19459,-26379,-19439,-26394,-19419,-26409,-19398,-26424,-19378,-26438,-19358,-26453,-19338,-26468,-19317,-26483,-19297,-26498,-19277,-26513,-19256,-26527,-19236,-26542,-19216,-26557,-19195,-26571,-19175,-26586,-19155,-26601,-19134,-26616,-19114,-26630,-19093,-26645,-19073,-26659,-19052,-26674,-19032,-26689,-19012,-26703,-18991,-26718,-18971,-26732,-18950,-26747,-18930,-26761,-18909,-26776,-18889,-26790,-18868,-26805,-18847,-26819,-18827,-26834,-18806,-26848,-18786,-26862,-18765,-26877,-18745,-26891,-18724,-26906,-18703,-26920,-18683,-26934,-18662,-26949,-18641,-26963,-18621,-26977,-18600,-26991,-18579,-27006,-18559,-27020,-18538,-27034,-18517,-27048,-18496,-27062,-18476,-27077,-18455,-27091,-18434,-27105,-18413,-27119,-18393,-27133,-18372,-27147,-18351,-27161,-18330,-27175,-18309,-27189,-18288,-27203,-18268,-27217,-18247,-27231,-18226,-27245,-18205,-27259,-18184,-27273,-18163,-27287,-18142,-27301,-18121,-27315,-18100,-27329,-18079,-27343,-18058,-27356,-18037,-27370,-18016,-27384,-17995,-27398,-17974,-27412,-17953,-27425,-17932,-27439,-17911,-27453,-17890,-27467,-17869,-27480,-17848,-27494,-17827,-27508,-17806,-27521,-17785,-27535,-17764,-27549,-17743,-27562,-17721,-27576,-17700,-27589,-17679,-27603,-17658,-27616,-17637,-27630,-17616,-27643,-17594,-27657,-17573,-27670,-17552,-27684,-17531,-27697,-17510,-27711,-17488,-27724,-17467,-27737,-17446,-27751,-17424,-27764,-17403,-27778,-17382,-27791,-17361,-27804,-17339,-27817,-17318,-27831,-17297,-27844,-17275,-27857,-17254,-27870,-17233,-27884,-17211,-27897,-17190,-27910,-17168,-27923,-17147,-27936,-17125,-27949,-17104,-27963,-17083,-27976,-17061,-27989,-17040,-28002,-17018,-28015,-16997,-28028,-16975,-28041,-16954,-28054,-16932,-28067,-16911,-28080,-16889,-28093,-16868,-28106,-16846,-28119,-16825,-28132,-16803,-28144,-16781,-28157,-16760,-28170,-16738,-28183,-16717,-28196,-16695,-28209,-16673,-28221,-16652,-28234,-16630,-28247,-16608,-28260,-16587,-28272,-16565,-28285,-16543,-28298,-16522,-28310,-16500,-28323,-16478,-28336,-16456,-28348,-16435,-28361,-16413,-28373,-16391,-28386,-16369,-28398,-16348,-28411,-16326,-28424,-16304,-28436,-16282,-28448,-16261,-28461,-16239,-28473,-16217,-28486,-16195,-28498,-16173,-28511,-16151,-28523,-16129,-28535,-16108,-28548,-16086,-28560,-16064,-28572,-16042,-28585,-16020,-28597,-15998,-28609,-15976,-28621,-15954,-28634,-15932,-28646,-15910,-28658,-15888,-28670,-15866,-28682,-15844,-28695,-15822,-28707,-15800,-28719,-15778,-28731,-15756,-28743,-15734,-28755,-15712,-28767,-15690,-28779,-15668,-28791,-15646,-28803,-15624,-28815,-15602,-28827,-15580,-28839,-15557,-28851,-15535,-28863,-15513,-28875,-15491,-28887,-15469,-28898,-15447,-28910,-15425,-28922,-15402,-28934,-15380,-28946,-15358,-28957,-15336,-28969,-15314,-28981,-15291,-28993,-15269,-29004,-15247,-29016,-15225,-29028,-15202,-29039,-15180,-29051,-15158,-29063,-15136,-29074,-15113,-29086,-15091,-29097,-15069,-29109,-15046,-29120,-15024,-29132,-15002,-29143,-14979,-29155,-14957,-29166,-14935,-29178,-14912,-29189,-14890,-29201,-14867,-29212,-14845,-29223,-14823,-29235,-14800,-29246,-14778,-29257,-14755,-29269,-14733,-29280,-14710,-29291,-14688,-29303,-14666,-29314,-14643,-29325,-14621,-29336,-14598,-29347,-14576,-29359,-14553,-29370,-14531,-29381,-14508,-29392,-14485,-29403,-14463,-29414,-14440,-29425,-14418,-29436,-14395,-29447,-14373,-29458,-14350,-29469,-14327,-29480,-14305,-29491,-14282,-29502,-14260,-29513,-14237,-29524,-14214,-29535,-14192,-29546,-14169,-29557,-14146,-29568,-14124,-29578,-14101,-29589,-14078,-29600,-14056,-29611,-14033,-29622,-14010,-29632,-13987,-29643,-13965,-29654,-13942,-29664,-13919,-29675,-13896,-29686,-13874,-29696,-13851,-29707,-13828,-29718,-13805,-29728,-13783,-29739,-13760,-29749,-13737,-29760,-13714,-29770,-13691,-29781,-13668,-29791,-13646,-29802,-13623,-29812,-13600,-29823,-13577,-29833,-13554,-29843,-13531,-29854,-13508,-29864,-13486,-29874,-13463,-29885,-13440,-29895,-13417,-29905,-13394,-29916,-13371,-29926,-13348,-29936,-13325,-29946,-13302,-29956,-13279,-29967,-13256,-29977,-13233,-29987,-13210,-29997,-13187,-30007,-13164,-30017,-13141,-30027,-13118,-30037,-13095,-30047,-13072,-30057,-13049,-30067,-13026,-30077,-13003,-30087,-12980,-30097,-12957,-30107,-12934,-30117,-12910,-30127,-12887,-30137,-12864,-30147,-12841,-30157,-12818,-30166,-12795,-30176,-12772,-30186,-12749,-30196,-12725,-30206,-12702,-30215,-12679,-30225,-12656,-30235,-12633,-30244,-12610,-30254,-12586,-30264,-12563,-30273,-12540,-30283,-12517,-30292,-12493,-30302,-12470,-30312,-12447,-30321,-12424,-30331,-12400,-30340,-12377,-30350,-12354,-30359,-12331,-30369,-12307,-30378,-12284,-30387,-12261,-30397,-12237,-30406,-12214,-30416,-12191,-30425,-12167,-30434,-12144,-30443,-12121,-30453,-12097,-30462,-12074,-30471,-12051,-30481,-12027,-30490,-12004,-30499,-11981,-30508,-11957,-30517,-11934,-30526,-11910,-30536,-11887,-30545,-11863,-30554,-11840,-30563,-11817,-30572,-11793,-30581,-11770,-30590,-11746,-30599,-11723,-30608,-11699,-30617,-11676,-30626,-11652,-30635,-11629,-30644,-11605,-30653,-11582,-30661,-11558,-30670,-11535,-30679,-11511,-30688,-11488,-30697,-11464,-30706,-11441,-30714,-11417,-30723,-11394,-30732,-11370,-30740,-11346,-30749,-11323,-30758,-11299,-30767,-11276,-30775,-11252,-30784,-11228,-30792,-11205,-30801,-11181,-30810,-11158,-30818,-11134,-30827,-11110,-30835,-11087,-30844,-11063,-30852,-11039,-30861,-11016,-30869,-10992,-30877,-10968,-30886,-10945,-30894,-10921,-30903,-10897,-30911,-10874,-30919,-10850,-30928,-10826,-30936,-10802,-30944,-10779,-30952,-10755,-30961,-10731,-30969,-10707,-30977,-10684,-30985,-10660,-30993,-10636,-31002,-10612,-31010,-10589,-31018,-10565,-31026,-10541,-31034,-10517,-31042,-10493,-31050,-10470,-31058,-10446,-31066,-10422,-31074,-10398,-31082,-10374,-31090,-10350,-31098,-10327,-31106,-10303,-31114,-10279,-31122,-10255,-31129,-10231,-31137,-10207,-31145,-10183,-31153,-10160,-31161,-10136,-31168,-10112,-31176,-10088,-31184,-10064,-31192,-10040,-31199,-10016,-31207,-9992,-31215,-9968,-31222,-9944,-31230,-9920,-31237,-9896,-31245,-9872,-31253,-9848,-31260,-9824,-31268,-9800,-31275,-9776,-31283,-9752,-31290,-9728,-31298,-9704,-31305,-9680,-31312,-9656,-31320,-9632,-31327,-9608,-31335,-9584,-31342,-9560,-31349,-9536,-31357,-9512,-31364,-9488,-31371,-9464,-31378,-9440,-31386,-9416,-31393,-9392,-31400,-9368,-31407,-9344,-31414,-9320,-31421,-9296,-31429,-9271,-31436,-9247,-31443,-9223,-31450,-9199,-31457,-9175,-31464,-9151,-31471,-9127,-31478,-9103,-31485,-9078,-31492,-9054,-31499,-9030,-31506,-9006,-31513,-8982,-31519,-8958,-31526,-8933,-31533,-8909,-31540,-8885,-31547,-8861,-31554,-8837,-31560,-8813,-31567,-8788,-31574,-8764,-31581,-8740,-31587,-8716,-31594,-8691,-31601,-8667,-31607,-8643,-31614,-8619,-31620,-8594,-31627,-8570,-31634,-8546,-31640,-8522,-31647,-8497,-31653,-8473,-31660,-8449,-31666,-8425,-31673,-8400,-31679,-8376,-31685,-8352,-31692,-8327,-31698,-8303,-31705,-8279,-31711,-8254,-31717,-8230,-31724,-8206,-31730,-8181,-31736,-8157,-31742,-8133,-31749,-8108,-31755,-8084,-31761,-8060,-31767,-8035,-31773,-8011,-31779,-7987,-31786,-7962,-31792,-7938,-31798,-7913,-31804,-7889,-31810,-7865,-31816,-7840,-31822,-7816,-31828,-7791,-31834,-7767,-31840,-7743,-31846,-7718,-31852,-7694,-31857,-7669,-31863,-7645,-31869,-7620,-31875,-7596,-31881,-7572,-31887,-7547,-31892,-7523,-31898,-7498,-31904,-7474,-31910,-7449,-31915,-7425,-31921,-7400,-31927,-7376,-31932,-7351,-31938,-7327,-31944,-7302,-31949,-7278,-31955,-7253,-31960,-7229,-31966,-7204,-31971,-7180,-31977,-7155,-31982,-7131,-31988,-7106,-31993,-7082,-31999,-7057,-32004,-7033,-32009,-7008,-32015,-6983,-32020,-6959,-32025,-6934,-32031,-6910,-32036,-6885,-32041,-6861,-32047,-6836,-32052,-6812,-32057,-6787,-32062,-6762,-32067,-6738,-32073,-6713,-32078,-6689,-32083,-6664,-32088,-6639,-32093,-6615,-32098,-6590,-32103,-6565,-32108,-6541,-32113,-6516,-32118,-6492,-32123,-6467,-32128,-6442,-32133,-6418,-32138,-6393,-32143,-6368,-32148,-6344,-32153,-6319,-32157,-6294,-32162,-6270,-32167,-6245,-32172,-6220,-32177,-6196,-32181,-6171,-32186,-6146,-32191,-6122,-32195,-6097,-32200,-6072,-32205,-6048,-32209,-6023,-32214,-5998,-32219,-5973,-32223,-5949,-32228,-5924,-32232,-5899,-32237,-5875,-32241,-5850,-32246,-5825,-32250,-5800,-32255,-5776,-32259,-5751,-32263,-5726,-32268,-5701,-32272,-5677,-32276,-5652,-32281,-5627,-32285,-5602,-32289,-5578,-32294,-5553,-32298,-5528,-32302,-5503,-32306,-5479,-32311,-5454,-32315,-5429,-32319,-5404,-32323,-5379,-32327,-5355,-32331,-5330,-32335,-5305,-32339,-5280,-32343,-5255,-32347,-5231,-32351,-5206,-32355,-5181,-32359,-5156,-32363,-5131,-32367,-5107,-32371,-5082,-32375,-5057,-32379,-5032,-32383,-5007,-32387,-4982,-32390,-4958,-32394,-4933,-32398,-4908,-32402,-4883,-32405,-4858,-32409,-4833,-32413,-4808,-32417,-4784,-32420,-4759,-32424,-4734,-32427,-4709,-32431,-4684,-32435,-4659,-32438,-4634,-32442,-4609,-32445,-4585,-32449,-4560,-32452,-4535,-32456,-4510,-32459,-4485,-32463,-4460,-32466,-4435,-32469,-4410,-32473,-4385,-32476,-4360,-32479,-4336,-32483,-4311,-32486,-4286,-32489,-4261,-32493,-4236,-32496,-4211,-32499,-4186,-32502,-4161,-32505,-4136,-32509,-4111,-32512,-4086,-32515,-4061,-32518,-4036,-32521,-4012,-32524,-3987,-32527,-3962,-32530,-3937,-32533,-3912,-32536,-3887,-32539,-3862,-32542,-3837,-32545,-3812,-32548,-3787,-32551,-3762,-32554,-3737,-32557,-3712,-32559,-3687,-32562,-3662,-32565,-3637,-32568,-3612,-32571,-3587,-32573,-3562,-32576,-3537,-32579,-3512,-32581,-3487,-32584,-3462,-32587,-3437,-32589,-3412,-32592,-3387,-32595,-3362,-32597,-3337,-32600,-3312,-32602,-3287,-32605,-3262,-32607,-3237,-32610,-3212,-32612,-3187,-32615,-3162,-32617,-3137,-32619,-3112,-32622,-3087,-32624,-3062,-32626,-3037,-32629,-3012,-32631,-2987,-32633,-2962,-32636,-2937,-32638,-2912,-32640,-2887,-32642,-2862,-32645,-2837,-32647,-2812,-32649,-2787,-32651,-2762,-32653,-2737,-32655,-2712,-32657,-2687,-32659,-2662,-32661,-2637,-32663,-2611,-32665,-2586,-32667,-2561,-32669,-2536,-32671,-2511,-32673,-2486,-32675,-2461,-32677,-2436,-32679,-2411,-32681,-2386,-32682,-2361,-32684,-2336,-32686,-2311,-32688,-2286,-32689,-2261,-32691,-2236,-32693,-2210,-32695,-2185,-32696,-2160,-32698,-2135,-32700,-2110,-32701,-2085,-32703,-2060,-32704,-2035,-32706,-2010,-32707,-1985,-32709,-1960,-32710,-1935,-32712,-1909,-32713,-1884,-32715,-1859,-32716,-1834,-32718,-1809,-32719,-1784,-32720,-1759,-32722,-1734,-32723,-1709,-32724,-1684,-32726,-1659,-32727,-1633,-32728,-1608,-32729,-1583,-32730,-1558,-32732,-1533,-32733,-1508,-32734,-1483,-32735,-1458,-32736,-1433,-32737,-1407,-32738,-1382,-32739,-1357,-32740,-1332,-32741,-1307,-32742,-1282,-32743,-1257,-32744,-1232,-32745,-1207,-32746,-1181,-32747,-1156,-32748,-1131,-32749,-1106,-32750,-1081,-32751,-1056,-32751,-1031,-32752,-1006,-32753,-981,-32754,-955,-32754,-930,-32755,-905,-32756,-880,-32756,-855,-32757,-830,-32758,-805,-32758,-780,-32759,-754,-32759,-729,-32760,-704,-32760,-679,-32761,-654,-32761,-629,-32762,-604,-32762,-579,-32763,-553,-32763,-528,-32764,-503,-32764,-478,-32764,-453,-32765,-428,-32765,-403,-32765,-377,-32766,-352,-32766,-327,-32766,-302,-32766,-277,-32767,-252,-32767,-227,-32767,-202,-32767,-176,-32767,-151,-32767,-126,-32767,-101,-32767,-76,-32767,-51,-32767,-26}; diff --git a/openair1/SIMULATION/LTE_PHY/dlsim.c b/openair1/SIMULATION/LTE_PHY/dlsim.c index 909c40512d2d6a7e87226101a94f329b5012121a..a650acefd89c685696bce7b4b0fc0e2310da4ac1 100644 --- a/openair1/SIMULATION/LTE_PHY/dlsim.c +++ b/openair1/SIMULATION/LTE_PHY/dlsim.c @@ -67,6 +67,7 @@ #include "common/config/config_load_configmodule.h" #include "PHY/INIT/phy_init.h" + void feptx_ofdm(RU_t *ru); void feptx_prec(RU_t *ru); @@ -83,6 +84,8 @@ int n_rx_dropped = 0; /*!< \brief initial max process time for rx */ int codingw = 0; +int emulate_rf = 0; + void handler(int sig) { void *array[10];