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