Цитата(Zelepuk @ Mar 8 2011, 00:12)

Никак не могу найти вашу реализацию. Может дадите ссылку... интересует именно реализация на Си. Посмотреть принципы хочу...

да, тоже не могу найти... странно... ну ладно, вот код -
Код
#ifndef __FFT_TWIDDLES_H__
#define __FFT_TWIDDLES_H__
#define FR2(x) (x*32767)
const int16_t
fft_twiddles_1024[] = {
/*N:1024,i: 0 */ FR2(+1.0000000000000000), FR2(+0.0000000000000000),
/*N:1024,i: 0 */ FR2(+1.0000000000000000), FR2(+0.0000000000000000),
/*N:1024,i: 0 */ FR2(+1.0000000000000000), FR2(+0.0000000000000000),
/*N:1024,i: 1 */ FR2(+0.9999247018391445), FR2(+0.0122715382857199),
/*N:1024,i: 1 */ FR2(+0.9999811752826011), FR2(+0.0061358846491545),
/*N:1024,i: 1 */ FR2(+0.9998305817958234), FR2(+0.0184067299058048),
/*N:1024,i: 2 */ FR2(+0.9996988186962043), FR2(+0.0245412285229123),
/*N:1024,i: 2 */ FR2(+0.9999247018391445), FR2(+0.0122715382857199),
/*N:1024,i: 2 */ FR2(+0.9993223845883495), FR2(+0.0368072229413588),
/*N:1024,i: 3 */ FR2(+0.9993223845883495), FR2(+0.0368072229413588),
/*N:1024,i: 3 */ FR2(+0.9998305817958234), FR2(+0.0184067299058048),
/*N:1024,i: 3 */ FR2(+0.9984755805732948), FR2(+0.0551952443496899),
/*N:1024,i: 4 */ FR2(+0.9987954562051724), FR2(+0.0490676743274180),
/*N:1024,i: 4 */ FR2(+0.9996988186962043), FR2(+0.0245412285229123),
/*N:1024,i: 4 */ FR2(+0.9972904566786902), FR2(+0.0735645635996674),
/*N:1024,i: 5 */ FR2(+0.9981181129001492), FR2(+0.0613207363022086),
/*N:1024,i: 5 */ FR2(+0.9995294175010931), FR2(+0.0306748031766366),
/*N:1024,i: 5 */ FR2(+0.9957674144676598), FR2(+0.0919089564971327),
/*N:1024,i: 6 */ FR2(+0.9972904566786902), FR2(+0.0735645635996674),
/*N:1024,i: 6 */ FR2(+0.9993223845883495), FR2(+0.0368072229413588),
/*N:1024,i: 6 */ FR2(+0.9939069700023561), FR2(+0.1102222072938831),
/*N:1024,i: 7 */ FR2(+0.9963126121827780), FR2(+0.0857973123444399),
/*N:1024,i: 7 */ FR2(+0.9990777277526454), FR2(+0.0429382569349408),
/*N:1024,i: 7 */ FR2(+0.9917097536690995), FR2(+0.1284981107937932),
/*N:1024,i: 8 */ FR2(+0.9951847266721969), FR2(+0.0980171403295606),
/*N:1024,i: 8 */ FR2(+0.9987954562051724), FR2(+0.0490676743274180),
/*N:1024,i: 8 */ FR2(+0.9891765099647810), FR2(+0.1467304744553618),
/*N:1024,i: 9 */ FR2(+0.9939069700023561), FR2(+0.1102222072938831),
/*N:1024,i: 9 */ FR2(+0.9984755805732948), FR2(+0.0551952443496899),
/*N:1024,i: 9 */ FR2(+0.9863080972445987), FR2(+0.1649131204899699),
/*N:1024,i:10 */ FR2(+0.9924795345987100), FR2(+0.1224106751992162),
/*N:1024,i:10 */ FR2(+0.9981181129001492), FR2(+0.0613207363022086),
/*N:1024,i:10 */ FR2(+0.9831054874312163), FR2(+0.1830398879551410),
/*N:1024,i:11 */ FR2(+0.9909026354277800), FR2(+0.1345807085071262),
/*N:1024,i:11 */ FR2(+0.9977230666441916), FR2(+0.0674439195636641),
/*N:1024,i:11 */ FR2(+0.9795697656854405), FR2(+0.2011046348420919),
/*N:1024,i:12 */ FR2(+0.9891765099647810), FR2(+0.1467304744553618),
/*N:1024,i:12 */ FR2(+0.9972904566786902), FR2(+0.0735645635996674),
/*N:1024,i:12 */ FR2(+0.9757021300385286), FR2(+0.2191012401568698),
/*N:1024,i:13 */ FR2(+0.9873014181578584), FR2(+0.1588581433338615),
/*N:1024,i:13 */ FR2(+0.9968202992911657), FR2(+0.0796824379714301),
/*N:1024,i:13 */ FR2(+0.9715038909862518), FR2(+0.2370236059943672),
/*N:1024,i:14 */ FR2(+0.9852776423889412), FR2(+0.1709618887603012),
/*N:1024,i:14 */ FR2(+0.9963126121827780), FR2(+0.0857973123444399),
/*N:1024,i:14 */ FR2(+0.9669764710448521), FR2(+0.2548656596045146),
/*N:1024,i:15 */ FR2(+0.9831054874312163), FR2(+0.1830398879551410),
/*N:1024,i:15 */ FR2(+0.9957674144676598), FR2(+0.0919089564971327),
/*N:1024,i:15 */ FR2(+0.9621214042690416), FR2(+0.2726213554499490),
/*N:1024,i:16 */ FR2(+0.9807852804032304), FR2(+0.1950903220161283),
/*N:1024,i:16 */ FR2(+0.9951847266721969), FR2(+0.0980171403295606),
/*N:1024,i:16 */ FR2(+0.9569403357322088), FR2(+0.2902846772544623),
/*N:1024,i:17 */ FR2(+0.9783173707196277), FR2(+0.2071113761922186),
/*N:1024,i:17 */ FR2(+0.9945645707342554), FR2(+0.1041216338720546),
/*N:1024,i:17 */ FR2(+0.9514350209690083), FR2(+0.3078496400415349),
/*N:1024,i:18 */ FR2(+0.9757021300385286), FR2(+0.2191012401568698),
/*N:1024,i:18 */ FR2(+0.9939069700023561), FR2(+0.1102222072938831),
/*N:1024,i:18 */ FR2(+0.9456073253805213), FR2(+0.3253102921622629),
/*N:1024,i:19 */ FR2(+0.9729399522055602), FR2(+0.2310581082806711),
/*N:1024,i:19 */ FR2(+0.9932119492347945), FR2(+0.1163186309119048),
/*N:1024,i:19 */ FR2(+0.9394592236021899), FR2(+0.3426607173119944),
/*N:1024,i:20 */ FR2(+0.9700312531945440), FR2(+0.2429801799032639),
/*N:1024,i:20 */ FR2(+0.9924795345987100), FR2(+0.1224106751992162),
/*N:1024,i:20 */ FR2(+0.9329927988347390), FR2(+0.3598950365349881),
/*N:1024,i:21 */ FR2(+0.9669764710448521), FR2(+0.2548656596045146),
/*N:1024,i:21 */ FR2(+0.9917097536690995), FR2(+0.1284981107937932),
/*N:1024,i:21 */ FR2(+0.9262102421383114), FR2(+0.3770074102164183),
/*N:1024,i:22 */ FR2(+0.9637760657954398), FR2(+0.2667127574748984),
/*N:1024,i:22 */ FR2(+0.9909026354277800), FR2(+0.1345807085071262),
/*N:1024,i:22 */ FR2(+0.9191138516900578), FR2(+0.3939920400610481),
/*N:1024,i:23 */ FR2(+0.9604305194155658), FR2(+0.2785196893850531),
/*N:1024,i:23 */ FR2(+0.9900582102622971), FR2(+0.1406582393328492),
/*N:1024,i:23 */ FR2(+0.9117060320054299), FR2(+0.4108431710579039),
/*N:1024,i:24 */ FR2(+0.9569403357322088), FR2(+0.2902846772544623),
/*N:1024,i:24 */ FR2(+0.9891765099647810), FR2(+0.1467304744553618),
/*N:1024,i:24 */ FR2(+0.9039892931234433), FR2(+0.4275550934302821),
/*N:1024,i:25 */ FR2(+0.9533060403541939), FR2(+0.3020059493192281),
/*N:1024,i:25 */ FR2(+0.9882575677307495), FR2(+0.1527971852584434),
/*N:1024,i:25 */ FR2(+0.8959662497561852), FR2(+0.4441221445704292),
/*N:1024,i:26 */ FR2(+0.9495281805930367), FR2(+0.3136817403988915),
/*N:1024,i:26 */ FR2(+0.9873014181578584), FR2(+0.1588581433338615),
/*N:1024,i:26 */ FR2(+0.8876396204028539), FR2(+0.4605387109582400),
/*N:1024,i:27 */ FR2(+0.9456073253805213), FR2(+0.3253102921622629),
/*N:1024,i:27 */ FR2(+0.9863080972445987), FR2(+0.1649131204899699),
/*N:1024,i:27 */ FR2(+0.8790122264286335), FR2(+0.4767992300633221),
/*N:1024,i:28 */ FR2(+0.9415440651830208), FR2(+0.3368898533922201),
/*N:1024,i:28 */ FR2(+0.9852776423889412), FR2(+0.1709618887603012),
/*N:1024,i:28 */ FR2(+0.8700869911087115), FR2(+0.4928981922297840),
/*N:1024,i:29 */ FR2(+0.9373390119125750), FR2(+0.3484186802494346),
/*N:1024,i:29 */ FR2(+0.9842100923869290), FR2(+0.1770042204121488),
/*N:1024,i:29 */ FR2(+0.8608669386377673), FR2(+0.5088301425431070),
/*N:1024,i:30 */ FR2(+0.9329927988347390), FR2(+0.3598950365349881),
/*N:1024,i:30 */ FR2(+0.9831054874312163), FR2(+0.1830398879551410),
/*N:1024,i:30 */ FR2(+0.8513551931052652), FR2(+0.5245896826784690),
/*N:1024,i:31 */ FR2(+0.9285060804732156), FR2(+0.3713171939518375),
/*N:1024,i:31 */ FR2(+0.9819638691095552), FR2(+0.1890686641498062),
/*N:1024,i:31 */ FR2(+0.8415549774368984), FR2(+0.5401714727298929),
/*N:1024,i:32 */ FR2(+0.9238795325112867), FR2(+0.3826834323650898),
/*N:1024,i:32 */ FR2(+0.9807852804032304), FR2(+0.1950903220161283),
/*N:1024,i:32 */ FR2(+0.8314696123025452), FR2(+0.5555702330196022),
/*N:1024,i:33 */ FR2(+0.9191138516900578), FR2(+0.3939920400610481),
/*N:1024,i:33 */ FR2(+0.9795697656854405), FR2(+0.2011046348420919),
/*N:1024,i:33 */ FR2(+0.8211025149911047), FR2(+0.5707807458869673),
/*N:1024,i:34 */ FR2(+0.9142097557035307), FR2(+0.4052413140049899),
/*N:1024,i:34 */ FR2(+0.9783173707196277), FR2(+0.2071113761922186),
/*N:1024,i:34 */ FR2(+0.8104571982525948), FR2(+0.5857978574564389),
/*N:1024,i:35 */ FR2(+0.9091679830905224), FR2(+0.4164295600976372),
/*N:1024,i:35 */ FR2(+0.9770281426577544), FR2(+0.2131103199160914),
/*N:1024,i:35 */ FR2(+0.7995372691079050), FR2(+0.6006164793838690),
/*N:1024,i:36 */ FR2(+0.9039892931234433), FR2(+0.4275550934302821),
/*N:1024,i:36 */ FR2(+0.9757021300385286), FR2(+0.2191012401568698),
/*N:1024,i:36 */ FR2(+0.7883464276266063), FR2(+0.6152315905806268),
/*N:1024,i:37 */ FR2(+0.8986744656939538), FR2(+0.4386162385385277),
/*N:1024,i:37 */ FR2(+0.9743393827855759), FR2(+0.2250839113597928),
/*N:1024,i:37 */ FR2(+0.7768884656732324), FR2(+0.6296382389149270),
/*N:1024,i:38 */ FR2(+0.8932243011955153), FR2(+0.4496113296546065),
/*N:1024,i:38 */ FR2(+0.9729399522055602), FR2(+0.2310581082806711),
/*N:1024,i:38 */ FR2(+0.7651672656224590), FR2(+0.6438315428897914),
/*N:1024,i:39 */ FR2(+0.8876396204028539), FR2(+0.4605387109582400),
/*N:1024,i:39 */ FR2(+0.9715038909862518), FR2(+0.2370236059943672),
/*N:1024,i:39 */ FR2(+0.7531867990436125), FR2(+0.6578066932970786),
/*N:1024,i:40 */ FR2(+0.8819212643483551), FR2(+0.4713967368259976),
/*N:1024,i:40 */ FR2(+0.9700312531945440), FR2(+0.2429801799032639),
/*N:1024,i:40 */ FR2(+0.7409511253549591), FR2(+0.6715589548470183),
/*N:1024,i:41 */ FR2(+0.8760700941954066), FR2(+0.4821837720791227),
/*N:1024,i:41 */ FR2(+0.9685220942744174), FR2(+0.2489276057457202),
/*N:1024,i:41 */ FR2(+0.7284643904482252), FR2(+0.6850836677727004),
/*N:1024,i:42 */ FR2(+0.8700869911087115), FR2(+0.4928981922297840),
/*N:1024,i:42 */ FR2(+0.9669764710448521), FR2(+0.2548656596045146),
/*N:1024,i:42 */ FR2(+0.7157308252838186), FR2(+0.6983762494089729),
/*N:1024,i:43 */ FR2(+0.8639728561215868), FR2(+0.5035383837257176),
/*N:1024,i:43 */ FR2(+0.9653944416976894), FR2(+0.2607941179152755),
/*N:1024,i:43 */ FR2(+0.7027547444572253), FR2(+0.7114321957452164),
/*N:1024,i:44 */ FR2(+0.8577286100002721), FR2(+0.5141027441932217),
/*N:1024,i:44 */ FR2(+0.9637760657954398), FR2(+0.2667127574748984),
/*N:1024,i:44 */ FR2(+0.6895405447370669), FR2(+0.7242470829514669),
/*N:1024,i:45 */ FR2(+0.8513551931052652), FR2(+0.5245896826784690),
/*N:1024,i:45 */ FR2(+0.9621214042690416), FR2(+0.2726213554499490),
/*N:1024,i:45 */ FR2(+0.6760927035753160), FR2(+0.7368165688773698),
/*N:1024,i:46 */ FR2(+0.8448535652497071), FR2(+0.5349976198870972),
/*N:1024,i:46 */ FR2(+0.9604305194155658), FR2(+0.2785196893850531),
/*N:1024,i:46 */ FR2(+0.6624157775901718), FR2(+0.7491363945234593),
/*N:1024,i:47 */ FR2(+0.8382247055548381), FR2(+0.5453249884220465),
/*N:1024,i:47 */ FR2(+0.9587034748958716), FR2(+0.2844075372112719),
/*N:1024,i:47 */ FR2(+0.6485144010221126), FR2(+0.7612023854842618),
/*N:1024,i:48 */ FR2(+0.8314696123025452), FR2(+0.5555702330196022),
/*N:1024,i:48 */ FR2(+0.9569403357322088), FR2(+0.2902846772544623),
/*N:1024,i:48 */ FR2(+0.6343932841636455), FR2(+0.7730104533627370),
/*N:1024,i:49 */ FR2(+0.8245893027850253), FR2(+0.5657318107836131),
/*N:1024,i:49 */ FR2(+0.9551411683057708), FR2(+0.2961508882436238),
/*N:1024,i:49 */ FR2(+0.6200572117632892), FR2(+0.7845565971555752),
/*N:1024,i:50 */ FR2(+0.8175848131515837), FR2(+0.5758081914178453),
/*N:1024,i:50 */ FR2(+0.9533060403541939), FR2(+0.3020059493192281),
/*N:1024,i:50 */ FR2(+0.6055110414043256), FR2(+0.7958369046088835),
/*N:1024,i:51 */ FR2(+0.8104571982525948), FR2(+0.5857978574564389),
/*N:1024,i:51 */ FR2(+0.9514350209690083), FR2(+0.3078496400415349),
/*N:1024,i:51 */ FR2(+0.5907597018588743), FR2(+0.8068475535437992),
/*N:1024,i:52 */ FR2(+0.8032075314806449), FR2(+0.5956993044924334),
/*N:1024,i:52 */ FR2(+0.9495281805930367), FR2(+0.3136817403988915),
/*N:1024,i:52 */ FR2(+0.5758081914178453), FR2(+0.8175848131515837),
/*N:1024,i:53 */ FR2(+0.7958369046088836), FR2(+0.6055110414043256),
/*N:1024,i:53 */ FR2(+0.9475855910177411), FR2(+0.3195020308160157),
/*N:1024,i:53 */ FR2(+0.5606615761973360), FR2(+0.8280450452577558),
/*N:1024,i:54 */ FR2(+0.7883464276266063), FR2(+0.6152315905806268),
/*N:1024,i:54 */ FR2(+0.9456073253805213), FR2(+0.3253102921622629),
/*N:1024,i:54 */ FR2(+0.5453249884220465), FR2(+0.8382247055548380),
/*N:1024,i:55 */ FR2(+0.7807372285720945), FR2(+0.6248594881423863),
/*N:1024,i:55 */ FR2(+0.9435934581619604), FR2(+0.3311063057598764),
/*N:1024,i:55 */ FR2(+0.5298036246862948), FR2(+0.8481203448032971),
/*N:1024,i:56 */ FR2(+0.7730104533627370), FR2(+0.6343932841636455),
/*N:1024,i:56 */ FR2(+0.9415440651830208), FR2(+0.3368898533922201),
/*N:1024,i:56 */ FR2(+0.5141027441932217), FR2(+0.8577286100002721),
/*N:1024,i:57 */ FR2(+0.7651672656224590), FR2(+0.6438315428897914),
/*N:1024,i:57 */ FR2(+0.9394592236021899), FR2(+0.3426607173119944),
/*N:1024,i:57 */ FR2(+0.4982276669727819), FR2(+0.8670462455156927),
/*N:1024,i:58 */ FR2(+0.7572088465064846), FR2(+0.6531728429537768),
/*N:1024,i:58 */ FR2(+0.9373390119125750), FR2(+0.3484186802494346),
/*N:1024,i:58 */ FR2(+0.4821837720791228), FR2(+0.8760700941954066),
/*N:1024,i:59 */ FR2(+0.7491363945234594), FR2(+0.6624157775901718),
/*N:1024,i:59 */ FR2(+0.9351835099389476), FR2(+0.3541635254204903),
/*N:1024,i:59 */ FR2(+0.4659764957679661), FR2(+0.8847970984309378),
/*N:1024,i:60 */ FR2(+0.7409511253549591), FR2(+0.6715589548470183),
/*N:1024,i:60 */ FR2(+0.9329927988347390), FR2(+0.3598950365349881),
/*N:1024,i:60 */ FR2(+0.4496113296546066), FR2(+0.8932243011955153),
/*N:1024,i:61 */ FR2(+0.7326542716724128), FR2(+0.6806009977954530),
/*N:1024,i:61 */ FR2(+0.9307669610789837), FR2(+0.3656129978047739),
/*N:1024,i:61 */ FR2(+0.4330938188531520), FR2(+0.9013488470460220),
/*N:1024,i:62 */ FR2(+0.7242470829514670), FR2(+0.6895405447370668),
/*N:1024,i:62 */ FR2(+0.9285060804732156), FR2(+0.3713171939518375),
/*N:1024,i:62 */ FR2(+0.4164295600976373), FR2(+0.9091679830905223),
/*N:1024,i:63 */ FR2(+0.7157308252838186), FR2(+0.6983762494089729),
/*N:1024,i:63 */ FR2(+0.9262102421383114), FR2(+0.3770074102164183),
/*N:1024,i:63 */ FR2(+0.3996241998456468), FR2(+0.9166790599210427),
/*N:1024,i:64 */ FR2(+0.7071067811865476), FR2(+0.7071067811865475),
/*N:1024,i:64 */ FR2(+0.9238795325112867), FR2(+0.3826834323650898),
/*N:1024,i:64 */ FR2(+0.3826834323650898), FR2(+0.9238795325112867),
/*N:1024,i:65 */ FR2(+0.6983762494089729), FR2(+0.7157308252838186),
/*N:1024,i:65 */ FR2(+0.9215140393420420), FR2(+0.3883450466988263),
/*N:1024,i:65 */ FR2(+0.3656129978047740), FR2(+0.9307669610789837),
/*N:1024,i:66 */ FR2(+0.6895405447370669), FR2(+0.7242470829514669),
/*N:1024,i:66 */ FR2(+0.9191138516900578), FR2(+0.3939920400610481),
/*N:1024,i:66 */ FR2(+0.3484186802494345), FR2(+0.9373390119125750),
/*N:1024,i:67 */ FR2(+0.6806009977954531), FR2(+0.7326542716724128),
/*N:1024,i:67 */ FR2(+0.9166790599210427), FR2(+0.3996241998456468),
/*N:1024,i:67 */ FR2(+0.3311063057598764), FR2(+0.9435934581619604),
/*N:1024,i:68 */ FR2(+0.6715589548470183), FR2(+0.7409511253549591),
/*N:1024,i:68 */ FR2(+0.9142097557035307), FR2(+0.4052413140049899),
/*N:1024,i:68 */ FR2(+0.3136817403988916), FR2(+0.9495281805930367),
/*N:1024,i:69 */ FR2(+0.6624157775901718), FR2(+0.7491363945234593),
/*N:1024,i:69 */ FR2(+0.9117060320054299), FR2(+0.4108431710579039),
/*N:1024,i:69 */ FR2(+0.2961508882436240), FR2(+0.9551411683057707),
/*N:1024,i:70 */ FR2(+0.6531728429537768), FR2(+0.7572088465064845),
/*N:1024,i:70 */ FR2(+0.9091679830905224), FR2(+0.4164295600976372),
/*N:1024,i:70 */ FR2(+0.2785196893850531), FR2(+0.9604305194155658),
/*N:1024,i:71 */ FR2(+0.6438315428897915), FR2(+0.7651672656224590),
/*N:1024,i:71 */ FR2(+0.9065957045149153), FR2(+0.4220002707997997),
/*N:1024,i:71 */ FR2(+0.2607941179152756), FR2(+0.9653944416976894),
/*N:1024,i:72 */ FR2(+0.6343932841636455), FR2(+0.7730104533627370),
/*N:1024,i:72 */ FR2(+0.9039892931234433), FR2(+0.4275550934302821),
/*N:1024,i:72 */ FR2(+0.2429801799032640), FR2(+0.9700312531945440),
/*N:1024,i:73 */ FR2(+0.6248594881423865), FR2(+0.7807372285720944),
/*N:1024,i:73 */ FR2(+0.9013488470460220), FR2(+0.4330938188531520),
/*N:1024,i:73 */ FR2(+0.2250839113597928), FR2(+0.9743393827855759),
/*N:1024,i:74 */ FR2(+0.6152315905806268), FR2(+0.7883464276266062),
/*N:1024,i:74 */ FR2(+0.8986744656939538), FR2(+0.4386162385385277),
/*N:1024,i:74 */ FR2(+0.2071113761922186), FR2(+0.9783173707196277),
/*N:1024,i:75 */ FR2(+0.6055110414043256), FR2(+0.7958369046088835),
/*N:1024,i:75 */ FR2(+0.8959662497561852), FR2(+0.4441221445704292),
/*N:1024,i:75 */ FR2(+0.1890686641498063), FR2(+0.9819638691095552),
/*N:1024,i:76 */ FR2(+0.5956993044924335), FR2(+0.8032075314806448),
/*N:1024,i:76 */ FR2(+0.8932243011955153), FR2(+0.4496113296546065),
/*N:1024,i:76 */ FR2(+0.1709618887603014), FR2(+0.9852776423889412),
/*N:1024,i:77 */ FR2(+0.5857978574564389), FR2(+0.8104571982525948),
/*N:1024,i:77 */ FR2(+0.8904487232447579), FR2(+0.4550835871263438),
/*N:1024,i:77 */ FR2(+0.1527971852584434), FR2(+0.9882575677307495),
/*N:1024,i:78 */ FR2(+0.5758081914178453), FR2(+0.8175848131515837),
/*N:1024,i:78 */ FR2(+0.8876396204028539), FR2(+0.4605387109582400),
/*N:1024,i:78 */ FR2(+0.1345807085071262), FR2(+0.9909026354277800),
/*N:1024,i:79 */ FR2(+0.5657318107836132), FR2(+0.8245893027850253),
/*N:1024,i:79 */ FR2(+0.8847970984309378), FR2(+0.4659764957679662),
/*N:1024,i:79 */ FR2(+0.1163186309119049), FR2(+0.9932119492347945),
/*N:1024,i:80 */ FR2(+0.5555702330196023), FR2(+0.8314696123025452),
/*N:1024,i:80 */ FR2(+0.8819212643483551), FR2(+0.4713967368259976),
/*N:1024,i:80 */ FR2(+0.0980171403295608), FR2(+0.9951847266721968),
/*N:1024,i:81 */ FR2(+0.5453249884220465), FR2(+0.8382247055548380),
/*N:1024,i:81 */ FR2(+0.8790122264286335), FR2(+0.4767992300633221),
/*N:1024,i:81 */ FR2(+0.0796824379714301), FR2(+0.9968202992911657),
/*N:1024,i:82 */ FR2(+0.5349976198870973), FR2(+0.8448535652497070),
/*N:1024,i:82 */ FR2(+0.8760700941954066), FR2(+0.4821837720791227),
/*N:1024,i:82 */ FR2(+0.0613207363022086), FR2(+0.9981181129001492),
/*N:1024,i:83 */ FR2(+0.5245896826784688), FR2(+0.8513551931052652),
/*N:1024,i:83 */ FR2(+0.8730949784182901), FR2(+0.4875501601484360),
/*N:1024,i:83 */ FR2(+0.0429382569349410), FR2(+0.9990777277526454),
/*N:1024,i:84 */ FR2(+0.5141027441932217), FR2(+0.8577286100002721),
/*N:1024,i:84 */ FR2(+0.8700869911087115), FR2(+0.4928981922297840),
/*N:1024,i:84 */ FR2(+0.0245412285229123), FR2(+0.9996988186962043),
/*N:1024,i:85 */ FR2(+0.5035383837257176), FR2(+0.8639728561215867),
/*N:1024,i:85 */ FR2(+0.8670462455156927), FR2(+0.4982276669727819),
/*N:1024,i:85 */ FR2(+0.0061358846491545), FR2(+0.9999811752826011),
/*N:1024,i:86 */ FR2(+0.4928981922297841), FR2(+0.8700869911087114),
/*N:1024,i:86 */ FR2(+0.8639728561215868), FR2(+0.5035383837257176),
/*N:1024,i:86 */ FR2(-0.0122715382857198), FR2(+0.9999247018391445),
/*N:1024,i:87 */ FR2(+0.4821837720791228), FR2(+0.8760700941954066),
/*N:1024,i:87 */ FR2(+0.8608669386377673), FR2(+0.5088301425431070),
/*N:1024,i:87 */ FR2(-0.0306748031766365), FR2(+0.9995294175010931),
/*N:1024,i:88 */ FR2(+0.4713967368259978), FR2(+0.8819212643483549),
/*N:1024,i:88 */ FR2(+0.8577286100002721), FR2(+0.5141027441932217),
/*N:1024,i:88 */ FR2(-0.0490676743274180), FR2(+0.9987954562051724),
/*N:1024,i:89 */ FR2(+0.4605387109582400), FR2(+0.8876396204028539),
/*N:1024,i:89 */ FR2(+0.8545579883654005), FR2(+0.5193559901655896),
/*N:1024,i:89 */ FR2(-0.0674439195636640), FR2(+0.9977230666441916),
/*N:1024,i:90 */ FR2(+0.4496113296546066), FR2(+0.8932243011955153),
/*N:1024,i:90 */ FR2(+0.8513551931052652), FR2(+0.5245896826784690),
/*N:1024,i:90 */ FR2(-0.0857973123444398), FR2(+0.9963126121827780),
/*N:1024,i:91 */ FR2(+0.4386162385385277), FR2(+0.8986744656939538),
/*N:1024,i:91 */ FR2(+0.8481203448032972), FR2(+0.5298036246862946),
/*N:1024,i:91 */ FR2(-0.1041216338720546), FR2(+0.9945645707342554),
/*N:1024,i:92 */ FR2(+0.4275550934302822), FR2(+0.9039892931234433),
/*N:1024,i:92 */ FR2(+0.8448535652497071), FR2(+0.5349976198870972),
/*N:1024,i:92 */ FR2(-0.1224106751992162), FR2(+0.9924795345987100),
/*N:1024,i:93 */ FR2(+0.4164295600976373), FR2(+0.9091679830905223),
/*N:1024,i:93 */ FR2(+0.8415549774368984), FR2(+0.5401714727298929),
/*N:1024,i:93 */ FR2(-0.1406582393328491), FR2(+0.9900582102622971),
/*N:1024,i:94 */ FR2(+0.4052413140049899), FR2(+0.9142097557035307),
/*N:1024,i:94 */ FR2(+0.8382247055548381), FR2(+0.5453249884220465),
/*N:1024,i:94 */ FR2(-0.1588581433338613), FR2(+0.9873014181578584),
/*N:1024,i:95 */ FR2(+0.3939920400610481), FR2(+0.9191138516900578),
/*N:1024,i:95 */ FR2(+0.8348628749863800), FR2(+0.5504579729366048),
/*N:1024,i:95 */ FR2(-0.1770042204121488), FR2(+0.9842100923869290),
/*N:1024,i:96 */ FR2(+0.3826834323650898), FR2(+0.9238795325112867),
/*N:1024,i:96 */ FR2(+0.8314696123025452), FR2(+0.5555702330196022),
/*N:1024,i:96 */ FR2(-0.1950903220161282), FR2(+0.9807852804032304),
/*N:1024,i:97 */ FR2(+0.3713171939518376), FR2(+0.9285060804732155),
/*N:1024,i:97 */ FR2(+0.8280450452577558), FR2(+0.5606615761973360),
/*N:1024,i:97 */ FR2(-0.2131103199160913), FR2(+0.9770281426577544),
/*N:1024,i:98 */ FR2(+0.3598950365349883), FR2(+0.9329927988347389),
/*N:1024,i:98 */ FR2(+0.8245893027850253), FR2(+0.5657318107836131),
/*N:1024,i:98 */ FR2(-0.2310581082806711), FR2(+0.9729399522055602),
/*N:1024,i:99 */ FR2(+0.3484186802494345), FR2(+0.9373390119125750),
/*N:1024,i:99 */ FR2(+0.8211025149911047), FR2(+0.5707807458869673),
/*N:1024,i:99 */ FR2(-0.2489276057457201), FR2(+0.9685220942744174),
/*N:1024,i:100 */ FR2(+0.3368898533922201), FR2(+0.9415440651830208),
/*N:1024,i:100 */ FR2(+0.8175848131515837), FR2(+0.5758081914178453),
/*N:1024,i:100 */ FR2(-0.2667127574748983), FR2(+0.9637760657954398),
/*N:1024,i:101 */ FR2(+0.3253102921622630), FR2(+0.9456073253805213),
/*N:1024,i:101 */ FR2(+0.8140363297059484), FR2(+0.5808139580957645),
/*N:1024,i:101 */ FR2(-0.2844075372112717), FR2(+0.9587034748958716),
/*N:1024,i:102 */ FR2(+0.3136817403988916), FR2(+0.9495281805930367),
/*N:1024,i:102 */ FR2(+0.8104571982525948), FR2(+0.5857978574564389),
/*N:1024,i:102 */ FR2(-0.3020059493192281), FR2(+0.9533060403541939),
/*N:1024,i:103 */ FR2(+0.3020059493192282), FR2(+0.9533060403541938),
/*N:1024,i:103 */ FR2(+0.8068475535437993), FR2(+0.5907597018588742),
/*N:1024,i:103 */ FR2(-0.3195020308160156), FR2(+0.9475855910177412),
/*N:1024,i:104 */ FR2(+0.2902846772544623), FR2(+0.9569403357322089),
/*N:1024,i:104 */ FR2(+0.8032075314806449), FR2(+0.5956993044924334),
/*N:1024,i:104 */ FR2(-0.3368898533922199), FR2(+0.9415440651830208),
/*N:1024,i:105 */ FR2(+0.2785196893850531), FR2(+0.9604305194155658),
/*N:1024,i:105 */ FR2(+0.7995372691079050), FR2(+0.6006164793838690),
/*N:1024,i:105 */ FR2(-0.3541635254204904), FR2(+0.9351835099389476),
/*N:1024,i:106 */ FR2(+0.2667127574748984), FR2(+0.9637760657954398),
/*N:1024,i:106 */ FR2(+0.7958369046088836), FR2(+0.6055110414043256),
/*N:1024,i:106 */ FR2(-0.3713171939518375), FR2(+0.9285060804732156),
/*N:1024,i:107 */ FR2(+0.2548656596045146), FR2(+0.9669764710448521),
/*N:1024,i:107 */ FR2(+0.7921065773002124), FR2(+0.6103828062763095),
/*N:1024,i:107 */ FR2(-0.3883450466988262), FR2(+0.9215140393420420),
/*N:1024,i:108 */ FR2(+0.2429801799032640), FR2(+0.9700312531945440),
/*N:1024,i:108 */ FR2(+0.7883464276266063), FR2(+0.6152315905806268),
/*N:1024,i:108 */ FR2(-0.4052413140049898), FR2(+0.9142097557035307),
/*N:1024,i:109 */ FR2(+0.2310581082806713), FR2(+0.9729399522055601),
/*N:1024,i:109 */ FR2(+0.7845565971555752), FR2(+0.6200572117632891),
/*N:1024,i:109 */ FR2(-0.4220002707997997), FR2(+0.9065957045149153),
/*N:1024,i:110 */ FR2(+0.2191012401568698), FR2(+0.9757021300385286),
/*N:1024,i:110 */ FR2(+0.7807372285720945), FR2(+0.6248594881423863),
/*N:1024,i:110 */ FR2(-0.4386162385385274), FR2(+0.8986744656939539),
/*N:1024,i:111 */ FR2(+0.2071113761922186), FR2(+0.9783173707196277),
/*N:1024,i:111 */ FR2(+0.7768884656732324), FR2(+0.6296382389149270),
/*N:1024,i:111 */ FR2(-0.4550835871263437), FR2(+0.8904487232447580),
/*N:1024,i:112 */ FR2(+0.1950903220161283), FR2(+0.9807852804032304),
/*N:1024,i:112 */ FR2(+0.7730104533627370), FR2(+0.6343932841636455),
/*N:1024,i:112 */ FR2(-0.4713967368259977), FR2(+0.8819212643483551),
/*N:1024,i:113 */ FR2(+0.1830398879551411), FR2(+0.9831054874312163),
/*N:1024,i:113 */ FR2(+0.7691033376455797), FR2(+0.6391244448637757),
/*N:1024,i:113 */ FR2(-0.4875501601484357), FR2(+0.8730949784182902),
/*N:1024,i:114 */ FR2(+0.1709618887603014), FR2(+0.9852776423889412),
/*N:1024,i:114 */ FR2(+0.7651672656224590), FR2(+0.6438315428897914),
/*N:1024,i:114 */ FR2(-0.5035383837257175), FR2(+0.8639728561215868),
/*N:1024,i:115 */ FR2(+0.1588581433338614), FR2(+0.9873014181578584),
/*N:1024,i:115 */ FR2(+0.7612023854842618), FR2(+0.6485144010221124),
/*N:1024,i:115 */ FR2(-0.5193559901655896), FR2(+0.8545579883654005),
/*N:1024,i:116 */ FR2(+0.1467304744553618), FR2(+0.9891765099647810),
/*N:1024,i:116 */ FR2(+0.7572088465064846), FR2(+0.6531728429537768),
/*N:1024,i:116 */ FR2(-0.5349976198870970), FR2(+0.8448535652497072),
/*N:1024,i:117 */ FR2(+0.1345807085071262), FR2(+0.9909026354277800),
/*N:1024,i:117 */ FR2(+0.7531867990436125), FR2(+0.6578066932970786),
/*N:1024,i:117 */ FR2(-0.5504579729366047), FR2(+0.8348628749863801),
/*N:1024,i:118 */ FR2(+0.1224106751992163), FR2(+0.9924795345987100),
/*N:1024,i:118 */ FR2(+0.7491363945234594), FR2(+0.6624157775901718),
/*N:1024,i:118 */ FR2(-0.5657318107836132), FR2(+0.8245893027850252),
/*N:1024,i:119 */ FR2(+0.1102222072938832), FR2(+0.9939069700023561),
/*N:1024,i:119 */ FR2(+0.7450577854414661), FR2(+0.6669999223036375),
/*N:1024,i:119 */ FR2(-0.5808139580957644), FR2(+0.8140363297059485),
/*N:1024,i:120 */ FR2(+0.0980171403295608), FR2(+0.9951847266721968),
/*N:1024,i:120 */ FR2(+0.7409511253549591), FR2(+0.6715589548470183),
/*N:1024,i:120 */ FR2(-0.5956993044924334), FR2(+0.8032075314806449),
/*N:1024,i:121 */ FR2(+0.0857973123444399), FR2(+0.9963126121827780),
/*N:1024,i:121 */ FR2(+0.7368165688773699), FR2(+0.6760927035753159),
/*N:1024,i:121 */ FR2(-0.6103828062763096), FR2(+0.7921065773002123),
/*N:1024,i:122 */ FR2(+0.0735645635996675), FR2(+0.9972904566786902),
/*N:1024,i:122 */ FR2(+0.7326542716724128), FR2(+0.6806009977954530),
/*N:1024,i:122 */ FR2(-0.6248594881423862), FR2(+0.7807372285720946),
/*N:1024,i:123 */ FR2(+0.0613207363022086), FR2(+0.9981181129001492),
/*N:1024,i:123 */ FR2(+0.7284643904482252), FR2(+0.6850836677727004),
/*N:1024,i:123 */ FR2(-0.6391244448637757), FR2(+0.7691033376455796),
/*N:1024,i:124 */ FR2(+0.0490676743274181), FR2(+0.9987954562051724),
/*N:1024,i:124 */ FR2(+0.7242470829514670), FR2(+0.6895405447370668),
/*N:1024,i:124 */ FR2(-0.6531728429537765), FR2(+0.7572088465064847),
/*N:1024,i:125 */ FR2(+0.0368072229413590), FR2(+0.9993223845883495),
/*N:1024,i:125 */ FR2(+0.7200025079613817), FR2(+0.6939714608896540),
/*N:1024,i:125 */ FR2(-0.6669999223036374), FR2(+0.7450577854414661),
/*N:1024,i:126 */ FR2(+0.0245412285229123), FR2(+0.9996988186962043),
/*N:1024,i:126 */ FR2(+0.7157308252838186), FR2(+0.6983762494089729),
/*N:1024,i:126 */ FR2(-0.6806009977954530), FR2(+0.7326542716724128),
/*N:1024,i:127 */ FR2(+0.0122715382857199), FR2(+0.9999247018391445),
/*N:1024,i:127 */ FR2(+0.7114321957452164), FR2(+0.7027547444572253),
/*N:1024,i:127 */ FR2(-0.6939714608896538), FR2(+0.7200025079613818),
/*N:1024,i:128 */ FR2(+0.0000000000000001), FR2(+1.0000000000000000),
/*N:1024,i:128 */ FR2(+0.7071067811865476), FR2(+0.7071067811865475),
/*N:1024,i:128 */ FR2(-0.7071067811865475), FR2(+0.7071067811865476),
/*N:1024,i:129 */ FR2(-0.0122715382857198), FR2(+0.9999247018391445),
/*N:1024,i:129 */ FR2(+0.7027547444572253), FR2(+0.7114321957452164),
/*N:1024,i:129 */ FR2(-0.7200025079613817), FR2(+0.6939714608896540),
/*N:1024,i:130 */ FR2(-0.0245412285229121), FR2(+0.9996988186962043),
/*N:1024,i:130 */ FR2(+0.6983762494089729), FR2(+0.7157308252838186),
/*N:1024,i:130 */ FR2(-0.7326542716724127), FR2(+0.6806009977954532),
/*N:1024,i:131 */ FR2(-0.0368072229413589), FR2(+0.9993223845883495),
/*N:1024,i:131 */ FR2(+0.6939714608896540), FR2(+0.7200025079613817),
/*N:1024,i:131 */ FR2(-0.7450577854414660), FR2(+0.6669999223036376),
/*N:1024,i:132 */ FR2(-0.0490676743274180), FR2(+0.9987954562051724),
/*N:1024,i:132 */ FR2(+0.6895405447370669), FR2(+0.7242470829514669),
/*N:1024,i:132 */ FR2(-0.7572088465064846), FR2(+0.6531728429537766),
/*N:1024,i:133 */ FR2(-0.0613207363022085), FR2(+0.9981181129001492),
/*N:1024,i:133 */ FR2(+0.6850836677727004), FR2(+0.7284643904482252),
/*N:1024,i:133 */ FR2(-0.7691033376455795), FR2(+0.6391244448637758),
/*N:1024,i:134 */ FR2(-0.0735645635996673), FR2(+0.9972904566786902),
/*N:1024,i:134 */ FR2(+0.6806009977954531), FR2(+0.7326542716724128),
/*N:1024,i:134 */ FR2(-0.7807372285720945), FR2(+0.6248594881423863),
/*N:1024,i:135 */ FR2(-0.0857973123444398), FR2(+0.9963126121827780),
/*N:1024,i:135 */ FR2(+0.6760927035753160), FR2(+0.7368165688773698),
/*N:1024,i:135 */ FR2(-0.7921065773002122), FR2(+0.6103828062763097),
/*N:1024,i:136 */ FR2(-0.0980171403295606), FR2(+0.9951847266721969),
/*N:1024,i:136 */ FR2(+0.6715589548470183), FR2(+0.7409511253549591),
/*N:1024,i:136 */ FR2(-0.8032075314806448), FR2(+0.5956993044924335),
/*N:1024,i:137 */ FR2(-0.1102222072938831), FR2(+0.9939069700023561),
/*N:1024,i:137 */ FR2(+0.6669999223036375), FR2(+0.7450577854414660),
/*N:1024,i:137 */ FR2(-0.8140363297059484), FR2(+0.5808139580957645),
/*N:1024,i:138 */ FR2(-0.1224106751992162), FR2(+0.9924795345987100),
/*N:1024,i:138 */ FR2(+0.6624157775901718), FR2(+0.7491363945234593),
/*N:1024,i:138 */ FR2(-0.8245893027850251), FR2(+0.5657318107836135),
/*N:1024,i:139 */ FR2(-0.1345807085071261), FR2(+0.9909026354277800),
/*N:1024,i:139 */ FR2(+0.6578066932970786), FR2(+0.7531867990436124),
/*N:1024,i:139 */ FR2(-0.8348628749863800), FR2(+0.5504579729366049),
/*N:1024,i:140 */ FR2(-0.1467304744553616), FR2(+0.9891765099647810),
/*N:1024,i:140 */ FR2(+0.6531728429537768), FR2(+0.7572088465064845),
/*N:1024,i:140 */ FR2(-0.8448535652497071), FR2(+0.5349976198870972),
/*N:1024,i:141 */ FR2(-0.1588581433338613), FR2(+0.9873014181578584),
/*N:1024,i:141 */ FR2(+0.6485144010221126), FR2(+0.7612023854842618),
/*N:1024,i:141 */ FR2(-0.8545579883654004), FR2(+0.5193559901655898),
/*N:1024,i:142 */ FR2(-0.1709618887603012), FR2(+0.9852776423889412),
/*N:1024,i:142 */ FR2(+0.6438315428897915), FR2(+0.7651672656224590),
/*N:1024,i:142 */ FR2(-0.8639728561215867), FR2(+0.5035383837257177),
/*N:1024,i:143 */ FR2(-0.1830398879551409), FR2(+0.9831054874312163),
/*N:1024,i:143 */ FR2(+0.6391244448637757), FR2(+0.7691033376455796),
/*N:1024,i:143 */ FR2(-0.8730949784182901), FR2(+0.4875501601484359),
/*N:1024,i:144 */ FR2(-0.1950903220161282), FR2(+0.9807852804032304),
/*N:1024,i:144 */ FR2(+0.6343932841636455), FR2(+0.7730104533627370),
/*N:1024,i:144 */ FR2(-0.8819212643483549), FR2(+0.4713967368259979),
/*N:1024,i:145 */ FR2(-0.2071113761922185), FR2(+0.9783173707196277),
/*N:1024,i:145 */ FR2(+0.6296382389149271), FR2(+0.7768884656732324),
/*N:1024,i:145 */ FR2(-0.8904487232447579), FR2(+0.4550835871263439),
/*N:1024,i:146 */ FR2(-0.2191012401568697), FR2(+0.9757021300385286),
/*N:1024,i:146 */ FR2(+0.6248594881423865), FR2(+0.7807372285720944),
/*N:1024,i:146 */ FR2(-0.8986744656939539), FR2(+0.4386162385385276),
/*N:1024,i:147 */ FR2(-0.2310581082806711), FR2(+0.9729399522055602),
/*N:1024,i:147 */ FR2(+0.6200572117632892), FR2(+0.7845565971555752),
/*N:1024,i:147 */ FR2(-0.9065957045149153), FR2(+0.4220002707997999),
/*N:1024,i:148 */ FR2(-0.2429801799032639), FR2(+0.9700312531945440),
/*N:1024,i:148 */ FR2(+0.6152315905806268), FR2(+0.7883464276266062),
/*N:1024,i:148 */ FR2(-0.9142097557035307), FR2(+0.4052413140049899),
/*N:1024,i:149 */ FR2(-0.2548656596045145), FR2(+0.9669764710448521),
/*N:1024,i:149 */ FR2(+0.6103828062763095), FR2(+0.7921065773002124),
/*N:1024,i:149 */ FR2(-0.9215140393420418), FR2(+0.3883450466988266),
/*N:1024,i:150 */ FR2(-0.2667127574748983), FR2(+0.9637760657954398),
/*N:1024,i:150 */ FR2(+0.6055110414043256), FR2(+0.7958369046088835),
/*N:1024,i:150 */ FR2(-0.9285060804732155), FR2(+0.3713171939518377),
/*N:1024,i:151 */ FR2(-0.2785196893850530), FR2(+0.9604305194155659),
/*N:1024,i:151 */ FR2(+0.6006164793838690), FR2(+0.7995372691079050),
/*N:1024,i:151 */ FR2(-0.9351835099389476), FR2(+0.3541635254204904),
/*N:1024,i:152 */ FR2(-0.2902846772544622), FR2(+0.9569403357322089),
/*N:1024,i:152 */ FR2(+0.5956993044924335), FR2(+0.8032075314806448),
/*N:1024,i:152 */ FR2(-0.9415440651830207), FR2(+0.3368898533922203),
/*N:1024,i:153 */ FR2(-0.3020059493192281), FR2(+0.9533060403541939),
/*N:1024,i:153 */ FR2(+0.5907597018588743), FR2(+0.8068475535437992),
/*N:1024,i:153 */ FR2(-0.9475855910177411), FR2(+0.3195020308160158),
/*N:1024,i:154 */ FR2(-0.3136817403988914), FR2(+0.9495281805930367),
/*N:1024,i:154 */ FR2(+0.5857978574564389), FR2(+0.8104571982525948),
/*N:1024,i:154 */ FR2(-0.9533060403541939), FR2(+0.3020059493192280),
/*N:1024,i:155 */ FR2(-0.3253102921622629), FR2(+0.9456073253805214),
/*N:1024,i:155 */ FR2(+0.5808139580957645), FR2(+0.8140363297059483),
/*N:1024,i:155 */ FR2(-0.9587034748958715), FR2(+0.2844075372112721),
/*N:1024,i:156 */ FR2(-0.3368898533922199), FR2(+0.9415440651830208),
/*N:1024,i:156 */ FR2(+0.5758081914178453), FR2(+0.8175848131515837),
/*N:1024,i:156 */ FR2(-0.9637760657954398), FR2(+0.2667127574748985),
/*N:1024,i:157 */ FR2(-0.3484186802494344), FR2(+0.9373390119125750),
/*N:1024,i:157 */ FR2(+0.5707807458869674), FR2(+0.8211025149911047),
/*N:1024,i:157 */ FR2(-0.9685220942744174), FR2(+0.2489276057457201),
/*N:1024,i:158 */ FR2(-0.3598950365349882), FR2(+0.9329927988347389),
/*N:1024,i:158 */ FR2(+0.5657318107836132), FR2(+0.8245893027850253),
/*N:1024,i:158 */ FR2(-0.9729399522055601), FR2(+0.2310581082806713),
/*N:1024,i:159 */ FR2(-0.3713171939518375), FR2(+0.9285060804732156),
/*N:1024,i:159 */ FR2(+0.5606615761973360), FR2(+0.8280450452577558),
/*N:1024,i:159 */ FR2(-0.9770281426577544), FR2(+0.2131103199160914),
/*N:1024,i:160 */ FR2(-0.3826834323650897), FR2(+0.9238795325112867),
/*N:1024,i:160 */ FR2(+0.5555702330196023), FR2(+0.8314696123025452),
/*N:1024,i:160 */ FR2(-0.9807852804032304), FR2(+0.1950903220161286),
/*N:1024,i:161 */ FR2(-0.3939920400610480), FR2(+0.9191138516900578),
/*N:1024,i:161 */ FR2(+0.5504579729366048), FR2(+0.8348628749863800),
/*N:1024,i:161 */ FR2(-0.9842100923869290), FR2(+0.1770042204121489),
/*N:1024,i:162 */ FR2(-0.4052413140049898), FR2(+0.9142097557035307),
/*N:1024,i:162 */ FR2(+0.5453249884220465), FR2(+0.8382247055548380),
/*N:1024,i:162 */ FR2(-0.9873014181578584), FR2(+0.1588581433338615),
/*N:1024,i:163 */ FR2(-0.4164295600976370), FR2(+0.9091679830905225),
/*N:1024,i:163 */ FR2(+0.5401714727298930), FR2(+0.8415549774368983),
/*N:1024,i:163 */ FR2(-0.9900582102622970), FR2(+0.1406582393328495),
/*N:1024,i:164 */ FR2(-0.4275550934302819), FR2(+0.9039892931234435),
/*N:1024,i:164 */ FR2(+0.5349976198870973), FR2(+0.8448535652497070),
/*N:1024,i:164 */ FR2(-0.9924795345987100), FR2(+0.1224106751992164),
/*N:1024,i:165 */ FR2(-0.4386162385385274), FR2(+0.8986744656939539),
/*N:1024,i:165 */ FR2(+0.5298036246862948), FR2(+0.8481203448032971),
/*N:1024,i:165 */ FR2(-0.9945645707342554), FR2(+0.1041216338720546),
/*N:1024,i:166 */ FR2(-0.4496113296546067), FR2(+0.8932243011955152),
/*N:1024,i:166 */ FR2(+0.5245896826784688), FR2(+0.8513551931052652),
/*N:1024,i:166 */ FR2(-0.9963126121827780), FR2(+0.0857973123444402),
/*N:1024,i:167 */ FR2(-0.4605387109582401), FR2(+0.8876396204028539),
/*N:1024,i:167 */ FR2(+0.5193559901655895), FR2(+0.8545579883654005),
/*N:1024,i:167 */ FR2(-0.9977230666441916), FR2(+0.0674439195636642),
/*N:1024,i:168 */ FR2(-0.4713967368259977), FR2(+0.8819212643483551),
/*N:1024,i:168 */ FR2(+0.5141027441932217), FR2(+0.8577286100002721),
/*N:1024,i:168 */ FR2(-0.9987954562051724), FR2(+0.0490676743274180),
/*N:1024,i:169 */ FR2(-0.4821837720791227), FR2(+0.8760700941954066),
/*N:1024,i:169 */ FR2(+0.5088301425431070), FR2(+0.8608669386377673),
/*N:1024,i:169 */ FR2(-0.9995294175010931), FR2(+0.0306748031766369),
/*N:1024,i:170 */ FR2(-0.4928981922297840), FR2(+0.8700869911087115),
/*N:1024,i:170 */ FR2(+0.5035383837257176), FR2(+0.8639728561215867),
/*N:1024,i:170 */ FR2(-0.9999247018391445), FR2(+0.0122715382857200),
/*N:1024,i:171 */ FR2(-0.5035383837257175), FR2(+0.8639728561215868),
/*N:1024,i:171 */ FR2(+0.4982276669727819), FR2(+0.8670462455156927),
/*N:1024,i:171 */ FR2(-0.9999811752826011), FR2(-0.0061358846491546),
/*N:1024,i:172 */ FR2(-0.5141027441932217), FR2(+0.8577286100002721),
/*N:1024,i:172 */ FR2(+0.4928981922297841), FR2(+0.8700869911087114),
/*N:1024,i:172 */ FR2(-0.9996988186962043), FR2(-0.0245412285229121),
/*N:1024,i:173 */ FR2(-0.5245896826784687), FR2(+0.8513551931052652),
/*N:1024,i:173 */ FR2(+0.4875501601484361), FR2(+0.8730949784182901),
/*N:1024,i:173 */ FR2(-0.9990777277526454), FR2(-0.0429382569349408),
/*N:1024,i:174 */ FR2(-0.5349976198870970), FR2(+0.8448535652497072),
/*N:1024,i:174 */ FR2(+0.4821837720791228), FR2(+0.8760700941954066),
/*N:1024,i:174 */ FR2(-0.9981181129001492), FR2(-0.0613207363022082),
/*N:1024,i:175 */ FR2(-0.5453249884220462), FR2(+0.8382247055548382),
/*N:1024,i:175 */ FR2(+0.4767992300633223), FR2(+0.8790122264286334),
/*N:1024,i:175 */ FR2(-0.9968202992911658), FR2(-0.0796824379714299),
/*N:1024,i:176 */ FR2(-0.5555702330196020), FR2(+0.8314696123025455),
/*N:1024,i:176 */ FR2(+0.4713967368259978), FR2(+0.8819212643483549),
/*N:1024,i:176 */ FR2(-0.9951847266721969), FR2(-0.0980171403295606),
/*N:1024,i:177 */ FR2(-0.5657318107836132), FR2(+0.8245893027850252),
/*N:1024,i:177 */ FR2(+0.4659764957679661), FR2(+0.8847970984309378),
/*N:1024,i:177 */ FR2(-0.9932119492347946), FR2(-0.1163186309119045),
/*N:1024,i:178 */ FR2(-0.5758081914178453), FR2(+0.8175848131515837),
/*N:1024,i:178 */ FR2(+0.4605387109582400), FR2(+0.8876396204028539),
/*N:1024,i:178 */ FR2(-0.9909026354277800), FR2(-0.1345807085071261),
/*N:1024,i:179 */ FR2(-0.5857978574564389), FR2(+0.8104571982525948),
/*N:1024,i:179 */ FR2(+0.4550835871263438), FR2(+0.8904487232447579),
/*N:1024,i:179 */ FR2(-0.9882575677307495), FR2(-0.1527971852584434),
/*N:1024,i:180 */ FR2(-0.5956993044924334), FR2(+0.8032075314806449),
/*N:1024,i:180 */ FR2(+0.4496113296546066), FR2(+0.8932243011955153),
/*N:1024,i:180 */ FR2(-0.9852776423889413), FR2(-0.1709618887603010),
/*N:1024,i:181 */ FR2(-0.6055110414043254), FR2(+0.7958369046088836),
/*N:1024,i:181 */ FR2(+0.4441221445704293), FR2(+0.8959662497561851),
/*N:1024,i:181 */ FR2(-0.9819638691095552), FR2(-0.1890686641498061),
/*N:1024,i:182 */ FR2(-0.6152315905806267), FR2(+0.7883464276266063),
/*N:1024,i:182 */ FR2(+0.4386162385385277), FR2(+0.8986744656939538),
/*N:1024,i:182 */ FR2(-0.9783173707196277), FR2(-0.2071113761922186),
/*N:1024,i:183 */ FR2(-0.6248594881423862), FR2(+0.7807372285720946),
/*N:1024,i:183 */ FR2(+0.4330938188531520), FR2(+0.9013488470460220),
/*N:1024,i:183 */ FR2(-0.9743393827855759), FR2(-0.2250839113597926),
/*N:1024,i:184 */ FR2(-0.6343932841636454), FR2(+0.7730104533627371),
/*N:1024,i:184 */ FR2(+0.4275550934302822), FR2(+0.9039892931234433),
/*N:1024,i:184 */ FR2(-0.9700312531945440), FR2(-0.2429801799032638),
/*N:1024,i:185 */ FR2(-0.6438315428897913), FR2(+0.7651672656224591),
/*N:1024,i:185 */ FR2(+0.4220002707997998), FR2(+0.9065957045149153),
/*N:1024,i:185 */ FR2(-0.9653944416976894), FR2(-0.2607941179152756),
/*N:1024,i:186 */ FR2(-0.6531728429537765), FR2(+0.7572088465064847),
/*N:1024,i:186 */ FR2(+0.4164295600976373), FR2(+0.9091679830905223),
/*N:1024,i:186 */ FR2(-0.9604305194155659), FR2(-0.2785196893850529),
/*N:1024,i:187 */ FR2(-0.6624157775901719), FR2(+0.7491363945234593),
/*N:1024,i:187 */ FR2(+0.4108431710579039), FR2(+0.9117060320054299),
/*N:1024,i:187 */ FR2(-0.9551411683057708), FR2(-0.2961508882436238),
/*N:1024,i:188 */ FR2(-0.6715589548470184), FR2(+0.7409511253549590),
/*N:1024,i:188 */ FR2(+0.4052413140049899), FR2(+0.9142097557035307),
/*N:1024,i:188 */ FR2(-0.9495281805930368), FR2(-0.3136817403988912),
/*N:1024,i:189 */ FR2(-0.6806009977954530), FR2(+0.7326542716724128),
/*N:1024,i:189 */ FR2(+0.3996241998456468), FR2(+0.9166790599210427),
/*N:1024,i:189 */ FR2(-0.9435934581619604), FR2(-0.3311063057598763),
/*N:1024,i:190 */ FR2(-0.6895405447370669), FR2(+0.7242470829514669),
/*N:1024,i:190 */ FR2(+0.3939920400610481), FR2(+0.9191138516900578),
/*N:1024,i:190 */ FR2(-0.9373390119125750), FR2(-0.3484186802494346),
/*N:1024,i:191 */ FR2(-0.6983762494089728), FR2(+0.7157308252838187),
/*N:1024,i:191 */ FR2(+0.3883450466988263), FR2(+0.9215140393420419),
/*N:1024,i:191 */ FR2(-0.9307669610789838), FR2(-0.3656129978047736),
/*N:1024,i:192 */ FR2(-0.7071067811865475), FR2(+0.7071067811865476),
/*N:1024,i:192 */ FR2(+0.3826834323650898), FR2(+0.9238795325112867),
/*N:1024,i:192 */ FR2(-0.9238795325112869), FR2(-0.3826834323650897),
/*N:1024,i:193 */ FR2(-0.7157308252838186), FR2(+0.6983762494089729),
/*N:1024,i:193 */ FR2(+0.3770074102164183), FR2(+0.9262102421383113),
/*N:1024,i:193 */ FR2(-0.9166790599210427), FR2(-0.3996241998456468),
/*N:1024,i:194 */ FR2(-0.7242470829514668), FR2(+0.6895405447370671),
/*N:1024,i:194 */ FR2(+0.3713171939518376), FR2(+0.9285060804732155),
/*N:1024,i:194 */ FR2(-0.9091679830905225), FR2(-0.4164295600976369),
/*N:1024,i:195 */ FR2(-0.7326542716724127), FR2(+0.6806009977954532),
/*N:1024,i:195 */ FR2(+0.3656129978047740), FR2(+0.9307669610789837),
/*N:1024,i:195 */ FR2(-0.9013488470460220), FR2(-0.4330938188531519),
/*N:1024,i:196 */ FR2(-0.7409511253549589), FR2(+0.6715589548470186),
/*N:1024,i:196 */ FR2(+0.3598950365349883), FR2(+0.9329927988347389),
/*N:1024,i:196 */ FR2(-0.8932243011955153), FR2(-0.4496113296546067),
/*N:1024,i:197 */ FR2(-0.7491363945234592), FR2(+0.6624157775901720),
/*N:1024,i:197 */ FR2(+0.3541635254204905), FR2(+0.9351835099389475),
/*N:1024,i:197 */ FR2(-0.8847970984309379), FR2(-0.4659764957679660),
/*N:1024,i:198 */ FR2(-0.7572088465064846), FR2(+0.6531728429537766),
/*N:1024,i:198 */ FR2(+0.3484186802494345), FR2(+0.9373390119125750),
/*N:1024,i:198 */ FR2(-0.8760700941954066), FR2(-0.4821837720791227),
/*N:1024,i:199 */ FR2(-0.7651672656224590), FR2(+0.6438315428897914),
/*N:1024,i:199 */ FR2(+0.3426607173119944), FR2(+0.9394592236021899),
/*N:1024,i:199 */ FR2(-0.8670462455156929), FR2(-0.4982276669727815),
/*N:1024,i:200 */ FR2(-0.7730104533627370), FR2(+0.6343932841636455),
/*N:1024,i:200 */ FR2(+0.3368898533922201), FR2(+0.9415440651830208),
/*N:1024,i:200 */ FR2(-0.8577286100002721), FR2(-0.5141027441932216),
/*N:1024,i:201 */ FR2(-0.7807372285720945), FR2(+0.6248594881423863),
/*N:1024,i:201 */ FR2(+0.3311063057598764), FR2(+0.9435934581619604),
/*N:1024,i:201 */ FR2(-0.8481203448032972), FR2(-0.5298036246862946),
/*N:1024,i:202 */ FR2(-0.7883464276266062), FR2(+0.6152315905806269),
/*N:1024,i:202 */ FR2(+0.3253102921622630), FR2(+0.9456073253805213),
/*N:1024,i:202 */ FR2(-0.8382247055548382), FR2(-0.5453249884220461),
/*N:1024,i:203 */ FR2(-0.7958369046088835), FR2(+0.6055110414043257),
/*N:1024,i:203 */ FR2(+0.3195020308160158), FR2(+0.9475855910177411),
/*N:1024,i:203 */ FR2(-0.8280450452577558), FR2(-0.5606615761973359),
/*N:1024,i:204 */ FR2(-0.8032075314806448), FR2(+0.5956993044924335),
/*N:1024,i:204 */ FR2(+0.3136817403988916), FR2(+0.9495281805930367),
/*N:1024,i:204 */ FR2(-0.8175848131515837), FR2(-0.5758081914178453),
/*N:1024,i:205 */ FR2(-0.8104571982525947), FR2(+0.5857978574564390),
/*N:1024,i:205 */ FR2(+0.3078496400415350), FR2(+0.9514350209690083),
/*N:1024,i:205 */ FR2(-0.8068475535437995), FR2(-0.5907597018588739),
/*N:1024,i:206 */ FR2(-0.8175848131515836), FR2(+0.5758081914178455),
/*N:1024,i:206 */ FR2(+0.3020059493192282), FR2(+0.9533060403541938),
/*N:1024,i:206 */ FR2(-0.7958369046088836), FR2(-0.6055110414043254),
/*N:1024,i:207 */ FR2(-0.8245893027850251), FR2(+0.5657318107836135),
/*N:1024,i:207 */ FR2(+0.2961508882436240), FR2(+0.9551411683057707),
/*N:1024,i:207 */ FR2(-0.7845565971555752), FR2(-0.6200572117632892),
/*N:1024,i:208 */ FR2(-0.8314696123025454), FR2(+0.5555702330196022),
/*N:1024,i:208 */ FR2(+0.2902846772544623), FR2(+0.9569403357322089),
/*N:1024,i:208 */ FR2(-0.7730104533627371), FR2(-0.6343932841636453),
/*N:1024,i:209 */ FR2(-0.8382247055548381), FR2(+0.5453249884220464),
/*N:1024,i:209 */ FR2(+0.2844075372112718), FR2(+0.9587034748958716),
/*N:1024,i:209 */ FR2(-0.7612023854842619), FR2(-0.6485144010221123),
/*N:1024,i:210 */ FR2(-0.8448535652497071), FR2(+0.5349976198870972),
/*N:1024,i:210 */ FR2(+0.2785196893850531), FR2(+0.9604305194155658),
/*N:1024,i:210 */ FR2(-0.7491363945234593), FR2(-0.6624157775901718),
/*N:1024,i:211 */ FR2(-0.8513551931052652), FR2(+0.5245896826784690),
/*N:1024,i:211 */ FR2(+0.2726213554499490), FR2(+0.9621214042690416),
/*N:1024,i:211 */ FR2(-0.7368165688773700), FR2(-0.6760927035753158),
/*N:1024,i:212 */ FR2(-0.8577286100002720), FR2(+0.5141027441932218),
/*N:1024,i:212 */ FR2(+0.2667127574748984), FR2(+0.9637760657954398),
/*N:1024,i:212 */ FR2(-0.7242470829514670), FR2(-0.6895405447370668),
/*N:1024,i:213 */ FR2(-0.8639728561215867), FR2(+0.5035383837257177),
/*N:1024,i:213 */ FR2(+0.2607941179152756), FR2(+0.9653944416976894),
/*N:1024,i:213 */ FR2(-0.7114321957452167), FR2(-0.7027547444572251),
/*N:1024,i:214 */ FR2(-0.8700869911087114), FR2(+0.4928981922297842),
/*N:1024,i:214 */ FR2(+0.2548656596045146), FR2(+0.9669764710448521),
/*N:1024,i:214 */ FR2(-0.6983762494089730), FR2(-0.7157308252838185),
/*N:1024,i:215 */ FR2(-0.8760700941954065), FR2(+0.4821837720791229),
/*N:1024,i:215 */ FR2(+0.2489276057457203), FR2(+0.9685220942744173),
/*N:1024,i:215 */ FR2(-0.6850836677727004), FR2(-0.7284643904482252),
/*N:1024,i:216 */ FR2(-0.8819212643483549), FR2(+0.4713967368259979),
/*N:1024,i:216 */ FR2(+0.2429801799032640), FR2(+0.9700312531945440),
/*N:1024,i:216 */ FR2(-0.6715589548470187), FR2(-0.7409511253549589),
/*N:1024,i:217 */ FR2(-0.8876396204028538), FR2(+0.4605387109582402),
/*N:1024,i:217 */ FR2(+0.2370236059943673), FR2(+0.9715038909862518),
/*N:1024,i:217 */ FR2(-0.6578066932970788), FR2(-0.7531867990436124),
/*N:1024,i:218 */ FR2(-0.8932243011955152), FR2(+0.4496113296546069),
/*N:1024,i:218 */ FR2(+0.2310581082806713), FR2(+0.9729399522055601),
/*N:1024,i:218 */ FR2(-0.6438315428897915), FR2(-0.7651672656224590),
/*N:1024,i:219 */ FR2(-0.8986744656939539), FR2(+0.4386162385385276),
/*N:1024,i:219 */ FR2(+0.2250839113597928), FR2(+0.9743393827855759),
/*N:1024,i:219 */ FR2(-0.6296382389149269), FR2(-0.7768884656732326),
/*N:1024,i:220 */ FR2(-0.9039892931234433), FR2(+0.4275550934302820),
/*N:1024,i:220 */ FR2(+0.2191012401568698), FR2(+0.9757021300385286),
/*N:1024,i:220 */ FR2(-0.6152315905806273), FR2(-0.7883464276266059),
/*N:1024,i:221 */ FR2(-0.9091679830905224), FR2(+0.4164295600976372),
/*N:1024,i:221 */ FR2(+0.2131103199160914), FR2(+0.9770281426577544),
/*N:1024,i:221 */ FR2(-0.6006164793838693), FR2(-0.7995372691079048),
/*N:1024,i:222 */ FR2(-0.9142097557035307), FR2(+0.4052413140049899),
/*N:1024,i:222 */ FR2(+0.2071113761922186), FR2(+0.9783173707196277),
/*N:1024,i:222 */ FR2(-0.5857978574564391), FR2(-0.8104571982525947),
/*N:1024,i:223 */ FR2(-0.9191138516900578), FR2(+0.3939920400610482),
/*N:1024,i:223 */ FR2(+0.2011046348420920), FR2(+0.9795697656854405),
/*N:1024,i:223 */ FR2(-0.5707807458869674), FR2(-0.8211025149911047),
/*N:1024,i:224 */ FR2(-0.9238795325112867), FR2(+0.3826834323650899),
/*N:1024,i:224 */ FR2(+0.1950903220161283), FR2(+0.9807852804032304),
/*N:1024,i:224 */ FR2(-0.5555702330196022), FR2(-0.8314696123025452),
/*N:1024,i:225 */ FR2(-0.9285060804732155), FR2(+0.3713171939518377),
/*N:1024,i:225 */ FR2(+0.1890686641498063), FR2(+0.9819638691095552),
/*N:1024,i:225 */ FR2(-0.5401714727298927), FR2(-0.8415549774368986),
/*N:1024,i:226 */ FR2(-0.9329927988347389), FR2(+0.3598950365349883),
/*N:1024,i:226 */ FR2(+0.1830398879551411), FR2(+0.9831054874312163),
/*N:1024,i:226 */ FR2(-0.5245896826784694), FR2(-0.8513551931052649),
/*N:1024,i:227 */ FR2(-0.9373390119125749), FR2(+0.3484186802494348),
/*N:1024,i:227 */ FR2(+0.1770042204121489), FR2(+0.9842100923869290),
/*N:1024,i:227 */ FR2(-0.5088301425431073), FR2(-0.8608669386377671),
/*N:1024,i:228 */ FR2(-0.9415440651830207), FR2(+0.3368898533922203),
/*N:1024,i:228 */ FR2(+0.1709618887603014), FR2(+0.9852776423889412),
/*N:1024,i:228 */ FR2(-0.4928981922297842), FR2(-0.8700869911087114),
/*N:1024,i:229 */ FR2(-0.9456073253805212), FR2(+0.3253102921622633),
/*N:1024,i:229 */ FR2(+0.1649131204899701), FR2(+0.9863080972445987),
/*N:1024,i:229 */ FR2(-0.4767992300633221), FR2(-0.8790122264286334),
/*N:1024,i:230 */ FR2(-0.9495281805930367), FR2(+0.3136817403988914),
/*N:1024,i:230 */ FR2(+0.1588581433338614), FR2(+0.9873014181578584),
/*N:1024,i:230 */ FR2(-0.4605387109582399), FR2(-0.8876396204028541),
/*N:1024,i:231 */ FR2(-0.9533060403541939), FR2(+0.3020059493192280),
/*N:1024,i:231 */ FR2(+0.1527971852584434), FR2(+0.9882575677307495),
/*N:1024,i:231 */ FR2(-0.4441221445704298), FR2(-0.8959662497561849),
/*N:1024,i:232 */ FR2(-0.9569403357322088), FR2(+0.2902846772544624),
/*N:1024,i:232 */ FR2(+0.1467304744553618), FR2(+0.9891765099647810),
/*N:1024,i:232 */ FR2(-0.4275550934302825), FR2(-0.9039892931234431),
/*N:1024,i:233 */ FR2(-0.9604305194155658), FR2(+0.2785196893850532),
/*N:1024,i:233 */ FR2(+0.1406582393328492), FR2(+0.9900582102622971),
/*N:1024,i:233 */ FR2(-0.4108431710579042), FR2(-0.9117060320054298),
/*N:1024,i:234 */ FR2(-0.9637760657954398), FR2(+0.2667127574748985),
/*N:1024,i:234 */ FR2(+0.1345807085071262), FR2(+0.9909026354277800),
/*N:1024,i:234 */ FR2(-0.3939920400610482), FR2(-0.9191138516900577),
/*N:1024,i:235 */ FR2(-0.9669764710448521), FR2(+0.2548656596045147),
/*N:1024,i:235 */ FR2(+0.1284981107937932), FR2(+0.9917097536690995),
/*N:1024,i:235 */ FR2(-0.3770074102164182), FR2(-0.9262102421383114),
/*N:1024,i:236 */ FR2(-0.9700312531945440), FR2(+0.2429801799032641),
/*N:1024,i:236 */ FR2(+0.1224106751992163), FR2(+0.9924795345987100),
/*N:1024,i:236 */ FR2(-0.3598950365349879), FR2(-0.9329927988347390),
/*N:1024,i:237 */ FR2(-0.9729399522055601), FR2(+0.2310581082806713),
/*N:1024,i:237 */ FR2(+0.1163186309119049), FR2(+0.9932119492347945),
/*N:1024,i:237 */ FR2(-0.3426607173119949), FR2(-0.9394592236021897),
/*N:1024,i:238 */ FR2(-0.9757021300385285), FR2(+0.2191012401568701),
/*N:1024,i:238 */ FR2(+0.1102222072938832), FR2(+0.9939069700023561),
/*N:1024,i:238 */ FR2(-0.3253102921622633), FR2(-0.9456073253805212),
/*N:1024,i:239 */ FR2(-0.9783173707196275), FR2(+0.2071113761922188),
/*N:1024,i:239 */ FR2(+0.1041216338720547), FR2(+0.9945645707342554),
/*N:1024,i:239 */ FR2(-0.3078496400415351), FR2(-0.9514350209690083),
/*N:1024,i:240 */ FR2(-0.9807852804032304), FR2(+0.1950903220161286),
/*N:1024,i:240 */ FR2(+0.0980171403295608), FR2(+0.9951847266721968),
/*N:1024,i:240 */ FR2(-0.2902846772544624), FR2(-0.9569403357322088),
/*N:1024,i:241 */ FR2(-0.9831054874312163), FR2(+0.1830398879551409),
/*N:1024,i:241 */ FR2(+0.0919089564971327), FR2(+0.9957674144676598),
/*N:1024,i:241 */ FR2(-0.2726213554499489), FR2(-0.9621214042690416),
/*N:1024,i:242 */ FR2(-0.9852776423889412), FR2(+0.1709618887603012),
/*N:1024,i:242 */ FR2(+0.0857973123444399), FR2(+0.9963126121827780),
/*N:1024,i:242 */ FR2(-0.2548656596045144), FR2(-0.9669764710448522),
/*N:1024,i:243 */ FR2(-0.9873014181578584), FR2(+0.1588581433338615),
/*N:1024,i:243 */ FR2(+0.0796824379714301), FR2(+0.9968202992911657),
/*N:1024,i:243 */ FR2(-0.2370236059943677), FR2(-0.9715038909862517),
/*N:1024,i:244 */ FR2(-0.9891765099647810), FR2(+0.1467304744553618),
/*N:1024,i:244 */ FR2(+0.0735645635996675), FR2(+0.9972904566786902),
/*N:1024,i:244 */ FR2(-0.2191012401568701), FR2(-0.9757021300385285),
/*N:1024,i:245 */ FR2(-0.9909026354277800), FR2(+0.1345807085071263),
/*N:1024,i:245 */ FR2(+0.0674439195636641), FR2(+0.9977230666441916),
/*N:1024,i:245 */ FR2(-0.2011046348420921), FR2(-0.9795697656854405),
/*N:1024,i:246 */ FR2(-0.9924795345987100), FR2(+0.1224106751992164),
/*N:1024,i:246 */ FR2(+0.0613207363022086), FR2(+0.9981181129001492),
/*N:1024,i:246 */ FR2(-0.1830398879551410), FR2(-0.9831054874312163),
/*N:1024,i:247 */ FR2(-0.9939069700023561), FR2(+0.1102222072938832),
/*N:1024,i:247 */ FR2(+0.0551952443496900), FR2(+0.9984755805732948),
/*N:1024,i:247 */ FR2(-0.1649131204899698), FR2(-0.9863080972445987),
/*N:1024,i:248 */ FR2(-0.9951847266721968), FR2(+0.0980171403295608),
/*N:1024,i:248 */ FR2(+0.0490676743274181), FR2(+0.9987954562051724),
/*N:1024,i:248 */ FR2(-0.1467304744553623), FR2(-0.9891765099647809),
/*N:1024,i:249 */ FR2(-0.9963126121827780), FR2(+0.0857973123444402),
/*N:1024,i:249 */ FR2(+0.0429382569349410), FR2(+0.9990777277526454),
/*N:1024,i:249 */ FR2(-0.1284981107937936), FR2(-0.9917097536690995),
/*N:1024,i:250 */ FR2(-0.9972904566786902), FR2(+0.0735645635996677),
/*N:1024,i:250 */ FR2(+0.0368072229413590), FR2(+0.9993223845883495),
/*N:1024,i:250 */ FR2(-0.1102222072938833), FR2(-0.9939069700023561),
/*N:1024,i:251 */ FR2(-0.9981181129001492), FR2(+0.0613207363022085),
/*N:1024,i:251 */ FR2(+0.0306748031766366), FR2(+0.9995294175010931),
/*N:1024,i:251 */ FR2(-0.0919089564971328), FR2(-0.9957674144676598),
/*N:1024,i:252 */ FR2(-0.9987954562051724), FR2(+0.0490676743274180),
/*N:1024,i:252 */ FR2(+0.0245412285229123), FR2(+0.9996988186962043),
/*N:1024,i:252 */ FR2(-0.0735645635996674), FR2(-0.9972904566786902),
/*N:1024,i:253 */ FR2(-0.9993223845883495), FR2(+0.0368072229413588),
/*N:1024,i:253 */ FR2(+0.0184067299058048), FR2(+0.9998305817958234),
/*N:1024,i:253 */ FR2(-0.0551952443496897), FR2(-0.9984755805732948),
/*N:1024,i:254 */ FR2(-0.9996988186962043), FR2(+0.0245412285229123),
/*N:1024,i:254 */ FR2(+0.0122715382857199), FR2(+0.9999247018391445),
/*N:1024,i:254 */ FR2(-0.0368072229413593), FR2(-0.9993223845883494),
/*N:1024,i:255 */ FR2(-0.9999247018391445), FR2(+0.0122715382857200),
/*N:1024,i:255 */ FR2(+0.0061358846491545), FR2(+0.9999811752826011),
/*N:1024,i:255 */ FR2(-0.0184067299058052), FR2(-0.9998305817958234)
};
#endif /* __FFT_TWIDDLES_H__ */
#define MULT0(a,b) ((long)(a)*(b))
#define COMPLEX_MUL(a,b,c,d)\
do{ vcp_extend x,y; x = MULT0(a,c)-MULT0(b,d); y = MULT0(c,b)+MULT0(a,d); a = (x + (1<<14))>>15; b = (y+(1<<14))>>15; }while(0)
#define FROUND 0
#define SHIFT_AMOUNT
void
fft_radix_42(struct complex_s *data, int size, int scale)
{
struct complex_s *x = data;
unsigned int i, ap, N;
struct complex_s32 x0,x1,x2, t1,t2,t3,t4,t;
vcp_inter wre,wim;
vcp_inter *tw1;
if(scale)
scale = 2;
ap = 1024/size;
N = size;
tw1 = fft_twiddles_1024;
do // over N
{
//N >>= 2;
i = 0;
do // over i
{
x0.re = x->re; // x[0]
x0.im = x->im;
x += N / 2 * 1;
x2.re = x->re; // x[N/2]
x2.im = x->im;
x -= N / 4 * 1;
t1.re = x0.re + x2.re;
t1.im = x0.im + x2.im;
t2.re = x0.re - x2.re;
t2.im = x0.im - x2.im;
x0.re = x->re; // x[N/4]
x0.im = x->im;
x += N / 2 * 1;
x2.re = x->re; // x[3N/4]
x2.im = x->im;
x -= 3 * N / 4 * 1;
t3.re = x0.re + x2.re;
t3.im = x0.im + x2.im;
t4.re = x0.re - x2.re;
t4.im = x0.im - x2.im;
// update x_{0+i}
t.re = (t1.re + t3.re + FROUND) >> scale;
t.im = (t1.im + t3.im + FROUND) >> scale;
x->re = t.re;
x->im = t.im;
x += N / 4 * 1;
// x_{0+i} updated
// update x_{N/4+i}
wre = *tw1++;
wim = *tw1++;
t.re = (t1.re - t3.re + FROUND) >> scale;
t.im = (t1.im - t3.im + FROUND) >> scale;
COMPLEX_MUL(t.re,t.im, wre, wim);
x->re = t.re;
x->im = t.im;
x += N / 4 * 1;
// x_{N/4+i} updated
// update x_{N/2+i}
wre = *tw1++;
wim = *tw1++;
t.re = (t2.re - t4.im + FROUND) >> scale;
t.im = (t2.im + t4.re + FROUND) >> scale;
COMPLEX_MUL(t.re,t.im, wre, wim);
x->re = t.re;
x->im = t.im;
x += N / 4 * 1;
// x_{N/2+i} updated
// update x_{3N/4+i}
wre = *tw1++;
wim = *tw1++;
t.re = (t2.re + t4.im + FROUND) >> scale;
t.im = (t2.im - t4.re + FROUND) >> scale;
COMPLEX_MUL(t.re,t.im, wre, wim);
x->re = t.re;
x->im = t.im;
x += N / 4 * 1;
// x_{3N/4+i} updated
x -= N * 1 - 1;
tw1 += (ap - 1) * 4 + (ap - 1) * 2;
i++;
if( (i & (N / 4 * 1 - 1)) == 0)
{
x += 3 * N / 4 * 1; // next quadruple of input data
tw1 -= 256 * 2 * 3; // length of table * 2 * 3 (len * {sin, cos} * {3 twiddles per butterfly})
}
} while (i < size/4);
x -= size; // to the beginning
ap <<= 2; // modify stride
N >>= 2;
} while (N > 4);
if ( N == 4 ) // FIXME: N == 4
{
for (i = 0; i < size; i+= 4)
{
x0.re = x[0].re;
x0.im = x[0].im;
x2.re = x[2].re;
x2.im = x[2].im;
t1.re = x0.re + x2.re;
t1.im = x0.im + x2.im;
t2.re = x0.re - x2.re;
t2.im = x0.im - x2.im;
x0.re = x[1].re;
x0.im = x[1].im;
x2.re = x[3].re;
x2.im = x[3].im;
t3.re = x0.re + x2.re;
t3.im = x0.im + x2.im;
t4.re = x0.re - x2.re;
t4.im = x0.im - x2.im;
// update x_{0+i}
t.re = t1.re + t3.re;
t.im = t1.im + t3.im;
x[0].re = (t.re+FROUND)>>scale;
x[0].im = (t.im+FROUND)>>scale;
// x_{0+i} updated
// update x_{N/4+i}
t.re = t1.re - t3.re;
t.im = t1.im - t3.im;
x[1].re = (t.re+FROUND)>>scale;
x[1].im = (t.im+FROUND)>>scale;
// x_{N/4+i} updated
// update x_{N/2}
t.re = t2.re - t4.im;
t.im = t2.im + t4.re;
x[2].re = (t.re+FROUND)>>scale;
x[2].im = (t.im+FROUND)>>scale;
// x_{N/2} updated
// update x_{3N/4+i}
t.re = t2.re + t4.im;
t.im = t2.im - t4.re;
x[3].re = (t.re+FROUND)>>scale;
x[3].im = (t.im+FROUND)>>scale;
// x_{3N/4+i} updated
x += 4;
}
}
else
{
if(scale)
scale = 1;
// trivial butts at the end
for (i = 0; i<size; i+= 2)
{
x0.re = x[0].re;
x0.im = x[0].im;
x1.re = x[1].re;
x1.im = x[1].im;
t.re = x0.re + x1.re;
t.im = x0.im + x1.im;
x[0].re = t.re>>scale;
x[0].im = t.im>>scale;
t.re = x0.re - x1.re;
t.im = x0.im - x1.im;
x[1].re = t.re>>scale;
x[1].im = t.im>>scale;
x += 2;
}
}
x -= size;
data_swap(x,size);
}