1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-03-02 17:44:40 +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

76 lines
5.1 KiB
Plaintext

COMMENT THIS PROCEDURE COMPUTES THE DETERMINANT OF A MATRIX. DETR0010
N IS THE ORDER A IS THE MATRIX EPS IS A DETR0020
TOLERANCE PARAMETER OF THE ORDER 1.0 @ -10 DETR0030
D HOLDS THE VALUE OF THE DETERMINANT. DETR0040
R. D. RODMAN DETR0050
(PROFESSIONAL SERVICES DIVISIONAL GROUP) DETR0060
CARD SEQUENCE BEGINS WITH DETR0010. DETR0070
FIRST RELEASE 6/01/63 ; DETR0080
PROCEDURE DETERMINANT(N, A, EPS, D) ; DETR0090
VALUE N, EPS ; DETR0100
INTEGER N ; DETR0110
REAL EPS, D ; DETR0120
REAL ARRAY A[0,0] ; DETR0130
BEGIN DETR0140
INTEGER I, J, K, K2, L ; DETR0150
REAL BIG, DIAG, TEMP, Q ; DETR0160
LABEL D1, D2, D3, EXIT ; DETR0170
COMMENT THE INPUT MATRIX IS DECOMPOSED INTO TWO TRIANGULAR DETR0180
MATRICES USING ROW PIVOTS. ; DETR0190
D ~ 1.0 ; DETR0200
D1: FOR I ~ 1 STEP 1 UNTIL N DO DETR0210
BEGIN DETR0220
L ~ I-1 ; DETR0230
FOR J ~ I STEP 1 UNTIL N DO DETR0240
BEGIN DETR0250
Q~0 ; DETR0260
FOR K ~ 1 STEP 1 UNTIL L DO Q ~ A[J,K] | A[K,I] + Q ; DETR0270
A[J,I] ~ A[J,I] - Q DETR0280
END ; DETR0290
BIG ~ 0 ; K2 ~ I ; DETR0300
D2: FOR K ~ I STEP 1 UNTIL N DO DETR0310
BEGIN DETR0320
IF ABS(A[K,I]) > BIG THEN DETR0330
BEGIN DETR0340
BIG ~ ABS(A[K,I]) ; K2 ~ K DETR0350
END DETR0360
END ; DETR0370
IF BIG < EPS THEN DETR0380
BEGIN DETR0390
D ~ 0 ; GO TO EXIT DETR0400
END ; DETR0410
COMMENT "BIG" IS THE LARGEST ELEMENT IN THE COLUMN JUST COMPUTED. DETR0420
IF NECESSARY, A ROW EXCHANGE IS MADE SO THAT "BIG" IS DETR0430
ON THE MAIN DIAGONAL ; DETR0440
IF K2 ! I THEN DETR0450
BEGIN DETR0460
D ~ -D ; DETR0470
FOR K ~ 1 STEP 1 UNTIL N DO DETR0480
BEGIN DETR0490
TEMP ~ A[I,K] ; A[I,K] ~ A[K2,K] ; A[K2,K] ~ TEMP DETR0500
END DETR0510
END ; DETR0520
COMMENT THE VALUE OF THE DETERMINANT, "D", IS THE PRODUCT OF THE DETR0530
DIAGONAL ELEMENTS OF THE DECOMPOSED MATRIX. ; DETR0540
D3: DIAG ~ A[I,I] ; D ~ D | DIAG ; DETR0550
COMMENT A ROW OF THE DECOMPOSED MATRIX IS NOW CALCULATED. ; DETR0560
FOR J ~ I+1 STEP 1 UNTIL N DO DETR0570
BEGIN DETR0580
Q~0 ; DETR0590
FOR K ~ 1 STEP 1 UNTIL L DO Q ~ A[I,K] | A[K,J] + Q ; DETR0600
A[I,J] ~ (A[I,J]-Q)/DIAG DETR0610
END DETR0620
END ; DETR0630
EXIT: END ; DETR0640