1  ! PROGRAM MRCAP2, VERSION 1A (31-AUG-73)
   !
2  ! PROGRAM MRCAP2 IS PART OF THE MULTIPLE REGRESSION ANALYSIS.
   ! IT IS ONE OF THE SEVERAL PROGRAMS AND FILES WHICH COMPOSE COSAP,
   ! LAWRENCE UNIVERSITY'S CONVERSATIONALLY ORIENTED STATISTICAL
3  ! ANALYSIS PACKAGE.  COSAP IS DISTRIBUTED FOR EDUCATIONAL USE, ON
   ! THE CONDITION THAT IT NOT BE SOLD, RENTED OR LEASED FOR PROFIT.
   !
4  ! IF YOU DESIRE FURTHER INFORMATION ABOUT COSAP, PLEASE CONTACT THE
   ! LAWRENCE UNIVERSITY COMPUTER CENTER, APPLETON, WISCONSIN, 54911
   !
10 DIM Q1%(30%) ! FUNCTION TO CREATE FILE EXT. BASED ON JOB#
20 DEF FNZ$ : IF Q1%(0%)=30% THEN 30 ELSE
     CHANGE SYS(CHR$(6%)+CHR$(9%)+CHR$(0%)) TO Q1% :
     Z8$=".J"+RIGHT(NUM$(Q1%(1%)/2%),2%)
30 FNZ$=Z8$ ! EXTENSION IS ".J"+ JOB #
40 FNEND
100 OPEN "DAT1"+FNZ$ AS FILE 1% : OPEN L1$(1%) AS FILE 2% :
     OPEN "MRC"+FNZ$ AS FILE 3%
110 DIM#1%,X(200,50),H$(30)=2%,C(50,50),M4(0),M5(0),M9(0),N(0),J9(0),
           I4(0),I7(0),N6(0),X2(50),L1$(8%)=32%
120 DIM #2%, N$(50%)=8%,M1$(50%)=64%,O%(50%),P%(50%),D$(50%)=8%,
        T(50%),D(10000%)
130 DIM#3%,I9%(24%),X9(71%),R9(800%),X8(1600%),A9(10%),C9(20%),
        C8(20%),H1%(8%)
140 N=C9(1) : K=C9(4)
150 M2%=K+1 : FOR J=1 TO K : X9(16+J)=0 : NEXT J
160 FOR J=1 TO K : L1%=K*(J-1) : FOR I=1 TO K :
	L%=L1%+I : X9(16+J)=X9(16+J)+X9(64+I)*R9(400+L%)
	: NEXT I : NEXT J
170 R9=0 : B0=0 : L1%=I9%(M2%) : FOR I= 1 TO K
	: R9=R9+X9(16+I)*X9(64+I) : L%=I9%(I)
	: X9(16+I)=X9(16+I)*(X9(8+L1%)/X9(8+L%))
	: B0=B0+X9(16+I)*X9(L%) : NEXT I
180 B0=X9(L1%)-B0
190 S9=R9*X9(40+L1%)
200 R9=SQR(ABS(R9)) : S8=X9(40+L1%)-S9 : F9=N-K-1
	: S7=S8/F9 : FOR J=1 TO K
	: L1%=K*(J-1)+J : L%=I9%(J)
210 X9(24+J)=SQR(ABS((R9(400+L1%)/X9(40+L%))*S7))
	: X9(32+J)=X9(16+J)/X9(24+J)
	: NEXT J
220 S7=SQR(ABS(S7)) : F8=K
	: S6=S9/F8 : S5=S8/F9
230 F=S6/S5
	: A9(1)=B0
	: A9(2)=R9
	: A9(3)=S7
	: A9(4)=S9
	: A9(5)=F8
240 	A9(6)=S6
	: A9(7)=S8
	: A9(8)=F9
	: A9(9)=S5
	: A9(10)=F
250 C9(1)=N : C9(4)=K
260 N=C9(1) : M=C9(2) : N8%=C9(3) : K=C9(4)
270 N6%=C9(5) : N2%=C9(14) : S5=C9(16)
280 I=0 : J%=N*(N6%-1)+1% : J2%=N*N6%
290 FOR J3%=J% TO J2% : I=I+1 : R9(600+I)=X8(J3%) : X8(J3%)=1
	: NEXT J3%
	!****CALL MXTX****
300 J0%=M*M : FOR I0=1 TO J0% : R9(200+I0)=0 : NEXT I0
310 FOR I0= 1 TO M : FOR J0=1 TO M 
	: I9%=M*(I0-1)+J0
	: FOR K0=1 TO N
320 I8%=N*(I0-1)+K0
	: J9%=N*(J0-1)+K0
330 R9(200+I9%)=R9(200+I9%)+X8(I8%)*X8(J9%)
	: NEXT K0 : NEXT J0 : NEXT I0
	!****END MXTX***

340 	  C9(1)=N
	: C9(2)=M
	: C9(3)=N8%
	: C9(4)=K
	: C9(5)=N6%
	: C9(14)=N2%
	: C9(16)=S5
350 	C8(1)=I
	: C8(2)=J%
	: C8(3)=J2%
	: C8(4)=J3%
	: C8(5)=M
360 DIM A(8,8) : D%=ABS(C8(5)) : K%=0% : FOR I%=1% TO 8% : FOR J%
     =1% TO 8% : A(I%,J%)=0 : NEXT J% : NEXT I%
370 FOR I%=1% TO D% : FOR J%=1% TO D% : K%=K%+1% : A(I%,J%)=
     R9(200+K%) : NEXT J% : NEXT I% : A(I%,I%)=1 FOR I%=D%+1%
     TO 8% UNLESS D%=8%
380 MAT A=INV(A) : K%=0% : FOR I%=1% TO D% : FOR J%=1% TO D% :
     K%=K%+1% : R9(200+K%)=A(I%,J%) : NEXT J% : NEXT I%
390 N=C9(1) : M=C9(2) : N8%=C9(3) : K=C9(4)
400 N6%=C9(5) : N2%=C9(14) : S5=C9(16)
410 I=C8(1) : J%=C8(2) : J2%=C8(3) :  J3%=C8(4) : M=C8(5)
420 M2%=M*M : FOR I=1 TO M2%
	: R9(200+I)=R9(200+I)*(A9(3))^2
	: NEXT I
430 I=M*(N6%-1)+N6% : S5=SQR(ABS(R9(200+I)))
	: I=0
440 FOR J3%=J% TO J2% : I=I+1
	: X8(J3%)=R9(600+I)
	: NEXT J3%
450 C9(1)=N
	: C9(2)=M
	: C9(3)=N8%
	: C9(4)=K
	: C9(5)=N6%
	: C9(14)=N2%
	: C9(16)=S5
460 CLOSE 1%,2%,3% : CHAIN "MRCAP3"
32767 END
