<< Chapter < Page | Chapter >> Page > |
A FORTRAN implementation of a length-16 FFT module to be used in a Prime Factor Algorithm program.
C
C-------------------WFTA N=16----------------------------C
116 R1 = X(I(1)) + X(I(9))R2 = X(I(1)) - X(I(9))
S1 = Y(I(1)) + Y(I(9))S2 = Y(I(1)) - Y(I(9))
R3 = X(I(2)) + X(I(10))R4 = X(I(2)) - X(I(10))
S3 = Y(I(2)) + Y(I(10))S4 = Y(I(2)) - Y(I(10))
R5 = X(I(3)) + X(I(11))R6 = X(I(3)) - X(I(11))
S5 = Y(I(3)) + Y(I(11))S6 = Y(I(3)) - Y(I(11))
R7 = X(I(4)) + X(I(12))R8 = X(I(4)) - X(I(12))
S7 = Y(I(4)) + Y(I(12))S8 = Y(I(4)) - Y(I(12))
R9 = X(I(5)) + X(I(13))R10= X(I(5)) - X(I(13))
S9 = Y(I(5)) + Y(I(13))S10= Y(I(5)) - Y(I(13))
R11 = X(I(6)) + X(I(14))R12 = X(I(6)) - X(I(14))
S11 = Y(I(6)) + Y(I(14))S12 = Y(I(6)) - Y(I(14))
R13 = X(I(7)) + X(I(15))R14 = X(I(7)) - X(I(15))
S13 = Y(I(7)) + Y(I(15))S14 = Y(I(7)) - Y(I(15))
R15 = X(I(8)) + X(I(16))R16 = X(I(8)) - X(I(16))
S15 = Y(I(8)) + Y(I(16))S16 = Y(I(8)) - Y(I(16))
T1 = R1 + R9T2 = R1 - R9
U1 = S1 + S9U2 = S1 - S9
T3 = R3 + R11T4 = R3 - R11
U3 = S3 + S11U4 = S3 - S11
T5 = R5 + R13T6 = R5 - R13
U5 = S5 + S13U6 = S5 - S13
T7 = R7 + R15T8 = R7 - R15
U7 = S7 + S15U8 = S7 - S15
T9 = C81 * (T4 + T8)T10= C81 * (T4 - T8)
U9 = C81 * (U4 + U8)U10= C81 * (U4 - U8)
R1 = T1 + T5R3 = T1 - T5
S1 = U1 + U5S3 = U1 - U5
R5 = T3 + T7R7 = T3 - T7
S5 = U3 + U7S7 = U3 - U7
R9 = T2 + T10R11= T2 - T10
S9 = U2 + U10S11= U2 - U10
R13 = T6 + T9R15 = T6 - T9
S13 = U6 + U9S15 = U6 - U9
T1 = R4 + R16T2 = R4 - R16
U1 = S4 + S16U2 = S4 - S16
T3 = C81 * (R6 + R14)T4 = C81 * (R6 - R14)
U3 = C81 * (S6 + S14)U4 = C81 * (S6 - S14)
T5 = R8 + R12T6 = R8 - R12
U5 = S8 + S12U6 = S8 - S12
T7 = C162 * (T2 - T6)T8 = C163 * T2 - T7
T9 = C164 * T6 - T7T10 = R2 + T4
T11 = R2 - T4R2 = T10 + T8
R4 = T10 - T8R6 = T11 + T9
R8 = T11 - T9U7 = C162 * (U2 - U6)
U8 = C163 * U2 - U7U9 = C164 * U6 - U7
U10 = S2 + U4U11 = S2 - U4
S2 = U10 + U8S4 = U10 - U8
S6 = U11 + U9S8 = U11 - U9
T7 = C165 * (T1 + T5)T8 = T7 - C164 * T1
T9 = T7 - C163 * T5T10 = R10 + T3
T11 = R10 - T3R10 = T10 + T8
R12 = T10 - T8R14 = T11 + T9
R16 = T11 - T9U7 = C165 * (U1 + U5)
U8 = U7 - C164 * U1U9 = U7 - C163 * U5
U10 = S10 + U3U11 = S10 - U3
S10 = U10 + U8S12 = U10 - U8
S14 = U11 + U9S16 = U11 - U9
CX(I( 1)) = R1 + R5
X(I( 9)) = R1 - R5Y(I( 1)) = S1 + S5
Y(I( 9)) = S1 - S5X(I( 2)) = R2 + S10
X(I(16)) = R2 - S10Y(I( 2)) = S2 - R10
Y(I(16)) = S2 + R10X(I( 3)) = R9 + S13
X(I(15)) = R9 - S13Y(I( 3)) = S9 - R13
Y(I(15)) = S9 + R13X(I( 4)) = R8 - S16
X(I(14)) = R8 + S16Y(I( 4)) = S8 + R16
Y(I(14)) = S8 - R16X(I( 5)) = R3 + S7
X(I(13)) = R3 - S7Y(I( 5)) = S3 - R7
Y(I(13)) = S3 + R7X(I( 6)) = R6 + S14
X(I(12)) = R6 - S14Y(I( 6)) = S6 - R14
Y(I(12)) = S6 + R14X(I( 7)) = R11 - S15
X(I(11)) = R11 + S15Y(I( 7)) = S11 + R15
Y(I(11)) = S11 - R15X(I( 8)) = R4 - S12
X(I(10)) = R4 + S12Y(I( 8)) = S4 + R12
Y(I(10)) = S4 - R12C
GOTO 20CFigure. Length-16 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?