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

72 lines
4.8 KiB
Plaintext

BEGIN CMNT0001
COMMENT THIS PROCEDURE PERFORMS A TWO DIMENSIONAL INTERPOLATION. CMNT0002
THE VECTOR "X" OF LENGTH "M",AND THE VECTOR "Y" OF LENGTH CMNT0003
"N" CONTAIN THE INDEPENDENT VARIABLES. THE M|N ARRAY CMNT0004
"FXY" CONTAINS THE DEPENDENT VARIABLE. "XBAR" AND "YBAR" CMNT0005
ARE THE VALUES OVER WHICH THE INTERPOLATION TAKES PLACE. CMNT0006
"EPS" IS THE SAME AS IN THE UNIVARIATE INTERPOLATION. CMNT0007
R.D. RODMAN, CMNT0008
PROFESSIONAL SERVICES DIVISIONAL GROUP, CMNT0009
CARD SEQUENCE BEGINS WITH BVAR0001, CMNT0010
FIRST RELEASE 8/63 ; CMNT0011
REAL PROCEDURE BIVARIATE(M, N, X, Y, FXY, XBAR,YBAR, EPS) ; BVAR0001
VALUE M, N, XBAR, YBAR, EPS ; BVAR0002
INTEGER M, N ; BVAR0003
REAL XBAR, YBAR, EPS ; BVAR0004
REAL ARRAY X, Y[0], FXY[0,0] ; BVAR0005
BEGIN BVAR0006
INTEGER I ; BVAR0007
REAL ARRAY FTEMP[0:M] ; BVAR0008
REAL PROCEDURE INTERPOLATE(N, X, Y, XBAR, EPS) ; BVAR0009
VALUE N, XBAR, EPS ; BVAR0010
INTEGER N ; BVAR0011
REAL XBAR, EPS ; BVAR0012
REAL ARRAY X, Y[0] ; BVAR0013
BEGIN BVAR0014
LABEL EXIT ; BVAR0015
INTEGER I, J, K, I1 ; BVAR0016
REAL T1, T2 ; BVAR0017
REAL ARRAY A[0:N,0:N], B[0:N] ; BVAR0018
FOR I ~ 1 STEP 1 UNTIL N DO BVAR0019
BEGIN BVAR0020
B[I] ~ X[I] - XBAR ; BVAR0021
A[I,1] ~ Y[I] BVAR0022
END ; BVAR0023
FOR I ~ 1 STEP 1 UNTIL N DO FOR J ~ I+1 STEP 1 UNTIL N DO BVAR0024
BEGIN BVAR0025
IF ABS(B[I]) > ABS(B[J]) THEN BVAR0026
BEGIN BVAR0027
T1 ~ B[I] ; B[I] ~ B[J] ; B[J] ~ T1 ; BVAR0028
T1 ~ A[I,1] ; A[I,1] ~ A[J,1] ; A[J,1] ~ T1 BVAR0029
END BVAR0030
END ; BVAR0031
FOR I ~ 2 STEP 1 UNTIL N DO BVAR0032
BEGIN BVAR0033
I1 ~ I-1 ; T2 ~ A[I1,I1] ; BVAR0034
FOR J ~ I STEP 1 UNTIL N DO BVAR0035
A[I,J] ~ (T2 | B[J] - A[J,I1] | B[I1]) / (B[J] - B[I1]) ; BVAR0036
T1 ~ A[I,I] ; BVAR0037
IF ABS((T1 - T2) / T1) { EPS THEN BVAR0038
BEGIN BVAR0039
INTERPOLATE ~ T1 ; GO TO EXIT BVAR0040
END BVAR0041
END ; BVAR0042
INTERPOLATE ~ T1 ; BVAR0043
EXIT: END ; BVAR0044
FOR I ~ 1 STEP 1 UNTIL M DO BVAR0045
FTEMP[I] ~ INTERPOLATE(N, X, FXY[I,*], XBAR, EPS) ; BVAR0046
BIVARIATE ~ INTERPOLATE(M, Y, FTEMP, YBAR, EPS) ; BVAR0047
END ; BVAR0048
END. CMNT0012