File: FIT.FC of Tape: Various/ETH/fc1
(.FC,.FO Focal format converted to 'WRITE' listing) 

C-OS/8 FOCAL, 1972

01.01 C PROGRAM FIT / CORRELATION FOUR<>LOR*SINC

02.10 S A2=PI*TAU;S B2=(S0-S)*2*PI
02.20 S C2=FEXP(-A2);S D2=FCOS(B2)
02.30 S G=(1-2*C2*D2+C2*C2)/(A2*A2+B2*B2)

03.01 C CALC. N FOUR VALUES AROUND NUMAX
03.10 A ?NUMAX?,?N?;I (N-NU)3.2;T "N TOO BIG",!;Q
03.20 F I=1,N;S X(I)=FCOM(256+NU-N+2*I)
03.30 S A3=0;S B3=0;F I=1,N;S A3=A3+X(I);S B3=B3+X(I)^2
03.40 S XM=A3/N;S XV=B3-N*XM^2;S XV=FSQT(XV)

04.01 C SIN.EXP FUNKTION IN COM(0)
04.10 A ?NU?,?TA?,?AN?
04.20 D 13.8
04.30 F I=0,255;S X=FCOS(I*NU*PI/256)*FEXP(-I*TA*PI/256)+AN*FRAN();D 4.5
04.40 R
04.50 S Z=FCOM(I,X);S Z=FX(0,500)

05.01 C - FOUR
05.10 A ?SI?,?SF?;S X=(SF-SI)/16;I (X-FITR(X)-.5)5.14;S X=X+.5
05.14 S SS=FITR(X)/16;S S2=SI+SS*128;S SF=SI+SS*256
05.20 D 13.9;
05.30 S Z=FOUR(SI,SS);S ZM=FX(1,760)

06.01 C CALCULATE CORRELATION C
06.15 S S0=N/2+DS
06.20 F S=1,N;D 2;S Y(S)=G
06.30 S A6=0;S B6=0;F I=1,N;S A6=A6+Y(I);S B6=B6+Y(I)^2
06.40 S YM=A6/N;S YV=B6-N*YM^2;S YV=FSQT(YV)
06.50 S C6=0;F I=1,N;S C6=C6+X(I)*Y(I)
06.60 S C=(C6-N*XM*YM)/(XV*YV)

07.01 C COMPARE ROUTINE
07.20 D 7.8;D 6;I (CM-C)7.25,7.3,7.3
07.25 S CM=C;G 7.2
07.30 D 7.9;
07.40 D 7.9;D 6;I (CM-C)7.45,7.5,7.5
07.45 S CM=C;G 7.4
07.50 D 7.8
07.60 R
07.80 S DS=DS+DA;S TA=TA+DB
07.90 S DS=DS-DA;S TA=TA-DB

08.01 C AUTOM. PARAMETER ADJUST
08.05 S DS=0;A ?TA?,!
08.10 D 6;S CM=C;S A=.1;S B=.1;D 8.5;D 8.5
08.20 S A=.05;S B=.05;D 8.5;D 8.5
08.30 S A=.02;S B=.02;D 8.5
08.40 S A=.01;S B=.01;D 8.5
08.45 Q
08.50 S DA=A;S DB=0;D 7;S DA=0;S DB=B;D 7;D 8.7
08.70 T %4.03,DS,TA,%8.06,CM,!

09.01 C MAP C(S0,TA)
09.10 A "TAU: LOWER LIMIT",A9,"STEP",B9,!
09.15 A "DS:  LOWER LIMIT",C9,"STEP",D9
09.20 T !!,:30,"DS",!,"  TAU   ";F J=0,7;T %5.02,C9+J*D9
09.30 T !;F TA=A9,B9,A9+10*B9;T !,%3.02,TA,"   ";D 9.4
09.35 T !;Q
09.40 F DS=C9,D9,C9+7*D9;D 6;T %5.04,C

10.01 C OPTIMIERUNG (PARAMETER ADJUST)
10.10 A ?U0?,?V0?,?DU?,?DV?,?L?
10.20 S TA=U0;S DS=V0;D 6;S G0=G
10.22 S TA=U0+DU;D 6;S SU=L*(G-G0)/DU
10.24 S TA=U0;S DS=V0+DV;D 6;S SV=L*(G-G0)/DV
10.30 S TA=U0+SU;S DS=V0+SV;D 6;I (G-G0)10.4,10.6,10.6
10.40 S G1=G;S TA=TA+SU;S DS=DS+SV;D 6;I (G-G1)10.48,10.45
10.45 S G0=G1;G 10.4
10.48 S G2=G;G 10.6
10.50 S G2=G;S SU=SU/2;S SV=SV/2;S TA=U0+SU;S DS=V0+SV;D 6
10.52 I (G0-G)10.5;S G1=G;G 10.6
10.60 S T=.5*L*(G2-G0)/(G2-2*G1+G0);S
10.65 S TA=TA+(L-T)*

13.01 C - DIS SWITCH
13.70 S Z=FDIS(A,FABS(FDIS(A)));S Z=FDIS(B,-FABS(FDIS(B)))
13.80 S A=4;S B=5;D 13.7
13.90 S A=5;S B=4;D 13.7

20.10 S N1=N2*PI/256
20.20 S A=0;F II=0,255;S A=A+FCOM(II)*FCOS(II*N1)
20.30 S B=0;F II=0,255;S B=B-FCOM(II)*FSIN(II*N1)
20.40 S AF=FSQT(A^2+B^2)/128;
20.50 I (B)20.7,20.6;S PH=0;G 20.8
20.60 S PH=90*FSGN(A);R
20.70 S PH=180*FSGN(A)
20.80 S PH=PH+180*FATN(A/B)/PI