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

59 lines
4.6 KiB
Plaintext

BEGIN 00000100
FILE IN INFILE (2,10); 00000200
FILE OUT LINE 16(4,15); 00000300
STRING CRD(80),LIN(120); 00000400
COMPLEX PROCEDURE SPF(A,B); 00000500
VALUE A,B; 00000600
COMPLEX A,B; 00000700
BEGIN 00000800
A := SQRT(A); 00000900
RETURN IF ABS(B+A) < ABS(B-A) THEN B-A ELSE B+A; 00001000
END OF SPF; 00001100
PROCEDURE MULLER(P1,P2,P3,MXM,EP1,EP2,FUNCTION); 00001200
VALUE P1,P2,P3,MXM,EP1,EP2; 00001300
REAL P1,P2,P3,EP1,EP2; 00001400
INTEGER MXM; 00001500
COMPLEX PROCEDURE FUNCTION; 00001600
BEGIN 00001700
INTEGER ITC; 00001800
COMPLEX X1,X2,X3,T1,FX1,FX2,FX3,H,LAM,DEL,G; 00001900
LABEL M9,M8,M6; 00002000
X1 := P1; X2 := P2; X3 := P3; 00002100
FX1 := FUNCTION(X1); 00002200
FX2 := FUNCTION(X2); 00002300
FX3 := FUNCTION(X3); 00002400
H := X3 - X2; 00002500
LAM := IF X2 EQL X1 THEN 1 ELSE H / (X2 - X1); 00002600
DEL := LAM + 1; 00002700
M9: IF FX1 EQL FX2 AND FX2 EQL FX3 THEN 00002800
BEGIN LAM := 1; GO TO M8; END; 00002900
T1 := 4 | FX3 | DEL | LAM | (FX1 | LAM - FX2 | DEL + FX3); 00003000
G := LAM | LAM | FX1 - DEL | DEL | FX2 + FX3 | (LAM + DEL); 00003100
LAM := (-2 | FX3 | DEL) / SPF(G | G + T1, G); 00003200
M8: ITC := ITC + 1; 00003300
X1 := X2; X2 := X3; FX1 := FX2; FX2 := FX3; 00003400
H := LAM | H; 00003500
M6: DEL := LAM + 1; X3 := X2 + H; FX3 := FUNCTION(X3); 00003600
IF FX2 NEQ 0 THEN 00003700
IF ABS(FX3/FX2) GTR 10 THEN 00003800
BEGIN LAM := LAM / 2; H := H / 2; GO TO M6; END; 00003900
IF ABS((X3-X2)/X2) GTR EP1 AND ABS(FX3) GTR EP2 AND ITC LSS MXM 00004000
THEN GO TO M9; 00004100
PRINT #THE ROOT FOUND IS#, SPACE(5), X3; 00004200
PRINT #THE FUNCTION EVALUATED AT THIS POINT IS#, SPACE(5), FX3; 00004300
END OF MULLER; 00004400
COMPLEX PROCEDURE F(Z); 00004500
VALUE Z; 00004600
COMPLEX Z; 00004700
RETURN Z|(Z|(Z|(Z|(Z|(Z|(Z|(Z+1)+3)+2)+3)-1)+3)-2)+1; 00004800
COMMENT END OF DECLARATIONS; 00004900
INPUT(INFILE,CRD,80); 00005000
OUTPUT(LINE,LIN,120); 00005100
NTS(*,11); 00005200
MULLER(READN,READN,READN,READN,READN,READN,F); 00005300
END. 00005400
THE OUTPUT FROM THE PROGRAM LOOKS LIKE THIS: 00005500
00005600
THE ROOT FOUND IS .67985375026 00005700
THE FUNCTION EVALUATED AT THIS POINT IS 2.0530168442 00005800