1  DIM X[1024],Y[1024]
10  DATA 64
11  DATA -66.4929
12  DATA 19.3137
13  DATA -15.2127
14  DATA 7.99999
15  DATA -6.7919
16  DATA 3.31371
17  DATA -2.63087
18  DATA -7.62939E-06
19  DATA .551735
20  DATA -3.31371
21  DATA 3.89897
22  DATA -8
23  DATA 8.73302
24  DATA -19.3137
25  DATA 13.9446
100  LET G=4
105  LET G=G-1
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
520  GOTO 700
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 
700  LET X[N+1]=X[1]
710  LET Y[N+1]=Y[1]
720  LET P=P/2
730  FOR I=0 TO N/2
740  LET Y1=X[I+1]+X[N-I+1]
750  LET Y2=(Y[I+1]+Y[N-I+1])*COS(I*P)-(X[I+1]-X[N-I+1])*SIN(I*P)
760  LET Y3=Y[I+1]-Y[N-I+1]
770  LET Y4=(X[I+1]-X[N-I+1])*COS(P*I)+(Y[I+1]+Y[N-I+1])*SIN(I*P)
780  LET X[I+1]=(Y1+Y2)/4
790  LET X[N-I+1]=(Y1-Y2)/4
800  LET Y[I+1]=(Y3-Y4)/4
810  LET Y[N-I+1]=(-Y3-Y4)/4
820  NEXT I
830  FOR I=0 TO N
840  PRINT I;X[I+1];"+J"Y[I+1]
850  NEXT I
860  END 
