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

399 lines
25 KiB
Plaintext

LABEL 0000000000XXXXXX0010000001
$ CARD LIST
BEGIN LSPL0000
COMMENT LEAST SQUARES PLANE THROUGH A SET OF MAXIMALLY LSPL0001
ONE HUNDRED POINTS, GIVEN IN FRACTIONAL, LSPL0002
THREE-DIMENSIONAL COORDINATES. LSPL0000
PROGRAM CONVERTS THESE COORDINATES INTO THE LSPL0003
ORTHOGONAL AXIS VALUES. LSPL0004
LSPL0005
THE FOLLOWING BOOLEAN OPTIONS EXIST: LSPL0006
BOOL0 = TRUE : CONTROL PRINTOUT OF LAGRANGIAN. LSPL0007
BOOL1 = TRUE : START NEW DATA SET. LSPL0008
BOOL2 = TRUE : ALL WEIGHTS UNITY ON SECOND RUN. LSPL0009
BOOL3 = TRUE : NONSTOP WEIGHTS ITERATION. LSPL0010
LSPL0011
BY EDGAR L. EICHHORN AND STEPHEN MATZNER. LSPL0012
LSPL0013
(PROFESSIONAL SERVICES, BURROUGHS CORPORATION). LSPL0014
LSPL0015
CARD SEQUENCE STARTS WITH CODE LSPL-0000. LSPL0016
FIELD-TESTING COMPLETED 02-17-1964 . ; LSPL0017
LSPL0018
FILE IN FIN(1,10) ; LSPL0019
LSPL0020
FILE OUT FOU 1 (1,15) ; LSPL0021
INTEGER I, J, K, R, TRIGG, NORTR ; LSPL0022
LSPL0023
REAL SUMXC, SUMYC, SUMZC, SUMOM, XCM, YCM, ZCM, ALEPH, BEITH, LSPL0024
GIMEL, LAGRM, RES, KAPPA, DLAG, NORM, TEMP, F, AR, BR, CR,LSPL0025
COSAR,COSBR, COSCR, SINAR, SINBR, SINCR, VOL,D, LSPL0026
SINA, SINB, SINC, A, B, C, COSA, COSB, COSC, LSPL0027
OMICRON, EPSILON, DIFF, EPSMEAN ; LSPL0028
LSPL0029
BOOLEAN BOOL0, BOOL1, BOOL2, BOOL3 ; LSPL0030
LSPL0031
ARRAY X, Y, Z, XC, YC, ZC,T, OMEGA[0:101], M, COMP, MR, LSPL0032
MNOR[0:3], EL, ONE[0:3,0:3] ; LSPL0033
LSPL0034
LIST CONSTANTS(A,B,C,COSA,COSB,COSC), LSPL0035
BOOLEEN(BOOL0,BOOL1,BOOL2,BOOL3), LSPL0036
POINTS(X[I],Y[I],Z[I],OMEGA[I]), LSPL0037
COORD(I,XC[I],YC[I],ZC[I],T[I],OMEGA[I]), LSPL0038
PARAM(I,X[I],Y[I],Z[I],OMEGA[I]), LSPL0039
EPS(EPSMEAN,OMICRON), LSPL0040
LAGR(LAGRM), LSPL0041
DLOUT(DLAG), LSPL0042
MALL(M[1],M[2],M[3],D), LSPL0043
MNORM(MNOR[1],MNOR[2],MNOR[3],F), LSPL0044
MRALL(MR[1],MR[2],MR[3],D) ; LSPL0045
LSPL0046
FORMAT IN FMIN1(6F10.5), LSPL0047
FMIN2(3F8.4,I2), LSPL0048
FMIN3(4L5) ; LSPL0049
LSPL0050
FORMAT OUT COORF(I3,X8,3(X5,F10.5),X9,F10.5,X7,F9.6,/), LSPL0051
COMPOUND("TRANS BETA-IONYLIDENE CROTONIC ACID.",/), LSPL0052
MFF("M[1] = ",F10.5,X3,"M[2] = ",F10.5,X3,"M[3] = " LSPL0053
F10.5,X7,"D = ",F10.5,/), LSPL0054
MRF("H[1] = ",F10.5,X3,"H[2] = ",F10.5,X3,"H[3] = " LSPL0055
F10.5,X7,"D = ",F10.5,/), LSPL0056
MNF("N[1] = ",F10.5,X3,"N[2] = ",F10.5,X3,"N[3] = " LSPL0057
F10.5,X7,"D = ",F10.5,/), LSPL0058
PARM("NUMBER",X13,"X-PARAMETER",X4,"Y-PARAMETER",X4, LSPL0059
"Z-PARAMETER",X23,"WEIGHT",/), LSPL0060
PARF(I3,X8,3(X5,F10.5),X26,F9.6,/), LSPL0061
EPSF("EPSMEAN = ",F12.7,X5,"OMICRON = ",F12.7,/), LSPL0062
LAGFF(X70,F12.8,/), LSPL0063
DLFFF(X60,"DLAG = ",X3,F14.8,/), LSPL0064
LAGRF(X40,"LAGR = ",F12.8,/) ; LSPL0065
LSPL0066
LABEL START, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, LSPL0067
A13, A14, NORA, NORB, NORC, NORD, REFINE, B12, B14,FINISH;LSPL0068
LSPL0069
LSPL0070
START: I ~ 1 ; LSPL0071
READ(FIN,FMIN3,BOOLEEN) ; LSPL0072
READ(FIN,FMIN1,CONSTANTS) ; LSPL0073
WRITE(FOU,COMPOUND) ; LSPL0074
WRITE(FOU[DBL]) ; LSPL0075
LSPL0076
A1: READ(FIN,FMIN2,POINTS) ; LSPL0077
IF X[I] = 9.9 THEN GO TO A2 ; LSPL0078
I ~ I + 1 ; GO TO A1 ; LSPL0079
LSPL0080
A2: R ~ I ; I ~ 1 ; LSPL0081
WRITE(FOU,PARM) ; LSPL0082
WRITE(FOU[DBL]) ; LSPL0083
LSPL0084
SINA ~ SQRT(1 - COSA | COSA) ; LSPL0085
SINB ~ SQRT(1 - COSB | COSB) ; LSPL0086
SINC ~ SQRT(1 - COSC | COSC) ; LSPL0087
LSPL0088
COSAR ~ (COSB | COSC - COSA)/(SINB | SINC) ; LSPL0089
COSBR ~ (COSA | COSC - COSB)/(SINA | SINC) ; LSPL0090
COSCR ~ (COSA | COSB - COSC)/(SINA | SINB) ; LSPL0091
LSPL0092
SINAR ~ SQRT(1 - COSAR | COSAR) ; LSPL0093
SINBR ~ SQRT(1 - COSBR | COSBR) ; LSPL0094
SINCR ~ SQRT(1 - COSCR | COSCR) ; LSPL0095
LSPL0096
VOL ~ A | B | C | SINA | SINB | SINCR ; LSPL0097
AR ~ B | C | SINA/VOL ; LSPL0098
BR ~ A | C | SINB/VOL ; LSPL0099
CR ~ A | B | SINC/VOL ; LSPL0100
A3: FOR I ~ 1 STEP 1 UNTIL (R - 1) DO LSPL0101
BEGIN LSPL0102
XC[I] ~ A | X[I] | SINC - C | Z[I] | SINA | COSBR ; LSPL0103
YC[I] ~ A | X[I] | COSC + B | Y[I] + C | Z[I] | COSA ; LSPL0104
ZC[I] ~ C | Z[I] | SINA | SINBR ; LSPL0105
WRITE(FOU,PARF,PARAM) ; LSPL0106
END ; LSPL0107
LSPL0108
WRITE(FOU[DBL]) ; LSPL0109
WRITE(FOU[DBL]) ; LSPL0110
LSPL0111
A4: FOR J ~ 1 STEP 1 UNTIL 3 DO LSPL0112
FOR K ~ 1 STEP 1 UNTIL 3 DO LSPL0113
ONE[J,K] ~ 0.0 ; LSPL0114
SUMXC ~ SUMYC ~ SUMZC ~ SUMOM ~ 0.0 ; LSPL0115
LSPL0116
A5: FOR I ~ 1 STEP 1 UNTIL (R - 1) DO LSPL0117
BEGIN LSPL0118
ONE[1,1] ~ ONE[1,1] + OMEGA[I] | XC[I] | XC[I] ; LSPL0119
ONE[2,2] ~ ONE[2,2] + OMEGA[I] | YC[I] | YC[I] ; LSPL0120
ONE[3,3] ~ ONE[3,3] + OMEGA[I] | ZC[I] | ZC[I] ; LSPL0121
LSPL0122
ONE[1,2] ~ ONE[1,2] + OMEGA[I] | XC[I] | YC[I] ; LSPL0123
ONE[1,3] ~ ONE[1,3] + OMEGA[I] | XC[I] | ZC[I] ; LSPL0124
ONE[2,3] ~ ONE[2,3] + OMEGA[I] | YC[I] | ZC[I] ; LSPL0125
LSPL0126
SUMXC ~ XC[I] | OMEGA[I] + SUMXC ; LSPL0127
SUMYC ~ YC[I] | OMEGA[I] + SUMYC ; LSPL0128
SUMZC ~ ZC[I] | OMEGA[I] + SUMZC ; LSPL0129
LSPL0130
SUMOM ~ OMEGA[I] + SUMOM ; LSPL0131
END ; LSPL0132
LSPL0133
A6: XCM ~ SUMXC/SUMOM ; LSPL0134
YCM ~ SUMYC/SUMOM ; LSPL0135
ZCM ~ SUMZC/SUMOM ; LSPL0136
LSPL0137
EL[1,1] ~ ONE[1,1] - XCM | XCM | SUMOM ; LSPL0138
EL[2,2] ~ ONE[2,2] - YCM | YCM | SUMOM ; LSPL0139
EL[3,3] ~ ONE[3,3] - ZCM | ZCM | SUMOM ; LSPL0140
LSPL0141
EL[1,2] ~ ONE[1,2] - XCM | YCM | SUMOM ; LSPL0142
EL[1,3] ~ ONE[1,3] - XCM | ZCM | SUMOM ; LSPL0143
EL[2,3] ~ ONE[2,3] - YCM | ZCM | SUMOM ; LSPL0144
LSPL0145
A7: ALEPH ~ EL[1,1] + EL[2,2] + EL[3,3] ; LSPL0146
BEITH ~ - EL[1,1] | EL[2,2] - EL[1,1] | EL[3,3] LSPL0147
- EL[2,2] | EL[3,3] + EL[1,2] | EL[1,2] LSPL0148
+ EL[1,3] | EL[1,3] + EL[2,3] | EL[2,3] ; LSPL0149
GIMEL ~ EL[1,1] | EL[2,2] | EL[3,3] + (2.0) | LSPL0150
EL[1,2] | EL[1,3] | EL[2,3] - LSPL0151
EL[1,1] | EL[2,3] | EL[2,3] - LSPL0152
EL[2,2] | EL[1,3] | EL[1,3] - LSPL0153
EL[3,3] | EL[1,2] | EL[1,2] ; LSPL0154
LSPL0155
A8: LAGRM ~ - GIMEL/BEITH ; LSPL0156
LSPL0157
A9: RES ~ - LAGRM | LAGRM | LAGRM + ALEPH | LAGRM | LAGRM + LSPL0158
BEITH | LAGRM + GIMEL ; LSPL0159
IF BOOL0 THEN WRITE(FOU,LAGFF,LAGR) ; LSPL0160
LSPL0161
COMMENT CHANGE KAPPA TO SUIT REQUIREMENTS (NEXT CARD) ; LSPL0162
LSPL0163
KAPPA ~ 2.0 | 10 @ -7 ; LSPL0164
LSPL0165
DLAG ~ - RES/(- (3.0) | LAGRM | LAGRM + (2.0) | ALEPH | LSPL0166
LAGRM + BEITH) ; LSPL0167
IF BOOL0 THEN WRITE(FOU,DLFFF,DLOUT) ; LSPL0168
IF ABS(DLAG) { KAPPA THEN GO TO A10 ; LSPL0169
LAGRM ~ LAGRM + DLAG ; GO TO A9 ; LSPL0170
LSPL0171
A10: WRITE(FOU[PAGE]) ; LSPL0172
WRITE(FOU,PARM) ; LSPL0173
WRITE(FOU[DBL]) ; LSPL0174
LSPL0175
COMP[1] ~ EL[1,3] | (EL[2,2] - LAGRM) - LSPL0176
EL[1,2] | EL[2,3] ; LSPL0177
COMP[2] ~ EL[2,3] | (EL[1,1] - LAGRM) - LSPL0178
EL[1,3] | EL[1,2] ; LSPL0179
COMP[3] ~ EL[1,2] | EL[1,2] - (EL[1,1] - LAGRM) | LSPL0180
(EL[2,2] - LAGRM) ; LSPL0181
LSPL0182
NORM ~ COMP[1] | COMP[1] + COMP[2] | COMP[2] + LSPL0183
COMP[3] | COMP[3] ; LSPL0184
FOR K ~ 1 STEP 1 UNTIL 3 DO LSPL0185
M[K] ~ COMP[K]/SQRT(NORM) ; LSPL0186
D ~ XCM | M[1] + YCM | M[2] + ZCM | M[3] ; LSPL0187
LSPL0188
A11: FOR I ~ 1 STEP 1 UNTIL (R - 1) DO LSPL0189
BEGIN LSPL0190
T[I] ~ XC[I] | M[1] + YC[I] | M[2] + ZC[I] | M[3] - D ; LSPL0191
WRITE(FOU,COORF,COORD) ; LSPL0192
END ; LSPL01 3
LSPL0194
MR[1] ~ A | (M[1] | SINC + M[2] | COSC) ; LSPL0195
MR[2] ~ B | M[2] ; LSPL0196
MR[3] ~ C | (M[3] | SINA | SINBR + M[2] | COSA - LSPL0197
M[1] | SINA | COSBR) ; LSPL0198
WRITE(FOU[DBL]) ; LSPL0199
WRITE(FOU,LAGRF,LAGR) ; LSPL0200
WRITE(FOU[DBL]) ; LSPL0201
WRITE(FOU,MFF,MALL) ; LSPL0202
WRITE(FOU[DBL]) ; LSPL0203
WRITE(FOU,MRF,MRALL) ; LSPL0204
WRITE(FOU[DBL]) ; LSPL0205
LSPL0206
NORA: J ~ 1 ; LSPL0207
LSPL0208
NORB: I ~ 1 ; NORTR ~ 0 ; LSPL0209
LSPL0210
NORC: MNOR[I] ~ MR[I]/MR[J] ; LSPL0211
IF MNOR[I] > 1000.0 THEN GO TO NORD ; LSPL0212
IF MNOR[I] = 0 THEN NORTR ~ I ; LSPL0213
I ~ I + 1 ; LSPL0214
IF I { 3 THEN GO TO NORC ; LSPL0215
IF ABS(MNOR[1]) } ABS(MNOR[2]) THEN TEMP ~ ABS(MNOR[1]) LSPL0216
ELSE TEMP ~ ABS(MNOR[2]) ; LSPL0217
IF ABS(MNOR[3]) > TEMP THEN TEMP ~ ABS(MNOR[3]) ; LSPL0218
IF NORTR ! 0 AND TEMP = 1.0 AND MNOR[1] ! MNOR[2] AND LSPL0219
MNOR[1] ! MNOR[3] AND MNOR[2] ! MNOR[3] THEN GO TO NORD ;LSPL0220
F ~ SQRT((1.0)/((MNOR[1] | AR)*2 + (MNOR[2] | BR)*2 + LSPL0221
(2.0) | AR | CR | COSBR | MNOR[1] | MNOR[3] + LSPL0222
(2.0) | BR | CR | COSAR | MNOR[2] | MNOR[3])) ; LSPL0223
WRITE(FOU,MNF,MNORM) ; LSPL0224
LSPL0225
NORD: J ~ J + 1 ; LSPL0226
IF J { 3 THEN GO TO NORB ; LSPL0227
LSPL0228
A12: WRITE(FOU[PAGE]) ; LSPL0229
IF BOOL2 OR BOOL3 THEN GO TO REFINE ; LSPL0230
LSPL0231
B12: IF BOOL1 THEN GO TO START ; LSPL0232
LSPL0233
REFINE: IF BOOL2 THEN GO TO A13 ; LSPL0234
IF NOT BOOL3 THEN GO TO FINISH ; LSPL0235
LSPL0236
BOOL3 ~ FALSE ; LSPL0237
FOR I ~ 1 STEP 1 UNTIL (R - 1) DO LSPL0238
BEGIN LSPL0239
OMEGA[R+I] ~ OMEGA[I] ; LSPL0240
OMEGA[I] ~ EXP(- ABS(T[I])) ; LSPL0241
END ; LSPL0242
LSPL0243
COMMENT CHANGE OMICRON TO SUIT REQUIREMENTS(NEXT CARD) ; LSPL0244
LSPL0245
OMICRON ~ 5.0 | 10 @ -6 ; LSPL0246
TRIGG ~ 0 ; EPSILON ~ 0.0 ; LSPL0247
LSPL0248
FOR I ~ 1 STEP 1 UNTIL (R - 1) DO LSPL0249
BEGIN LSPL0250
DIFF ~ ABS(OMEGA[I] - OMEGA[R+I]) ; LSPL0251
IF DIFF } OMICRON THEN TRIGG ~ 1 ; LSPL0252
EPSILON ~ EPSILON + DIFF ; LSPL0253
END ; LSPL0254
LSPL0255
IF TRIGG = 0 THEN LSPL0256
BEGIN LSPL0257
EPSMEAN ~ EPSILON/(R - 1) ; GO TO A14 ; LSPL0258
END ; LSPL0259
LSPL0260
GO TO A4 ; LSPL0261
LSPL0262
A13: FOR I ~ 1 STEP 1 UNTIL (R - 1) DO LSPL0263
OMEGA[I] ~ 1.0 ; BOOL2 ~ FALSE ; GO TO A4 ; LSPL0264
LSPL0265
A14: WRITE(FOU,EPSF,EPS) ; LSPL0266
LSPL0267
B14: IF BOOL1 THEN GO TO START ; LSPL0268
LSPL0269
FINISH: END . LSPL0270
LABEL 000000000FIN 0010000001
TRUE TRUE TRUEFALSE
10.48 13.63 7.67 -0.32722 -0.61566 0.55339
0.7352 0.3240 0.8038 9
0.8351 0.1644 1.0070 9
0.7506 0.1998 0.7852 6
0.8660 0.1339 0.7031 6
0.7891 0.1349 0.4626 6
0.6383 0.0909 0.3186 6
0.5313 0.1274 0.4079 6
0.3597 0.0983 0.2287 9
0.5739 0.1776 0.6095 6
0.4513 0.2116 0.6729 6
0.4545 0.2749 0.8460 6
0.3256 0.3033 0.8926 6
0.1657 0.2645 0.7065 9
0.3496 0.3625 1.0845 6
0.2372 0.3911 1.1550 6
0.2722 0.4449 1.3538 6
0.1575 0.4693 1.4204 6
0.2008 0.5282 1.6153 8
0.0279 0.4378 1.3022 8
-0.7352 0.676 2.1962 9
-0.8351 0.8356 1.993 9
-0.7506 0.8002 2.2148 6
-0.866 0.8661 2.2969 6
-0.7891 0.8651 2.5374 6
-0.6383 0.9091 2.6814 6
-0.5313 0.8726 2.5921 6
-0.3597 0.9017 2.7713 9
-0.5739 0.8224 2.3905 6
-0.4513 0.7884 2.3271 6
-0.4545 0.7251 2.1540 6
-0.3256 0.6967 2.1074 6
-0.1657 0.7354 2.2935 9
-0.3496 0.6375 1.9155 6
-0.2372 0.6089 1.8450 6
-0.2722 0.5551 1.6462 6
-0.1575 0.5307 1.5796 6
-0.2008 0.4718 1.3847 8
-0.0279 0.5622 1.6978 8
9.9 0.0 0.0 0
TRUE TRUE TRUE TRUE
10.48 13.63 7.67 -0.32722 -0.61566 0.55339
0.7352 0.3240 0.8038 9
0.8351 0.1644 1.0070 9
0.7506 0.1998 0.7852 6
0.8660 0.1339 0.7031 6
0.7891 0.1349 0.4626 6
0.6383 0.0909 0.3186 6
0.5313 0.1274 0.4079 6
0.3597 0.0983 0.2287 9
0.5739 0.1776 0.6095 6
0.4513 0.2116 0.6729 6
0.4545 0.2749 0.8460 6
0.3256 0.3033 0.8926 6
0.1657 0.2645 0.7065 9
0.3496 0.3625 1.0845 6
0.2372 0.3911 1.1550 6
0.2722 0.4449 1.3538 6
0.1575 0.4693 1.4204 6
0.2008 0.5282 1.6153 8
0.0279 0.4378 1.3022 8
-0.7352 0.676 2.1962 9
-0.8351 0.8356 1.993 9
-0.7506 0.8002 2.2148 6
-0.866 0.8661 2.2969 6
-0.7891 0.8651 2.5374 6
-0.6383 0.9091 2.6814 6
-0.5313 0.8726 2.5921 6
-0.3597 0.9017 2.7713 9
-0.5739 0.8224 2.3905 6
-0.4513 0.7884 2.3271 6
-0.4545 0.7251 2.1540 6
-0.3256 0.6967 2.1074 6
-0.1657 0.7354 2.2935 9
-0.3496 0.6375 1.9155 6
-0.2372 0.6089 1.8450 6
-0.2722 0.5551 1.6462 6
-0.1575 0.5307 1.5796 6
-0.2008 0.4718 1.3847 8
-0.0279 0.5622 1.6978 8
9.9 0.0 0.0 0
TRUEFALSEFALSE TRUE
10.48 13.63 7.67 -0.32722 -0.61566 0.55339
0.7352 0.3240 0.8038 9
0.8351 0.1644 1.0070 9
0.7506 0.1998 0.7852 6
0.8660 0.1339 0.7031 6
0.7891 0.1349 0.4626 6
0.6383 0.0909 0.3186 6
0.5313 0.1274 0.4079 6
0.3597 0.0983 0.2287 9
0.5739 0.1776 0.6095 6
0.4513 0.2116 0.6729 6
0.4545 0.2749 0.8460 6
0.3256 0.3033 0.8926 6
0.1657 0.2645 0.7065 9
0.3496 0.3625 1.0845 6
0.2372 0.3911 1.1550 6
0.2722 0.4449 1.3538 6
0.1575 0.4693 1.4204 6
0.2008 0.5282 1.6153 8
0.0279 0.4378 1.3022 8
-0.7352 0.676 2.1962 9
-0.8351 0.8356 1.993 9
-0.7506 0.8002 2.2148 6
-0.866 0.8661 2.2969 6
-0.7891 0.8651 2.5374 6
-0.6383 0.9091 2.6814 6
-0.5313 0.8726 2.5921 6
-0.3597 0.9017 2.7713 9
-0.5739 0.8224 2.3905 6
-0.4513 0.7884 2.3271 6
-0.4545 0.7251 2.1540 6
-0.3256 0.6967 2.1074 6
-0.1657 0.7354 2.2935 9
-0.3496 0.6375 1.9155 6
-0.2372 0.6089 1.8450 6
-0.2722 0.5551 1.6462 6
-0.1575 0.5307 1.5796 6
-0.2008 0.4718 1.3847 8
-0.0279 0.5622 1.6978 8
9.9 0.0 0.0 0