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

129 lines
10 KiB
Plaintext

PROCEDURE PHIPART (V, DATA, ALEPH, BETA, COEFF, P, S, PHI, SUM) ; SFSB0001
SFSB0002
COMMENT PROCEDURE PHIPART FOR CALCULATING THE VALUE OF THE SFSB0003
DEPENDENT VARIABLE AND ITS PARTIAL DERIVATIVES FROM SFSB0004
A SURFACE FIT IN ORTHOGONAL POLYNOMIALS SFSB0005
BY EDWIN B. SEIDMAN SFSB0006
(PROFESSIONAL SERVICES GROUP, BURROUGHS CORPORATION) SFSB0007
CARD SEQUENCE STARTS WITH SFSB0001 SFSB0008
FIRST RELEASE DATE : 7-15-64 SFSB0009
SFSB0010
INPUT PARAMETERS : SFSB0011
V - NUMBER OF INDEPENDENT VARIABLES SFSB0012
DATA - ORDERED SET OF VALUES OF THE INDEPENDENT SFSB0013
VARIABLES, REAL ARRAY SFSB0014
ALEPH - ALPHA COEFFICIENTS FROM SURFACE FIT, REAL SFSB0015
ARRAY SFSB0016
BETA - BETA COEFFICIENTS FROM SURFACE FIT, REAL SFSB0017
ARRAY SFSB0018
P - NUMBER OF ORTHOGONAL POLYNOMIALS IN EACH SFSB0019
INDEPENDENT VARIABLE, INTEGER ARRAY SFSB0020
S - CALLS FOR PARTIAL DERIVATIVES, BOOLEAN ARRAY SFSB0021
SFSB0022
OUTPUT PARAMETERS : SFSB0023
PHI - VALUE OF DEPENDENT VARIABLE, REAL SFSB0024
SUM - ORDERED SET OF PARTIAL DERIVATIVES ; SFSB0025
SFSB0026
VALUE V ; SFSB0027
INTEGER V ; SFSB0028
INTEGER ARRAY P[0] ; SFSB0029
BOOLEAN ARRAY S[0] ; SFSB0030
REAL ARRAY DATA[0], ALEPH[0,0], BETA[0,0], COEFF[0], SUM[0] ; SFSB0031
REAL PHI ; SFSB0032
SFSB0033
BEGIN SFSB0034
DEFINE TADD = TI1S1 #, ADD = TI1S2 #, DEGREE = TI1S3 #, SFSB0035
POLY = TR1S1 #, TT = TR1S2 # ; SFSB0036
INTEGER KV, M, T, I, D, PV ; SFSB0037
BOOLEAN B ; SFSB0038
REAL DATUM ; SFSB0039
LABEL POLYCOMPUTE, PARTCOMPUTE, D2, BACK, HERE, FINI, DEPENDENT;SFSB0040
SFSB0041
TADD[1] ~ ADD[1] ~ T ~ 1 ; SFSB0042
SFSB0043
FOR M ~ 1 STEP 1 UNTIL V DO SFSB0044
BEGIN SFSB0045
DATUM ~ DATA[M] ; SUM[M] ~ 0 ; SFSB0046
SFSB0047
COMMENT EVALUATE THE POLYNOMIALS ; SFSB0048
SFSB0049
POLYCOMPUTE : SFSB0050
BEGIN SFSB0051
POLY[T] ~ 1.0 ; SFSB0052
POLY[T+1] ~ DATUM + ALEPH[M,1] ; T ~ T + 2 ; SFSB0053
SFSB0054
FOR I ~ 2 STEP 1 UNTIL P[M] DO SFSB0055
BEGIN SFSB0056
POLY[T] ~ (ALEPH[M,I] + DATUM) | POLY[T-1] + SFSB0057
BETA[M,I] | POLY[T-2] ; SFSB0058
T ~ T + 1 SFSB0059
END SFSB0060
END POLYCOMPUTE ; SFSB0061
TADD[M+1] ~ ADD[M+1] ~ T SFSB0062
END ; SFSB0063
B ~ FALSE ; SFSB0064
SFSB0065
COMMENT COMPUTE THE DEPENDENT VARIABLE OR THE PARTIAL ; SFSB0066
SFSB0067
DEPENDENT : SFSB0068
BEGIN SFSB0069
D ~ 1 ; SFSB0070
SFSB0071
FOR M ~ 1 STEP 1 UNTIL V DO SFSB0072
BEGIN SFSB0073
DEGREE[M] ~ TADD[M] ; TT[M] ~ 0 SFSB0074
END ; SFSB0075
PV ~ TADD[V] + P[V] ; SFSB0076
SFSB0077
BACK : FOR I ~ TADD[V] STEP 1 UNTIL PV DO SFSB0078
BEGIN SFSB0079
TT[V] ~ COEFF[D] | POLY[I] + TT[V] ; SFSB0080
D ~ D + 1 SFSB0081
END ; SFSB0082
IF V = 1 THEN GO TO FINI ; SFSB0083
M ~ V - 1 ; SFSB0084
SFSB0085
HERE : TT[M] ~ POLY[DEGREE[M]] | TT[M+1] + TT[M] ; SFSB0086
TT[M+1] ~ 0 ; SFSB0087
DEGREE[M] ~ DEGREE[M] + 1 ; SFSB0088
IF DEGREE[M] { TADD[M] + P[M] THEN GO TO BACK ; SFSB0089
IF M = 1 THEN GO TO FINI ; SFSB0090
DEGREE[M] ~ TADD[M] ; M ~ M - 1 ; SFSB0091
GO TO HERE ; SFSB0092
SFSB0093
FINI : IF B THEN SFSB0094
BEGIN SFSB0095
SUM[KV] ~ TT[1] ; GO TO D2 SFSB0096
END ; SFSB0097
PHI ~ TT[1] SFSB0098
END DEPENDENT ; SFSB0099
SFSB0100
FOR KV ~ 1 STEP 1 UNTIL V DO SFSB0101
BEGIN SFSB0102
M ~ KV ; SFSB0103
IF S[M] THEN SFSB0104
BEGIN SFSB0105
DATUM ~ DATA[M] ; SFSB0106
SFSB0107
COMMENT EVALUATE THE PARTIAL POLYNOMIALS ; SFSB0108
SFSB0109
PARTCOMPUTE : SFSB0110
BEGIN SFSB0111
POLY[T] ~ 0 ; POLY[T+1] ~ 1.0 ; SFSB0112
T ~ T + 2 ; SFSB0113
SFSB0114
FOR I ~ 2 STEP 1 UNTIL P[M] DO SFSB0115
BEGIN SFSB0116
POLY[T] ~ (ALEPH[M,I] + DATUM) | POLY[T-1] + SFSB0117
POLY[ADD[M]+I-1] + BETA[M,I] | POLY[T-2] ; SFSB0118
T ~ T + 1 SFSB0119
END SFSB0120
END PARTCOMPUTE ; SFSB0121
T ~ TADD[M] ~ ADD[V+1] ; B ~ TRUE ; SFSB0122
GO TO DEPENDENT ; SFSB0123
SFSB0124
D2 : TADD[KV] ~ ADD[KV] SFSB0125
END SFSB0126
END SFSB0127
END PHIPART ; SFSB0128