1  DIM X[1024],Y[1024]
100  REM INSERT VALUE OF "G" HERE
110  LET N=2^G
120  LET P=8*ATN(1)/N
130  FOR I=1 TO N
140  READ X[I],Y[I]
150  LET X[I]=X[I]/N
160  LET Y[I]=Y[I]/N
170  NEXT I
180  FOR L=0 TO G-1
190  LET G1=2^(G-L-1)
200  LET M=0
210  FOR I=1 TO 2^L
220  LET K1=INT(M/G1)
230  GOSUB 530
240  LET Y1=COS(P*K2)
250  LET Y2=-SIN(P*K2)
260  FOR J=1 TO G1
270  LET Y3=X[M+G1+1]*Y1-Y[M+G1+1]*Y2
280  LET Y4=X[M+G1+1]*Y2+Y[M+G1+1]*Y1
290  LET X[M+G1+1]=X[M+1]-Y3
300  LET Y[M+G1+1]=Y[M+1]-Y4
310  LET X[M+1]=X[M+1]+Y3
320  LET Y[M+1]=Y[M+1]+Y4
330  LET M=M+1
340  NEXT J
350  LET M=M+G1
360  NEXT I
370  NEXT L
380  FOR I=0 TO N-1
390  LET K1=I
400  GOSUB 530
410  IF K2 >= I THEN 480
420  LET K3=X[I+1]
430  LET X[I+1]=X[K2+1]
440  LET X[K2+1]=K3
450  LET K3=Y[I+1]
460  LET Y[I+1]=Y[K2+1]
470  LET Y[K2+1]=K3
480  NEXT I
490  FOR I=0 TO N-1
500  PRINT I;X[I+1],"+J"Y[I+1]
510  NEXT I
520  GOTO 610
530  LET K2=0
540  FOR K=1 TO G
550  LET K3=INT(K1/2)
560  LET K2=2*(K2-K3)+K1
570  LET K1=K3
590  NEXT K
600  RETURN 
610  END 
