10  COM X[103,22],M[19,19],U[19,19],Q[20],V[20],P[78]
30  COM M$[60],N$[72]
40  COM N,K,N8,K8,N9,K9,Q9,Q7,Q5,Q4,Q3,Q2,Q1
45  COM I3,I4,U9,X$[20]
50  REM: VERSION 9/18/72
150  DIM A[20],B[20],C[20,20]
200  IF Q[1]#0 THEN 250
210  CHAIN "$IDA29",210
250  IF Q[3]=0 THEN 300
260  Q[5]=1
270  Q[6]=36
280  Q[7]=300
290  CHAIN "$IDA38"
300  GOTO Q9 OF 310,310,350
310  PRINT "LET N1 = NO. OF VARIABLES IN PARTIAL CORR. MATRIX,"
320  PRINT "AND N2 = N0. OF GIVEN VARIABLES FOR EACH PARTIAL."
330  PRINT "GIVE VALUES N1, N2, SEPARATED BY A COMMA :"
340  GOTO 360
350  PRINT "N1, N2 = ";
360  INPUT N1,N2
370  IF N1+N2 <= 20 THEN 400
380  PRINT "N1+N2 MUST BE 20 OR LESS"
390  GOTO 350
400  GOTO Q9 OF 410,410,440
410  PRINT  USING 420;N1
420  IMAGE "COL. NOS. OF FIRST",3D," VARIABLES :"
430  GOTO 450
440  PRINT "LIST 1 = ";
450  MAT  INPUT B[N1]
460  FOR I=1 TO N1
470  A[I]=B[I]
480  NEXT I
490  GOTO Q9 OF 500,500,530
500  PRINT  USING 510;N2
510  IMAGE "COL. NOS. OF SECOND",3D," VARIABLES :"
520  GOTO 540
530  PRINT "LIST 2 = ";
540  MAT  INPUT B[N2]
550  FOR I=1 TO N2
560  A[N1+I]=B[I]
570  NEXT I
600  N3=N1+N2
610  FOR I=1 TO N3
620  FOR J=1 TO N3
630  C[I,J]=M[A[I],A[J]]
640  NEXT J
650  NEXT I
700  FOR I=(N1+1) TO N3
710  C=1/C[I,I]
720  C[I,I]=C
730  FOR I1=1 TO N3
740  IF I1=I THEN 780
750  FOR J1=1 TO N3
755  IF J1=I THEN 770
760  C[I1,J1]=C[I1,J1]-C*C[I1,I]*C[I,J1]
770  NEXT J1
780  NEXT I1
790  NEXT I
1500  GOTO Q9 OF 1510,1540,1540
1510  PRINT "NUMBER OF DECIMAL PLACES"
1520  PRINT "WANTED IN THE PRINTOUT ";
1530  GOTO 1550
1540  PRINT "# DECIMALS = ";
1550  INPUT D
1560  IF (1<D) AND (D<6) THEN 1600
1570  PRINT "NUMBER OF DECIMAL PLACES ALLOWED"
1580  PRINT "IS BETWEEN 2 AND 5 INCLUSIVE"
1590  GOTO 1540
1600  PRINT 
1700  PRINT "PARTIAL CORRELATION MATRIX GIVEN VARIABLE(S) :"
1710  IF Q3=1 THEN 1800
1720  FOR I=(N1+1) TO N3
1730  PRINT  USING 1740;A[I]
1740  IMAGE #,DDD,3X
1750  NEXT I
1760  GOTO 1900
1800  FOR I=(N1+1) TO N3
1810  IF A[I]>10 THEN 1850
1820  PRINT  USING 1830;M$[6*A[I]-5,6*A[I]]
1830  IMAGE #,6A,3X
1840  GOTO 1890
1850  PRINT  USING 1830;N$[6*(A[I]-10)-5,6*(A[I]-10)]
1890  NEXT I
1900  PRINT LIN(1)
2000  FOR I=1 TO N1
2010  IF Q3=1 THEN 2050
2020  PRINT  USING 2030;A[I]
2030  IMAGE #,"VAR.",DD,2X
2040  GOTO 2100
2050  IF A[I]>10 THEN 2090
2060  PRINT  USING 2070;M$[6*A[I]-5,6*A[I]]
2070  IMAGE #,6A,2X
2080  GOTO 2100
2090  PRINT  USING 2070;N$[6*(A[I]-10)-5,6*(A[I]-10)]
2100  FOR J=1 TO I
2120  GOTO D OF 2130,2130,2150,2170,2190
2130  PRINT  USING "#,DD.2D,2X";C[I,J]/SQR(C[I,I]*C[J,J])
2140  GOTO 2220
2150  PRINT  USING "#,DD.3D,2X";C[I,J]/SQR(C[I,I]*C[J,J])
2160  GOTO 2220
2170  PRINT  USING "#,DD.4D,2X";C[I,J]/SQR(C[I,I]*C[J,J])
2180  GOTO 2220
2190  PRINT  USING "#,DD.5D,2X";C[I,J]/SQR(C[I,I]*C[J,J])
2220  NEXT J
2230  PRINT 
2240  NEXT I
9998  CHAIN "$IDA",150
9999  END 
