A FORTRAN implementation of a length-19 FFT module to be used in a Prime Factor Algorithm program.
C
C-------------------WFTA N=19----------------------------
C
C 372 ADDS; 76 MPYS
C DATA FOR LENGTH 19 DFT
DATA C1901 / -1.0555555555555556 /
DATA C1902 / .1775222851392708 /
DATA C1903 / -.1282007750219153 /
DATA C1904 / .0493215101173555 /
DATA C1905 / .5761101149100590 /
DATA C1906 / -.7499644965553628 /
DATA C1907 / -.1738543816453038 /
DATA C1908 / -2.1729997561977314 /
DATA C1909 / -1.7021211726914737 /
DATA C1910 / .4708785835062578 /
DATA C1911 / -2.0239400846888438 /
DATA C1912 / .1055164120166409 /
DATA C1913 / 2.1294564967054848 /
DATA C1914 / -.7508754389737117 /
DATA C1915 / .1481281769515716 /
DATA C1916 / .8990036159252833 /
DATA C1917 / -.6214824677260278 /
DATA C1918 / -.7986935209871269 /
DATA C1919 / -.4733919962377183 /
DATA C1920 / -.2421610524189263 /
DATA C1921 / -.0593686079675051 /
DATA C1922 / .0125786882551762 /
DATA C1923 / -.0467899197123289 /
DATA C1924 / -.9375012191378236 /
DATA C1925 / -.0501115370433529 /
DATA C1926 / -.9876127561811766 /
DATA C1927 / -1.1745786501205960 /
DATA C1928 / 1.1114482296234993 /
DATA C1929 / 2.2860268797440954 /
DATA C1930 / .2642052325793094 /
DATA C1931 / 2.1981792779352138 /
DATA C1932 / 1.9339740453559042 /
DATA C1933 / -.7482584709125489 /
DATA C1934 / -.4782083564276887 /
DATA C1935 / .2700501144848602 /
DATA C1936 / -.3464235615954227 /
DATA C1937 / -.8348542936068828 /
DATA C1938 / -.3937592850674352 /
C
C-----------------WFTA N=19--------------------------
C
R100=X(I(2))+X(I(19))
R109=X(I(2))-X(I(19))
R101=X(I(3))+X(I(18))
R110=-X(I(3))+X(I(18))
R102=X(I(5))+X(I(16))
R111=X(I(5))-X(I(16))
R103=X(I(9))+X(I(12))
R112=-X(I(9))+X(I(12))
R104=X(I(17))+X(I(4))
R113=X(I(17))-X(I(4))
R105=X(I(14))+X(I(7))
R114=-X(I(14))+X(I(7))
R106=X(I(8))+X(I(13))
R115=X(I(8))-X(I(13))
R107=X(I(15))+X(I(6))
R116=-X(I(15))+X(I(6))
R108=X(I(10))+X(I(11))
R117=X(I(10))-X(I(11))
R200=R100-R106
R201=R101-R107
R202=R102-R108
R203=R103-R106
R204=R104-R107
R205=R105-R108
R206=R100+R103+R106
R207=R101+R104+R107
R208=R102+R105+R108
R209=R200+R202
R210=R203+R205
R31=R206+R207+R208
R32=R210+R204
R33=R209+R201
R34=R33-R32
R35=R210-R204
R36=R209-R201
R37=R36-R35
R38=R203
R39=R200-R203
R310=R200
R311=R205
R312=R202-R205
R313=R202
R314=-R312+R200-R204
R315=R39+R205-R201
R316=-R315+R314
R317=R206-R208
R318=R207-R208
R319=R317+R318
R220=R109-R115
R221=R110-R116
R222=R111-R117
R223=R112-R115
R224=R113-R116
R225=R114-R117
R226=R109+R112+R115
R227=R110+R113+R116
R228=R111+R114+R117
R229=R220+R222
R230=R223+R225
R320=R226+R227+R228
R321=R230+R224
R322=R229+R221
R323=R322-R321
R324=R230-R224
R325=R229-R221
R326=R325-R324
R327=R223
R328=R220-R223
R329=R220
R330=R225
R331=R222-R225
R332=R222
R333=-R331+R220-R224
R334=R328+R225-R221
R335=-R334+R333
R336=R226-R228
R337=R227-R228
R338=R336+R337
X(I(1))=X(I(1))+R31
T11=R31*C1901
T12=R32*C1902
T13=R33*C1903
T14=R34*C1904
T15=R35*C1905
T16=R36*C1906
T17=R37*C1907
T18=R38*C1908
T19=R39*C1909
T110=R310*C1910
T111=R311*C1911
T112=R312*C1912
T113=R313*C1913
T114=R314*C1914
T115=R315*C1915
T116=R316*C1916
T117=R317*C1917
T118=R318*C1918
T119=R319*C1919
T120=R320*C1920
T121=R321*C1921
T122=R322*C1922
T123=R323*C1923
T124=R324*C1924
T125=R325*C1925
T126=R326*C1926
T127=R327*C1927
T128=R328*C1928
T129=R329*C1929
T130=R330*C1930
T131=R331*C1931
T132=R332*C1932
T133=R333*C1933
T134=R334*C1934
T135=R335*C1935
T136=R336*C1936
T137=R337*C1937
T138=R338*C1938
T11=T11+X(I(1))
T200=T12+T13
T201=T15+T16
T202=T115+T116
T203=T200+T201
T204=T12+T14
T205=T15+T17
T206=T114+T116
T207=-T203+T18
T208=T204+T205
T209=T111-T206
T210=T19+T202+T207
T211=T208+T112+T209
T212=T204-T205+T202
T213=T207+T208+T110+T206
T214=T203+T113+T209+T202
T215=T200-T201+T206
T216=T117-T119
T217=T118-T119
T218=T11+T216
T219=T11-T216-T217
T220=T11+T217
T2100=T121+T122
T2101=T124+T125
T2102=T134+T135
T2103=T2100+T2101
T2104=T121+T123
T2105=T124+T126
T2106=T133+T135
T2107=-T2103+T127
T2108=T2104+T2105
T2109=T130-T2106
T2110=T128+T2102+T2107
T2111=T2108+T131+T2109
T2112=T2104-T2105+T2102
T2113=T2107+T2108+T129+T2106
T2114=T2103+T132+T2109+T2102
T2115=T2100-T2101+T2106
T2116=T136-T138
T2117=T137-T138
T2118=T120+T2116
T2119=T120-T2116-T2117
T2120=T120+T2117
T32=T213-T210+T218
T310=T214-T211+T219
T36=T215-T212+T220
T38=-T213+T218
T37=-T214+T219
T34=-T215+T220
T39=T210+T218
T35=T211+T219
T33=T212+T220
T311=T2113-T2110+T2118
T319=T2114-T2111+T2119
T315=T2115-T2112+T2120
T317=-T2113+T2118
T316=-T2114+T2119
T313=T2115-T2120
T318=-T2110-T2118
T314=T2111+T2119
T312=-T2112-T2120
S100=Y(I(2))+Y(I(19))
S109=Y(I(2))-Y(I(19))
S101=Y(I(3))+Y(I(18))
S110=-Y(I(3))+Y(I(18))
S102=Y(I(5))+Y(I(16))
S111=Y(I(5))-Y(I(16))
S103=Y(I(9))+Y(I(12))
S112=-Y(I(9))+Y(I(12))
S104=Y(I(17))+Y(I(4))
S113=Y(I(17))-Y(I(4))
S105=Y(I(14))+Y(I(7))
S114=-Y(I(14))+Y(I(7))
S106=Y(I(8))+Y(I(13))
S115=Y(I(8))-Y(I(13))
S107=Y(I(15))+Y(I(6))
S116=-Y(I(15))+Y(I(6))
S108=Y(I(10))+Y(I(11))
S117=Y(I(10))-Y(I(11))
S200=S100-S106
S201=S101-S107
S202=S102-S108
S203=S103-S106
S204=S104-S107
S205=S105-S108
S206=S100+S103+S106
S207=S101+S104+S107
S208=S102+S105+S108
S209=S200+S202
S210=S203+S205
S31=S206+S207+S208
S32=S210+S204
S33=S209+S201
S34=S33-S32
S35=S210-S204
S36=S209-S201
S37=S36-S35
S38=S203
S39=S200-S203
S310=S200
S311=S205
S312=S202-S205
S313=S202
S314=-S312+S200-S204
S315=S39+S205-S201
S316=-S315+S314
S317=S206-S208
S318=S207-S208
S319=S317+S318
S220=S109-S115
S221=S110-S116
S222=S111-S117
S223=S112-S115
S224=S113-S116
S225=S114-S117
S226=S109+S112+S115
S227=S110+S113+S116
S228=S111+S114+S117
S229=S220+S222
S230=S223+S225
S320=S226+S227+S228
S321=S230+S224
S322=S229+S221
S323=S322-S321
S324=S230-S224
S325=S229-S221
S326=S325-S324
S327=S223
S328=S220-S223
S329=S220
S330=S225
S331=S222-S225
S332=S222
S333=-S331+S220-S224
S334=S328+S225-S221
S335=-S334+S333
S336=S226-S228
S337=S227-S228
S338=S336+S337
Y(I(1))=Y(I(1))+S31
U11=S31*C1901
U12=S32*C1902
U13=S33*C1903
U14=S34*C1904
U15=S35*C1905
U16=S36*C1906
U17=S37*C1907
U18=S38*C1908
U19=S39*C1909
U110=S310*C1910
U111=S311*C1911
U112=S312*C1912
U113=S313*C1913
U114=S314*C1914
U115=S315*C1915
U116=S316*C1916
U117=S317*C1917
U118=S318*C1918
U119=S319*C1919
U120=S320*C1920
U121=S321*C1921
U122=S322*C1922
U123=S323*C1923
U124=S324*C1924
U125=S325*C1925
U126=S326*C1926
U127=S327*C1927
U128=S328*C1928
U129=S329*C1929
U130=S330*C1930
U131=S331*C1931
U132=S332*C1932
U133=S333*C1933
U134=S334*C1934
U135=S335*C1935
U136=S336*C1936
U137=S337*C1937
U138=S338*C1938
U11=U11+X(I(1))
U200=U12+U13
U201=U15+U16
U202=U115+U116
U203=U200+U201
U204=U12+U14
U205=U15+U17
U206=U114+U116
U207=-U203+U18
U208=U204+U205
U209=U111-U206
U210=U19+U202+U207
U211=U208+U112+U209
U212=U204-U205+U202
U213=U207+U208+U110+U206
U214=U203+U113+U209+U202
U215=U200-U201+U206
U216=U117-U119
U217=U118-U119
U218=U11+U216
U219=U11-U216-U217
U220=U11+U217
U2100=U121+U122
U2101=U124+U125
U2102=U134+U135
U2103=U2100+U2101
U2104=U121+U123
U2105=U124+U126
U2106=U133+U135
U2107=-U2103+U127
U2108=U2104+U2105
U2109=U130-U2106
U2110=U128+U2102+U2107
U2111=U2108+U131+U2109
U2112=U2104-U2105+U2102
U2113=U2107+U2108+U129+U2106
U2114=U2103+U132+U2109+U2102
U2115=U2100-U2101+U2106
U2116=U136-U138
U2117=U137-U138
U2118=U120+U2116
U2119=U120-U2116-U2117
U2120=U120+U2117
U32=U213-U210+U218
U310=U214-U211+U219
U36=U215-U212+U220
U38=-U213+U218
U37=-U214+U219
U34=-U215+U220
U39=U210+U218
U35=U211+U219
U33=U212+U220
U311=U2113-U2110+U2118
U319=U2114-U2111+U2119
U315=U2115-U2112+U2120
U317=-U2113+U2118
U316=-U2114+U2119
U313=U2115-U2120
U318=-U2110-U2118
U314=U2111+U2119
U312=-U2112-U2120
X(I(2))=T32-U311
X(I(19))=T32+U311
Y(I(2))=T311+U32
Y(I(19))=-T311+U32
X(I(3))=T33-U312
X(I(18))=T33+U312
Y(I(3))=T312+U33
Y(I(18))=-T312+U33
X(I(4))=T34-U313
X(I(17))=T34+U313
Y(I(4))=T313+U34
Y(I(17))=-T313+U34
X(I(5))=T35-U314
X(I(16))=T35+U314
Y(I(5))=T314+U35
Y(I(16))=-T314+U35
X(I(6))=T36-U315
X(I(15))=T36+U315
Y(I(6))=T315+U36
Y(I(15))=-T315+U36
X(I(7))=T37-U316
X(I(14))=T37+U316
Y(I(7))=T316+U37
Y(I(14))=-T316+U37
X(I(8))=T38-U317
X(I(13)=T38+U317
Y(I(8))=T317+U38
Y(I(13)=-T317+U38
X(I(9))=T39-U318
X(I(12))=T39+U318
Y(I(9))=T318+U39
Y(I(12))=-T318+U39
X(I(10))=T310-U319
X(I(11))=T310+U319
Y(I(10))=T319+U310
Y(I(11))=-T319+U310
C
GOTO 20
C
Figure. Length-19 FFT Module






