1  DIM X[128],Y[128]
10  DATA 8.50001,0
11  DATA -.5,2.51367
12  DATA -.5,1.20711
13  DATA -.5,.748303
14  DATA -.5,.500001
15  DATA -.5,.33409
16  DATA -.500001,.207107
17  DATA -.5,.0994568
18  DATA -.500001,0
100  LET G=3
110  LET N=2^G
120  LET P=4*ATN(1)/N
130  FOR I=1 TO N+1
140  READ X[I],Y[I]
150  NEXT I
160  FOR I=0 TO N/2
170  LET Y1=X[I+1]+X[N-I+1]
180  LET Y2=(Y[I+1]+Y[N-I+1])*COS(I*P)+(X[I+1]-X[N-I+1])*SIN(I*P)
190  LET Y3=Y[I+1]-Y[N-I+1]
200  LET Y4=(X[I+1]-X[N-I+1])*COS(I*P)-(Y[I+1]+Y[N-I+1])*SIN(I*P)
210  LET X[I+1]=Y1-Y2
220  LET Y[I+1]=Y3+Y4
230  LET X[N-I+1]=Y1+Y2
240  LET Y[N-I+1]=-Y3+Y4
250  NEXT I
260  LET P=2*P
270  FOR L=0 TO G-1
280  LET G1=2^(G-L-1)
290  LET M=0
300  FOR I=1 TO 2^L
310  LET K1=INT(M/G1)
320  GOSUB 630
330  LET Y1=COS(P*K2)
340  LET Y2=SIN(P*K2)
350  FOR J=1 TO G1
360  LET Y3=X[M+G1+1]*Y1-Y[M+G1+1]*Y2
370  LET Y4=X[M+G1+1]*Y2+Y[M+G1+1]*Y1
380  LET X[M+G1+1]=X[M+1]-Y3
390  LET Y[M+G1+1]=Y[M+1]-Y4
400  LET X[M+1]=X[M+1]+Y3
410  LET Y[M+1]=Y[M+1]+Y4
420  LET M=M+1
430  NEXT J
440  LET M=M+G1
450  NEXT I
460  NEXT L
470  FOR I=0 TO N-1
480  LET K1=I
490  GOSUB 630
500  IF K2 >= I THEN 570
510  LET K3=X[I+1]
520  LET X[I+1]=X[K2+1]
530  LET X[K2+1]=K3
540  LET K3=Y[I+1]
550  LET Y[I+1]=Y[K2+1]
560  LET Y[K2+1]=K3
570  NEXT I
580  FOR I=0 TO N-1
590  PRINT 2*I;X[I+1]
600  PRINT 2*I+1;Y[I+1]
610  NEXT I
620  GOTO 710
630  LET K2=0
640  FOR K=1 TO G
650  LET K3=INT(K1/2)
660  LET K2=2*(K2-K3)+K1
670  LET K1=K3
690  NEXT K
700  RETURN 
710  END 
