Trailing-Edge
-
PDP-10 Archives
-
decuslib20-02
-
decus/20-0026/inue.ssp
There are 2 other files named inue.ssp in the archive. Click here to see a list.
C INUE 10
C ..................................................................INUE 20
C INUE 30
C SUBROUTINE INUE INUE 40
C INUE 50
C PURPOSE INUE 60
C COMPUTE THE MODIFIED BESSEL FUNCTIONS I FOR ORDERS 1 TO N INUE 70
C INUE 80
C USAGE INUE 90
C CALL INUE(X,N,ZI,RI) INUE 100
C INUE 110
C DESCRIPTION OF PARAMETERS INUE 120
C X -GIVEN ARGUMENT OF THE BESSEL FUNCTIONS I INUE 130
C N -GIVEN MAXIMUM ORDER OF BESSEL FUNCTIONS I INUE 140
C ZI -GIVEN VALUE OF BESSEL FUNCTION I OF ORDER ZERO INUE 150
C FOR ARGUMENT X INUE 160
C RI -RESULTANT VECTOR OF DIMENSION N, CONTAINING THE INUE 170
C VALUES OF THE FUNCTIONS I FOR ORDERS 1 TO N INUE 180
C INUE 190
C REMARKS INUE 200
C THE VALUE OF ZI MAY BE CALCULATED USING SUBROUTINE I0. INUE 210
C USING A DIFFERENT VALUE HAS THE EFFECT THAT ALL VALUES OF INUE 220
C BESSEL FUNCTIONS I ARE MULTIPLIED BY THE FACTOR ZI/I(0,X) INUE 230
C WHERE I(0,X) IS THE VALUE OF I FOR ORDER 0 AND ARGUMENT X. INUE 240
C THIS MAY BE USED DISADVANTAGEOUSLY IF ONLY THE RATIOS OF I INUE 250
C FOR DIFFERENT ORDERS ARE REQUIRED. INUE 260
C INUE 270
C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED INUE 280
C NONE INUE 290
C INUE 300
C METHOD INUE 310
C THE VALUES ARE OBTAINED USING BACKWARD RECURRENCE RELATION INUE 320
C TECHNIQUE. THE RATIO I(N+1,X)/I(N,X) IS OBTAINED FROM A INUE 330
C CONTINUED FRACTION. INUE 340
C FOR REFERENCE SEE INUE 350
C G. BLANCH,'NUMERICAL EVALUATION OF CONTINUED FRACTIONS', INUE 360
C SIAM REVIEW, VOL.6,NO.4,1964,PP.383-421. INUE 370
C INUE 380
C ..................................................................INUE 390
C INUE 400
SUBROUTINE INUE(X,N,ZI,RI) INUE 410
DIMENSION RI(1) INUE 420
IF(N)10,10,1 INUE 430
1 FN=N+N INUE 440
Q1=X/FN INUE 450
IF(ABS(X)-5.E-4)6,6,2 INUE 460
2 A0=1. INUE 470
A1=0. INUE 480
B0=0. INUE 490
B1=1. INUE 500
FI=FN INUE 510
3 FI=FI+2. INUE 520
AN=FI/ABS(X) INUE 530
A=AN*A1+A0 INUE 540
B=AN*B1+B0 INUE 550
A0=A1 INUE 560
B0=B1 INUE 570
A1=A INUE 580
B1=B INUE 590
Q0=Q1 INUE 600
Q1=A/B INUE 610
IF(ABS((Q1-Q0)/Q1)-1.E-6)4,4,3 INUE 620
4 IF(X)5,6,6 INUE 630
5 Q1=-Q1 INUE 640
6 K=N INUE 650
7 Q1=X/(FN+X*Q1) INUE 660
RI(K)=Q1 INUE 670
FN=FN-2. INUE 680
K=K-1 INUE 690
IF(K)8,8,7 INUE 700
8 FI=ZI INUE 710
DO 9 I=1,N INUE 720
FI=FI*RI(I) INUE 730
9 RI(I)=FI INUE 740
10 RETURN INUE 750
END INUE 760