<< Chapter < Page | Chapter >> Page > |
A FORTRAN implementation of a length-17 FFT module to be used in a Prime Factor Algorithm program. Errors discovered by Yuri Reznik have been corrected (8/17/11).
C
C-------------------WFTA N=17----------------------------C
C 314 ADDS; 70 MPYSC DATA FOR LENGTH 17 DFT
DATA C1701 / -.0426028491177360 /DATA C1702 / .2049796502326218 /
DATA C1703 / 1.0451835201736758 /DATA C1704 / 1.7645848660222969 /
DATA C1705 / -.7234079772860566 /DATA C1706 / -.0890555916206064 /
DATA C1707 / -1.0625000000000000 /DATA C1708 / .2576941016011038 /
DATA C1709 / .7798026078948376 /DATA C1710 / .5438931846457058 /
DATA C1711 / .4201019349705270 /DATA C1712 / 1.2810929434228074 /
DATA C1713 / .4408890734817534 /DATA C1714 / .3171761928327251 /
DATA C1715 / -.9013831864801668 /DATA C1716 / -.4324875636007231 /
DATA C1717 / .6669353750404450 /DATA C1718 / -.6038900431251697 /
DATA C1719 / -.3692487319858255 /DATA C1720 / .4865693875554976 /
DATA C1721 / .2381371213676061 /DATA C1722 / -1.5573820617422459 /
DATA C1723 / .6596224701873199 /DATA C1724 / -.1431696156986624 /
DATA C1725 / .2390346995986077 /DATA C1726 / -.0479325419499726 /
DATA C1727 / -2.3188014856550064 /DATA C1728 / .7891456841920625 /
DATA C1729 / 3.8484572871179504 /DATA C1730 / -1.3003804568801376 /
DATA C1731 / 4.0814769046889033 /DATA C1732 / -1.4807159909286282 /
DATA C1733 / -.0133324703635514 /DATA C1734 / -.3713977869055763 /
DATA C1735 / .1923651286345638 /C
C-----------------WFTA N=17--------------------------C
R100=X(I(2))+X(I(17))R108=X(I(2))-X(I(17))
R101=X(I(4))+X(I(15))R109=X(I(4))-X(I(15))
R102=X(I(10))+X(I(9))R110=X(I(10))-X(I(9))
R103=X(I(11))+X(I(8))R111=X(I(11))-X(I(8))
R104=X(I(14))+X(I(5))R112=X(I(14))-X(I(5))
R105=X(I(6))+X(I(13))R113=X(I(6))-X(I(13))
R106=X(I(16))+X(I(3))R114=X(I(16))-X(I(3))
R107=X(I(12))+X(I(7))R115=X(I(12))-X(I(7))
R200=R100+R104R201=R101+R105
R202=R102+R106R203=R103+R107
R204=R200+R202R205=R201+R203
R31=R100-R104R32=R101-R105
R33=R102-R106R34=R103-R107
R35=R200-R202R36=R201-R203
R37=R204+R205R38=R204-R205
R39=R32+R34R310=R31+R33
R311=R310-R39R312=R33-R34
R313=R31-R32R314=R35+R36
R210=R108+R110R211=R109+R111
R212=R108-R110R213=R115-R113
R214=R112+R114R215=R113+R115
R216=R112-R114R217=R109-R111
R315=R210+R211R316=R214+R215
R317=R315+R316R318=R210-R211
R319=R214-R215R320=R318+R319
R321=R212+R213R322=R216+R217
R323=R321+R322R324=R212-R213
R325=R216-R217R326=R324+R325
R327=R108+R112R328=R108
R329=R112R330=R111+R115
R331=R111R332=R115
R333=R322-R316+R108-R330R334=R315-R321+R111+R112-R115
R335=R333+R334X(I(1))=X(I(1))+R37
T11=R31*C1701T12=R32*C1702
T13=R33*C1703T14=R34*C1704
T15=R35*C1705T16=R36*C1706
T17=R37*C1707T18=R38*C1708
T19=R39*C1709T110=R310*C1710
T111=R311*C1711T112=R312*C1712
T113=R313*C1713T114=R314*C1714
T115=R315*C1715T116=R316*C1716
T117=R317*C1717T118=R318*C1718
T119=R319*C1719T120=R320*C1720
T121=R321*C1721T122=R322*C1722
T123=R323*C1723T124=R324*C1724
T125=R325*C1725T126=R326*C1726
T127=R327*C1727T128=R328*C1728
T129=R329*C1729T130=R330*C1730
T131=R331*C1731T132=R332*C1732
T133=R333*C1733T134=R334*C1734
T135=R335*C1735T17=T17+X(I(1))
T200=T19+T111T201=T110-T111
T202=T14+T112T203=T112-T13
T204=T12+T113T205=T11-T113
T206=T114-T16T207=T114+T15
T208=T18+T17T209=T17-T18
T210=T200-T202T211=T206+T208
T212=T201+T203T213=T207+T209
T214=T200+T204T215=-T206+T208
T216=T201+T205T217=-T207+T209
T32=T210+T211T37=T212+T213
T33=T214+T215T36=T216+T217
T35=-T210+T211T38=-T212+T213
T39=-T214+T215T34=-T216+T217
T220=T115+T117T221=T116+T117
T222=T118+T120T223=T119+T120
T224=T121+T123T225=T122+T123
T226=T124+T126T227=T125+T126
T228=T135+T134T229=T127+T228
T230=T229+T128T231=T220+T222
T232=T220-T222T233=T221+T223
T234=T221-T223T235=T224+T226
T236=T224-T226T237=T225+T227
T238=T225-T227T239=T133-T134
T240=T229+T129T241=T239+T239
T242=T130-T241T243=T242+T131
T244=-T242-T132T245=T228+T228
T246=T245+T245T247=T239+T245
T310=T233+T237+T240T315=T232-T238+T243
T311=T231-T235+T245T314=-T232-T238-T247
T313=T231+T235+T230+T239T316=-T234-T236+T244+T246
T317=-T233+T237+T241+T245T312=T234-T236-T239
S100=Y(I(2))+Y(I(17))S108=Y(I(2))-Y(I(17))
S101=Y(I(4))+Y(I(15))S109=Y(I(4))-Y(I(15))
S102=Y(I(10))+Y(I(9))S110=Y(I(10))-Y(I(9))
S103=Y(I(11))+Y(I(8))S111=Y(I(11))-Y(I(8))
S104=Y(I(14))+Y(I(5))S112=Y(I(14))-Y(I(5))
S105=Y(I(6))+Y(I(13))S113=Y(I(6))-Y(I(13))
S106=Y(I(16))+Y(I(3))S114=Y(I(16))-Y(I(3))
S107=Y(I(12))+Y(I(7))S115=Y(I(12))-Y(I(7))
S200=S100+S104S201=S101+S105
S202=S102+S106S203=S103+S107
S204=S200+S202S205=S201+S203
S31=S100-S104S32=S101-S105
S33=S102-S106S34=S103-S107
S35=S200-S202S36=S201-S203
S37=S204+S205S38=S204-S205
S39=S32+S34S310=S31+S33
S311=S310-S39S312=S33-S34
S313=S31-S32S314=S35+S36
S210=S108+S110S211=S109+S111
S212=S108-S110S213=S115-S113
S214=S112+S114S215=S113+S115
S216=S112-S114S217=S109-S111
S315=S210+S211S316=S214+S215
S317=S315+S316S318=S210-S211
S319=S214-S215S320=S318+S319
S321=S212+S213S322=S216+S217
S323=S321+S322S324=S212-S213
S325=S216-S217S326=S324+S325
S327=S108+S112S328=S108
S329=S112S330=S111+S115
S331=S111S332=S115
S333=S322-S316+S108-S330S334=S315-S321+S111+S112-S115
S335=S333+S334Y(I(1))=Y(I(1))+S37
U11=S31*C1701U12=S32*C1702
U13=S33*C1703U14=S34*C1704
U15=S35*C1705U16=S36*C1706
U17=S37*C1707U18=S38*C1708
U19=S39*C1709U110=S310*C1710
U111=S311*C1711U112=S312*C1712
U113=S313*C1713U114=S314*C1714
U115=S315*C1715U116=S316*C1716
U117=S317*C1717U118=S318*C1718
U119=S319*C1719U120=S320*C1720
U121=S321*C1721U122=S322*C1722
U123=S323*C1723U124=S324*C1724
U125=S325*C1725U126=S326*C1726
U127=S327*C1727U128=S328*C1728
U129=S329*C1729U130=S330*C1730
U131=S331*C1731U132=S332*C1732
U133=S333*C1733U134=S334*C1734
U135=S335*C1735U17=U17+Y(I(1))
U200=U19+U111U201=U110-U111
U202=U14+U112U203=U112-U13
U204=U12+U113U205=U11-U113
U206=U114-U16U207=U114+U15
U208=U18+U17U209=U17-U18
U210=U200-U202U211=U206+U208
U212=U201+U203U213=U207+U209
U214=U200+U204U215=-U206+U208
U216=U201+U205U217=-U207+U209
U32=U210+U211U37=U212+U213
U33=U214+U215U36=U216+U217
U35=-U210+U211U38=-U212+U213
U39=-U214+U215U34=-U216+U217
U220=U115+U117U221=U116+U117
U222=U118+U120U223=U119+U120
U224=U121+U123U225=U122+U123
U226=U124+U126U227=U125+U126
U228=U135+U134U229=U127+U228
U230=U229+U128U231=U220+U222
U232=U220-U222U233=U221+U223
U234=U221-U223U235=U224+U226
U236=U224-U226U237=U225+U227
U238=U225-U227U239=U133-U134
U240=U229+U129U241=U239+U239
U242=U130-U241U243=U242+U131
U244=-U242-U132U245=U228+U228
U246=U245+U245U247=U239+U245
U310=U233+U237+U240U315=U232-U238+U243
U311=U231-U235+U245U314=-U232-U238-U247
U313=U231+U235+U230+U239U316=-U234-U236+U244+U246
U317=-U233+U237+U241+U245U312=U234-U236-U239
X(I(2))=T32-U310X(I(17))=T32+U310
Y(I(2))=T310+U32Y(I(17))=-T310+U32
X(I(3))=T33-U311X(I(16))=T33+U311
Y(I(3))=T311+U33Y(I(16))=-T311+U33
X(I(4))=T34-U312X(I(15))=T34+U312
Y(I(4))=T312+U34Y(I(15))=-T312+U34
X(I(5))=T35-U313X(I(14))=T35+U313
Y(I(5))=T313+U35Y(I(14))=-T313+U35
X(I(6))=T36-U314X(I(13))=T36+U314
Y(I(6))=T314+U36Y(I(13))=-T314+U36
X(I(7))=T37-U315X(I(12))=T37+U315
Y(I(7))=T315+U37Y(I(12))=-T315+U37
X(I(8))=T38-U316X(I(11))=T38+U316
Y(I(8))=T316+U38Y(I(11))=-T316+U38
X(I(9))=T39-U317X(I(10))=T39+U317
Y(I(9))=T317+U39Y(I(10))=-T317+U39
CGOTO 20
CFigure. Length-17 FFT Module
Notification Switch
Would you like to follow the 'Large dft modules: 11, 13, 16, 17, 19, and 25. revised ece technical report 8105' conversation and receive update notifications?