Trailing-Edge
-
PDP-10 Archives
-
decuslib20-02
-
decus/20-0026/dtlap.ssp
There are 2 other files named dtlap.ssp in the archive. Click here to see a list.
C DTLA 10
C ..................................................................DTLA 20
C DTLA 30
C SUBROUTINE DTLAP DTLA 40
C DTLA 50
C PURPOSE DTLA 60
C A SERIES EXPANSION IN LAGUERRE POLYNOMIALS WITH INDEPENDENT DTLA 70
C VARIABLE X IS TRANSFORMED TO A POLYNOMIAL WITH INDEPENDENT DTLA 80
C VARIABLE Z, WHERE X=A*Z+B DTLA 90
C DTLA 100
C USAGE DTLA 110
C CALL DTLAP(A,B,POL,N,C,WORK) DTLA 120
C DTLA 130
C DESCRIPTION OF PARAMETERS DTLA 140
C A - FACTOR OF LINEAR TERM IN GIVEN LINEAR TRANSFORMATIONDTLA 150
C DOUBLE PRECISION VARIABLE DTLA 160
C B - CONSTANT TERM IN GIVEN LINEAR TRANSFORMATION DTLA 170
C DOUBLE PRECISION VARIABLE DTLA 180
C POL - COEFFICIENT VECTOR OF POLYNOMIAL (RESULTANT VALUE) DTLA 190
C COEFFICIENTS ARE ORDERED FROM LOW TO HIGH DTLA 200
C DOUBLE PRECISION VECTOR DTLA 210
C N - DIMENSION OF COEFFICIENT VECTORS POL AND C DTLA 220
C C - GIVEN COEFFICIENT VECTOR OF EXPANSION DTLA 230
C COEFFICIENTS ARE ORDERED FROM LOW TO HIGH DTLA 240
C POL AND C MAY BE IDENTICALLY LOCATED DTLA 250
C DOUBLE PRECISION VECTOR DTLA 260
C WORK - WORKING STORAGE OF DIMENSION 2*N DTLA 270
C DOUBLE PRECISION ARRAY DTLA 280
C DTLA 290
C REMARKS DTLA 300
C COEFFICIENT VECTOR C REMAINS UNCHANGED IF NOT COINCIDING DTLA 310
C WITH COEFFICIENT VECTOR POL. DTLA 320
C OPERATION IS BYPASSED IN CASE N LESS THAN 1. DTLA 330
C THE LINEAR TRANSFORMATION X=A*Z+B OR Z=(1/A)(X-B) TRANSFORMSDTLA 340
C THE RANGE (0,C) IN X TO THE RANGE (ZL,ZR) IN Z, WHERE DTLA 350
C ZL=-B/A AND ZR=(C-B)/A. DTLA 360
C FOR GIVEN ZL, ZR AND C WE HAVE A=C/(ZR-ZL) AND DTLA 370
C B=-C*ZL/(ZR-ZL) DTLA 380
C DTLA 390
C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED DTLA 400
C NONE DTLA 410
C DTLA 420
C METHOD DTLA 430
C THE TRANSFORMATION IS BASED ON THE RECURRENCE EQUATION DTLA 440
C FOR LAGUERRE POLYNOMIALS L(N,X) DTLA 450
C L(N+1,X)=2*L(N,X)-L(N-1,X)-((1+X)*L(N,X)-L(N-1,X))/(N+1), DTLA 460
C WHERE THE FIRST TERM IN BRACKETS IS THE INDEX, DTLA 470
C THE SECOND IS THE ARGUMENT. DTLA 480
C STARTING VALUES ARE L(0,X)=1, L(1,X)=1-X. DTLA 490
C THE TRANSFORMATION IS IMPLICITLY DEFINED BY MEANS OF DTLA 500
C X=A*Z+B TOGETHER WITH DTLA 510
C SUM(POL(I)*Z**(I-1), SUMMED OVER I FROM 1 TO N) DTLA 520
C =SUM(C(I)*L(I-1,X), SUMMED OVER I FROM 1 TO N). DTLA 530
C DTLA 540
C ..................................................................DTLA 550
C DTLA 560
SUBROUTINE DTLAP(A,B,POL,N,C,WORK) DTLA 570
C DTLA 580
DIMENSION POL(1),C(1),WORK(1) DTLA 590
DOUBLE PRECISION A,B,POL,C,WORK,H,P,Q,Q1,Q2,FI DTLA 600
C DTLA 610
C TEST OF DIMENSION DTLA 620
IF(N-1)2,1,3 DTLA 630
C DTLA 640
C DIMENSION LESS THAN 2 DTLA 650
1 POL(1)=C(1) DTLA 660
2 RETURN DTLA 670
C DTLA 680
3 POL(1)=C(1)+C(2)-B*C(2) DTLA 690
POL(2)=-C(2)*A DTLA 700
IF(N-2)2,2,4 DTLA 710
C DTLA 720
C INITIALIZATION DTLA 730
4 WORK(1)=1.D0 DTLA 740
WORK(2)=1.D0-B DTLA 750
WORK(3)=0.D0 DTLA 760
WORK(4)=-A DTLA 770
FI=1.D0 DTLA 780
C DTLA 790
C CALCULATE COEFFICIENT VECTOR OF NEXT LAGUERRE POLYNOMIAL DTLA 800
C AND ADD MULTIPLE OF THIS VECTOR TO POLYNOMIAL POL DTLA 810
DO 6 J=3,N DTLA 820
FI=FI+1.D0 DTLA 830
Q=1.D0/FI DTLA 840
Q1=Q-1.D0 DTLA 850
Q2=1.D0-Q1-B*Q DTLA 860
Q=Q*A DTLA 870
P=0.D0 DTLA 880
C DTLA 890
DO 5 K=2,J DTLA 900
H=-P*Q+WORK(2*K-2)*Q2+WORK(2*K-3)*Q1 DTLA 910
P=WORK(2*K-2) DTLA 920
WORK(2*K-2)=H DTLA 930
WORK(2*K-3)=P DTLA 940
5 POL(K-1)=POL(K-1)+H*C(J) DTLA 950
WORK(2*J-1)=0.D0 DTLA 960
WORK(2*J)=-Q*P DTLA 970
6 POL(J)=C(J)*WORK(2*J) DTLA 980
RETURN DTLA 990
END DTLA1000