A large commit.
[pdp8.git] / sw / rescue / lab8e_goettingen / disk2_11 / rkb / paroff / fftc.ft
CommitLineData
81e70d48
PH
1C FFTC.FT FFT-V4A 4/22/76\r
2\r
3 SUBROUTINE FFTC (A,N,M,SGNEX)\r
4\r
5C-------FFT VON N=2**M KOMPLEXEN DATEN\r
6C A = IN- UND OUTPUTARRAY, LAENGE N=2**M, KOMPLEX\r
7C-------SGNEXP = VORZEICHEN DES EXPONENTEN DER E-FUNKTIONEN\r
8\r
9 DIMENSION A(2,513)\r
10 DIMENSION U(2),W(2),T(2),V(2)\r
11 NV2=N/2\r
12 NM1=N-1\r
13 J=1\r
14 DO 7 I=1,NM1\r
15 IF (I.GE.J) GOTO 5\r
16 T(1)=A(1,J)\r
17 T(2)=A(2,J)\r
18 A(1,J)=A(1,I)\r
19 A(2,J)=A(2,I)\r
20 A(1,I)=T(1)\r
21 A(2,I)=T(2)\r
225 K=NV2\r
236 IF (K.GE.J) GOTO 7\r
24 J=J-K\r
25 K=K/2\r
26 GO TO 6\r
277 J=J+K\r
28 PI=3.141592653*SGNEX\r
29 LE1=1\r
30 S=0.\r
31 DO 30 L=1,M\r
32 LE=2*LE1\r
33 U(1)=1.\r
34 U(2)=0.\r
35 SN=SIN(PI/FLOAT(LE))\r
36 W(1)=-2.*SN*SN\r
37 W(2)=S\r
38 S=SN\r
39 DO 20 J=1,LE1\r
40 DO 10 I=J,N,LE\r
41 IP=I+LE1\r
42 T(1)=A(1,IP)*U(1)-A(2,IP)*U(2)\r
43 T(2)=A(1,IP)*U(2)+A(2,IP)*U(1)\r
44 A(1,IP)=A(1,I)-T(1)\r
45 A(2,IP)=A(2,I)-T(2)\r
46 A(1,I)=A(1,I)+T(1)\r
47 A(2,I)=A(2,I)+T(2)\r
4810 CONTINUE\r
49 V(1)=U(1)+U(1)*W(1)-U(2)*W(2)\r
50 V(2)=U(2)+U(1)*W(2)+U(2)*W(1)\r
51 U(1)=V(1)\r
52 U(2)=V(2)\r
53 COR=.5-.5*(U(1)*U(1)+U(2)*U(2))\r
54 U(1)=COR*U(1)+U(1)\r
5520 U(2)=COR*U(2)+U(2)\r
5630 LE1=LE\r
57 RETURN\r
58 END\r
59\f\1a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0