1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-03-03 01:47:56 +00:00
Files
Paul Kimpel 2c72f7fd1d Commit CUBE Library version 13 of February 1972.
1. Commit library tape images, directories, and extracted text files.
2. Commit additional utilities under Unisys-Emode-Tools.
2018-05-27 11:24:23 -07:00

1176 lines
93 KiB
Plaintext

BEGIN 00000100
COMMENT PROGRAM - WESTINGHOUSE REGRESSION, 00000200
CUBE LIBRARY NUMBER IS G200002. 00000300
THIS VERSION DATED 6/20/67; 00000400
COMMENT A VERSATILE PROGRAM FOR REGRESSION ( CURVE-FITTING) 00000500
PROBLEMS - DEVELOPED AT THE WESTINGHOUSE RESEARCH 00000600
AND DEVELOPMENT CENTER. ; 00000700
FILE IN READER (2,11); 00000800
FILE OUT PRINT 4 "MULTIPL" "REGRESS" (2,15); 00000900
DEFINE LCTR= ~ 1 STEP 1 UNTIL #; 00001000
DEFINE PRINTER=PRINT#; 00001100
COMMENT PROCEDURES NECESSARY FOR TIMIT APRIL 20,1964 FOLLOW; 00001200
REAL STREAM PROCEDURE DATEXX(RAWTIME);VALUE RAWTIME;BEGIN SI~LOC RAWTIME00001300
;DI~LOC DATEXX;DS~8 OCT;END;PROCEDURE TIMEIT(PRINTER);FILE PRINTER;BEGIN00001400
ALPHA ARRAY MOTABLE[1:12];ALPHA AMPM,RAWTIME;INTEGER YR,DAY,TYME,I,YRDA00001500
Y,I1,I2,HOUR;INTEGER ARRAY MOADD[1:12];FORMAT T1("RUN DATE",X12,"RUN TIM00001600
E",X12,"PROCESSOR TIME",X6,"I/O TIME"/X1,A6,I2,",19",I2,X7,I2,":",2I1,A100001700
,"M",X10,I7," SEC.",X6,I7," SEC.");FILL MOTABLE[*]WITH"JAN.","FEB.","MAR00001800
CH ","APRIL ","MAY ","JUNE ","JULY ","AUG.","SEPT.","OCT.","NOV.","DEC."00001900
;FILL MOADD[*]WITH 31,28,31,30,31,30,31,31,30,31,30,31;WRITE(PRINTER[PAG00002000
E]);RAWTIME~TIME(0);YRDAY~DATEXX(RAWTIME);YR~YRDAY DIV 1000;DAY~YRDAY MO00002100
D(YR|1000);IF YR MOD 4=0 THEN MOADD[2]~29;YRDAY~0;FOR I~1 STEP 1 WHILE Y00002200
RDAY<DAY DO YRDAY~YRDAY+MOADD[I];I~I-1;DAY~DAY+MOADD[I]-YRDAY;TYME~TIME(00002300
1)/60;HOUR~TYME DIV(3600);IF HOUR>12 THEN BEGIN HOUR~HOUR-12;AMPM~"P"END00002400
ELSE AMPM~"A";TYME~TYME MOD 3600;I2~(TYME DIV 60)MOD 10;I1~(TYME DIV 6000002500
)DIV 10;WRITE(PRINTER,T1,MOTABLE[I],DAY,YR,HOUR,I1,I2,AMPM,TIME(2)/60,TI00002600
ME(3)/60);END; 00002700
PROCEDURE INVERTMATRIX(B,N,L,C); 00002800
VALUE N; 00002900
ARRAY B[0,0],C[0,0]; 00003000
INTEGER N; 00003100
REAL L; 00003200
BEGIN 00003300
ARRAY A[0:N,0:2|N]; 00003400
INTEGER I,J,K; 00003500
INTEGER N2; 00003600
REAL S; 00003700
LABEL NO1,RETURN; 00003800
N2~2|N; 00003900
FOR I~ 1 STEP 1 UNTIL N DO BEGIN 00004000
FOR J~N+1 STEP 1 UNTIL N2 DO 00004100
A[I,J]~0; 00004200
A[I,I+N]~1 END; 00004300
FOR I~1 STEP 1 UNTIL N DO 00004400
FOR J~1 STEP 1 UNTIL N DO 00004500
A[I,J]~B[I,J]; 00004600
L~1; 00004700
FOR I~1 STEP 1 UNTIL N-1 DO 00004800
BEGIN 00004900
K~0; 00005000
S~ABS(A[I,I]) ; 00005100
FOR J~I+1 STEP 1 UNTIL N DO 00005200
BEGIN 00005300
IF S < ABS(A[J,I]) THEN BEGIN K~J; S~ABS(A[J,I]) END; 00005400
END; 00005500
IF S { 0 THEN BEGIN NO1:L~0; GO RETURN; END; 00005600
IF K=0 THEN L~L|A[I,I]; 00005700
IF K > 0 THEN BEGIN 00005800
L~L|A[K,I]; 00005900
FOR J~I STEP 1 UNTIL N2 DO BEGIN 00006000
S~A[I,J]; 00006100
A[I,J]~A[K,J]; 00006200
A[K,J]~S; 00006300
END; 00006400
L~-L; 00006500
END; 00006600
FOR J~I+1 STEP 1 UNTIL N2 DO A[I,J]~A[I,J]/A[I,I]; 00006700
FOR J~I+1 STEP 1 UNTIL N2 DO BEGIN 00006800
IF A[I,J] ! 0 THEN BEGIN 00006900
FOR K~I+1 STEP 1 UNTIL N DO A[K,J]~A[K,J]-A[K,I]|A[I,J]; 00007000
END; 00007100
END; 00007200
END; 00007300
IF A[N,N] = 0 THEN GO TO NO1; 00007400
L~L|A[N,N]; 00007500
FOR K~N+1 STEP 1 UNTIL N2 DO BEGIN 00007600
A[N,K ]~A[N,K ]/A[N,N] ; 00007700
FOR I~N-1 STEP -1 UNTIL 1 DO 00007800
FOR J~I+1 STEP 1 UNTIL N DO 00007900
A[I,K ]~A[I,K ]-A[I,J]|A[J,K ]; END; 00008000
FOR I~1 STEP 1 UNTIL N DO 00008100
FOR J~1 STEP 1 UNTIL N DO 00008200
C[I,J]~A[I,J+N]; 00008300
RETURN: END OF INVERTMATRIX; 00008400
REAL PROCEDURE DOPR(A,B,N); 00008500
VALUE N; INTEGER N; ARRAY A,B[0]; 00008600
COMMENT DOUBLE PRECISION ROUTINE WHICH COMPUTES THE 00008700
(I,J)TH COMPONENT OF MATRIX C=A|B ; 00008800
BEGIN 00008900
INTEGER I; 00009000
REAL D,E; 00009100
D~E~0; FOR I~1 STEP 1 UNTIL N DO 00009200
DOUBLE(A[I],0,B[I],0,|,D,E,+,~,D,E); 00009300
DOPR~D; 00009400
END DOPR; 00009500
PROCEDURE MATRIXMPY(A,B,C,II,JJ,KK); 00009600
VALUE II,JJ,KK; INTEGER II,JJ,KK; 00009700
ARRAY A,B,C[0,0]; 00009800
COMMENT MATRIX MULTIPLICATION A=B | C; 00009900
BEGIN 00010000
INTEGER I,J,K; 00010100
ARRAY CC[0:JJ]; 00010200
FOR J LCTR KK DO BEGIN FOR K LCTR JJ DO 00010300
CC[K]~C[K,J]; 00010400
FOR I LCTR II DO A[I,J]~DOPR(B[I,*],CC,JJ); 00010500
END; 00010600
END MATRIXMPY; 00010700
PROCEDURE MATRIX(A,II,JJ,MYPR); 00010800
VALUE II,JJ,MYPR; ARRAY A[0,0]; 00010900
INTEGER II,JJ; REAL MYPR; 00011000
COMMENT THIS PROCEDURE PRINTS OUT THE MATRIX A OF DIM. (II X JJ); 00011100
BEGIN 00011200
INTEGER I,J,S,L; 00011300
ALPHA D; 00011400
LABEL HON,RETURN; 00011500
LIST HEAD(FOR I~1 STEP 1 UNTIL L DO [D,S+I]), 00011600
M1(I,FOR J~S+1 STEP 1 UNTIL JJ DO A[I,J]|MYPR), 00011700
HEAD1(FOR I~1 STEP 1 UNTIL 6 DO [D,S+I]), 00011800
M2(FOR I~ 1 STEP 1 UNTIL II DO 00011900
[I, FOR J~1 STEP 1 UNTIL 6 DO A[I,S+J]|MYPR]); 00012000
FORMAT FMT(X5,6(X6,A6,I3,X3)), 00012100
FMT1("ROW",I3,6(X4,E14.7)); 00012200
S~0; L~JJ; D~"COLUMN"; 00012300
HON: IF L{6 THEN BEGIN WRITE(PRINT[DBL],FMT,HEAD); 00012400
FOR I~1 STEP 1 UNTIL II DO WRITE(PRINT,FMT1,M1); GO RETURN; END; 00012500
WRITE(PRINT[DBL],FMT,HEAD1); 00012600
WRITE(PRINT[11],FMT1,M2); WRITE(PRINT[PAGE]); 00012700
S~S+6; L~L-6; GO HON; 00012800
RETURN: END MATRIX; 00012900
PROCEDURE HUNTER(M,N,R,X,Y); 00013000
VALUE M,N,R; INTEGER M,N,R; 00013100
ARRAY X,Y[0,0]; 00013200
COMMENT THIS PROCEDURE FINDS THE MIN. AND MAX. OF EACH INDEPENDENT 00013300
VARIABLE X[I,J] J=1,...N AND STORES THEM IN Y[I,2] AND 00013400
Y[I,1] RESPECTIVELY ; 00013500
BEGIN 00013600
INTEGER I,J; REAL W,XMAX,XMIN; 00013700
FOR I~ R STEP 1 UNTIL N DO 00013800
BEGIN 00013900
XMAX~XMIN~X[1,I]; 00014000
FOR J~2 STEP 1 UNTIL M DO 00014100
BEGIN 00014200
W~ X[J,I]; 00014300
IF XMAX<W THEN XMAX~W; 00014400
IF XMIN>W THEN XMIN~W; 00014500
END; 00014600
IF R=1 THEN BEGIN Y[I,1]~XMAX; Y[I,2]~XMIN; END 00014700
ELSE BEGIN Y[I-1,1]~XMAX; Y[I-1,2]~XMIN; END 00014800
END; 00014900
END HUNTER; 00015000
COMMENT THIS PROCEDURE MOVES N WORDS STARTING WITH LOCATION 00015100
HERE TO LOCATION THERE ; 00015200
STREAM PROCEDURE MOVE(N,HERE,THERE); VALUE N; 00015300
BEGIN SI~ HERE; DI~ THERE; DS~ N WDS END; 00015400
PROCEDURE DELETE(M,N,Q,NOFDEL,DEL,X,NX,NEWN,NEWQ); 00015500
VALUE M,N,Q,NOFDEL; INTEGER M,N,Q,NOFDEL,NEWN,NEWQ; 00015600
ARRAY X,NX[0,0]; INTEGER ARRAY DEL[0]; 00015700
COMMENT THIS PROCEDURE DELETES THE COLUMNS OF ARRAYS 00015800
X AND NX SPECIFIED BY THE DEL ARRAY ; 00015900
BEGIN 00016000
INTEGER I,J,K,C,JK,FQ,A,JJ; 00016100
JK~NEWQ; A~0; 00016200
IF NEWN > 0 THEN FOR K LCTR NEWN DO 00016300
BEGIN C~DEL[K]+1; JJ~ IF K<NEWN THEN DEL[K+1] ELSE Q-N+1; 00016400
NEWQ~ JJ-C; IF NEWQ>0 THEN FOR I LCTR M DO 00016500
MOVE(NEWQ,X[I,C],X[I,C-K]); 00016600
A~1; 00016700
END; 00016800
Q~Q-NEWN; FQ~Q-N+1; J~ NOFDEL - NEWN; 00016900
FOR K LCTR J DO 00017000
BEGIN 00017100
JJ~ IF (K+NEWN)<NOFDEL THEN DEL[K+NEWN+1] ELSE JK+1; 00017200
C~ DEL[K+NEWN]+1; NEWQ~ JJ-C; 00017300
IF NEWQ>0 THEN FOR I LCTR M DO MOVE(NEWQ,NX[I,C],NX[I,C-K]); 00017400
IF A=0 THEN BEGIN IF C>FQ THEN N~N-1; END ELSE N~N-1; 00017500
Q~ Q-1; 00017600
END; 00017700
NEWN~ N; NEWQ~ Q; 00017800
END DELETE; 00017900
PROCEDURE ORDERING(M,OBS,X,Y,PR); 00018000
VALUE M; INTEGER M; 00018100
ARRAY X,Y,PR[0]; 00018200
INTEGER ARRAY OBS[0]; 00018300
COMMENT THIS PROCEDURE ORDERS THE X VECTOR FROM SMALLEST TO LARGEST, 00018400
AND ADJUSTS THE Y AND PR VECTOR ACCORDINGLY.; 00018500
BEGIN 00018600
INTEGER I,J,INDEX,T1; 00018700
REAL LOSER,T; 00018800
FOR I~1 STEP 1 UNTIL M DO OBS[I]~ I; 00018900
FOR I~1 STEP 1 UNTIL M-1 DO 00019000
BEGIN 00019100
LOSER~ X[I]; INDEX~ I; 00019200
FOR J~ I+1 STEP 1 UNTIL M DO 00019300
BEGIN 00019400
IF LOSER > X[J] THEN BEGIN LOSER~X[J]; INDEX~J; END; 00019500
END; 00019600
X[INDEX]~X[I]; X[I]~LOSER; 00019700
T~Y[INDEX]; Y[INDEX]~Y[I]; Y[I]~ T; 00019800
T1~OBS[INDEX]; OBS[INDEX]~OBS[I]; OBS[I]~T1; 00019900
T~PR[INDEX]; PR[INDEX]~ PR[I]; PR[I]~ T; 00020000
END; 00020100
END ORDERING; 00020200
PROCEDURE POLYNOMIAL(ORDER,M,NX,NY,X,NCOLS,FLAG); 00020300
VALUE ORDER,M,NX,NY; INTEGER ORDER,M,NX,NY,NCOLS,FLAG; 00020400
ARRAY X[0,0]; 00020500
COMMENT THIS PROCEDURE TRANSFORMS THE INDEPENDENT VARIABLES 00020600
OF THE ARRAY X INTO THE POLYNOMIAL TERMS OF A 2ND-5TH 00020700
ORDER POLYNOMIAL ; 00020800
BEGIN 00020900
INTEGER I,J,K,L,R,P,S,C; 00021000
LABEL ERR,RETURN; 00021100
FORMAT F1("ORDER=",I3,"IS TOO LARGE FOR",I3,"VARIABLES"); 00021200
FLAG~0; S~NX+NY; 00021300
IF ORDER=2 THEN BEGIN 00021400
FOR I LCTR M DO BEGIN C~0; 00021500
FOR J LCTR NX DO 00021600
FOR K~J STEP 1 UNTIL NX DO 00021700
X[I,(C~C+1)]~X[I,J]|X[I,K]; 00021800
END; GO TO RETURN; 00021900
END 00022000
ELSE 00022100
IF ORDER=3 THEN BEGIN 00022200
FOR I LCTR M DO BEGIN C~0; 00022300
FOR J LCTR NX DO 00022400
FOR K~J STEP 1 UNTIL NX DO 00022500
FOR L~K STEP 1 UNTIL NX DO 00022600
X[I,(C~C+1)]~X[I,J]|X[I,K]|X[I,L]; 00022700
END; GO TO RETURN; 00022800
END 00022900
ELSE 00023000
IF ORDER=4 THEN BEGIN 00023100
FOR I LCTR M DO BEGIN C~0; 00023200
FOR J LCTR NX DO 00023300
FOR K~J STEP 1 UNTIL NX DO 00023400
FOR L~K STEP 1 UNTIL NX DO 00023500
FOR R~L STEP 1 UNTIL NX DO 00023600
X[I,(C~C+1)]~X[I,J]|X[I,K]|X[I,L]|X[I,R]; 00023700
END; GO TO RETURN; 00023800
END 00023900
ELSE 00024000
IF ORDER=5 THEN BEGIN 00024100
FOR I LCTR M DO BEGIN C~0; 00024200
FOR J LCTR NX DO 00024300
FOR K~J STEP 1 UNTIL NX DO 00024400
FOR L~K STEP 1 UNTIL NX DO 00024500
FOR R~L STEP 1 UNTIL NX DO 00024600
FOR P~R STEP 1 UNTIL NX DO 00024700
X[I,(C~C+1)]~X[I,J]|X[I,K]|X[I,L]|X[I,R]|X[I,P]; 00024800
END; GO TO RETURN; 00024900
END; 00025000
ERR: FLAG~1; WRITE(PRINT,F1,ORDER,NX); 00025100
RETURN: NCOLS~C; 00025200
END POLYNOMIAL; 00025300
PROCEDURE MATMPY(N,A,B,C,II,JJ); 00025400
VALUE N,II,JJ; INTEGER N,II,JJ; 00025500
ARRAY A,C[0],B[0,0]; 00025600
BEGIN 00025700
INTEGER I,J; REAL Q; LABEL RETURN; 00025800
COMMENT COL. VECTOR A=B | (COL. VECTOR C); 00025900
IF N=1 THEN BEGIN 00026000
FOR I~1 STEP 1 UNTIL II DO BEGIN Q~0; 00026100
FOR J~1 STEP 1 UNTIL JJ DO Q~ Q + B[I,J] | C[J]; A[I]~Q; END; 00026200
GO TO RETURN; END; 00026300
COMMENT ROW VECTOR C=(ROW VECTOR A) | B ; 00026400
FOR J~ 1 STEP 1 UNTIL JJ DO BEGIN Q~ 0; 00026500
FOR I~1 STEP 1 UNTIL II DO Q~ Q + A[I] | B[I,J]; C[J]~Q; END; 00026600
RETURN:END MATMPY; 00026700
PROCEDURE REPLICATION(M,X,Y,SS,DF,XVAL,SSREP,TOTDF,COUNT); 00026800
VALUE M; 00026900
INTEGER M,TOTDF,COUNT; REAL SSREP; 00027000
ARRAY X,Y,SS,XVAL[0]; INTEGER ARRAY DF[0]; 00027100
COMMENT THIS PROCEDURE CALCULATES THE S.S. DUE TO VARIATION 00027200
BETWEEN REPLICATE MEASUREMENTS.; 00027300
BEGIN 00027400
INTEGER I,ITEMP,J,K; REAL TEMP,S,YBAR; 00027500
LABEL REPEAT,CONT; 00027600
I~1; COUNT~0; 00027700
REPEAT: COUNT~COUNT + 1; TEMP~X[I]; ITEMP~I; 00027800
I~I+1; 00027900
WHILE X[I]=TEMP AND I{M DO I~I+1; 00028000
IF I-ITEMP=1 THEN BEGIN SS[COUNT]~DF[COUNT]~0; XVAL[COUNT]~TEMP END 00028100
ELSE BEGIN S~0; K~I-1; 00028200
FOR J~ITEMP STEP 1 UNTIL K DO S~S+Y[J]; YBAR~S/(I-ITEMP); 00028300
S~0; FOR J~ITEMP STEP 1 UNTIL K DO S~S+(Y[J]-YBAR)|(Y[J]-YBAR); 00028400
SS[COUNT]~S; DF[COUNT]~I-1-ITEMP; XVAL[COUNT]~TEMP; END; 00028500
IF I>M THEN GO TO CONT; 00028600
GO TO REPEAT; 00028700
CONT: SSREP~TOTDF~0; 00028800
FOR I~1 STEP 1 UNTIL COUNT DO BEGIN 00028900
SSREP~SSREP + SS[I]; TOTDF~TOTDF + DF[I]; END; 00029000
END REPLICATION; 00029100
PROCEDURE LAGCORR(N,NOFK,X,Y,Z); 00029200
VALUE N,NOFK; INTEGER N,NOFK; 00029300
ARRAY X[*],Y[*],Z[*]; 00029400
COMMENT COMPUTES THE LAG CORRELATIONS OF THE RESIDUALS ; 00029500
BEGIN 00029600
INTEGER J,K; REAL T1,T2,T3,T4,T5,T6,T7,D,NU,DE; 00029700
FOR K~ 1 STEP 1 UNTIL NOFK DO 00029800
BEGIN 00029900
T1~T2~T3~T4~T5~0; 00030000
FOR J~ 1 STEP 1 UNTIL N-K DO 00030100
BEGIN 00030200
T6~ X[J]; T7~ Y[J+K]; 00030300
T1~ T1 + T6 | T7; T2~ T2 + T6; T3~ T3 + T7; 00030400
T4~ T4 + T6 | T6; T5~ T5 + T7 | T7; 00030500
END; 00030600
D~ N-K; 00030700
NU~ T1/D - T2|T3/(D|D); 00030800
DE~SQRT((T4/D-(T2|T2)/(D|D)) | (T5/D-(T3|T3)/(D|D))); 00030900
Z[K]~NU/DE; 00031000
END; 00031100
END LAGCORR; 00031200
COMMENT THE VPLOT PACKAGE CONTAINS 4 PROCEDURES: VPLOT1,VPLOT2, 00031300
VPLOT3, AND VPLOT4 WHICH GIVE AN ON LINE PLOT OF THE 00031400
RESIDUALS VS. INDEPENDENT VARIABLES ; 00031500
ARRAY VOICIUNBONNOM[0:15]; 00031600
ALPHA ARRAY OOOQ[-8:111,-2:60]; 00031700
PROCEDURE VPLOT1(NHL,NSBH,NVL,NSBV); 00031800
INTEGER NHL,NSBH,NVL,NSBV; 00031900
COMMENT TO FILL PAGE NVL|(NSBV+1)=111, NHL|(NSBH+1){41 MAX; 00032000
BEGIN 00032100
INTEGER NH, I,J,DELNV,DELNH,TEMP1,TEMP2; 00032200
DEFINE V=VOICIUNBONNOM#, 00032300
OONVL=V[4]#, 00032400
NH2=V[3]#, 00032500
NV=V[9]#, 00032600
OONHL=V[10]#; 00032700
OONVL~NVL; 00032800
OONHL~NHL; 00032900
NH~NHL|(NSBH+1)+2; 00033000
NV~(NSBV+1)|NVL; 00033100
NH2~NH-2; 00033200
V[12]~NSBV; 00033300
V[11]~NSBH; 00033400
FOR I~-8 STEP 1 UNTIL NV DO 00033500
FOR J~-2 STEP 1 UNTIL NH DO OOOQ[I,J]~" "; 00033600
TEMP1~NSBV+1; 00033700
I~0; 00033800
FOR J~0 STEP 1 UNTIL NH2 DO OOOQ[I,J]~":"; 00033900
TEMP1~NSBH+1; 00034000
J~0; 00034100
FOR I~0 STEP 1 UNTIL NV DO OOOQ[I,J]~"-"; 00034200
TEMP2~NSBV+1; 00034300
FOR J~0 STEP TEMP1 UNTIL NH2 DO 00034400
FOR I~0 STEP TEMP2 UNTIL NV DO OOOQ[I,J]~"."; 00034500
END VPLOT1; 00034600
PROCEDURE VPLOT2(XMAX,XMIN,YMAX,YMIN); 00034700
REAL XMAX,XMIN,YMAX,YMIN; 00034800
BEGIN 00034900
REAL DELX,DELY,S,TEMP0,TEMP1,I,XX,YY; 00035000
LABEL L1; 00035100
DEFINE V=VOICIUNBONNOM#, 00035200
LOG=0.43429448|LN#, 00035300
DX=V[0]#, 00035400
DY=V[1]#, 00035500
NSBVP1=(V[12]+1)#, 00035600
NSBHP1=(V[11]+1)#, 00035700
FLAG=V[2]#, 00035800
NH2=V[3]#, 00035900
SCALEX=OOOQ[-6,-2]#, 00036000
SCALEY=OOOQ[-6,NH2+2]#, 00036100
OONVL=V[4]#, 00036200
NV=V[9]#, 00036300
OONHL=V[10]#; 00036400
FLAG~0.0; 00036500
V[7]~XMIN; 00036600
V[8]~XMAX; 00036700
V[13]~YMIN; 00036800
V[14]~YMAX; 00036900
IF (XMAX-XMIN){0 OR (YMAX-YMIN){0 THEN BEGIN FLAG~1.0;GO L1 END;00037000
COMMENT FOLLOWING FOUR STATEMENTS OMITTED WHILE E FORMAT USED 00037100
IF XMAX=0 THEN SCALEX~0 00037200
ELSE IF XMAX<0 THEN SCALEX~ENTIER(LOG(-XMAX)) ELSE 00037300
SCALEX~ENTIER(LOG((XMAX-XMIN)/2.0)), 00037400
IF SCALEX<0 THEN SCALEX~SCALEX-1.0, 00037500
OOOQ[-6,-2]~SCALEX, 00037600
REPLACE WHEN R FORMAT IMPLEMENTED; 00037700
SCALEX~0; 00037800
XX~YY~0; 00037900
IF YMAX=0 THEN SCALEY~0 ELSE SCALEY~ENTIER(LOG(ABS(YMAX))); 00038000
IF SCALEY<0 THEN SCALEY~SCALEY-1.0; 00038100
OOOQ[-6,NH2+2.0]~SCALEY; 00038200
DX~(XMAX-XMIN)/NV; 00038300
DY~(YMAX-YMIN)/NH2; 00038400
S~((YMAX-YMIN)/10*SCALEY)/OONHL; 00038500
V[6]~ 00038600
OOOQ[-6,0]~TEMP0~YMIN/10*SCALEY; 00038700
OOOQ[-5,0]~1.0; %FLAG FOR FMT TEST; 00038800
FOR I~1 STEP 1 UNTIL OONHL DO 00038900
BEGIN 00039000
TEMP1~TEMP0+S; 00039100
IF TEMP1=0 THEN YY~I; 00039200
OOOQ[-6,NSBHP1|I]~TEMP0~TEMP1; 00039300
OOOQ[-5,NSBHP1|I]~1; 00039400
END; 00039500
S~((XMAX-XMIN)/10*SCALEX)/OONVL; 00039600
V[5]~ 00039700
OOOQ[0,-2]~TEMP0~XMIN/10*SCALEX; 00039800
FOR I~1 STEP 1 UNTIL OONVL DO 00039900
BEGIN 00040000
TEMP1~TEMP0+S; 00040100
IF TEMP1 =0 THEN XX~I; 00040200
OOOQ[NSBVP1|I,-2]~TEMP0~TEMP1; 00040300
END; 00040400
IF YY=0 THEN 00040500
BEGIN 00040600
IF YMIN=0 THEN V[6]~0 00040700
ELSE 00040800
IF YMAX=-YMIN THEN V[6]~-SIGN(V[6])|0.5|OONHL|NSBHP1 00040900
ELSE 00041000
V[6]~-YMIN/DY 00041100
END 00041200
ELSE 00041300
V[6]~-SIGN(V[6])| YY|NSBHP1; 00041400
IF XX=0 THEN 00041500
BEGIN 00041600
IF XMAX=-XMIN THEN V[5]~-SIGN(V[5])|0.5|OONVL|NSBVP1 00041700
ELSE 00041800
IF XMIN=0 THEN V[5]~0 00041900
ELSE 00042000
V[5]~-XMIN/DX 00042100
END ELSE 00042200
V[5]~-SIGN(V[5])| XX|NSBVP1; 00042300
FOR I~0 STEP 1 UNTIL NV DO OOOQ[I,V[6]]~"-"; % BOB FARDO 00042400
L1: END VPLOT2; 00042500
PROCEDURE VPLOT3(SYM,X,Y); 00042600
ALPHA SYM; REAL X,Y; 00042700
BEGIN 00042800
LABEL ERROR; 00042900
FORMAT NOTE1("FOLLOWING POINT CAN NOT BE PLOTTED ON GRAPH ", 00043000
"BELOW:(",E12.4,",",E12.4,")"); 00043100
DEFINE V=VOICIUNBONNOM#, 00043200
DX=V[0]#, 00043300
DY=V[1]#, 00043400
XX=V[5]#, 00043500
YY=V[6]#, 00043600
XMIN=V[7]#, 00043700
XMAX=V[8]#, 00043800
YMIN=V[13]#, 00043900
YMAX=V[14]#, 00044000
FLAG=V[2]#; 00044100
IF FLAG=1.0 THEN GO ERROR; 00044200
IF X<XMIN OR X>XMAX OR Y<YMIN OR Y>YMAX THEN 00044300
BEGIN 00044400
WRITE(PRINTER,NOTE1,X,Y); 00044500
GO ERROR; 00044600
END; 00044700
OOOQ[XX+X/DX,YY+Y/DY]~SYM; 00044800
ERROR: END VPLOT3; 00044900
PROCEDURE VPLOT4(TITLEY,NUMY,NUMSP,HEADX); 00045000
ALPHA ARRAY TITLEY[*]; INTEGER NUMY,NUMSP; FORMAT HEADX; 00045100
BEGIN 00045200
LABEL ERROR,L1,L2,L3,L4; 00045300
INTEGER TEMP,I,J; 00045400
ALPHA TEMP1; 00045500
FORMAT NOTE("VPLOT2 PARAMETER LIST HAS ONE MIN VALUE } MAX", 00045600
"VALUE, NO PLOT CAN BE MADE...SORRY..."), 00045700
FSCALE("@",I3), 00045800
FMTA(120A1); 00045900
SWITCH FORMAT FMTX ~ (X3,E8.1),(X4,E8.1),(X5,E8.1),(X6,E8.1),(X7,E8.1), 00046000
(X8,E8.1),(X9,E8.1),(X10,E8.1),(X11,E8.1),(X12,E8.1),(X13,E8.1), 00046100
(X14,E8.1),(X15,E8.1),(X16,E8.1),(X17,E8.1),(X18,E8.1),(X19,E8.1), 00046200
(X20,E8.1),(X21,E8.1),(X22,E8.1),(X23,E8.1),(X24,E8.1),(X25,E8.1), 00046300
(X26,E8.1),(X27,E8.1),(X28,E8.1),(X29,E8.1),(X30,E8.1),(X31,E8.1), 00046400
(X32,E8.1),(X33,E8.1),(X34,E8.1),(X35,E8.1),(X36,E8.1),(X37,E8.1), 00046500
(X38,E8.1),(X39,E8.1), 00046600
(X40,E8.1),(X41,E8.1),(X42,E8.1),(X43,E8.1),(X44,E8.1),(X45,E8.1), 00046700
(X46,E8.1),(X47,E8.1),(X48,E8.1),(X49,E8.1),(X50,E8.1),(X51,E8.1), 00046800
(X52,E8.1),(X53,E8.1),(X54,E8.1),(X55,E8.1),(X56,E8.1),(X57,E8.1), 00046900
(X58,E8.1),(X59,E8.1),(X60,E8.1),(X61,E8.1),(X62,E8.1),(X63,E8.1), 00047000
(X64,E8.1),(X65,E8.1),(X66,E8.1),(X67,E8.1),(X68,E8.1),(X69,E8.1), 00047100
(X70,E8.1),(X71,E8.1),(X72,E8.1),(X73,E8.1),(X74,E8.1),(X75,E8.1), 00047200
(X76,E8.1),(X77,E8.1),(X78,E8.1),(X79,E8.1),(X80,E8.1),(X81,E8.1), 00047300
(X82,E8.1),(X83,E8.1),(X84,E8.1),(X85,E8.1),(X86,E8.1),(X87,E8.1), 00047400
(X88,E8.1),(X89,E8.1),(X90,E8.1),(X91,E8.1),(X92,E8.1),(X93,E8.1), 00047500
(X94,E8.1),(X95,E8.1),(X96,E8.1),(X97,E8.1),(X98,E8.1),(X99,E8.1), 00047600
(X100,E8.1),(X101,E8.1),(X102,E8.1),(X103,E8.1),(X104,E8.1),(X105,E8.1),00047700
(X106,E8.1),(X107,E8.1),(X108,E8.1),(X109,E8.1),(X110,E8.1),(X111,E8.1);00047800
SWITCH FORMAT FMT~(A1,F 6.2,X1,112A1),(A1,F6.1,X1,112A1), 00047900
(A1,F6.0,X1,112A1),(A1,F6.3,X1,112A1); 00048000
DEFINE V=VOICIUNBONNOM#, LOG=0.43429448|LN#, 00048100
FLAG=V[2]#, 00048200
OONVL=V[4]#, 00048300
NH2=V[3]#, 00048400
SCALEX=OOOQ[-6,-2]#, 00048500
SCALEY=OOOQ[-6,NH2+2]#, 00048600
NV=V[9]#; 00048700
WRITE(PRINTER[PAGE]); 00048800
IF FLAG=1 THEN 00048900
BEGIN 00049000
WRITE(PRINTER,NOTE); 00049100
GO ERROR; 00049200
END; 00049300
TEMP~NH2-NUMSP; 00049400
J~0; 00049500
FOR I~1 STEP 1 UNTIL NUMY DO 00049600
BEGIN 00049700
TEMP~TEMP-J; 00049800
TEMP1~TITLEY[I]; 00049900
OOOQ[-8,TEMP]~TEMP1.[12:6]; 00050000
OOOQ[-8,TEMP-1]~TEMP1.[18:6]; 00050100
OOOQ[-8,TEMP-2]~TEMP1.[24:6]; 00050200
OOOQ[-8,TEMP-3]~TEMP1.[30:6]; 00050300
OOOQ[-8,TEMP-4]~TEMP1.[36:6]; 00050400
OOOQ[-8,TEMP-5]~TEMP1.[42:6]; 00050500
J~J+6; 00050600
END; 00050700
WRITE(PRINTER[DBL],FSCALE,SCALEY); 00050800
FOR TEMP~NH2 STEP -1 UNTIL 0 DO 00050900
BEGIN 00051000
IF OOOQ[-5,TEMP]=1 THEN 00051100
BEGIN 00051200
IF OOOQ[-6,TEMP]=0 THEN BEGIN I~1;GO L3 END; 00051300
IF LOG(ABS(OOOQ[-6,TEMP]))<0 THEN BEGIN I ~3; GO TO L3; END; 00051400
I~ENTIER(LOG(ABS(OOOQ[-6,TEMP]))); 00051500
IF I>2 THEN I~2; 00051600
L3: WRITE(PRINTER,FMT[I],OOOQ[-8,TEMP],OOOQ[-6,TEMP], 00051700
FOR J~0 STEP 1 UNTIL NV DO OOOQ[J,TEMP]); 00051800
GO L2; 00051900
END; 00052000
WRITE(PRINTER,FMTA,FOR J~-8 STEP 1 UNTIL NV DO 00052100
OOOQ[J,TEMP]); 00052200
L2: END; 00052300
COMMENT FOLLOWING STATEMENT OMITTED WHILE E FORMAT USED, 00052400
REPLACED WHEN R FORMAT IMPLEMENTED 00052500
WRITE(PRINTER[NO],FSCALE,SCALEX); 00052600
FOR TEMP~0 STEP 1 UNTIL NV DO 00052700
BEGIN 00052800
IF OOOQ[TEMP,-2]=" " THEN GO L1; 00052900
L4: WRITE(PRINTER[NO],FMTX[TEMP],OOOQ[TEMP,-2]); 00053000
L1: END; 00053100
WRITE(PRINTER[DBL]); WRITE(PRINTER,HEADX); 00053200
ERROR: WRITE(PRINTER[PAGE]); END VPLOT4; 00053300
REAL PROCEDURE ARCSIN(X); VALUE X; REAL X; 00053400
BEGIN ARCSIN~IF ABS(X)=1 THEN SIGN(X)|1.57079633 00053500
ELSE ARCTAN(X/SQRT(1-X|X)); END; 00053600
REAL PROCEDURE COSH(X); VALUE X; REAL X; 00053700
BEGIN REAL T; COSH~.5|((T~EXP(X))+1/T); END; 00053800
REAL PROCEDURE SINH(X); VALUE X; REAL X; 00053900
BEGIN REAL T; SINH~.5|((T~EXP(X))-1/T); END; 00054000
COMMENT MAIN PROGRAM BEGINS HERE ; 00054100
INTEGER M,N,Q,H,HH,OPT1,OPT2,OPT3,OPT4,OPT5,OPT6,OPT7,OPT8,OPT9,OPT10, 00054200
OPT11,OPT12,OPT13,I,NOP,ORDER,NOFDEL,NORD,IND,NOLAG,REPSS; 00054300
REAL LEV1,E1,LEV2,E2; 00054400
ARRAY POW[0:50]; 00054500
INTEGER ARRAY ORD,DEL,T[0:50]; 00054600
LABEL START1,START2,FINISH; 00054700
LIST IN1(M,N,Q,H,OPT3,OPT5,OPT4,OPT6,OPT1,OPT7,OPT2,OPT9,OPT8, 00054800
OPT10,OPT11,OPT12,OPT13,REPSS,NOLAG), 00054900
IN2(FOR I LCTR Q DO T[I]), 00055000
IN3(NOP,FOR I LCTR NOP DO POW[I]), 00055100
IN4(ORDER), 00055200
IN5(NOFDEL,FOR I LCTR NOFDEL DO DEL[I]), 00055300
IN6(LEV1,E1,LEV2,E2), 00055400
IN7(NORD,FOR I LCTR NORD DO ORD[I]); 00055500
FORMAT NAME(" 00055600
"); 00055700
START1: BEGIN 00055800
INTEGER DUMMY; 00055900
READ(READER,NAME)[FINISH]; 00056000
READ(READER,/,IN1); 00056100
IF OPT3=1 THEN READ(READER,/,IN2); 00056200
IF OPT5=1 THEN READ(READER,/,IN3); 00056300
IF OPT4=1 THEN READ(READER,/,IN4); 00056400
IF OPT6=1 THEN READ(READER,/,IN5); 00056500
IF OPT11=1 THEN READ(READER,/,IN6); 00056600
IF OPT12=1 THEN READ(READER,/,IN7); 00056700
IF Q > H THEN HH~Q+1 ELSE HH~H+1; 00056800
IF OPT4=1 THEN BEGIN 00056900
IF ORDER=2 THEN HH~(N|(N+3))/2 +Q-N+1 ELSE 00057000
IF ORDER=3 THEN HH~(N|((N+1)|(N+5)+6))/6 + Q-N+1 00057100
ELSE 00057200
IF ORDER=4 THEN 00057300
HH~(3+(3+(2/3+(N-3)/24)|(N-2))|(N-1))|N + Q + 1 00057400
ELSE 00057500
IF ORDER=5 THEN 00057600
HH~(4+(5+(5/3+(5/24+(N-4)/120)|(N-3))|(N-2))|(N-1))|N+Q+1; 00057700
END; IF H>HH THEN HH ~ H ; 00057800
IND~0; 00057900
IF N=1 THEN IND~1; 00058000
IF OPT3=1 THEN IF H-Q+N=1 THEN IND~1; 00058100
IF OPT1=1 THEN IF OPT3=1 THEN IF H-Q+N=2 THEN IND~1; 00058200
END; 00058300
START2: BEGIN 00058400
INTEGER FLAG2,FLAG3,NOFY,ORIGN,ORIGQ,NY,JJ,TR,KK,TEMP,LL,MM,IJ,J,K, 00058500
FLAG4,NQ,NEWN,NEWQ,FLAG5,L,NVEC,FLAG1,ONE,TRA,KD,A1,A2,C,JK, 00058600
FLAG6,KODE,NXXN; 00058700
ARRAY NX[0:M,0:HH],AX[0:HH,0:HH],NB[0:HH,0:Q-N],MMIN[0:HH,0:2], 00058800
XVAL,YV,PR,TY,TPR,XX,W[0:M+1],XTY,B,MN,VAR[0:HH],RESVAR[0:Q-N], 00058900
Y[0:M,0:Q-N],X1[0:HH],X[0:M,0:HH],RX[0:HH,0:M]; 00059000
ARRAY ANX[0:HH,0:HH],DEV[0:M+1],YHEAD[0:2],YMEAN,YVAR[0:Q-N]; 00059100
INTEGER ARRAY OBSNO,NEGA[0:M+1]; 00059200
LABEL POLY,TRANS,DELETION,AGAIN,ORDERS,FINAL1,FINAL2,FINAL3,DONE, 00059300
POLY1; 00059400
ALPHA STAR; 00059500
REAL R,S,S1,DEVSS,TOTALSS,YBAR,REGSS,RSS,S2,S3,XBAR; 00059600
REAL DEVMIN,DEVMAX,YMIN,YMAX,S4,S5,S6; 00059700
LIST OUT1(FOR I~2 STEP 1 UNTIL N DO [J~I-1,B[I],SQRT(RSS|AX[I,I]), 00059800
MMIN[J,2],MMIN[J,1],MN[J],VAR[J]]), 00059900
OUT2(FOR I LCTR N DO [I,B[I],SQRT(RSS|AX[I,I]),MMIN[I,2], 00060000
MMIN[I,1],MN[I],VAR[I]]), 00060100
OUT3(N,REGSS,REGSS/N,(REGSS|(M-N))/(N|DEVSS)), 00060200
OUT4(N-1,REGSS,REGSS/(N-1),(REGSS|(M-N))/((N-1)|DEVSS)), 00060300
IN4B(NVEC,FOR I LCTR NVEC DO FOR J LCTR H DO NX[I,J]), 00060400
IN4C(NVEC,FOR I LCTR NVEC DO FOR J LCTR H DO X[I,J]), 00060500
OUT5(M-N,DEVSS,DEVSS/(M-N)), 00060600
OUT6(RSS,SQRT(RSS),REGSS/TOTALSS), 00060700
OUT7(FOR I LCTR M DO [I,R~YV[I],S~PR[I],R-S,TPR[I]]), 00060800
OUT8(FOR I LCTR N DO [I,(R~B[I])/(S~(SQRT(RSS|AX[I,I]))), 00060900
R-E1|S,R+E1|S, R-E2|S,R+E2|S,R|(MMIN[I,1]-MMIN[I,2])]), 00061000
OUT8A(FOR I~1 DO [I,(R~B[I])/(S~(SQRT(RSS|AX[I,I]))), 00061100
R-E1|S,R+E1|S,R-E2|S,R+E2|S]), 00061200
OUT8B(FOR I~2 STEP 1 UNTIL N DO [I,(R~B[I])/(S~(SQRT(RSS|AX[I,I]))),00061300
R-E1|S,R+E1|S,R-E2|S,R+E2|S,R|(MMIN[I-1,1]-MMIN[I-1,2])]), 00061400
OUT9(FOR I LCTR N DO [I,ONE,S~(R~B[I])|R/AX[I,I],S,S/RSS,R]), 00061500
OUT10(FOR I~2 STEP 1 UNTIL N DO [I-1,ONE,S~(R~B[I])|R/AX[I,I], 00061600
S,S/RSS,R]), 00061700
OUT10A(FOR I LCTR M DO FOR J LCTR H DO X[I,J]), 00061800
OUT10B(FOR I LCTR M DO FOR J LCTR H DO NX[I,J]), 00061900
OUT11(FOR J LCTR M DO [OBSNO[J],TY[J],TPR[J], DEV[J] ,XX[J]]); 00062000
FORMAT XHEAD(X20,"INDEPENDENT VARIABLE X "), 00062100
LAGFMT("TABLE OF LAG CORRELATIONS OF RESIDUALS"//, 00062200
X25,"ORDER",X14,"CORRELATION"//), 00062300
LAGFMT1(I30,X10,E15.8/), 00062400
LAGFMT2("TABLE OF LAG CORRELATIONS OF THE ABOVE ORDERED", 00062500
" RESIDUALS"//,X25,"ORDER",X14,"CORRELATION"//); 00062600
FORMAT RESFMT("FREQUENCY TABLE OF RESIDUALS"//,X10, 00062700
"INTERVAL",X24,"FREQUENCY"/), 00062800
RESFMT1(F11.5," - ",F11.5,I18/), 00062900
RESFMT2("TABLE OF THE ACTUAL, EXPECTED, AND TOTAL NUMBER OF", 00063000
" RUNS OF POS. AND NEG. SIGNS OF THE RESIDUALS"//,X4, 00063100
"[NUMBER OF RUNS OF LENGTH K ]",X19, 00063200
"[NUMBER OF RUNS OF LENGTH K OR MORE ]"/,X4, 00063300
"[POSITIVE ] [NEGATIVE ] [TOTAL ]",X19, 00063400
"[POSITIVE ] [NEGATIVE ] [TOTAL ]"/, 00063500
" K OBS. EXP. OBS. EXP. OBS. EXP.",X18, 00063600
"OBS. EXP. OBS. EXP. OBS. EXP."//), 00063700
RESFMT3(I2,I5,F7.1,I8,F7.1,I8,F7.1,I22,F7.1,I8,F7.1,I8,F7.1//), 00063800
RESFMT4(/"P[OF",I4," OR FEWER RUNS] = .05 (APPROX.)",// 00063900
"P[OF AT LEAST ONE RUN OF LENGTH",I4," OR MORE] = .05(APPROX.)",00064000
//); 00064100
FORMAT F2(//"NO. OF DEPENDENT VARIABLES=",I3,//, 00064200
"NO. OF INDEPENDENT VARIABLES=",I3,//, 00064300
"NO. OF OBSERVATIONS=",I3), 00064400
F3("THE INPUT VARIABLES",//), 00064500
F4("AFTER TRANSFORMATION AND/OR DELETION"/, 00064600
"THE NO. OF DEPENDENT VARIABLES IS",I3,/, 00064700
"THE NO. OF INDEPENDENT VARIABLES IS",I3,/), 00064800
F5(/"THE DEPENDENT AND INDEPENDENT VARIABLES"/, 00064900
"AFTER TRANSFORMATION AND/OR DELETION"/), 00065000
F6("THE NORMAL MATRIX"//), 00065100
F7("THE CORRELATION MATRIX OF THE INDEPENDENT VARIABLES"//), 00065200
F7A(//"STOPPED BECAUSE THE CORRELATION MATRIX IS SINGULAR"), 00065300
F8("THE INVERSE MATRIX"//), 00065400
F8A1(//"THE DETERMINANT OF THE NORMAL MATRIX IS",E20.8//, 00065500
"THE TRACE OF THE INVERSE MATRIX IS",E20.8//), 00065600
F8A(//"PRODUCT OF INVERSE AND NORMAL MATRICES"//), 00065700
F8B(//"THE ELEMENTS OF THE INVERSE MATRIX ARE IN ERROR", 00065800
" BY LESS THAN",E20.8//), 00065900
F11(X45,"DEPENDENT VARIABLE NO.",I3,//"VAR. NO.",X9, 00066000
"COEFFICIENT",X7,"STANDARD ERROR",X4,"MIN. VALUE",X8, 00066100
"MAX. VALUE",X9,"MEAN",X13,"VARIANCE"/,X35,"OF COEFF."/), 00066200
F11A("DEP. VAR.",X39,3E18.8,E17.8/), 00066300
F12(/"CON. TERM",X3,2E18.8,//), 00066400
F13(I8,X4,5E18.8,E17.8,//), 00066500
F14(X25,"ANALYSIS OF VARIANCE TABLE"//,X2,"SOURCE",X21, 00066600
"D.F.",X15,"SUM OF",X9,"MEAN",X12,"F-RATIO"/,X47,"SQUARES", 00066700
X8,"SQUARES"/ ), 00066800
F15("REGRESSION",X19,I3,X8,3E17.8,/ ), 00066900
F16("DEV. FROM REGRESSION",X9,I3,X8,2E17.8,/ ), 00067000
F16A("DEV. OF AVERAGES",X13,I3,X8,3E17.8/ ), 00067100
F16B("REPLICATE MEASUREMENTS",X7,I3,X8,2E17.8/ ), 00067200
F16C(/X8,"X[",I2,"]",X9,"D.F.",X15,"S.S.",X16,"M.S."/), 00067300
F16D(E15.8,I11,2E21.8/), 00067400
F16E(/"CHI SQ. (",I4," D.F.) = ",E15.8,/ "THE ABOVE STATISTIC", 00067500
" IS BASED ON THOSE REPLICATED GROUPS REMAINING AFTER"/, 00067600
"EXCLUSION OF GROUPS (AND THEIR ASSOCIATED D. OF F. )", 00067700
" HAVING ZERO VARIANCES."/), 00067800
F17("TOTAL",X24,I3,X8,E17.8,/ ), 00067900
F18("THE RESIDUAL VARIANCE IS",E15.8,//, 00068000
"THE SQUARE ROOT OF THE RESIDUAL VARIANCE IS",E15.8,// , 00068100
"THE COEFFICIENT OF DETERMINATION ,R SQUARED, IS",E15.8), 00068200
F19(X35,"TABLE OF RESIDUALS"//,X5,"OBSERVATION NO.",X9, 00068300
"Y OBSERVED",X11,"Y FITTED",X12,"DEVIATION", 00068400
X10,"VARIANCE(Y)"//), 00068500
F20(I20,4E20.8), 00068600
F21("THE VARIANCE - COVARIANCE MATRIX OF THE COEFFICIENTS"/), 00068700
F22("THE CORRELATION MATRIX OF THE COEFFICIENTS"/), 00068800
F23("VALUES OF T AND CONFIDENCE LIMITS FOR THE COEFFICIENTS"//, 00068900
"COEFF.",X12,"T-VALUE",X7,"LOWER",F5.1,X9,"UPPER",F5.1,X9, 00069000
"LOWER",F5.1,X9,"UPPER",F5.1,X8,"COEFF. TIMES"/, 00069100
" NO.",X26,"PER CENT LIMIT",X5,"PER CENT LIMIT",X5, 00069200
"PER CENT LIMIT",X5,"PER CENT LIMIT",X6,"(XMAX-XMIN)"//), 00069300
F24(I3,X3,5E19.8,E18.8//), 00069400
F24A(I3,X3,5E19.8//), 00069500
F24B(X88,"YMAX-YMIN=",X3,E18.8//), 00069600
F25(X31,"BREAKDOWN OF THE SUM OF SQUARES FOR EACH VARIABLE"/, 00069700
X35,"ADJUSTED FOR ALL OTHERS"//,X22,"D.F.",X10,"S.S.",X15, 00069800
"M.S.",X14,"F-RATIO",X10,"COEFFICIENT"//), 00069900
F26("VAR. NO.",I3,I14,2E18.8,2E21.8/), 00070000
F27("DEV. FROM REGRESSION",I5,2E18.8), 00070100
F28(X30,"DEPENDENT VARIABLE NO.",I3,//,X39,"Y-FITTED",X12, 00070200
"VAR(Y)"//), 00070300
F32(X35,"TABLE OF RESIDUALS"//,X25, 00070400
"ORDERING WITH RESPECT TO TERM NUMBER",I3,//), 00070500
F33("OBSERVATION NO.",X9,"Y-OBSERVED",X11,"Y-FITTED",X12, 00070600
"DEVIATION",X9,"ORDERED"/,X83,"TERM NO.",I3,//), 00070700
F34(I15,4E20.8), 00070800
F35("THE NEW SET OF POINTS AT WHICH EST(Y) AND VAR(Y) ARE",X1, 00070900
"WANTED"/,"DEPENDENT AND INDEPENDENT VARIABLES"/), 00071000
F36(X45,"DEPENDENT VARIABLE NO.",I3,//,X30,"Y-OBSERVED",X10, 00071100
"Y-FITTED",X12,"DEVIATION",X14,"VAR(Y)",///), 00071200
F37("AT NEW POINT NO.",I4,X1,4E20.8,//), 00071300
F38("SUM OF SQUARED DEVIATIONS IS",X2,E15.8), 00071400
F39(/"THE INDEPENDENT VARIABLES OF THE POLYNOMIAL"/); 00071500
COMMENT INPUT DATA; 00071600
IF OPT4=0 AND OPT3 =0 THEN READ(READER,/,OUT10B) 00071700
ELSE READ(READER,/,OUT10A); 00071800
FOR I LCTR M DO W[I]~1; 00071900
IF OPT1=1 THEN FOR I LCTR M DO W[I]~ X[I,H]; 00072000
COMMENT PRINT-OUT HEADING AND DATA; 00072100
WRITE(PRINT[PAGE]); WRITE(PRINT,NAME); 00072200
WRITE(PRINT,F2,Q-N,N,M); 00072300
WRITE(PRINT[PAGE]); WRITE(PRINT,F3); 00072400
IF OPT4=0 AND OPT3=0 THEN MATRIX(NX,M,H,1.0) ELSE MATRIX(X,M,H,1.0); 00072500
FLAG2~FLAG3~0; NOFY~1; ORIGN~N; ORIGQ~Q; 00072600
KODE~0; 00072700
POLY: IF OPT3=1 THEN GO TO TRANS; 00072800
POLY1: 00072900
IF OPT4=1 THEN 00073000
BEGIN 00073100
FLAG2~1; 00073200
COMMENT POLYNOMIAL TRANSFORMATION WANTED; 00073300
IJ~Q-N+1; 00073400
NY~Q-N; 00073500
FOR I LCTR M DO BEGIN MOVE(N,X[I,IJ],NX[I,2]); NX[I,1]~1; END; 00073600
N~N+1; Q~Q+1; 00073700
POLYNOMIAL(ORDER,M,N,NY,NX,NQ,FLAG4); 00073800
IF FLAG4=1 THEN GO TO DONE; 00073900
N~NQ; Q~N+NY; 00074000
IF KODE=0 THEN 00074100
BEGIN NEWN~0; NEWQ~N; KODE~1; 00074200
IF OPT6=1 THEN FOR I LCTR NOFDEL DO BEGIN IF J~DEL[I]>NY 00074300
THEN DEL[I]~J-NY ELSE NEWN~NEWN+1; END; 00074400
NXXN~NEWN; 00074500
END 00074600
ELSE BEGIN NEWN~NXXN; NEWQ~N; END; 00074700
GO TO DELETION; 00074800
END POLY; 00074900
TRANS: 00075000
IF OPT3=1 THEN 00075100
BEGIN 00075200
COMMENT TRANSFORMATION OF VARIABLES; 00075300
LABEL L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,L17,L18, 00075400
L19,L20,LOOP,AROUND; 00075500
SWITCH TRA~L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,L17, 00075600
L18,L19,L20; FLAG2~1; JJ~0; 00075700
FOR J LCTR Q DO 00075800
BEGIN 00075900
IF T[J] < 10000 THEN BEGIN TR~T[J] DIV 100; KK~T[J]-100|TR; 00076000
GO AROUND; END; 00076100
TR~T[J] DIV 10000; TEMP~T[J]-10000 | TR; 00076200
LL~TEMP DIV 100; MM~ TEMP-100 | LL; 00076300
AROUND: IF TR=2 THEN JJ~JJ+1; FLAG1~1; 00076400
FOR I LCTR M DO 00076500
BEGIN 00076600
GO TO TRA[TR]; 00076700
L1: NX[I,J]~X[I,KK]; GO LOOP; 00076800
L2: NX[I,J]~X[I,KK]*POW[JJ]; GO LOOP; 00076900
L3: NX[I,J]~EXP(X[I,KK]); GO LOOP; 00077000
L4: NX[I,J]~EXP(-X[I,KK]); GO LOOP; 00077100
L5: IF FLAG1=1 THEN BEGIN S~0; FOR K LCTR M DO S~S+X[K,KK]; 00077200
XBAR~S/M; FLAG1~0; END; 00077300
NX[I,J]~X[I,KK] - XBAR; GO LOOP; 00077400
L6: NX[I,J]~SIN(X[I,KK]); GO LOOP; 00077500
L7: NX[I,J]~COS(X[I,KK]); GO LOOP; 00077600
L8: NX[I,J]~LN(X[I,KK]); GO LOOP; 00077700
L9: NX[I,J]~ARCSIN(X[I,KK]); GO LOOP; 00077800
L10:NX[I,J]~SINH(X[I,KK]); GO LOOP; 00077900
L11:NX[I,J]~COSH(X[I,KK]); GO LOOP; 00078000
L12:NX[I,J]~ NX[I,LL] | NX[I,MM]; GO LOOP; 00078100
L13:NX[I,J]~X[I,LL] | X[I,MM]; GO LOOP; 00078200
L14:NX[I,J]~X[I,LL] | NX[I,MM]; GO LOOP; 00078300
L15:COMMENT TRANSFORMATION CARD CAN BE INSERTED HERE ; 00078400
GO LOOP; 00078500
L16:COMMENT TRANSFORMATION CARD CAN BE INSERTED HERE ; 00078600
GO LOOP; 00078700
L17:COMMENT TRANSFORMATION CARD CAN BE INSERTED HERE ; 00078800
GO LOOP; 00078900
L18:COMMENT TRANSFORMATION CARD CAN BE INSERTED HERE ; 00079000
GO LOOP; 00079100
L19:COMMENT TRANSFORMATION CARD CAN BE INSERTED HERE ; 00079200
GO LOOP; 00079300
L20:COMMENT TRANSFORMATION CARD CAN BE INSERTED HERE ; 00079400
GO LOOP; 00079500
LOOP: END I; 00079600
END J; 00079700
IF OPT4=1 THEN BEGIN FOR I LCTR M DO MOVE(Q,NX[I,1],X[I,1]); 00079800
GO TO POLY1; END; 00079900
END TRANS; 00080000
NEWN~0; NEWQ~Q; 00080100
IF FLAG3=1 THEN GO TO FINAL1; 00080200
DELETION: 00080300
BEGIN REAL XXXX; 00080400
LABEL OVER4; 00080500
ARRAY X2[0:HH,0:HH]; 00080600
IF OPT6=1 THEN 00080700
BEGIN 00080800
COMMENT DELETION OF VARIABLES; 00080900
DELETE(M,N,Q,NOFDEL,DEL,X,NX,NEWN,NEWQ); 00081000
N~NEWN; Q~NEWQ; FLAG2~1; 00081100
END; IF FLAG2=1 THEN BEGIN 00081200
WRITE(PRINT[PAGE]); WRITE(PRINT,F4,Q-N,N); END; 00081300
IF OPT7=1 THEN 00081400
BEGIN 00081500
COMMENT PRINT-OUT OF VARIABLES AFTER TRANSFORMATION AND/OR DELETION.; 00081600
IF OPT4=1 THEN BEGIN WRITE(PRINT,F39); MATRIX(NX,M,N,1.0); END 00081700
ELSE BEGIN WRITE(PRINT,F5); MATRIX(NX,M,Q,1.0); END; 00081800
END; 00081900
IF FLAG3=1 THEN GO TO FINAL2; 00082000
IJ~Q-N; 00082100
IF OPT4=1 THEN FOR I LCTR M DO MOVE(IJ,X[I,1],Y[I,1]) 00082200
ELSE 00082300
BEGIN FOR I LCTR M DO MOVE(IJ,NX[I,1],Y[I,1]); 00082400
IF OPT2=1 THEN 00082500
BEGIN FOR I LCTR M DO BEGIN NX[I,1]~1; 00082600
MOVE(N,NX[I,IJ+1],NX[I,2]); END; 00082700
N~N+1; Q~Q+1; 00082800
END 00082900
ELSE FOR I LCTR M DO MOVE(N,NX[I,IJ+1],NX[I,1]); 00083000
END; 00083100
IJ~OPT2+1; HUNTER(M,N,IJ,NX,MMIN); 00083200
COMMENT THE MAX. AND MIN. VALUES OF X ARE IN MMIN.; 00083300
FOR I LCTR M DO FOR J LCTR N DO RX[J,I]~NX[I,J]; 00083400
COMMENT DEVELOP X(T)WX MATRIX IN AX.; 00083500
FOR K LCTR N DO 00083600
BEGIN S~0; 00083700
FOR I~K STEP 1 UNTIL N DO 00083800
BEGIN R~0; 00083900
FOR J LCTR M DO 00084000
BEGIN 00084100
R~R+RX[K,J] | (S1~RX[I,J]) | (S2~W[J]); 00084200
S~ S+S1|S2; 00084300
END; 00084400
AX[I,K]~AX[K,I]~X2[I,K]~X2[K,I]~R; 00084500
MN[I]~ S; 00084600
END; 00084700
END; 00084800
COMMENT CAL. MEANS AND VARIANCES OF DEPENDENT VARIABLES.; 00084900
IJ~Q-N; 00085000
FOR I LCTR IJ DO 00085100
BEGIN S~S1~S3~0; 00085200
FOR J LCTR M DO 00085300
BEGIN 00085400
S~ S+(R~Y[J,I])|(S2~W[J]); S1~ S1+R|R|S2; S3~S3+S2; 00085500
END; 00085600
YMEAN[I]~S/S3; YVAR[I]~(S1-S|S/S3)/(M-1); 00085700
END; 00085800
COMMENT CAL. MEANS AND VARIANCES OF INDEPENDENT VARIABLES.; 00085900
J~OPT2+1; 00086000
FOR I~J STEP 1 UNTIL N DO 00086100
BEGIN MN[K~(I-J+1)]~ R~ MN[I]/S3; VAR[K]~(AX[I,I]-S3|R|R)/(M-1); END; 00086200
IF OPT9=1 THEN 00086300
BEGIN 00086400
COMMENT PRINT-OUT OF NORMAL MATRIX.; 00086500
WRITE(PRINT[PAGE]); WRITE(PRINT,F6); MATRIX(AX,N,N,1.0); 00086600
END; 00086700
FOR I LCTR N DO X1[I]~SQRT(AX[I,I]); 00086800
FOR I LCTR N DO FOR J~ I STEP 1 UNTIL N DO 00086900
ANX[J,I]~ ANX[I,J]~ AX[I,J]/(X1[I] | X1[J]); 00087000
IF OPT8=1 THEN BEGIN 00087100
COMMENT COMPUTE AND PRINT - OUT THE CORRELATION MATRIX; 00087200
I~N-OPT2; 00087300
J~0; WHILE J~J+1{I DO 00087400
BEGIN 00087500
A1~J+OPT2; 00087600
K~J-1; WHILE K~K+1{I DO 00087700
BEGIN 00087800
A2~K+OPT2; 00087900
X[J,K]~X[K,J]~(AX[A1,A2]-MN[J]|MN[K]|M) 00088000
/((M-1)|SQRT(VAR[J]|VAR[K])); 00088100
END; 00088200
END; 00088300
WRITE(PRINT[PAGE]); WRITE(PRINT,F7); MATRIX(X,I,I,1.0); 00088400
END OPT8; 00088500
COMMENT CORRELATION MATRIX ANX INVERTED ; 00088600
INVERTMATRIX(ANX,N,S,ANX); 00088700
IF S < 1@-30 THEN BEGIN WRITE(PRINT,F7A); GO TO DONE; END; 00088800
COMMENT INVERSE OF NORMAL MATRIX COMPUTED IN AX ; 00088900
FOR I LCTR N DO FOR J LCTR N DO AX[I,J]~ANX[I,J]/(X1[I]|X1[J]); 00089000
IF OPT10=1 THEN 00089100
BEGIN 00089200
MATRIXMPY(ANX,X2,AX,N,N,N); 00089300
WRITE(PRINT[PAGE]); 00089400
WRITE(PRINT,F8); MATRIX(AX,N,N,1.0); 00089500
WRITE(PRINT,F8A); MATRIX(ANX,N,N,1.0); 00089600
S~S4~0; 00089700
FOR I LCTR N DO FOR J LCTR N DO 00089800
BEGIN ANX[I,J]~ S1~ IF I=J THEN 1-ANX[I,J] ELSE -ANX[I,J]; 00089900
S~S+S1*2; 00090000
END; 00090100
S1~SQRT(S); 00090200
S5~S; 00090300
IF S>1 THEN 00090400
BEGIN 00090500
MATRIXMPY(X2,ANX,ANX,N,N,N); 00090600
S~0; FOR I LCTR N DO FOR J LCTR N DO S~S+X2[I,J]*2; 00090700
IF S2~SQRT(S) > S1 THEN BEGIN S4~OPT10~1; 00090800
GO TO OVER4; END; S1~S2; 00090900
END; 00091000
COMMENT CAL. NORM OF INVERSE MATRIX; 00091100
S~0; FOR I LCTR N DO FOR J LCTR N DO S~S+AX[I,J]*2; 00091200
S2~SQRT(S); 00091300
S4~S2|S5|(SQRT(N)-1+1/(1-S1)); 00091400
OVER4: IF S1!0 THEN WRITE(PRINT,F8B,S4/S1); 00091500
END; 00091600
END DUMMYBLOCK; 00091700
AGAIN: 00091800
FOR I LCTR M DO YV[I]~Y[I,NOFY]; 00091900
COMMENT CALCULATE MIN AND MAX OF THE DEPENDENT VAR.; 00092000
YMIN~YMAX~YV[1]; 00092100
FOR J~2 STEP 1 UNTIL M DO BEGIN S~YV[J]; 00092200
IF YMAX<S THEN YMAX~S; IF YMIN>S THEN YMIN~S; END; 00092300
COMMENT DEVELOP X(T)WY MATRIX; 00092400
FOR I LCTR N DO BEGIN R~0; FOR J LCTR M DO R~R+RX[I,J]|YV[J]|W[J]; 00092500
XTY[I]~R; END; 00092600
COMMENT CAL. PARAMETERS IN B.; 00092700
MATMPY(1,B,AX,XTY,N,N); 00092800
COMMENT CAL. PREDICTIONS IN PR.; 00092900
MATMPY(1,PR,NX,B,M,N); 00093000
COMMENT DEVELOP THE ANALYSIS OF VARIANCE TABLE; 00093100
S~S1~0; 00093200
FOR I LCTR M DO BEGIN S~S+(YV[I]-PR[I])|(YV[I]-PR[I]); 00093300
S1~S1+YV[I]; END; DEVSS~S; TOTALSS~0; YBAR~S1/M; 00093400
IF OPT2=1 THEN BEGIN FOR I LCTR M DO TOTALSS~TOTALSS+(YV[I]-YBAR)*2;END 00093500
ELSE BEGIN FOR I LCTR M DO TOTALSS~YV[I]*2 + TOTALSS; END; 00093600
REGSS~TOTALSS-DEVSS; RSS~DEVSS/(M-N); 00093700
COMMENT PRINT-OUT COEFF.,STD.ERROR,MIN.,MAX.,MEAN AND VARIANCE.; 00093800
WRITE(PRINT[PAGE]); WRITE(PRINT,F11,NOFY); 00093900
WRITE(PRINT,F11A,YMIN,YMAX,YMEAN[NOFY],YVAR[NOFY]); 00094000
IF OPT2=1 THEN BEGIN WRITE(PRINT,F12,B[1],SQRT(RSS|AX[1,1])); 00094100
WRITE(PRINT,F13,OUT1); END ELSE WRITE(PRINT,F13,OUT2); 00094200
COMMENT PRINT-OUT THE ANALYSIS OF VARIANCE TABLE.; 00094300
WRITE(PRINT[PAGE]); WRITE(PRINT,F14); 00094400
BEGIN REAL YYYY; 00094500
IF IND=0 AND REPSS=0 THEN 00094600
BEGIN 00094700
IF OPT2=1 THEN BEGIN WRITE(PRINT,F15,OUT4); WRITE(PRINT,F16,OUT5); 00094800
WRITE(PRINT,F17,M-1,TOTALSS); END 00094900
ELSE BEGIN WRITE(PRINT,F15,OUT3); WRITE(PRINT,F16,OUT5); 00095000
WRITE(PRINT,F17,M,TOTALSS); END; 00095100
END; 00095200
IF IND=1 OR REPSS!0 THEN 00095300
BEGIN 00095400
IF REPSS>1 THEN FOR I LCTR M DO BEGIN XX[I]~NX[I,REPSS];TY[I]~YV[I]; END00095500
ELSE FOR I LCTR M DO BEGIN XX[I]~RX[N,I]; TY[I]~YV[I]; END; 00095600
IF IND=1 THEN ORDERING(M,OBSNO,XX,TY,TPR); 00095700
REPLICATION(M,XX,TY,TPR,OBSNO,XVAL,S,ONE,K); 00095800
IF OPT2=1 THEN BEGIN WRITE(PRINT,F15,OUT4); 00095900
IF S!0 THEN 00096000
WRITE(PRINT,F16A,M-N-ONE,DEVSS-S,(DEVSS-S)/(M-N-ONE), 00096100
((DEVSS-S)|ONE)/(S|(M-N-ONE))) 00096200
ELSE WRITE(PRINT,F16,OUT5); IF S!0 THEN 00096300
WRITE(PRINT,F16B,ONE,S,S/ONE); WRITE(PRINT,F17,M-1,TOTALSS); END 00096400
ELSE BEGIN WRITE(PRINT,F15,OUT3); 00096500
IF S!0 THEN 00096600
WRITE(PRINT,F16A,J~ (M-N-ONE),R~(DEVSS-S),R/J,(R| ONE)/(S|J)) 00096700
ELSE WRITE(PRINT,F16,OUT5); 00096800
IF S!0 THEN WRITE(PRINT,F16B,ONE,S,S/ONE); 00096900
WRITE(PRINT,F17,M,TOTALSS); END; 00097000
IF S!0 THEN 00097100
BEGIN 00097200
COMMENT PRINT OUT OF S.S. DUE TO REPLICATION AND CHI SQ. STATISTIC; 00097300
I~N-OPT2; WRITE(PRINT,F16C,I); S2~S3~S4~S5~L~0; 00097400
FOR I LCTR K DO 00097500
BEGIN 00097600
IF R~OBSNO[I]!0 THEN WRITE(PRINT ,F16D,XVAL[I],R,TPR[I],TPR[I]/R); 00097700
IF S6~TPR[I]!0 THEN 00097800
BEGIN 00097900
S2~ S2+1/R; S3~S3+R; L~L+1; S4~S4+R|LN(S6); S5~S5+R|S6; 00098000
END; 00098100
END; 00098200
IF L>1 THEN 00098300
BEGIN 00098400
R~1+(1/(3|(L-1)))|(S2-1/S3); 00098500
DEVMIN ~(1.0/R) | (S3|LN(S5/S3)-S4); 00098600
WRITE(PRINT,F16E,L -1,DEVMIN); 00098700
END; 00098800
END; 00098900
END; 00099000
END YYYY DUMMYBLOCK; 00099100
WRITE(PRINT,F18,OUT6); 00099200
IF OPT11=1 THEN 00099300
BEGIN 00099400
COMMENT DEVELOP AND PRINT-OUT THE VAR.-COV. MATRIX; 00099500
WRITE(PRINT[PAGE]); WRITE(PRINT,F21); MATRIX(AX,N,N,RSS); 00099600
COMMENT DEVELOP AND PRINT-OUT THE CORRELATION MATRIX; 00099700
FOR I LCTR N DO X1[I]~ SQRT(AX[I,I]); 00099800
FOR I LCTR N DO FOR J~ I STEP 1 UNTIL N DO 00099900
ANX[J,I]~ANX[I,J]~AX[I,J]/(X1[I] | X1[J]); 00100000
WRITE(PRINT[PAGE]); WRITE(PRINT,F22); MATRIX(ANX,N,N,1.0); 00100100
COMMENT DEVELOP AND PRINT-OUT THE T-VALUES AND CONFIDENCE LIMITS; 00100200
WRITE(PRINT[PAGE]); WRITE(PRINT,F23,LEV1,LEV1,LEV2,LEV2); 00100300
IF OPT2=0 THEN WRITE(PRINT,F24,OUT8) ELSE 00100400
BEGIN WRITE(PRINT,F24A,OUT8A); 00100500
WRITE(PRINT,F24,OUT8B); END; 00100600
WRITE(PRINT,F24B,YMAX-YMIN); 00100700
COMMENT BREAKDOWN OF S.S.; WRITE(PRINT[PAGE]); WRITE(PRINT,F25); ONE~1;00100800
IF OPT2=1 THEN WRITE(PRINT,F26,OUT10) ELSE WRITE(PRINT,F26,OUT9); 00100900
WRITE(PRINT,F27,OUT5); 00101000
END; 00101100
BEGIN REAL DUMMY2; 00101200
LABEL OVER1; 00101300
COMMENT VARIANCES OF PREDICTIONS CALCULATED ; 00101400
I~0; WHILE I~I+1{M DO 00101500
BEGIN 00101600
S~0; 00101700
J~0; WHILE J~J+1{N DO XX[J]~NX[I,J]; 00101800
MATMPY(2,XX,AX,TY,N,N); 00101900
J~0; WHILE J~J+1{N DO S~S+XX[J] | TY[J]; 00102000
TPR[I]~(S+1)|RSS; 00102100
END; 00102200
COMMENT PRINT-OUT OF RESIDUAL TABLE AND VARIANCES ; 00102300
WRITE(PRINT[PAGE]); WRITE(PRINT,F19); WRITE(PRINT ,F20,OUT7); 00102400
COMMENT DEVIATIONS CALCULATED.; 00102500
FOR I LCTR M DO DEV[I]~YV[I]-PR[I]; 00102600
DEVMAX~DEVMIN~DEV[1]; 00102700
FOR J~2 STEP 1 UNTIL M DO BEGIN S~DEV[J]; 00102800
IF DEVMAX<S THEN DEVMAX~S; IF DEVMIN>S THEN DEVMIN~S; END; 00102900
IF M>12 THEN 00103000
BEGIN 00103100
COMMENT FREQUENCY TABLE FOR RESIDUALS; 00103200
K~12; 00103300
S~(DEVMAX-DEVMIN)/K; 00103400
FOR I LCTR K DO BEGIN TY[I]~DEVMIN+I|S; OBSNO[I]~0; END; 00103500
OBSNO[0]~0; TY[0]~DEVMIN; TY[K]~DEVMAX; 00103600
FOR I LCTR M DO BEGIN S1~DEV[I]; 00103700
FOR J LCTR K DO 00103800
IF S1-TY[J]{0 THEN BEGIN OBSNO[J]~OBSNO[J]+1; 00103900
GO TO OVER1; END; 00104000
OVER1: END ILOOP; 00104100
WRITE(PRINT[PAGE]); WRITE(PRINT,RESFMT); 00104200
WRITE(PRINT,RESFMT1,FOR I LCTR K DO 00104300
[TY[I-1],TY[I],OBSNO[I]]); 00104400
END FREQUENCY TABLE; 00104500
IF NOLAG!0 THEN 00104600
BEGIN 00104700
COMMENT LAG CORRELATIONS CAL. AND PRINTED-OUT; 00104800
LAGCORR(M,NOLAG,DEV,DEV,XX); 00104900
WRITE(PRINT[PAGE]); WRITE(PRINT,LAGFMT); 00105000
WRITE(PRINT,LAGFMT1,FOR I LCTR NOLAG DO [I,XX[I]]); 00105100
END; 00105200
END DUMMY2; 00105300
FLAG5~FLAG6~0; 00105400
ORDERS: 00105500
BEGIN REAL DUMMY3; 00105600
LABEL OVER2; 00105700
IF OPT12=1 THEN 00105800
BEGIN 00105900
COMMENT TABLES OF RESIDUALS WHILE ORDERING CALCULATED AND PRINTED-OUT.; 00106000
FOR I LCTR NORD DO 00106100
BEGIN L~ ORD[I]; WRITE(PRINT[PAGE]); WRITE(PRINT,F32,L); 00106200
YMIN~MMIN[L,2]; YMAX~MMIN[L,1]; 00106300
WRITE(PRINT,F33,L); IF OPT2=1 THEN L~L+1; 00106400
FOR J LCTR M DO BEGIN TY[J]~YV[J]; TPR[J]~PR[J]; END; 00106500
IF FLAG6=1 THEN FOR J LCTR M DO XX[J]~NX[J,L] 00106600
ELSE IF L>N THEN FOR J LCTR M DO XX[J]~NX[J,N+1] 00106700
ELSE FOR J LCTR M DO XX[J]~RX[L,J]; 00106800
ORDERING(M,OBSNO,XX,TY,TPR); 00106900
FOR J LCTR M DO DEV[J]~TY[J]-TPR[J]; 00107000
WRITE(PRINT ,F34,OUT11); 00107100
IF FLAG6=1 THEN 00107200
BEGIN 00107300
DEVMAX~DEVMIN~DEV[1]; 00107400
FOR J~2 STEP 1 UNTIL M DO BEGIN S~DEV[J]; 00107500
IF DEVMAX<S THEN DEVMAX~S; IF DEVMIN>S THEN DEVMIN~S; END; 00107600
END; 00107700
IF M}20 THEN 00107800
BEGIN 00107900
FOR J LCTR M DO OBSNO[J]~NEGA[J]~0; 00108000
JJ~1; KK~0; 00108100
OVER2: LL~SIGN(DEV[JJ]); 00108200
JJ~JJ+1; J~1; 00108300
WHILE SIGN(DEV[JJ])=LL AND JJ{M DO BEGIN JJ~JJ+1; J~J+1; END; 00108400
IF LL}0 THEN OBSNO[J]~OBSNO[J]+1 00108500
ELSE NEGA[J]~NEGA[J]+1; 00108600
IF J>KK THEN KK~J; 00108700
IF JJ{M THEN GO TO OVER2; 00108800
J~K~L~IJ~0; 00108900
FOR MM LCTR KK DO BEGIN J~J+OBSNO[MM]; K~K+NEGA[MM]; 00109000
IJ~IJ+MM|OBSNO[MM]; L~L+MM|NEGA[MM]; END; 00109100
WRITE(PRINT[PAGE]); WRITE(PRINT,RESFMT2); 00109200
S~IJ/M; S1~L/M; 00109300
JJ~LL~0; 00109400
S4~M|S1; S5~M|S; S2~S4|S1; S3~S5|S; 00109500
FOR MM LCTR KK DO 00109600
BEGIN J~J-JJ; K~K-LL; 00109700
S2~S2|S; S3~S3|S1; S4~S4|S; S5~S5|S1; 00109800
A1~OBSNO[MM]; A2~NEGA[MM]; 00109900
WRITE(PRINT,RESFMT3,MM,A1,S2,A2,S3,A1+A2,S2+S3,J,S4,K,S5,J+K,S4+S5);00110000
JJ~A1; LL~A2; 00110100
END TABLE; 00110200
L~.5|(M+1-1.645|SQRT(M-1)); 00110300
K~(LN(M)+2.97011)/0.69315; 00110400
WRITE(PRINT,RESFMT4,L, K); 00110500
END MTOOSMALL; 00110600
COMMENT PLOT ROUTINES CALLED FOR PLOT OF X VS. RESIDUALS; 00110700
STAR~"X"; 00110800
YHEAD[1]~"DEVIAT"; YHEAD[2]~"IONS "; 00110900
VPLOT1(5,6,6,15); 00111000
VPLOT2(YMAX,YMIN,DEVMAX,DEVMIN); 00111100
FOR J LCTR M DO 00111200
VPLOT3(STAR,XX[J],DEV[J]); 00111300
VPLOT4(YHEAD,2,14,XHEAD); 00111400
IF NOLAG!0 THEN 00111500
BEGIN 00111600
LAGCORR(M,NOLAG,DEV,DEV,XX); 00111700
WRITE(PRINT,LAGFMT2); 00111800
WRITE(PRINT,LAGFMT1,FOR J LCTR NOLAG DO [J,XX[J]]); 00111900
END LAGS; 00112000
END I LOOP; 00112100
IF FLAG5=1 THEN GO TO FINAL3; 00112200
END ORDERS; 00112300
END DUMMY3; 00112400
COMMENT STORE B@S AND RESIDUAL VARIANCE.; 00112500
FOR I LCTR N DO NB[I,NOFY]~ B[I]; RESVAR[NOFY]~RSS; 00112600
IF Q-N>1 THEN 00112700
BEGIN 00112800
COMMENT REPEAT WITH NEW DEPENDENT VARIABLE.; 00112900
NOFY~ NOFY+1; Q~Q-1; 00113000
GO TO AGAIN; 00113100
END; 00113200
IF OPT13 !1 THEN GO TO DONE; 00113300
COMMENT EST(Y) AND VAR(Y) WANTED AT NEW POINTS.; 00113400
IF OPT1=1 THEN H~H-1; 00113500
COMMENT INPUT NEW DATA.; 00113600
IF OPT4=0 AND OPT3=0 THEN READ(READER,/,IN4B) 00113700
ELSE READ(READER,/,IN4C); 00113800
M~NVEC; N~ORIGN; Q~ORIGQ; 00113900
COMMENT PRINT-OUT NEW DATA.; 00114000
WRITE(PRINT[PAGE]); WRITE(PRINT,F35); 00114100
IF OPT4=0 AND OPT3=0 THEN MATRIX(NX,M,H,1.0) ELSE MATRIX(X,M,H,1.0); 00114200
IF OPT4=1 THEN BEGIN FLAG3~1; GO TO POLY; END; 00114300
IF OPT3=1 THEN BEGIN FLAG3~1; GO TO TRANS; END; 00114400
FINAL1: 00114500
IF OPT6=1 THEN BEGIN FLAG3~1; NEWN~0; NEWQ~Q; GO TO DELETION; END; 00114600
FINAL2: 00114700
NOFY ~ IJ ~ Q-N ; 00114800
IF OPT4=1 THEN FOR I LCTR M DO MOVE(IJ,X[I,1],Y[I,1]) 00114900
ELSE 00115000
BEGIN FOR I LCTR M DO MOVE(IJ,NX[I,1],Y[I,1]); 00115100
IF OPT2=1 THEN BEGIN FOR I LCTR M DO BEGIN NX[I,1]~ 1; 00115200
MOVE(N,NX[I,IJ+1],NX[I,2]); END; 00115300
N~N+1; Q~Q+1; END 00115400
ELSE FOR I LCTR M DO MOVE(N,NX[I,IJ+1],NX[I,1]); 00115500
END; 00115600
IF OPT12 =1 THEN BEGIN IJ~OPT2+1; HUNTER(M,N,IJ,NX,MMIN); END; 00115700
JK~1; 00115800
FINAL3: FOR C~JK STEP 1 UNTIL NOFY DO 00115900
BEGIN S2~0; WRITE(PRINT[PAGE]); WRITE(PRINT,F36,C); 00116000
FOR J LCTR N DO B[J]~NB[J,C]; 00116100
FOR I LCTR M DO BEGIN S~S1~0; 00116200
FOR J LCTR N DO BEGIN XX[J]~NX[I,J]; S1~S1+B[J]|XX[J]; END; 00116300
MATMPY(2,XX,AX,TY,N,N); FOR J LCTR N DO S~S+XX[J]| TY[J]; 00116400
S~(S+1)|RESVAR[C]; S3~Y[I,C]; PR[I]~S1; 00116500
WRITE(PRINT,F37,I,S3,S1,S3-S1,S); S2~S2 + (S3-S1)| (S3-S1); END; 00116600
WRITE(PRINT,F38,S2); 00116700
JK~C+1; 00116800
IF OPT12=1 THEN BEGIN FLAG5~1; FOR I LCTR M DO YV[I]~ Y[I,C]; 00116900
FLAG6~1; GO TO ORDERS; END; 00117000
END; 00117100
DONE: END; 00117200
GO TO START1; 00117300
FINISH: TIMEIT(PRINT); 00117400
END PROGRAM. 00117500