NUMAL Section 6.10.3

BEGIN SECTION : 6.10.3 (December, 1978)

AUTHOR: M. BAKKER.

INSTITUTE: MATHEMATICAL CENTRE.

BRIEF DESCRIPTION:

    THIS SECTION CONTAINS THE PROCEDURES

    SPHER BESS J:
        THIS PROCEDURE CALCULATES THE SPHERICAL BESSEL FUNCTIONS
        J[K+.5](X)*SQRT(PI/(2*X)),K=0, ..., N, WHERE J[K+.5](X)
        DENOTES THE BESSEL FUNCTION OF THE FIRST KIND OF ORDER K+.5;
        X>= 0;

    SPHER BESS Y:
        THIS PROCEDURE CALCULATES THE SPHERICAL BESSEL FUNCTIONS
        Y[K+.5](X)*SQRT(PI/(2*X)), K=0, ..., N, WHERE Y[K+.5](X)
        DENOTES THE BESSEL FUNCTION OF THE THIRD KIND OF ORDER K+.5;
        X SHOULD BE POSITIVE;

    SPHER BESS I:
        THIS PROCEDURE CALCULATES THE MODIFIED SPHERICAL BESSEL
        FUNCTIONS I[K+.5](X)*SQRT(PI/(2*X))), K=0, ..., N,
        WHERE I[K+.5](X) DENOTES THE MODIFIED BESSEL FUNCTION OF THE
        FIRST KIND OF ORDER K+.5; X>=0;

    NONEXP SPHER BESS I:
        THIS   PROCEDURE   CALCULATES  THE  MODIFIED  SPHERICAL  BESSEL
        FUNCTIONS MULTIPIED BY EXP(-X)
              EXP(-X)*I[K+.5](X)*SQRT(PI/(2*X)), K=0, ...,N,
        WHERE I[K+.5](X) DENOTES THE MODIFIED BESSEL FUNCTION
        OF THE FIRST KIND OF ORDER K+.5; X>= 0;

    SPHER BESS K:
        THIS PROCEDURE CALCULATES THE MODIFIED SPHERICAL BESSEL
        FUNCTIONS
            K[I+.5](X)*SQRT(PI/(2*X)), I=0, ...,N,
        WHERE K[I+.5](X) DENOTES THE MODIFIED BESSEL FUNCTION
        OF THE THIRD KIND OF ORDER I+.5; X>0;

    NONEXP SPHER BESS K:
        THIS   PROCEDURE   CALCULATES  THE  MODIFIED  SPHERICAL  BESSEL
        FUNCTIONS  MULTIPLIED BY EXP(+X)
            EXP(+X)*K[I+.5](X)*SQRT(PI/(2*X)), I=0, ..., N,
        WHERE K[I+.5](X) DENOTES THE MODIFIED BESSEL
        FUNCTION OF THE THIRD KIND OF ORDER I+.5; X>0;

KEYWORDS:

    BESSEL FUNCTIONS,
    SPHERICAL BESSEL FUNCTIONS,
    MODIFIED SPHERICAL BESSEL FUNCTIONS.

REFERENCES:

    [1]. ABRAMOWITZ, M., AND STEGUN, I. (EDS),
        HANDBOOK OF MATHEMATICAL FUNCTIONS WITH FORMULAS, GRAPHS AND
        MATHEMATICAL TABLES.
        APPL. MATH. SER. 55, U.S. GOVT. PRINTING OFFICE,
        WASHINGTON, D.C. , 1974.

    [2]. GAUTSCHI, W., COMPUTATIONAL ASPECTS OF
        THREE TERM RECURRENCE RELATIONS.
        SIAM REVIEW, VOLUME 9(1967), NUMBER 1, P.24 FF.


SUBSECTION: SPHER BESS J.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" SPHER BESS J (X, N, J); "VALUE" X, N;
    "REAL" X; "INTEGER" N; "ARRAY" J;
    "CODE" 35150;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    X:  < ARITHMETIC EXPRESSION >;
        THE VALUE OF THE ARGUMENT; X > = 0;
    N:  < ARITHMETIC EXPRESSION >;
        THE UPPER BOUND OF THE INDICES OF THE ARRAY J; N > = 0;
    J:  < ARRAY IDENTIFIER >;
        "ARRAY" J[0:N];
        EXIT:  J[K] HAS THE VALUE OF THE SPHERICAL BESSEL FUNCTION
               J[K+.5](X) * SQRT(PI/(2*X)), 0< = K < = N;

PROCEDURES USED: START  =  CP 35185.

REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.

METHOD AND PERFORMANCE:

    AT FIRST THE RATIO OF TWO CONSEQUENT ARRAY ELEMENTS
    IS COMPUTED BY MEANS OF A BACKWARD RECURRENCE
    FORMULA USING MILLER 'S METHOD (SEE[2, P.46-52])
    AND HENCE ALL THE ARRAY ELEMENTS ARE COMPUTED SINCE
    THE ZEROTH ELEMENT IS KNOWN TO BE SIN(X)/X.
    THE STARTING VALUE IS COMPUTED BY START.

RUNNING TIME:

    ROUGHLY PROPERTIONAL TO THE MAXIMUM OF X AND N.

EXAMPLE OF USE:

    THE PROGRAM

    "BEGIN" "REAL" X  ; "ARRAY" J[0:2]; "INTEGER" N;
        X:= 1.5; N:= 2; SPHER BESS J(X, N, J);
        OUTPUT(61, "("/, "("X=")" D.D, B"("N=")"D,/,
        3(3B-.14D"-ZD)")", X, N, J[0], J[1], J[2])
    "END"

    PRINTS THE FOLLOWING RESULTS:

    X=1.5  N=2
    .66499665773603"0  .3961729707122"0  .12734928368841"0


SUBSECTION: SPHER BESS Y.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" SPHER BESS Y(X, N, Y); "VALUE" X, N;
    "REAL" X; "INTEGER" N; "ARRAY" Y;
    "CODE" 35151;

    THE MEANING OF THE FORMAL PARAMETERS IS :
    X:  < ARITHMETIC EXPRESSION >;
        THE ARGUMENT OF THE BESSEL FUNCTIONS; X > 0;
    N:  < ARITHMETIC EXPRESSION >;
        THE UPPER BOUND OF THE INDICES OF THE ARRAY Y; N > = 0;
    Y:  < ARRAY IDENTIFIER >;
        "ARRAY" Y[0:N];
        EXIT:  Y[K] HAS THE VALUE OF THE K-TH SPHERICAL
               BESSEL FUNCTION OF THE SECOND KIND;

PROCEDURES USED: NONE.

REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.

METHOD AND PERFORMANCE:

    Y[0] AND Y[1] ARE GIVEN IN [1, P.438, FORMULA 10.1.12]
    AND Y[2], ..., Y[N] ARE COMPUTED BY USING THE
    RECURRENCE FORMULA

        Y[K]:= ((2*K-1)/X) * Y[K-1] - Y[K-2], K > = 2.

EXAMPLE OF USE:

    THE PROGRAM

    "BEGIN" "REAL" X; "INTEGER" N; "ARRAY" Y[0:2];
        X:= 1.5707 96326 79489; "COMMENT" X= PI/2; N:= 2;
        SPHER BESS Y(X, N, Y);
        OUTPUT(61, "("2(4B-.10D"-ZD), /,
                      3(4B-.10D"-ZD)")", X, N, Y)
    "END"

    PRINTS THE FOLLOWING RESULTS:

    .15707963271"1  .2000000000"1
    -.6223649549"-13  -.6366197724"0  -.1215854204"1


SUBSECTION: SPHER BESS I.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" SPHER BESS I(X, N, I); "VALUE" X, N;
    "REAL" X; "INTEGER" N; "ARRAY" I;
    "CODE" 35152;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    X:  < ARITHMETIC EXPRESSION >;
        THE ARGUMENT OF THE BESSEL FUNCTIONS; X > = 0;
    N:  < ARITHMETIC EXPRESSION >;
        THE UPPER BOUND OF THE INDICES  OF THE ARRAY I; N > = 0;
    I:  < ARRAY IDENTIFIER >;
        "ARRAY" I[0:N];
        EXIT:  I[K] HAS THE VALUE OF THE MODIFIED SPHERICAL
               BESSEL FUNCTION AS DESCRIBED IN [1, CH.10.2].

METHOD AND PERFORMANCE:
    AT FIRST THE NONEXPONENTIAL MODIFIED SPHERICAL BESSEL FUNCTIONS
    ARE COMPUTED BY USING THE PROCEDURE NONEXP SPHER BESS I;
    AFTERWARDS THEY ARE MULTIPLIED BY EXP(X).

REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.

PROCEDURES USED: NONEXP SPHER BESS I    =  CP 35154.

EXAMPLE OF USE:

    THE PROGRAM SHOWS THAT THE RESULTS OF SPHER BESS I AND
    NONEXP SPHER BESS I DIFFER ONLY BY A FACTOR EXP(X):

    "BEGIN" "REAL" X, EXPX; "INTEGER" N; "ARRAY" I1, I2[0:3];
        X:=1; EXPX:= EXP(X); N:= 3; SPHER BESS I(X, N,I1);
        NONEXPSPHER BESS I(X, N, I2);"FOR" N:=0, 1, 2, 3 "DO"
        OUTPUT(61, "("/ZD, 2(5B-.14D"-ZD)")", N, I1[N], I2[N]*EXPX)
    "END"

    RESULTS:

    0  .11752011936438" 1    .11752011936438" 1
    1  .36787944117144" 0    .36787944117144" 0
    2  .71562870129474"-1    .71562870129474"-1
    3  .10065090524070"-1    .10065090524070"-1


SUBSECTION: NONEXP SPHER BESS I.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" NONEXP SPHER BESS I(X, N, I);
    "VALUE" X, N; "REAL" X; "INTEGER" N; "ARRAY" I;
    "CODE" 35154;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    X:  <ARITHMETIC EXPRESSION>;
        THE ARGUMENT OF THE BESSEL FUNCTIONS; X >= 0;
    N:  <ARITHMETIC EXPRESSION>;
        THE UPPER BOUND OF THE INDICES OF THE ARRAY I; N >= 0;
    I:  <ARRAY IDENTIFIER>;
        "ARRAY" I[0:N];
        EXIT: I[K] HAS THE VALUE OF THE FUNCTION
              I[K+.5](X)*EXP(-X)*SQRT(PI/(2*X)), K=0, ..., N, N >=0.

PROCEDURES USED: SINH  = CP 35111,
                 START = CP 35185.

REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.

METHOD AND PERFORMANCE:
    THE RATIO OF TWO SUBSEQUENT ELEMENTS IS COMPUTED USING A BACKWARD
    RECURRENCE FORMULA ACCORDING MILLER'S METHOD (SEE[2]); SINCE THE
    ZEROETH ELEMENT IS KNOWN TO BE (1-EXP(-2*X))/(2*X), THE OTHER
   ELEMENTS FOLLOW IMMEDIATELY.THE STARTING VALUE IS COMPUTED BY START.

EXAMPLE OF USE: SEE SPHER BESS I.


SUBSECTION: SPHER BESS K.

CALLING SEQUENCE :

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" SPHER BESS K(X, N, K); "VALUE" X, N;
    "REAL" X; "INTEGER" N; "ARRAY" K;
    "CODE" 35153;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    X:  < ARITHMETIC EXPRESSION >;
        THE ARGUMENT VALUE; X > 0;
    N:  < ARITHMETIC EXPRESSION >;
        THE UPPER BOUND OF THE INDICES OF THE ARRAY K; N > = 0;
    K:  < ARRAY IDENTIFIER >;
        "ARRAY" K[0:N];
        EXIT: K[J] HAS THE VALUE OF THE J-TH MODIFIED
              SPHERICAL BESSEL FUNCTION OF THE THIRD KIND,
              0 < = J < = N.

PROCEDURES USED: NON EXP SPHER BESS K    =  CP 35155.

REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.

METHOD AND PERFORMANCE:

    AT FIRST THE NONEXPONENTIAL MODIFIED SPHERICAL BESSEL FUNCTIONS
    OF THE THIRD KIND ARE COMPUTED BY THE PROCEDURE NONEXP SPHER BESS K
    ; AFTERWARDS THEY ARE MULTIPLIED BY EXP(-X).

EXAMPLE OF USE:

    THE FOLLOWING PROGRAM SHOWS THAT THE RESULTS OF THE PROCEDURES
    SPHER BESS K EN NONEXP SPHER BESS K DIFFER ONLY BY A FACTOR EXP(X);

    "BEGIN" "REAL" X, EXPX; "INTEGER" N; "ARRAY" K1, K2[0:3];
        X:= 2; EXPX:= EXP(-X); N:= 3; SPHER BESS K (X, N, K1);
        NONEXPSPHER BESS K (X, N, K2); "FOR" N:= 0, 1, 2, 3 "DO"
        OUTPUT(61, "("/D, 2(5B-.14D"-ZD)")", N, K1[N], K2[N]*EXPX)
    "END"

    RESULTS:

    0    .10629208289691"0    .10629208289691"0
    1    .15943812434536"0    .15943812434536"0
    2    .34544926941495"0    .34544926941494"0
    3    .10230612978828"1    .10230612978828"1


SUBSECTION: NONEXP SPHER BESS K.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" NON EXP SPHER BESS K(X, N, K);
    "VALUE" X, N; "REAL" X; "INTEGER" N; "ARRAY" K;
    "CODE" 35155;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    X:  <ARITHMETIC EXPRESSION>;
        THE ARGUMENT OF THE BESSEL FUNCTIONS; X > 0;
    N:  <ARITHMETIC EXPRESSION>;
        THE UPPER BOUND OF THE INDICES OF THE ARRAY K; N >= 0;
    K:  <ARRAY IDENTIFIER>;
        "ARRAY" K[0:N];
        EXIT: K[J] HAS THE VALUE OF THE FUNCTION
              K[J+.5](X)*EXP(X)*SQRT(PI/(2*X)), J=0,...,N.

PROCEDURES USED: NONE.

REQUIRED CENTRAL MEMORY : NO AUXILIARY ARRAYS ARE DECLARED.

METHOD AND PERFORMANCE:
    THE FUNCTIONS ARE COMPUTED BY USING THE (NUMERICALLY STABLE)
    RECURRENCE FORMULA : K[J]=((2*J-1)/X)*K[J-1]+K[J-2], J >=2,
                         K[0]=PI/(2*X), K[1]=K[0]*(1+1/X) .

EXAMPLE OF USE: SEE SPHER BESS K.

SOURCE TEXT(S):
"CODE" 35150;

"CODE" 35151;
"CODE" 35152;

"CODE" 35153;
"CODE" 35154;

"CODE" 35155;