<< Chapter < Page | Chapter >> Page > |
A FORTRAN implementation of a length-25 FFT module to be used in a Prime Factor Algorithm program.
C
C-------------------WFTA N=25----------------------------C
C 420 ADDS; 132 MPYSC DATA FOR LENGTH 25 DFT
DATA C5001 / -.2500000000000000 /DATA C5002 / .5590169943749474 /
DATA C5003 / -.3632712640026805 /DATA C5004 / 1.5388417685876267 /
DATA C5005 / -.5877852522924731 /DATA C5102 / .2236067977499788E+01 /
DATA C5103 / -.1453085056010720E+01 /DATA C5104 / .6155367074350504E+01 /
DATA C5105 / -.2351141009169892E+01 /DATA C2510/ -.0760795655183429 /
DATA C2511/ .0449933296227360 /DATA C2512/ .0605364475705394 /
DATA C2520/ -.0848787721340987 /DATA C2521/ .0246595628713843 /
DATA C2522/ .0547691675027415 /DATA C2530/ -.0883447333343813 /
DATA C2531/ .0027763450932952 /DATA C2532/ .0455605392138382 /
DATA C2540/ -.0862596700300632 /DATA C2541/ -.0192813206576887 /
DATA C2542/ .0334891746861873 /DATA C2560/ -.0663010779973491 /
DATA C2561/ -.0584522630561849 /DATA C2562/ .0039244074705821 /
DATA C2580/ -.0299404850563092 /DATA C2581/ -.0831628965019433 /
DATA C2582/ -.0266112057228170 /DATA C2590/ -.0083180783141937 /
DATA C2591/ -.0879960770327799 /DATA C2592/ -.0398389993592931 /
DATA C25120 / .0541738417343859 /DATA C25121 / -.0698404959299239 /
DATA C25122 / -.0620071688321549 /DATA C25160 / .0879960770327799 /
DATA C25161 / .0083180783141937 /DATA C25162 / -.0398389993592931 /
CC--------------------CFA N=25-----------------------------
CR101=X(I(6))+X(I(21))
R102=X(I(11))+X(I(16))R103=X(I(6))-X(I(21))
R104=X(I(11))-X(I(16))R31=R101+R102
R32=R101-R102R35=R103+R104
T11 =R31 *C5001+X(I(1))T12 =R32 *C5002
T13 =R103 *C5003T14 =R104 *C5004
T15 =R35 *C5005T32=T11+T12
T33=T11-T12T34=T13+T15
T35=T14+T15S101=Y(I(6))+Y(I(21))
S102=Y(I(11))+Y(I(16))S103=Y(I(6))-Y(I(21))
S104=Y(I(11))-Y(I(16))S31=S101+S102
S32=S101-S102S35=S103+S104
U11 =S31 *C5001+Y(I(1))U12 =S32 *C5002
U13 =S103 *C5003U14 =S104 *C5004
U15 =S35 *C5005U32=U11+U12
U33=U11-U12U34=U13+U15
U35=U14+U15XT1=X(I(1))+R31
YT1=Y(I(1))+S31XT6= T32-U34
XT21= T32+U34YT6= T34+U32
YT21=-T34+U32XT11= T33-U35
XT16= T33+U35YT11= T35+U33
YT16=-T35+U33R101=X(I(7))+X(I(22))
R102=X(I(12))+X(I(17))R103=X(I(7))-X(I(22))
R104=X(I(12))-X(I(17))T31=R101+R102
R32=R101-R102R35=R103+T104
T16=X(I(2))+X(I(2))T11=T16+T16-R31
T12 =R32 *5102T13 =R103 *5103
T14 =R104 *5104T15=R35*C5105
T32=T11+T12T33=T11-T12
T34=T13+T15T35=T14+T15
S101=Y(I(7))+Y(I(22))S102=Y(I(12))+Y(I(17))
S103=Y(I(7))-Y(I(22))S104=Y(I(12))-Y(I(17))
S31=S101+S102S32=S101-S102
S35=S103+S104U16=Y(I(2))+Y(I(2))
U11=U16+U16-S31U12 =S32 *5102
U13 =S103 *5103U14 =S104 *5104
U15=S35*5105U32=U11+U12
U33=U11-U12U34=U13+U15
U35=U14+U15XT2=X(I(2))+R31
YT2=Y(I(2))+S31XT7= T32-U34
XT22= T32+U34YT7= T32+U34
YT22=-T32+U34XT12= T33-U35
XT17= T33+U35YT12= T35+U33
YT17=-T35+U33R101=X(I(8))+X(I(23))
R102=X(I(13))+X(I(18))R103=X(I(8))-X(I(23))
R104=X(I(13))-X(I(18))R31=R101+R102
R32=R101-R102R35=R103+R104
T16=X(I(3))+X(I(3))T11=T16+T16-R31
T12 =R32 *C5102T13 =R103 *C5103
T14 =R104 *C5104T15=R35*C5105
T32=T11+T12T33=T11-T12
T34=T13+T15T35=T14+T15
S101=Y(I(8))+Y(I(23))S102=Y(I(13))+Y(I(18))
S103=Y(I(8))-Y(I(23))S104=Y(I(13))-Y(I(18))
S31=S101+S102S32=S101-S102
S35=S103+S104U16=Y(I(3))+Y(I(3))
U11=U16+U16-S31U12 =S32 *C5102
U13 =S103 *C5103U14 =S104 *C5104
U15=S35*C5105U32=U11+U12
U33=U11-U12U34=U13+U15
U35=U14+U15XT3=X(I(3))+R31
YT3=Y(I(3))+S31XT8= T32-U34
XT23= T32+U34YT8= T34+U32
YT23=-T34+U32XT13= T33-U35
XT18= T33+U35YT13= T35+U33
YT18=-T35+U33R101=X(I(9))+X(I(24))
R102=X(I(14))+X(I(19))R103=X(I(9))-X(I(24))
R104=X(I(14))-X(I(19))R31=R101+R102
R32=R101-R102R35=R103+R104
T16=X(I(4))+X(I(4))T11=T16+T16-R31
T12 =R32 *C5102T13 =R103 *C5103
T14 =R104 *C5104T15=R35*C5105
T32=T11+T12T33=T11-T12
T34=T13+T15T35=T14+T15
S101=Y(I(9))+Y(I(24))S102=Y(I(14))+Y(I(19))
S103=Y(I(9))-Y(I(24))S104=Y(I(14))-Y(I(19))
S31=S101+S102S32=S101-S102
S35=S103+S104U16=Y(I(4))+Y(I(4))
U11=U16+U16-S31U12 =S32 *C5102
U13 =S103 *C5103U14 =S104 *C5104
U15=S35*C5105U32=U11+U12
U33=U11-U12U34=U13+U15
U35=U14+U15XT4=X(I(4))+R31
YT4=Y(I(4))+S31XT9= T32-U34
XT24= T32+U34YT9= T34+U32
YT24=-T34+U32XT14= T33-U35
XT19= T33+U35YT14= T35+U33
YT19=-T35+U33R101=X(I(10))+X(I(25))
R102=X(I(15))+X(I(20))R103=X(I(10))-X(I(25))
R104=X(I(15))-X(I(20))
R31=R101+R102R32=R101-R102
R35=R103+R104T16=X(I(5))+X(I(5))
T11=T16+T16-R31T12 =R32 *C5102
T13 =R103 *C5103T14 =R104 *C5104
T15=R35*C5105T32=T11+T12
T33=T11-T12T34=T13+T15
T35=T14+T15S101=Y(I(10))+Y(I(25))
S102=Y(I(15))+Y(I(20))S103=Y(I(10))-Y(I(25))
S104=Y(I(15))-Y(I(20))S31=S101+S102
S32=S101-S102S35=S103+S104
U16=Y(I(5))+Y(I(5))U11=U16+U16-S31
U12 =S32 *C5102U13 =S103 *C5103
U14 =S104 *C5104U15=S35*C5105
U32=U11+U12U33=U11-U12
U34=U13+U15U35=U14+U15
XT5=X(I(5))+R31YT5=Y(I(5))+S31
XT10= T32-U34XT25= T32+U34
YT10= T34+U32YT25=-T34+U32
XT15= T33-U35XT20= T33+U35
YT15= T35+U33YT20=-T35+U33
T1=(XT7+YT7)*C2512T2=XT7*C2510
XT7=T1-YT7*C2511YT7=T1+T2
T1=(XT12+YT12)*C2522T2=XT12*C2520
XT12=T1-YT12*C2521YT12=T1+T2
T1=(XT17+YT17)*C2532T2=XT17*C2530
XT17=T1-YT17*C2531YT17=T1+T2
T1=(XT22+YT22)*C2542T2=XT22*C2540
XT22=T1-YT22*C2541YT22=T1+T2
T1=(XT8+YT8)*C2522T2=XT8*C2520
XT8=T1-YT8*C2521YT8=T1+T2
T1=(XT13+YT13)*C2542T2=XT13*C2540
XT13=T1-YT13*C2541YT13=T1+T2
T1=(XT18+YT18)*C2562T2=XT18*C2560
XT18=T1-YT18*C2561YT18=T1+T2
T1=(XT23+YT23)*C2582T2=XT23*C2580
XT23=T1-YT23*C2581YT23=T1+T2
T1=(XT9+YT9)*C2532T2=XT9*C2530
XT9=T1-YT9*C2531YT9=T1+T2
T1=(XT14+YT14)*C2562T2=XT14*C2560
XT14=T1-YT14*C2561YT14=T1+T2
T1=(XT19+YT19)*C2592T2=XT19*C2590
XT19=T1-YT19*C2591YT19=T1+T2
T1=(XT24+YT24)*C25122T2=XT24*C25120
XT24=T1-YT24*C25121YT24=T1+T2
T1=(XT10+YT10)*C2542T2=XT10*C2540
XT10=T1-YT10*C2541YT10=T1+T2
T1=(XT15+YT15)*C2582T2=XT15*C2580
XT15=T1-YT15*C2581YT15=T1+T2
T1=(XT20+YT20)*C25122T2=XT20*C25120
XT20=T1-YT20*C25121YT20=T1+T2
T1=(XT25+YT25)*C25162T2=XT25*C25160
XT25=T1-YT25*C25161YT25=T1+T2
R101=XT2+XT5R102=XT3+XT4
R103=XT2-XT5R104=XT3-XT4
R31=R101+R102R32=R101-R102
R35=R103+R104T11 =R31 *C5001+XT1
T12 =R32 *C5002T13 =R103 *C5003
T14 =R104 *C5004T15 =R35 *C5005
T32=T11+T12T33=T11-T12
T34=T13+T15T35=T14+T15
S101=YT2+YT5S102=YT3+YT4
S103=YT2-YT5S104=YT3-YT4
S31=S101+S102S32=S101-S102
S35=S103+S104U11 =S31 *C5001+YT1
U12 =S32 *C5002U13 =S103 *C5003
U14 =S104 *C5004U15 =S35 *C5005
U32=U11+U12U33=U11-U12
U34=U13+U15U35=U14+U15
X(I(1))=XT1+R31Y(I(1))=YT1+S31
X(I(6))= T32-U34X(I(21))= T32+U34
Y(I(6))= T34+U32Y(I(21))=-T34+U32
X(I(11))= T33-U35X(I(16))= T33+U35
Y(I(11))= T35+U33Y(I(16))=-T35+U33
R101=XT7+XT10R102=XT8+XT9
R103=XT7-XT10R104=XT8-XT9
R31=R101+R102R32=R101-R102
R35=R103+R104T11 =XT6-R31
T12 =R32 *C5102T13 =R103 *C5103
T14 =R104 *C5104T15=R35*C5105
T32=T11+T12T33=T11-T12
T34=T13+T15T35=T14+T15
S101=YT7+YT10S102=YT8+YT9
S103=YT7-YT10S104=YT8-YT9
S31=S101+S102S32=S101-S102
S35=S103+S104U11 =YT6-S31
U12 =S32 *C5102U13 =S103 *C5103
U14 =S104 *C5104U15=S35*C5105
U32=U11+U12U33=U11-U12
U34=U13+U15U35=U14+U15
R31=R31+R31S31=S31+S31
X(I(2))=XT6+R31+R31Y(I(2))=YT6+S31+S31
X(I(7))= T32-U34X(I(22))= T32+U34
Y(I(7))= T34+U32Y(I(22))=-T34+U32
X(I(12))= T33-U35X(I(17))= T33+U35
Y(I(12))= T35+U33Y(I(17))=-T35+U33
R101=XT12+XT15R102=XT13+XT14
R103=XT12-XT15R104=XT13-XT14
R31=R101+R102R32=R101-R102
R35=R103+R104T11 =XT11-R31
T12 =R32 *C5102T13 =R103 *C5103
T14 =R104 *C5104T15=R35*C5105
T32=T11+T12T33=T11-T12
T34=T13+T15T35=T14+T15
S101=YT12+YT15S102=YT13+YT14
S103=YT12-YT15S104=YT13-YT14
S31=S101+S102S32=S101-S102
S35=S103+S104U11 =YT11-S31
U12 =S32 *C5102U13 =S103 *C5103
U14 =S104 *C5104U15=S35*C5105
U32=U11+U12U33=U11-U12
U34=U13+U15U35=U14+U15
R31=R31+R31S31=S31+S31
X(I(3))=XT11+R31+R31Y(I(3))=YT11+S31+S31
X(I(8))= T32-U34X(I(23))= T32+U34
Y(I(8))= T34+U32Y(I(23))=-T34+U32
X(I(13))= T33-U35X(I(18))= T33+U35
Y(I(13))= T35+U33Y(I(18))=-T35+U33
R101=XT17+XT20R102=XT18+XT19
R103=XT17-XT20R104=XT18-XT19
R31=R101+R102R32=R101-R102
R35=R103+R104T11 =XT16-R31
T12 =R32 *C5102T13 =R103 *C5103
T14 =R104 *C5104T15=R35*C5105
T32=T11+T12T33=T11-T12
T34=T13+T15T35=T14+T15
S101=YT17+YT20S102=YT18+YT19
S103=YT17-YT20S104=YT18-YT19
S31=S101+S102S32=S101-S102
S35=S103+S104U11 =YT16-S31
U12 =S32 *C5102U13 =S103 *C5103
U14 =S104 *C5104U15=S35*C5105
U32=U11+U12U33=U11-U12
U34=U13+U15U35=U14+U15
R31=R31+R31S31=S31+S31
X(I(4))=XT16+R31+R31Y(I(4))=YT16+S31+S31
X(I(9))= T32-U34X(I(24))= T32+U34
Y(I(9))= T34+U32Y(I(24))=-T34+U32
X(I(14)= T33-U35X(I(19))= T33+U35
Y(I(14))= T35+U33Y(I(19))=-T35+U33
R101=XT22+XT25R102=XT23+XT24
R103=XT22-XT25R104=XT23-XT24
R31=R101+R102R32=R101-R102
R35=R103+R104T11 =XT21-R31
T12 =R32 *C5102T13 =R103 *C5103
T14 =R104 *C5104T15=R35*C5105
T32=T11+T12T33=T11-T12
T34=T13+T15T35=T14+T15
S101=YT22+YT25S102=YT23+YT24
S103=YT22-YT25S104=YT23-YT24
S31=S101+S102S32=S101-S102
S35=S103+S104U11 =YT21-S31
U12 =S32 *C5102U13 =S103 *C5103
U14 =S104 *C5104U15=S35*C5105
U32=U11+U12U33=U11-U12
U34=U13+U15U35=U14+U15
R31=R31+R31S31=S31+S31
X(I(5))=XT21+R31+R31Y(I(5))=YT21+S31+S31
X(I(10))= T32-U34X(I(25))= T32+U34
Y(I(10))= T34+U32Y(I(25))=-T34+U32
X(I(15))= T33-U35X(I(20))= T33+U35
Y(I(15))= T35+U33Y(I(20))=-T35+U33
CGOTO 20
CFigure. Length-25 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?