NUMAL Section 6.9.1

BEGIN SECTION : 6.9.1 (December, 1978)

AUTHORS: M. BAKKER AND N.M. TEMME.

INSTITUTE: MATHEMATICAL CENTRE.

RECEIVED: 780601.

BRIEF DESCRIPTION:

    THIS SECTION CONTAINS THE FOLLOWING PROCEDURES:

    BESS J0;
        COMPUTES THE ORDINARY BESSEL FUNCTION OF THE FIRST KIND OF
        ORDER ZERO WITH ARGUMENT X;

    BESS J1;
        COMPUTES THE ORDINARY BESSEL FUNCTION OF THE FIRST KIND OF
        ORDER ONE WITH ARGUMENT X;

    BESS J;
        GENERATES AN ARRAY OF ORDINARY BESSEL FUNCTIONS OF THE FIRST
        KIND OF ORDER L (L = 0,...,N) WITH ARGUMENT X;

    BESS Y01;
        COMPUTES THE ORDINARY BESSEL FUNCTIONS OF THE SECOND KIND OF
        ORDERS ZERO AND ONE WITH ARGUMENT X; X > 0;

    BESS Y;
        GENERATES AN ARRAY OF ORDINARY BESSEL FUNCTIONS OF THE SECOND
        KIND OF ORDER L ( L = 0,...N) WITH ARGUMENT X; X> 0;

    BESS PQ0;
        THIS PROCEDURE IS AN AUXILIARY PROCEDURE FOR THE COMPUTATION OF
        THE ORDINARY BESSEL FUNCTIONS OF ORDER ZERO FOR LARGE VALUES OF
        THEIR ARGUMENT;

    BESS PQ1;
        THIS PROCEDURE IS AN AUXILIARY PROCEDURE FOR THE COMPUTATION OF
        THE ORDINARY BESSEL FUNCTIONS OF ORDER  ONE FOR LARGE VALUES OF
        THEIR ARGUMENT.

KEYWORDS:  BESSEL FUNCTION,
           ORDINARY BESSEL FUNCTION OF THE FIRST KIND,
           ORDINARY BESSEL FUNCTION OF THE SECOND KIND.

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. (1964).

    [2] C.W. CLENSHAW,
        CHEBYSHEV SERIES FOR MATHEMATICAL FUNCTIONS, NAT. PHYS. LAB.
        MATH. TABLES, VOL. 5, HER MAJESTY'S STATIONARY OFFICE,
        LONDON (1962).

    [3] W. GAUTSCHI,
        COMPUTATIONAL ASPECTS OF THREE TERM RECURRENCE RELATIONS,
        SIAM REVIEW, VOL. 9, 24-82 (1967).


SUBSECTION: BESS J0.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS :
    "REAL" "PROCEDURE" BESS J0(X); "VALUE" X; "REAL" X;
    "CODE" 35160;

    BESS J0 DELIVERS THE ORDINARY BESSEL FUNCTION OF THE FIRST KIND OF
    ORDER ZERO WITH ARGUMENT X;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    X:  <ARITHMETIC EXPRESSION>;
        THE ARGUMENT OF THE BESSEL FUNCTION.

PROCEDURES USED:

    BESS PQ0 = CP 35165.

REQUIRED CENTRAL MEMORY:

    NO ARRAYS ARE USED.

RUNNING TIME:

    FOR ABS(X) <  8: LESS THAN 3 MS,
    FOR ABS(X) >= 8: LESS THAN 5 MS, ON THE CYBER 73/28.

METHOD AND PERFORMANCE:

    CHEBYSHEV SERIES FROM [2].

EXAMPLE OF USE:

    THE PROGRAM

    "BEGIN" "REAL" X;
        X:= 1; OUTPUT(61,"("/,D,6B-.14D "-ZD")",
        X, BESS J0(X))
    "END"

    PRINTS THE FOLLOWING RESULTS:

    1        .76519768655794" 0


SUBSECTION: BESS J1.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "REAL" "PROCEDURE" BESS J1(X); "VALUE" X; "REAL" X;
    "CODE" 35161;

    BESS J1 DELIVERS THE ORDINARY BESSEL FUNCTION OF THE FIRST KIND OF
    ORDER  ONE WITH ARGUMENT X;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    X:  <ARITHMETIC EXPRESSION>;
        THE ARGUMENT OF THE BESSEL FUNCTION.

PROCEDURES USED:

    BESS PQ1 = CP 35166.

REQUIRED CENTRAL MEMORY:

    NO ARRAYS ARE USED.

RUNNING TIME:

    FOR ABS(X) <  8: LESS THAN 3 MS,
    FOR ABS(X) >= 8: LESS THAN 5 MS, ON THE CYBER 73/28.

METHOD AND PERFORMANCE:

    CHEBYSHEV SERIES FROM [2].

EXAMPLE OF USE:

    THE PROGRAM

    "BEGIN" "REAL" X;
        X:= 1; OUTPUT(61,"("/,D,6B-.14D "-ZD")",
        X, BESS J1(X))
    "END"

    DELIVERS THE FOLLOWING RESULTS:

    1    .44005058574492" 0


SUBSECTION: BESS J.

CALLING SEQUENCE:

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

    THE MEANING OF THE FORMAL PARAMETERS IS:
    X:  <ARITHMETIC EXPRESSION>;
        THE ARGUMENT OF THE BESSEL FUNCTIONS;
    N:  <ARITHMETIC EXPRESSION>;
        THE UPPER BOUND OF THE INDICES OF ARRAY J; N >= 0;
    J:  <ARRAY IDENTIFIER>;
        "ARRAY" J[0:N];
        EXIT: J[L] IS THE ORDINARY BESSEL FUNCTION OF THE FIRST KIND OF
              ORDER L AND ARGUMENT X.

PROCEDURES USED: START = CP 35185;

REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.

RUNNING TIME:
    ROUGHLY PROPORTIONAL TO THE MAXIMUM OF 1.359 * X + 72 AND N + 18.

METHOD AND PERFORMANCE: MILLER'S ALGORITHM, SEE [3].

EXAMPLE OF USE:

    THE PROGRAM

    THE PROGRAM

    "BEGIN" "REAL" X; "ARRAY" J[0:1];
        "FOR" X:= 1,5,10,25 "DO"
        "BEGIN" BESS J(X,1,J);
            OUTPUT(61,"("ZZ.D, 2(BB-.D"-ZD),/")",
            X, J[0] - BESS J0(X),J[1] - BESS J1(X))
        "END"
    "END"

    DELIVERS THE FOLLOWING RESULTS:

     1.0   .2"-13   .2"-13
     5.0  -.8"-14  -.4"-14
    10.0  -.4"-14   .4"-14
    25.0  -.1"-14  -.9"-15


SUBSECTION: BESS Y01.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS :
    "PROCEDURE" BESS Y01(X,Y0,Y1); "VALUE" X; "REAL" X,Y0,Y1;
    "CODE" 35163;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    X:  <ARITHMETIC EXPRESSION>;
        THE ARGUMENT OF THE BESSEL FUNCTIONS; X > 0;
    Y0: <VARIABLE>;
        EXIT: Y0 HAS THE VALUE OF THE ORDINARY BESSEL FUNCTION OF THE
              SECOND KIND OF ORDER 0 AND ARGUMENT X;
    Y1: <VARIABLE>;
        EXIT: Y1 HAS THE VALUE OF THE ORDINARY BESSEL FUNCTION OF THE
              SECOND KIND OF ORDER 1 AND ARGUMENT X.

PROCEDURES USED:

    BESS J0   = CP 35160,
    BESS J1   = CP 35161,
    BESS PQ0  = CP 35165,
    BESS PQ1  = CP 35166.

REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.

RUNNING TIME:

    ABOUT 15 MS, ON THE CYBER 73/28.

METHOD AND PERFORMANCE:

    CHEBYSHEV SERIES FROM [2].

EXAMPLE OF USE:

    THE PROGRAM

    "BEGIN" "REAL" X,Y0,Y1;
        X:= 1; BESS Y01(X,Y0,Y1);
        OUTPUT(61,"("/,4BD.D,2(B-.14D"-ZD)")",X,Y0,Y1)
    "END"

    DELIVERS THE FOLLOWING RESULTS:

    1.0    .88256964215676"  -1    -.78121282130028" 0


SUBSECTION: BESS Y.

CALLING SEQUENCE:

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

    THE MEANING OF THE FORMAL PARAMETERS IS:
    X:  <ARITHMETIC EXPRESSION>;
        THE ARGUMENT; THIS ARGUMENT SHOULD SATISFY 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[I] IS THE VALUE OF THE ORDINARY BESSEL FUNCTION OF THE
              SECOND KIND OF ORDER I (I = 0,...,N) AND ARGUMENT X.

PROCEDURES USED:

    BESS Y01 = CP 35163.

REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.

RUNNING TIME:

    DEPENDS ON N; SEE BESS Y01.

METHOD AND PERFORMANCE:

    Y[0] AND Y[1] ARE COMPUTED BY USING BESS Y01 (CP 35163); THE
    REMAINING Y[I] ARE COMPUTED BY USING THE RECURRENCE RELATION
    Y[I+1]:= Y[I] * 2 * I/X - Y[I-1], I >= 1.

EXAMPLE OF USE:

    THE PROGRAM

    "BEGIN" "ARRAY" Y[0:2];
        BESS Y(1,2,Y);
        OUTPUT(61,"("3(-D.13D"-ZD)")", Y[0], Y[1], Y[2])
    "END"

    PRINTS THE FOLLOWING RESULTS:

     8.8256964215676"- 2 -7.8121282130028"- 1 -1.6506826068162"  0


SUBSECTION: BESS PQ0.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" BESS PQ0(X,P0,Q0); "VALUE" X; "REAL" X,P0,Q0;
    "CODE" 35165;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    X:  <ARITHMETIC EXPRESSION>;
        THE ARGUMENT; THIS ARGUMENT SHOULD SATISFY X > 0;
    P0: <VARIABLE>;
        EXIT: P0  CORRESPONDS WITH THE FUNCTION P(X,0) DEFINED
              IN [1,FORMULAS 9.2.5 AND 9.2.6];
    Q0: <VARIABLE>;
        EXIT: Q0  CORRESPONDS WITH THE FUNCTION Q(X,0) DEFINED
              IN [1,FORMULAS 9.2.5 AND 9.2.6].

PROCEDURES USED:

    BESS J0  = CP 35160,
    BESS Y01 = CP 35163.

REQUIRED CENTRAL MEMORY:

    NO ARRAYS ARE USED.

RUNNING TIME:

    ABOUT 15 MS, ON THE CYBER 73/28.

METHOD AND PERFORMANCE:

    FOR X >= 8 CHEBYSHEV SERIES FROM [2],
    FOR X < 8 WITH BESS J0 AND BESS Y01.

EXAMPLE OF USE:

    SEE SUBSECTION BESS PQ1.


SUBSECTION: BESS PQ1.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" BESS PQ1(X,P1,Q1); "VALUE" X; "REAL" X,P1,Q1;
    "CODE" 35166;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    X:  <ARITHMETIC EXPRESSION>;
        THE ARGUMENT; THIS ARGUMENT SHOULD SATISFY X > 0;
    P1: <VARIABLE>;
        EXIT: P1  CORRESPONDS WITH THE FUNCTION P(X,1) DEFINED
              IN [1,FORMULAS 9.2.5 AND 9.2.6];
    Q1: <VARIABLE>;
        EXIT: Q1  CORRESPONDS WITH THE FUNCTION Q(X,1) DEFINED
              IN [1,FORMULAS 9.2.5 AND 9.2.6].

PROCEDURES USED:
    BESS J1  = CP 35161,
    BESS Y01 = CP 35163.

REQUIRED CENTRAL MEMORY:
    NO ARRAYS ARE USED.

RUNNING TIME:
    ABOUT 15 MS, ON THE CYBER 73/28.

METHOD AND PERFORMANCE:
    FOR X >= 8 CHEBYSHEV SERIES FROM [2],
    FOR X < 8 WITH BESS J1 AND BESS Y01.

EXAMPLE OF USE:

    FROM THE WRONSKIAN RELATION [1,9.1.16] IT CAN BE SHOWN THAT
    P0 * P1 + Q0 * Q1 = 1, WHATEVER X. IN THE FOLLOWING PROGRAM WE
    VERIFY THIS RELATION.

    "BEGIN" "REAL" X,P,Q,R,S;
        "FOR" X:= 1,3,5,10 "DO"
        "BEGIN" BESSPQ0(X,P,Q); BESSPQ1(X,R,S);
            OUTPUT(61,"("BB,D.2D"+3D")", ABS(P*R + Q*S -1))
        "END"
    "END"

    THE RESULTS ARE:

    4.97"-014 4.26"-014 5.68"-014 7.11"-015

SOURCE TEXT(S):

"CODE" 35160;
"CODE" 35161;

"CODE" 35162;

"CODE" 35163;

"CODE" 35164;
"CODE" 35165;
"CODE" 35166;