mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-03-02 17:44:40 +00:00
1. Commit library tape images, directories, and extracted text files. 2. Commit additional utilities under Unisys-Emode-Tools.
277 lines
22 KiB
Plaintext
277 lines
22 KiB
Plaintext
LABEL 0000000000XXXXXX0010000001
|
|
BEGIN TEST 1
|
|
TEST 2
|
|
COMMENT PROCEDURE MULLER FINDS REAL AND COMPLEX ROOTS OF AN TEST 3
|
|
ARBITRARY FUNCTION. P1, P2, AND P3 ARE STARTING VALUES. TEST 4
|
|
THE ROOTS NEAREST TO THESE POINTS WILL BE FOUND FIRST. TEST 5
|
|
MXM IS THE MAXIMUM NUMBER OF ITERATIONS TO BE MADE IN TEST 6
|
|
FINDING ANY ONE ROOT. EP1 AND EP2 ARE CONVERGENCE TEST 7
|
|
CRITERION FACTORS. IF ABS((X(I+1)-X(I))/X(I+1)) IS TEST 8
|
|
LESS THAN EP1 OR IF THE FUNCTION VALUE AND MODIFIED TEST 9
|
|
FUNCTION VALUE ARE BOTH LESS THAN EP2, A ROOT HAS BEEN TEST 10
|
|
FOUND. SW1, SW2, SW3, AND SWR ARE BOOLEAN VARIABLES. TEST 11
|
|
IF SW1 IS TRUE, THEN EACH ITERANT OF EACH ROOT WILL BE TEST 12
|
|
PRINTED. IF SW2 IS TRUE THE VALUE OF EACH ROOT FOUND TEST 13
|
|
WILL BE PRINTED. IF SW3 IS TRUE, THEN, WHEN APPLICABLE, TEST 14
|
|
THE COMPLEX CONJUGATE OF EACH ROOT FOUND WILL BE TEST 15
|
|
ADMITTED AS A ROOT. IF SWR IS TRUE ONLY REAL ROOTS TEST 16
|
|
ARE FOUND. SWR SHOULD BE SET TRUE IF IT IS KNOWN THAT TEST 17
|
|
THE FUNCTION HAS ALL REAL ROOTS. ARRAYS RRT AND IRT TEST 18
|
|
CONTAIN THE REAL AND IMAGINARY PARTS, RESPECTIVELY, OF TEST 19
|
|
THE ROOTS FOUND. PROCEDURE FUNCTION IS THE FUNCTION TEST 20
|
|
GENERATOR AND PROCEDURE COMPLEX PERFORMS THE NECESSARY TEST 21
|
|
COMPLEX ARITHMETIC. TEST 22
|
|
TEST 23
|
|
R. D. RODMAN, TEST 24
|
|
(PROFESSIONAL SERVICES DIVISIONAL GROUP), TEST 25
|
|
TEST 26
|
|
CARD SEQUENCE BEGINS WITH MULL0001, TEST 27
|
|
FIRST RELEASE 5/1/63 ; TEST 28
|
|
TEST 29
|
|
INTEGER TMXM, TNRTS, I ; TEST 30
|
|
REAL TP1, TP2, TP3, TEP1, TEP2 ; TEST 31
|
|
BOOLEAN TSW1, TSW2, TSW3, TSWR ; TEST 32
|
|
LABEL START ; TEST 33
|
|
REAL ARRAY TRRT, TIRT[0:100] ; TEST 34
|
|
FILE IN TIN1(1,10) ; TEST 35
|
|
FILE OUT TOUT1(8,15) ; TEST 36
|
|
FORMAT IN TF1(3F8.3,2I3,2E9.2,4L6) ; TEST 37
|
|
TEST 38
|
|
FORMAT OUT TF2(//X46,"REAL",X12,"IMAGINARY"), TEST 39
|
|
TF4(X37,E18.11,X4,E18.11) ; TEST 40
|
|
TEST 41
|
|
PROCEDURE FUNCTION(REALE, IMAG, REVAL, IEVAL) ; TEST 42
|
|
TEST 43
|
|
VALUE REALE, IMAG ; TEST 44
|
|
REAL REALE, IMAG, REVAL, IEVAL ; TEST 45
|
|
TEST 46
|
|
BEGIN TEST 47
|
|
TEST 48
|
|
COMMENT THE USER MUST INSERT THE CODING FOR THIS PROCEDURE. TEST 49
|
|
"REALE" AND "IMAG" ARE THE REAL AND IMAGINARY PARTS OF TEST 50
|
|
THE DEPENDENT VARIABLE. THE REAL AND IMAGINARY PARTS OF TEST 51
|
|
THE FUNCTION EVALUATED AT THIS POINT MUST BE "REVAL" AND TEST 52
|
|
"IEVAL", RESPECTIVELY ; TEST 53
|
|
TEST 54
|
|
REAL T1, IT1, T2, IT2, T3, IT3, T4, IT4 ; TEST 55
|
|
TEST 56
|
|
COMMENT THIS FUNCTION IS THE EIGHTH DEGREE POLYNOMIAL TEST 57
|
|
SHOWN IN THE SECOND TEST CASE ; TEST 58
|
|
TEST 59
|
|
T1 ~ REALE | REALE - IMAG | IMAG + REALE + 1 ; TEST 60
|
|
IT1 ~ 2 | REALE | IMAG + IMAG ; T2 ~ T1 -2-REALE ; TEST 61
|
|
IT2 ~ IT1 - IMAG ; T3 ~ T1 | T2 - IT1 | IT2 + 2 ; TEST 62
|
|
IT3 ~ T1 | IT2 + T2 | IT1 ; T1 ~ T1-REALE ; T2 ~ T1+1 ; TEST 63
|
|
T4 ~ T1 | T2 - IT2 | IT2 ; IT4 ~ T1 | IT2 + IT2 | T2 ; TEST 64
|
|
REVAL ~ T3 | T4 - IT3 | IT4 - 1 ; TEST 65
|
|
IEVAL ~ T3 | IT4 + IT3 | T4 TEST 66
|
|
END ; TEST 67
|
|
TEST 68
|
|
PROCEDURE MULLER(P1, P2, P3, MXM, NRTS, EP1, EP2, SW1, SW2, SW3, MULL 1
|
|
SWR, RRT, IRT, OT1 ) ; MULL 2
|
|
MULL 3
|
|
VALUE P1, P2, P3, MXM, NRTS, EP1, EP2, SW1, SW2, SW3, SWR ; MULL 4
|
|
INTEGER MXM, NRTS ; MULL 5
|
|
BOOLEAN SW1, SW2, SW3, SWR ; MULL 6
|
|
REAL P1, P2, P3, EP1, EP2 ; MULL 7
|
|
REAL ARRAY RRT, IRT[0] ; MULL 8
|
|
FILE OT1 ; MULL 9
|
|
MULL 10
|
|
BEGIN MULL 11
|
|
BOOLEAN BOOL; MULL 12
|
|
INTEGER C1, RTC, I, ITC ; MULL 13
|
|
MULL 14
|
|
REAL RX1, RX2, RX3, IX1, IX2, IX3, RROOT, IROOT, RDNR, IDNR, MULL 15
|
|
T1, IT1, FRROOT, FIROOT, RFX1, RFX2, RFX3, IFX1, IFX2, MULL 16
|
|
IFX3, RH, IH, RLAM, ILAM, RDEL, IDEL, T2, IT2, T3, IT3, MULL 17
|
|
T4, IT4, RG, IG, RDEN, IDEN, RFUNC, IFUNC ; MULL 18
|
|
MULL 19
|
|
LABEL M0, M1, M2, M3, M4, M9, M8, M6, M7, FIN1, FIN2, FIN3, M10,MULL 20
|
|
M12, M11, EXIT ; MULL 21
|
|
MULL 22
|
|
SWITCH J ~ M2, M3, M4, M7, M11 ; MULL 23
|
|
MULL 24
|
|
FORMAT OUT F2( X46,"REAL", X12,"IMAGINARY" / X37, E18.11, X4, E18.11MULL 25
|
|
/ X39,"THE FUNCTION EVALUATED AT THIS POINT IS" /X46, MULL 26
|
|
"REAL",X12,"IMAGINARY"/X37,E18.11,X4,E18.11 /X35,"THE MOD"MULL 27
|
|
"IFIED FUNCTION EVALUATED AT THIS POINT IS"/ X46,"REAL", MULL 28
|
|
X12,"IMAGINARY"/X37,E18.11,X4,E18.11 ), MULL 29
|
|
F4(///X29,I3," ITERATIONS HAVE BEEN MADE. THE VALUE OF " MULL 30
|
|
"THE ITERANT IS NOW"), MULL 31
|
|
F6(//X37,"SUCCESSIVE ITERANTS MEET CONVERGENCE CRITERION"/MULL 32
|
|
X39,"AFTER",I3," ITERATIONS. THE ROOT FOUND IS"), MULL 33
|
|
F8(//X33,"THE FUNCTION VALUES OF THE LAST ITERANT ARE" MULL 34
|
|
" SUFFICIENTLY"/X33,"NEAR ZERO. ",I4," ITERATIONS WERE MA"MULL 35
|
|
"DE. THE ROOT FOUND IS"), MULL 36
|
|
F10(//X35,I3," ITERATIONS COMPLETED AND SUCCESSFUL CONVE" MULL 37
|
|
"RGENCE"/X41,"HAS NOT OCCURRED. THE LAST ITERANT IS"), MULL 38
|
|
F12(//X40,"THE PREVIOUS ROOT FOUND WAS COMPLEX. THE"/X40,MULL 39
|
|
"CONJUGATE OF THIS VALUE IS ALSO A ROOT.") ; MULL 40
|
|
MULL 41
|
|
PROCEDURE COMPLEX(A, IA, B, IB, K, C, IC) ; MULL 42
|
|
MULL 43
|
|
VALUE A, IA, B, IB, K ; MULL 44
|
|
INTEGER K ; MULL 45
|
|
REAL A, IA, B, IB, C, IC ; MULL 46
|
|
MULL 47
|
|
BEGIN MULL 48
|
|
REAL TEMP ; MULL 49
|
|
LABEL MPY, DVD, SQT, EXIT ; MULL 50
|
|
SWITCH JUNCTION ~ MPY, DVD, SQT ; MULL 51
|
|
GO TO JUNCTION[K] ; MULL 52
|
|
MULL 53
|
|
MPY: C ~ A|B -IA|IB ; IC ~ A|IB + IA|B ; GO TO EXIT ; MULL 54
|
|
MULL 55
|
|
DVD: IF B = 0 AND IB = 0 THEN MULL 56
|
|
BEGIN MULL 57
|
|
C~1 ; IC~0 ; GO TO EXIT MULL 58
|
|
END ; MULL 59
|
|
TEMP ~ B|B + IB|IB ; C ~ (A|B + IA|IB) / TEMP ; MULL 60
|
|
IC ~ (IA|B - A|IB) / TEMP ; GO TO EXIT ; MULL 61
|
|
MULL 62
|
|
SQT: IF (IA=0) AND (A<0) THEN MULL 63
|
|
BEGIN MULL 64
|
|
C ~ 0 ; IC ~ SQRT(-A) MULL 65
|
|
END MULL 66
|
|
ELSE IF IA=0 THEN MULL 67
|
|
BEGIN MULL 68
|
|
C ~ SQRT(A) ; IC~0 MULL 69
|
|
END MULL 70
|
|
ELSE MULL 71
|
|
BEGIN MULL 72
|
|
TEMP ~ SQRT(A|A + IA|IA) ; MULL 73
|
|
C ~ SQRT((TEMP+A)/2) ; MULL 74
|
|
IC ~ IF (TEMP -A) < 0 THEN 0 ELSE SQRT((TEMP-A)/2) MULL 75
|
|
END ; MULL 76
|
|
IF((B+C)|(B+C)+(IB+IC)|(IB+IC))<((B-C)|(B-C)+(IB-IC)| MULL 77
|
|
(IB-IC)) THEN MULL 78
|
|
BEGIN MULL 79
|
|
C ~ B-C ; IC ~ IB-IC MULL 80
|
|
END MULL 81
|
|
ELSE MULL 82
|
|
BEGIN MULL 83
|
|
C ~ B+C ; IC ~ IB+IC MULL 84
|
|
END ; MULL 85
|
|
MULL 86
|
|
EXIT: END ; MULL 87
|
|
MULL 88
|
|
FOR I ~ 1 STEP 1 UNTIL NRTS DO RRT[I]~IRT[I]~0 ; RTC~0 ; MULL 89
|
|
MULL 90
|
|
M0: IX1~IX2~IX3~C1~IROOT~ITC~0 ; RROOT~P1 ; BOOL ~ FALSE ; MULL 91
|
|
MULL 92
|
|
M1: C1~C1+1 ; RDNR ~ 1 ; IDNR ~ 0 ; MULL 93
|
|
FOR I ~ 1 STEP 1 UNTIL RTC DO MULL 94
|
|
BEGIN MULL 95
|
|
COMPLEX(RDNR,IDNR,RROOT-RRT[I],IROOT-IRT[I],1,T1,IT1) ; MULL 96
|
|
RDNR ~ T1 ; IDNR ~ IT1 MULL 97
|
|
END ; MULL 98
|
|
FUNCTION(RROOT, IROOT, T1, IT1) ; MULL 99
|
|
COMPLEX(T1, IT1, RDNR, IDNR, 2, FRROOT, FIROOT) ; MULL 100
|
|
GO TO J[C1] ; MULL 101
|
|
MULL 102
|
|
M2: RFX1~FRROOT ; IFX1~FIROOT ; RROOT~P2 ; GO TO M1 ; MULL 103
|
|
MULL 104
|
|
M3: RFX2~FRROOT ; IFX2~FIROOT ; RROOT~P3 ; GO TO M1 ; MULL 105
|
|
MULL 106
|
|
M4: RFX3~FRROOT ; IFX3~FIROOT ; RX1~P1 ; RX2~P2 ; RX3~P3 ;MULL 107
|
|
RH ~ RX3-RX2 ; IH ~ IX3-IX2 ; MULL 108
|
|
COMPLEX(RH,IH, RX2-RX1, IX2-IX1, 2, RLAM,ILAM) ; MULL 109
|
|
RDEL ~ RLAM + 1 ; IDEL ~ ILAM ; MULL 110
|
|
MULL 111
|
|
M9: IF(RFX1=RFX2)AND(RFX2=RFX3)AND(IFX1=IFX2)AND(IFX2=IFX3) MULL 112
|
|
THEN BEGIN MULL 113
|
|
RLAM ~ 1 ; ILAM ~ 0 ; GO TO M8 MULL 114
|
|
END ; MULL 115
|
|
COMPLEX(RFX1, IFX1, RLAM, ILAM, 1, T1, IT1) ; MULL 116
|
|
COMPLEX(RFX2, IFX2, RDEL, IDEL, 1, T2, IT2) ; MULL 117
|
|
T1 ~ T1-T2+RFX3 ; IT1 ~ IT1-IT2+IFX3 ; MULL 118
|
|
COMPLEX(RDEL, IDEL, RLAM, ILAM, 1, T2, IT2) ; MULL 119
|
|
COMPLEX(T1,IT1,T2,IT2,1,T3,IT3) ; MULL 120
|
|
COMPLEX(RFX3,IFX3,T3,IT3,1,T1,IT1) ; MULL 121
|
|
T1 ~ -4|T1 ; IT1 ~ -4|IT1 ; MULL 122
|
|
COMPLEX(RFX3,IFX3,RLAM+RDEL,ILAM+IDEL,1,T2,IT2) ; MULL 123
|
|
COMPLEX(RDEL|RDEL-IDEL|IDEL,2|RDEL|IDEL,RFX2,IFX2,1,T3, MULL 124
|
|
IT3) ; COMPLEX(RLAM|RLAM-ILAM|ILAM,2|RLAM|ILAM,RFX1,IFX1,MULL 125
|
|
1,T4,IT4) ; RG~T4-T3+T2 ; IG~IT4-IT3+IT2 ; MULL 126
|
|
IF SWR AND ((RG|RG+T1)<0) THEN MULL 127
|
|
BEGIN MULL 128
|
|
RDEN ~ RG ; IDEN ~ IG ~ 0 MULL 129
|
|
END ELSE MULL 130
|
|
COMPLEX(RG|RG-IG|IG+T1,2|RG|IG+IT1,RG,IG,3,RDEN,IDEN) ; MULL 131
|
|
COMPLEX(-2|RFX3, -2|IFX3, RDEL, IDEL, 1, T1, IT1) ; MULL 132
|
|
COMPLEX(T1, IT1, RDEN, IDEN, 2, RLAM, ILAM) ; MULL 133
|
|
MULL 134
|
|
M8: ITC ~ ITC + 1 ; MULL 135
|
|
RX1~RX2 ; RX2~RX3 ; RFX1~RFX2 ; RFX2~RFX3 ; MULL 136
|
|
IX1~IX2 ; IX2~IX3 ; IFX1~IFX2 ; IFX2~IFX3 ; MULL 137
|
|
COMPLEX(RLAM,ILAM,RH,IH,1,T1,IT1) ; RH~T1 ; IH~IT1 ; MULL 138
|
|
MULL 139
|
|
M6: RDEL~RLAM+1 ; IDEL~ILAM ; RX3~RX2+RH ; IX3~IX2+IH ; MULL 140
|
|
C1~3 ; RROOT~RX3 ; IROOT~IX3 ; GO TO M1 ; MULL 141
|
|
MULL 142
|
|
M7: RFX3~FRROOT ; IFX3~FIROOT ; MULL 143
|
|
FUNCTION(RX3,IX3, RFUNC,IFUNC) ; MULL 144
|
|
COMPLEX(RFX3, IFX3, RFX2, IFX2, 2, T1, IT1) ; MULL 145
|
|
IF (T1|T1 + IT1|IT1) > 100 THEN MULL 146
|
|
BEGIN MULL 147
|
|
RLAM~RLAM/2 ; RH~RH/2 ; ILAM~ILAM/2 ; IH~IH/2 ; GO TO M6 MULL 148
|
|
END ; MULL 149
|
|
IF SW1 THEN MULL 150
|
|
BEGIN MULL 151
|
|
WRITE(OT1,F4,ITC) ; MULL 152
|
|
WRITE(OT1,F2,RX3,IX3,RFUNC,IFUNC,RFX3,IFX3) MULL 153
|
|
END ; MULL 154
|
|
T1 ~ RX3-RX2 ; IT1 ~ IX3-IX2 ; MULL 155
|
|
COMPLEX(T1, IT1, RX2, IX2, 2, T2, IT2) ; MULL 156
|
|
IF SQRT(T2|T2+IT2|IT2){EP1 THEN GO TO FIN1 ; MULL 157
|
|
IF(SQRT(RFUNC|RFUNC+IFUNC|IFUNC){EP2) AND MULL 158
|
|
(SQRT(RFX3|RFX3+IFX3|IFX3){EP2) THEN GO TO FIN2 ; MULL 159
|
|
IF ITC}MXM THEN GO TO FIN3 ELSE GO TO M9 ; MULL 160
|
|
MULL 161
|
|
FIN1: IF (NOT SW2) THEN GO TO M12 ELSE WRITE(OT1,F6,ITC) ; MULL 162
|
|
GO TO M10 ; MULL 163
|
|
MULL 164
|
|
FIN2: IF (NOT SW2) THEN GO TO M12 ELSE WRITE(OT1,F8,ITC) ; MULL 165
|
|
GO TO M10 ; MULL 166
|
|
MULL 167
|
|
FIN3: BOOL ~ TRUE ; MULL 168
|
|
IF (NOT SW2) THEN GO TO M12 ELSE WRITE(OT1,F10,ITC) ; MULL 169
|
|
MULL 170
|
|
M10: WRITE(OT1,F2,RX3,IX3,RFUNC,IFUNC,RFX3,IFX3) ; MULL 171
|
|
MULL 172
|
|
M12: RTC ~ RTC+1 ; RRT[RTC] ~ RX3 ; IRT[RTC] ~ IX3 ; MULL 173
|
|
IF RTC } NRTS THEN GO TO EXIT ; MULL 174
|
|
IF(ABS(IX3)>EP1) AND (SW3) AND (NOT BOOL) THEN MULL 175
|
|
BEGIN MULL 176
|
|
IX3~-IX3 ; FUNCTION(RX3,IX3,RFUNC,IFUNC) ; MULL 177
|
|
RROOT ~ RX3 ; IROOT ~ IX3 ; C1 ~ 4 ; GO TO M1 ; MULL 178
|
|
MULL 179
|
|
M11: IF SW2 THEN MULL 180
|
|
BEGIN MULL 181
|
|
WRITE(OT1,F12) ; MULL 182
|
|
WRITE(OT1,F2,RX3,IX3,RFUNC,IFUNC,FRROOT,FIROOT) MULL 183
|
|
END ; MULL 184
|
|
RTC ~ RTC+1 ; RRT[RTC] ~ RX3 ; IRT[RTC] ~ IX3 MULL 185
|
|
END ELSE GO TO M0 ; MULL 186
|
|
IF RTC < NRTS THEN GO TO M0 ; MULL 187
|
|
MULL 188
|
|
EXIT: END ; MULL 189
|
|
TEST 69
|
|
COMMENT TEST PROGRAM BEGINS HERE ; TEST 70
|
|
TEST 71
|
|
START: READ(TIN1,TF1,TP1,TP2,TP3,TMXM,TNRTS,TEP1,TEP2,TSW1,TSW2, TEST 72
|
|
TSW3,TSWR) ; TEST 73
|
|
FOR I ~ 0 STEP 1 UNTIL 100 DO TRRT[I] ~ TIRT[I] ~ 0 ; TEST 74
|
|
MULLER(TP1,TP2,TP3,TMXM,TNRTS,TEP1,TEP2,TSW1,TSW2,TSW3, TEST 75
|
|
TSWR,TRRT,TIRT, TOUT1 ) ; TEST 76
|
|
WRITE(TOUT1,TF2) ; TEST 77
|
|
WRITE(TOUT1,TF4, FOR I~1 STEP 1 UNTIL TNRTS DO [TRRT[I], TEST 78
|
|
TIRT[I]]) ; TEST 79
|
|
GO TO START TEST 80
|
|
END. TEST 81
|
|
|
|
LABEL 000000000CARDSIN0010000001
|
|
-1. .1 1. 30 8 .1 @- 9 .1 @- 9 TRUE TRUE TRUE FALSE
|
|
-1. .1 1. 30 8 .1 @- 9 .1 @- 9 FALSE TRUE TRUE FALSE
|
|
|