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

80 lines
5.1 KiB
Plaintext

BEGIN CMNT0001
COMMENT EVERETT INTERPOLATION PROCEDURE CMNT0002
JOANNE K. KONDO CMNT0003
(PROFESSIONAL SERVICES, BURROUGHS CORPORATION). CMNT0004
PROCEDURE CARD SEQUENCE STARTS WITH EVER0001. CMNT0005
FIRST RELEASE 06/28/1963 ; CMNT0006
PROCEDURE EVERETT(XI,XF,X,H,Y,EPSILON,M,IE,LLABEL) ; EVER0001
VALUE XI,XF,X,H,EPSILON ; EVER0002
INTEGER M ; EVER0003
REAL XI,XF,X,H,EPSILON,IE ; EVER0004
ARRAY Y[0] ; EVER0005
LABEL LLABEL ; EVER0006
BEGIN EVER0007
INTEGER I,N,P,IV,FV,BOOL,J,L ; EVER0008
REAL XO,EO,EI,TEMP1,TEMP2,U,T ; EVER0009
LABEL LOOP,EXIT ; EVER0010
DEFINE DIFFERENCE = FOR P ~ IV STEP 1 UNTIL FV-L DO EVER0011
Y[P] ~ Y[P+1] - Y[P]# ; EVER0012
IF (X < XI) OR (X > XF) THEN GO TO LLABEL ; EVER0013
N ~ (XF-XI)/H ; BOOL ~ 0 ; EVER0014
J ~ ENTIER(N/2) ; EVER0015
IF M > N THEN M ~ N ; EVER0016
IF M MOD 2 = 1 THEN M ~ M - 1 ; EVER0017
IF M } N - 1 THEN EVER0018
BEGIN EVER0019
BOOL ~ (N+1) MOD 2 ; IV ~ 0 ; FV ~ N EVER0020
END EVER0021
ELSE EVER0022
BEGIN EVER0023
IV ~ J - ENTIER(M/2) ; FV ~ J + ENTIER(M/2) + 1 EVER0024
END ; EVER0025
XO ~ XI + J|H ; EVER0026
EI ~ U ~ (X-XO)/H ; T ~ EO ~ 1.0- U ; EVER0027
IE ~ EO|Y[J] + EI|Y[J+1] ; EVER0028
I ~ L ~ 1 ; EVER0029
LOOP: DIFFERENCE ; L ~ L + 1 ; EVER0030
TEMP1 ~ Y[J-I+1] - Y[J-I] ; EVER0031
TEMP2 ~ Y[J-I+2] - Y[J-I+1] ; EVER0032
IF (ABS(TEMP1) < EPSILON) AND (ABS(TEMP2) < EPSILON) THEN EVER0033
GO TO EXIT ; EVER0034
EO ~ EO|(T+I)|(T-I)/(4|I|I + 2|I) ; EVER0035
IF (ABS(TEMP2) < EPSILON) OR (L = M AND BOOL = 1) THEN EVER0036
BEGIN EVER0037
IE ~ IE + EO| TEMP1 ; GO TO EXIT EVER0038
END ; EVER0039
EI ~ EI|(U+I)|(U-I)/(4|I|I + 2|I) ; EVER0040
IF ABS(TEMP1) < EPSILON THEN EVER0041
BEGIN EVER0042
IE ~ IE + EI| TEMP2 ; GO TO EXIT EVER0043
END ; EVER0044
IE ~ IE + EO|TEMP1 + EI|TEMP2 ; EVER0045
IF L = M THEN GO TO EXIT ; EVER0046
DIFFERENCE ; L ~ L + 1 ; I ~ I + 1 ; EVER0047
GO TO LOOP ; EVER0048
EXIT: END ; EVER0049
END . CMNT0007
TEST CASE DATA.
.9550 .9650 .0005 20
.81631374 .81660244 .81689094 .81717924 .81746732 .81775521 .81804289
.81833037 .81861764 .81890471 .81919157 .81947823 .81976468 .82005093
.82033697 .82062281 .82090844 .82119387 .82147909 .82176410 .82204892
.9571 .00000001 20
.9598 .0000001 20
.9602 .00000001 20
.9632 .00000001 20
.6800 .6900 .0005 20
.80866138 .80948868 .81031665 .81114529 .81197460 .81280459 .81363526
.81446660 .81529861 .81613131 .81696468 .81779874 .81863348 .81946890
.82030501 .82114180 .82197928 .82281745 .82365631 .82449586 .82533611
.6887 .0000001 20
.6852 .0000001 20
.6847 .0000001 20