mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-03-02 17:44:40 +00:00
1. Commit library tape images, directories, and extracted text files. 2. Commit additional utilities under Unisys-Emode-Tools.
59 lines
4.6 KiB
Plaintext
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
|