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