Trailing-Edge
-
PDP-10 Archives
-
decuslib20-02
-
decus/20-0026/teas.ssp
There are 2 other files named teas.ssp in the archive. Click here to see a list.
C TEAS 10
C ..................................................................TEAS 20
C TEAS 30
C SUBROUTINE TEAS TEAS 40
C TEAS 50
C PURPOSE TEAS 60
C CALCULATE THE LIMIT OF A GIVEN SEQUENCE BY MEANS OF THE TEAS 70
C EPSILON-ALGORITHM. TEAS 80
C TEAS 90
C USAGE TEAS 100
C CALL TEAS(X,N,FIN,EPS,IER) TEAS 110
C TEAS 120
C DESCRIPTION OF PARAMETERS TEAS 130
C X - VECTOR WHOSE COMPONENTS ARE TERMS OF THE GIVEN TEAS 140
C SEQUENCE. ON RETURN THE COMPONENTS OF VECTOR X TEAS 150
C ARE DESTROYED. TEAS 160
C N - DIMENSION OF INPUT VECTOR X. TEAS 170
C FIN - RESULTANT SCALAR CONTAINING ON RETURN THE LIMIT TEAS 180
C OF THE GIVEN SEQUENCE. TEAS 190
C EPS - AN INPUT VALUE, WHICH SPECIFIES THE UPPER BOUND TEAS 200
C OF THE RELATIVE (ABSOLUTE) ERROR IF THE COMPONENTS TEAS 210
C OF X ARE ABSOLUTELY GREATER (LESS) THAN ONE. TEAS 220
C CALCULATION IS TERMINATED AS SOON AS THREE TIMES INTEAS 230
C SUCCESSION THE RELATIVE (ABSOLUTE) DIFFERENCE TEAS 240
C BETWEEN NEIGHBOURING TERMS IS NOT GREATER THAN EPS.TEAS 250
C IER - RESULTANT ERROR PARAMETER CODED IN THE FOLLOWING TEAS 260
C FORM TEAS 270
C IER=0 - NO ERROR TEAS 280
C IER=1 - REQUIRED ACCURACY NOT REACHED WITH TEAS 290
C MAXIMAL NUMBER OF ITERATIONS TEAS 300
C IER=-1 - INTEGER N IS LESS THAN TEN. TEAS 310
C TEAS 320
C REMARKS TEAS 330
C NO ACTION BESIDES ERROR MESSAGE IN CASE N LESS THAN TEN. TEAS 340
C THE CHARACTER OF THE GIVEN INFINITE SEQUENCE MUST BE TEAS 350
C RECOGNIZABLE BY THOSE N COMPONENTS OF THE INPUT VECTOR X. TEAS 360
C TEAS 370
C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED TEAS 380
C NONE TEAS 390
C TEAS 400
C METHOD TEAS 410
C THE CONVERGENCE OF THE GIVEN SEQUENCE IS ACCELERATED BY TEAS 420
C MEANS OF THE E(2)-TRANSFORMATION, USED IN AN ITERATIVE WAY. TEAS 430
C FOR REFERENCE, SEE TEAS 440
C ALGORITHM 215,SHANKS, CACM 1963, NO. 11, PP. 662. AND TEAS 450
C P. WYNN, SINGULAR RULES FOR CERTAIN NON-LINEAR ALGORITHMS TEAS 460
C BIT VOL. 3, 1963, PP. 175-195. TEAS 470
C TEAS 480
C ..................................................................TEAS 490
C TEAS 500
SUBROUTINE TEAS(X,N,FIN,EPS,IER) TEAS 510
C TEAS 520
DIMENSION X(1) TEAS 530
C TEAS 540
C TEST ON WRONG INPUT PARAMETER N TEAS 550
C TEAS 560
NEW=N TEAS 570
IF(NEW-10)1,2,2 TEAS 580
1 IER=-1 TEAS 590
RETURN TEAS 600
C TEAS 610
C CALCULATE INITIAL VALUES FOR THE EPSILON ARRAY TEAS 620
C TEAS 630
2 ISW1=0 TEAS 640
ISW2=0 TEAS 650
W1=1.E38 TEAS 660
W7=X(4)-X(3) TEAS 670
IF(W7)3,4,3 TEAS 680
3 W1=1./W7 TEAS 690
C TEAS 700
4 W5=1.E38 TEAS 710
W7=X(2)-X(1) TEAS 720
IF(W7)5,6,5 TEAS 730
5 W5=1./W7 TEAS 740
C TEAS 750
6 W4=X(3)-X(2) TEAS 760
IF(W4)9,7,9 TEAS 770
7 W4=1.E38 TEAS 780
T=X(2) TEAS 790
W2=X(3) TEAS 800
8 W3=1.E38 TEAS 810
GO TO 17 TEAS 820
C TEAS 830
9 W4=1./W4 TEAS 840
C TEAS 850
T=1.E38 TEAS 860
W7=W4-W5 TEAS 870
IF(W7)10,11,10 TEAS 880
10 T=X(2)+1./W7 TEAS 890
C TEAS 900
11 W2=W1-W4 TEAS 910
IF(W2)15,12,15 TEAS 920
12 W2=1.E38 TEAS 930
IF(T-1.E38)13,14,14 TEAS 940
13 ISW2=1 TEAS 950
14 W3=W4 TEAS 960
GO TO 17 TEAS 970
C TEAS 980
15 W2=X(3)+1./W2 TEAS 990
W7=W2-T TEAS1000
IF(W7)16,8,16 TEAS1010
16 W3=W4+1./W7 TEAS1020
C TEAS1030
17 ISW1=ISW2 TEAS1040
ISW2=0 TEAS1050
IMIN=4 TEAS1060
C TEAS1070
C CALCULATE DIAGONALS OF THE EPSILON ARRAY IN A DO-LOOP TEAS1080
C TEAS1090
DO 40 I=5,NEW TEAS1100
IAUS=I-IMIN TEAS1110
W4=1.E38 TEAS1120
W5=X(I-1) TEAS1130
W7=X(I)-X(I-1) TEAS1140
IF(W7)18,24,18 TEAS1150
18 W4=1./W7 TEAS1160
C TEAS1170
IF(W1-1.E38)19,25,25 TEAS1180
19 W6=W4-W1 TEAS1190
C TEAS1200
C TEST FOR NECESSITY OF A SINGULAR RULE TEAS1210
C TEAS1220
IF(ABS(W6)-ABS(W4)*1.E-4)20,20,22 TEAS1230
20 ISW2=1 TEAS1240
IF(W6)22,21,22 TEAS1250
21 W5=1.E38 TEAS1260
W6=W1 TEAS1270
IF(W2-1.E38)28,26,26 TEAS1280
22 W5=X(I-1)+1./W6 TEAS1290
C TEAS1300
C FIRST TEST FOR LOSS OF SIGNIFICANCE TEAS1310
C TEAS1320
IF(ABS(W5)-ABS(X(I-1))*1.E-5)23,24,24 TEAS1330
23 IF(W5)36,24,36 TEAS1340
C TEAS1350
24 W7=W5-W2 TEAS1360
IF(W7)27,25,27 TEAS1370
25 W6=1.E38 TEAS1380
26 ISW2=0 TEAS1390
X(IAUS)=W2 TEAS1400
GO TO 37 TEAS1410
27 W6=W1+1./W7 TEAS1420
28 IF(ISW1-1)33,29,29 TEAS1430
C TEAS1440
C CALCULATE X(IAUS) WITH HELP OF SINGULAR RULE TEAS1450
C TEAS1460
29 IF(W2-1.E38)30,32,32 TEAS1470
30 W7=W5/(W2-W5)+T/(W2-T)+X(I-2)/(X(I-2)-W2) TEAS1480
IF(1.+W7)31,38,31 TEAS1490
31 X(IAUS)=W7*W2/(1.+W7) TEAS1500
GO TO 39 TEAS1510
C TEAS1520
32 X(IAUS)=W5+T-X(I-2) TEAS1530
GO TO 39 TEAS1540
C TEAS1550
33 W7=W6-W3 TEAS1560
IF(W7)34,38,34 TEAS1570
34 X(IAUS)=W2+1./W7 TEAS1580
C TEAS1590
C SECOND TEST FOR LOSS OF SIGNIFICANCE TEAS1600
C TEAS1610
IF(ABS(X(IAUS))-ABS(W2)*1.E-5)35,37,37 TEAS1620
35 IF(X(IAUS))36,37,36 TEAS1630
C TEAS1640
36 NEW=IAUS-1 TEAS1650
ISW2=0 TEAS1660
GO TO 41 TEAS1670
C TEAS1680
37 IF(W2-1.E38)39,38,38 TEAS1690
38 X(IAUS)=1.E38 TEAS1700
IMIN=I TEAS1710
C TEAS1720
39 W1=W4 TEAS1730
T=W2 TEAS1740
W2=W5 TEAS1750
W3=W6 TEAS1760
ISW1=ISW2 TEAS1770
40 ISW2=0 TEAS1780
C TEAS1790
NEW=NEW-IMIN TEAS1800
C TEAS1810
C TEST FOR ACCURACY TEAS1820
C TEAS1830
41 IEND=NEW-1 TEAS1840
DO 47 I=1,IEND TEAS1850
W1=ABS(X(I)-X(I+1)) TEAS1860
W2=ABS(X(I+1)) TEAS1870
IF(W1-EPS)44,44,42 TEAS1880
42 IF(W2-1.)46,46,43 TEAS1890
43 IF(W1-EPS*W2)44,44,46 TEAS1900
44 ISW2=ISW2+1 TEAS1910
IF(3-ISW2)45,45,47 TEAS1920
45 FIN=X(I) TEAS1930
IER=0 TEAS1940
RETURN TEAS1950
C TEAS1960
46 ISW2=0 TEAS1970
47 CONTINUE TEAS1980
C TEAS1990
IF(NEW-6)48,2,2 TEAS2000
48 FIN=X(NEW) TEAS2010
IER=1 TEAS2020
RETURN TEAS2030
END TEAS2040