Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-02 - decus/20-0026/eli2.ssp
There are 2 other files named eli2.ssp in the archive. Click here to see a list.
C                                                                       ELI2  10
C     ..................................................................ELI2  20
C                                                                       ELI2  30
C        SUBROUTINE ELI2                                                ELI2  40
C                                                                       ELI2  50
C        PURPOSE                                                        ELI2  60
C           COMPUTES THE GENERALIZED ELLIPTIC INTEGRAL OF SECOND KIND   ELI2  70
C                                                                       ELI2  80
C        USAGE                                                          ELI2  90
C           CALL ELI2(R,X,CK,A,B)                                       ELI2 100
C                                                                       ELI2 110
C        DESCRIPTION OF PARAMETERS                                      ELI2 120
C           R     - RESULT VALUE                                        ELI2 130
C           X     - UPPER INTEGRATION BOUND (ARGUMENT OF ELLIPTIC       ELI2 140
C                   INTEGRAL OF SECOND KIND)                            ELI2 150
C           CK    - COMPLEMENTARY MODULUS                               ELI2 160
C           A     - CONSTANT TERM IN NUMERATOR                          ELI2 170
C           B     - QUADRATIC TERM IN NUMERATOR                         ELI2 180
C                                                                       ELI2 190
C        REMARKS                                                        ELI2 200
C           MODULUS K = SQRT(1.-CK*CK).                                 ELI2 210
C           SPECIAL CASES OF THE GENERALIZED ELLIPTIC INTEGRAL OF       ELI2 220
C           SECOND KIND ARE                                             ELI2 230
C           F(ATAN(X),K) OBTAINED WITH A=1., B=1.                       ELI2 240
C           E(ATAN(X),K) OBTAINED WITH A=1., B=CK*CK.                   ELI2 250
C           B(ATAN(X),K) OBTAINED WITH A=1., B=0.                       ELI2 260
C           D(ATAN(X),K) OBTAINED WITH A=0., B=1.                       ELI2 270
C                                                                       ELI2 280
C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED                  ELI2 290
C           NONE                                                        ELI2 300
C                                                                       ELI2 310
C        METHOD                                                         ELI2 320
C           DEFINITION                                                  ELI2 330
C           R=INTEGRAL((A+B*T*T)/(SQRT((1+T*T)*(1+(CK*T)**2))*(1+T*T)), ELI2 340
C                  SUMMED OVER T FROM 0 TO X).                          ELI2 350
C           EQUIVALENT IS THE DEFINITION                                ELI2 360
C           R=INTEGRAL((A+(B-A)*(SIN(T))**2)/SQRT(1-(K*SIN(T))**2),     ELI2 370
C                  SUMMED OVER T FROM 0 TO ATAN(X)).                    ELI2 380
C           EVALUATION                                                  ELI2 390
C           LANDENS TRANSFORMATION IS USED FOR CALCULATION.             ELI2 400
C           REFERENCE                                                   ELI2 410
C           R. BULIRSCH, NUMERICAL CALCULATION OF ELLIPTIC INTEGRALS ANDELI2 420
C                  ELLIPTIC FUNCTIONS                                   ELI2 430
C                  HANDBOOK SERIES OF SPECIAL FUNCTIONS                 ELI2 440
C                  NUMERISCHE MATHEMATIK VOL. 7, 1965, PP. 78-90.       ELI2 450
C                                                                       ELI2 460
C     ..................................................................ELI2 470
C                                                                       ELI2 480
      SUBROUTINE ELI2(R,X,CK,A,B)                                       ELI2 490
C        TEST ARGUMENT                                                  ELI2 500
      IF(X)2,1,2                                                        ELI2 510
    1 R=0.                                                              ELI2 520
      RETURN                                                            ELI2 530
C        TEST MODULUS                                                   ELI2 540
    2 C=0.                                                              ELI2 550
      D=0.5                                                             ELI2 560
      IF(CK)7,3,7                                                       ELI2 570
    3 R=SQRT(1.+X*X)                                                    ELI2 580
      R=(A-B)*ABS(X)/R+B*ALOG(ABS(X)+R)                                 ELI2 590
C        TEST SIGN OF ARGUMENT                                          ELI2 600
    4 R=R+C*(A-B)                                                       ELI2 610
      IF(X)5,6,6                                                        ELI2 620
    5 R=-R                                                              ELI2 630
    6 RETURN                                                            ELI2 640
C        INITIALIZATION                                                 ELI2 650
    7 AN=(B+A)*0.5                                                      ELI2 660
      AA=A                                                              ELI2 670
      R=B                                                               ELI2 680
      ANG=ABS(1./X)                                                     ELI2 690
      PIM=0.                                                            ELI2 700
      ISI=0                                                             ELI2 710
      ARI=1.                                                            ELI2 720
      GEO=ABS(CK)                                                       ELI2 730
C        LANDEN TRANSFORMATION                                          ELI2 740
    8 R=AA*GEO+R                                                        ELI2 750
      SGEO=ARI*GEO                                                      ELI2 760
      AA=AN                                                             ELI2 770
      AARI=ARI                                                          ELI2 780
C        ARITHMETIC MEAN                                                ELI2 790
      ARI=GEO+ARI                                                       ELI2 800
C        SUM OF SINE VALUES                                             ELI2 810
      AN=(R/ARI+AA)*0.5                                                 ELI2 820
      AANG=ABS(ANG)                                                     ELI2 830
      ANG=-SGEO/ANG+ANG                                                 ELI2 840
      PIMA=PIM                                                          ELI2 850
      IF(ANG)10,9,11                                                    ELI2 860
    9 ANG=-1.E-8*AANG                                                   ELI2 870
   10 PIM=PIM+3.1415927                                                 ELI2 880
      ISI=ISI+1                                                         ELI2 890
   11 AANG=ARI*ARI+ANG*ANG                                              ELI2 900
      P=D/SQRT(AANG)                                                    ELI2 910
      IF(ISI-4)13,12,12                                                 ELI2 920
   12 ISI=ISI-4                                                         ELI2 930
   13 IF(ISI-2)15,14,14                                                 ELI2 940
   14 P=-P                                                              ELI2 950
   15 C=C+P                                                             ELI2 960
      D=D*(AARI-GEO)*0.5/ARI                                            ELI2 970
      IF(ABS(AARI-GEO)-1.E-4*AARI)17,17,16                              ELI2 980
   16 SGEO=SQRT(SGEO)                                                   ELI2 990
C        GEOMETRIC MEAN                                                 ELI21000
      GEO=SGEO+SGEO                                                     ELI21010
      PIM=PIM+PIMA                                                      ELI21020
      ISI=ISI+ISI                                                       ELI21030
      GOTO 8                                                            ELI21040
C        ACCURACY WAS SUFFICIENT                                        ELI21050
   17 R=(ATAN(ARI/ANG)+PIM)*AN/ARI                                      ELI21060
      C=C+D*ANG/AANG                                                    ELI21070
      GOTO 4                                                            ELI21080
      END                                                               ELI21090