NUMAL Section 6.10.2

BEGIN SECTION : 6.10.2 (December, 1978)

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

INSTITUTE: MATHEMATICAL CENTRE.

RECEIVED: 781101.

BRIEF DESCRIPTION:

    THIS SECTION CONTAINS THE PROCEDURES:

    BESS IAPLUSN:

        THIS PROCEDURE GENERATES AN ARRAY OF MODIFIED
        BESSELFUNCTIONS OF THE FIRST KIND OF ORDER
        A+N, N=0, ..., NMAX, 0 < = A < 1 AND ARGUMENT X > = 0.

    NONEXP BESS IAPLUSN:

        THIS PROCEDURE GENERATES AN ARRAY OF MODIFIED
        BESSEL FUNCTIONS OF THE FIRST KIND OF ORDER
        A + N, N = 0, ..., NMAX, 0<=A <1 AND ARGUMENT
        X > = 0 MULTIPLIED BY THE FACTOR EXP(-X).
        THUS, APART FROM THE EXPONENTIAL FACTOR THE
        ARRAY ENTRIES ARE THE SAME AS THOSE COMPUTED
        BY BESS IAPLUSN.

    BESS KA01:

        THIS PROCEDURE CALCULATES THE MODIFIED BESSEL FUNCTIONS OF THE
        THIRD KIND OF ORDER A AND A+1, AND ARGUMENT X, X>0;

    BESS KAPLUSN:

        THIS PROCEDURE GENERATES AN ARRAY OF MODIFIED BESSEL FUNCTIONS
        OF THE THIRD KIND OF ORDER A+N, N=0, 1, ..., NMAX, AND
        ARGUMENT X>0.
        THE MODIFIED BESSEL FUNCTIONS CORRESPOND TO THE FUNCTION
        DEFINED IN FORMULA 9.6.2 OF REFERENCE[1];

    NONEXP BESS KA01:

        THIS PROCEDURE  CALCULATES THE MODIFIED BESSEL FUNCTIONS OF THE
        THIRD KIND OF ORDER A AND A + 1, AND ARGUMENT X, X > 0,
        MULTIPLIED  BY THE FACTOR EXP(X). THUS, APART FROM THE
        EXPONENTIAL FACTOR, THE  FUNCTIONS  ARE  THE  SAME AS THOSE
        COMPUTED BY BESS KA01;

    NONEXP BESS KAPLUSN:

        THIS PROCEDURE GENERATES AN ARRAY OF MODIFIED  BESSEL FUNCTIONS
        OF THE THIRD KIND OF ORDER A + N, N = 0, 1,..., NMAX, AND
        ARGUMENT X>0  MULTIPLIED BY THE FACTOR EXP(X). THUS, APART FROM
        THE  EXPONENTIAL  FACTOR, THE  FUNCTIONS  ARE THE SAME AS THOSE
        COMPUTED BY THE PROCEDURE BESS KAPLUSN.

KEYWORDS:

    BESSEL FUNCTION,
    MODIFIED BESSEL FUNCTION,
    MODIFIED BESSEL FUNCTION OF THE THIRD 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]. GAUTSCHI, W., COMPUTATIONAL ASPECTS
        OF THREE TERM RECURRENCE RELATIONS.
        SIAM REVIEW, VOLUME 9, (1967), NUMBER 1, P.24.

    [3]. TEMME, N.M., ON THE NUMERICAL EVALUATION OF THE
        MODIFIED BESSEL FUNCTION OF THE THIRD KIND.
        J. COMP. PHYSICS, VOL. 19, (1975), NUMBER 3, P. 324.


SUBSECTION: BESS IAPLUSN.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:

    "PROCEDURE" BESS IAPLUSN(A, X, N, IA);
    "VALUE" X, N, A; "REAL" X, A;
    "INTEGER" N; "ARRAY" IA;
    "CODE" 35190;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    A:  < ARITHMETIC EXPRESSION >;
        THE NONINTEGER PART OF THE ORDER OF THE
        BESSEL FUNCTIONS; 0 < = A < 1;
    X:  < ARITHMETIC EXPRESSION >;
        THE ARGUMENT OF THE BESSEL FUNCTIONS; X > = 0;
    N:  < ARITHMETIC EXPRESSION >;
        THE UPPER BOUND OF THE INDICES OF THE ARRAY IA; N>= 0;
    IA: < ARRAY IDENTIFIER >;
        "ARRAY" IA[0:N]; N > = 0;
        EXIT: THE VALUES OF THE MODIFIED BESSEL FUNCTIONS
              OF THE FIRST KIND , OF ORDER A+K AND ARGUMENT X,
              I[A+K](X) ARE ASSIGNED TO THE ARRAY IA.

PROCEDURES USED:
    NONEXP BESS IAPLUSN     =  CP 35193,
    BESS I                  =  CP 35172,
    NONEXP SPHER BESS I     =  CP 35154.

REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.

METHOD AND PERFORMANCE: SEE SUBSECTION NONEXP BESS IAPLUSN.

RUNNING TIME:

    ROUGHLY PROPORTIONAL TO THE MAXIMUM OF X AND N.

EXAMPLE OF USE:

    "BEGIN" "REAL" X, A; "ARRAY" IA[0:2]  ;
        A:= .25; X:= 2;    BESS IAPLUSN(A, X, 2, IA);
        OUTPUT(61,"("2(4BD.DD),/,3(4B-.14D"-ZD)")",
        A, X, IA[0], IA[1], IA[2])
    "END"

    PRINTS THE FOLLOWING RESULTS:

   0.25    2.00
    .22033544516736"  1   .13401967589829"  1   .52810850294501"  0


SUBSECTION: NONEXP BESS IAPLUSN.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:

    "PROCEDURE" NONEXP BESS IAPLUSN(A, X, N, IA);
    "VALUE" A, X, N;
    "REAL" A, X; "INTEGER" N; "ARRAY" IA;
    "CODE" 35193;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    A:  < ARITHMETIC EXPRESSION >;
        THE NONINTEGER PART OF THE ORDER A+N, 0 < = A < 1;
    X:  < ARITHMETIC EXPRESSION >;
        THE ARGUMENT OF THE BESSEL FUNCTIONS; X >= 0;
    N:  < ARITHMETIC EXPRESSION >;
        THE UPPER BOUND OF THE INDICES OF THE ARRAY IA; N>= 0;
    IA:  < ARRAY IDENTIFIER >;
        "ARRAY" IA[0:N]; N > = 0;
        EXIT:  IA[K] HAS THE VALUE OF
               THE MODIFIED BESSEL FUNCTION OF THE FIRST KIND OF
               ORDER A + K AND ARGUMENT X MULTIPLIED BY
               EXP (-X), 0 < = K < = N.

PROCEDURES USED:

    NONEXP BESS I          =  CP 35177
    NONEXP SPHER BESS I    =  CP 35154
    GAMMA                  =  CP 35061
    START                  =  CP 35185

REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.

METHOD AND PERFORMANCE:

    IN ALL THE CASES THE BESSEL FUNCTIONS ARE COMPUTED ACCORDING TO
    THE MILLER METHOD DESCRIBED IN [2, P.46-52]. THE STARTING VALUE
    IS COMPUTED BY THE PROCEDURE START (SECTION 6.10.1).

RUNNING TIME: ROUGHLY PROPORTIONAL TO THE MAXIMUM OF X AND N.

EXAMPLE OF USE:

    THE PROGRAM

    "BEGIN" "REAL" X, A; "ARRAY" IA[0:2];
        A:= .25; X:= 2; NON EXPBESS IAPLUSN(A, X, 2, IA);
        OUTPUT(61,"("2(4BD.DD),/,3(4B-.14D"-ZD)")",
        A, X, IA[0], IA[1], IA[2])
    "END"

    PRINTS THE FOLLOWING RESULTS:

   0.25    2.00
    .29819159878790"  0   .18137590796974"  0    .71471713825726"  -1


SUBSECTION: BESS KA01.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:

    "PROCEDURE" BESS KA01(A, X, KA, KA1); "VALUE" A, X;
    "REAL" A, X, KA, KA1;
    "CODE" 35191;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    A:      <ARITHMETIC EXPRESSION>;
            THE ORDER;
    X:      <ARITHMETIC EXPRESSION>;
            THE ARGUMENT. THIS ARGUMENT SHOULD SATISFY X>0;
    KA:     <VARIABLE>;
            EXIT: THE VALUE OF THE MODIFIED BESSEL FUNCTION
                  OF THE THIRD KIND OF ORDER A AND ARGUMENT X;
    KA1:    <VARIABLE>;
            EXIT: THE VALUE OF THE MODIFIED BESSEL FUNCTION OF THE
                  THIRD KIND OF ORDER A+1 AND ARGUMENT X.

PROCEDURES USED:

    RECIP GAMMA         = CP 35060;
    NONEXP BESS KA01    = CP 35194;
    SINH                = CP 35111.

REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.

METHOD AND PERFORMANCE:

    FOR 0<X<1 THE BESSEL FUNCTIONS ARE COMPUTED BY USING TAYLOR
    SERIES. THE METHOD IS DESCRIBED IN REFERENCE [3]. FOR X>=1 THE
    PROCEDURE CALLS FOR THE PROCEDURE NONEXP BESS KA ( SEE SUBSECTION
    NONEXP BESS KA). THE RELATIVE ACCURACY IS ABOUT "-13, EXCEPT FOR
    LARGE VALUES OF X; IN THAT CASE THE ACCURACY ALSO DEPENDS ON THE
    RELATIVE ACCURACY OF THE EXPONENTIAL FUNCTION. IF ONE IS INTERESTED
    IN THE MODIFIED BESSEL FUNCTION OF THE THIRD KIND TIMES THE FACTOR
    EXP(X), THE PROCEDURE NONEXP BESS KA SHOULD BE USED.

EXAMPLE OF USE:

    THE PROGRAM:

    "BEGIN" "REAL" P, Q;
        BESS KA01(0, 1, P, Q);
        OUTPUT(61, "("2(N)")", P, Q)
    "END"

    YIELDS THE FOLLOWING RESULTS

    +4.2102443824071"-001  +6.0190723019724"-001.


SUBSECTION: BESS KAPLUSN.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:

    "PROCEDURE" BESS KAPLUSN(A, X, NMAX, KAN); "VALUE" A, X, NMAX;
    "INTEGER" NMAX; "REAL" A, X; "ARRAY" KAN;
    "CODE" 35192;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    A:      <ARITHMETIC EXPRESSION>;
            THE ORDER. IT IS ADVISED TO TAKE A >= 0;
    X:      <ARITHMETIC EXPRESSION>;
            THE ARGUMENT. THIS ARGUMENT SHOULD SATISFY X>0;
    NMAX:   <ARITHMETIC EXPRESSION>;
            THE UPPER BOUND OF THE INDICES OF THE ARRAY KAN;
    KAN:    <ARRAY IDENTIFIER>;
            "ARRAY" KAN[0:NMAX]; NMAX>=0;
            EXIT: THE VALUE OF THE MODIFIED BESSEL FUNCTION
                  OF THE THIRD KIND OF ORDER N+A IS ASSIGNED TO KAN[N],
                  0 <= N <= NMAX.

PROCEDURES USED: BESS KA01 = CP 35191.

REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.

METHOD AND PERFORMANCE:

    THE RECURRENCE RELATION KAN[N+1]=KAN[N-1]+2*(N+A)*KAN[N]/X IS USED.
    THE STARTING VALUES ARE OBTAINED FROM THE PROCEDURE BESS KA01.
    IF A>=0, RECURSION IS NUMERICALLY STABLE IN THE FORWARD DIRECTION.
    IF ONE IS INTERESTED IN THE MODIFIED BESSEL FUNCTIONS OF THE THIRD
    KIND TIMES THE FACTOR EXP(X), THE PROCEDURE NONEXP BESS KAPLUSN
    SHOULD BE USED.

EXAMPLE OF USE:

    THE PROGRAM:

    "BEGIN" "ARRAY" KAN[0:2];
        BESS KAPLUSN(0, 1, 2, KAN);
        OUTPUT(61, "("3(N)")", KAN[0], KAN[1], KAN[2])
    "END"

    YIELDS THE FOLLOWING RESULTS

    +4.2102443824071"-001 +6.0190723019724"-001 +1.6248388986352"+000.


SUBSECTION: NONEXP BESS KA01.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:

    "PROCEDURE" NONEXP BESS KA01(A, X, KA, KA1);
    "VALUE" A, X; "REAL" A, X, KA, KA1;
    "CODE" 35194;

    THE MEANING OF THE  FORMAL PARAMETERS IS:
    A:      <ARITHMETIC EXPRESSION>;
            THE ORDER;
    X:      <ARITHMETIC EXPRESSION>;
            THE ARGUMENT. THIS ARGUMENT SHOULD SATISFY X>0;
    KA:     <VARIABLE>;
            EXIT: KA HAS THE VALUE OF THE MODIFIED BESSEL
                  FUNCTION OF THE THIRD KIND OF ORDER A
                  AND ARGUMENT X TIMES THE FACTOR EXP(X);
    KA1:    <VARIABLE>;
            EXIT: THE VALUE OF THE MODIFIED BESSEL FUNCTION OF THE
                  THIRD KIND OF ORDER A+1 AND ARGUMENT X TIMES THE
                  FACTOR EXP(X).

PROCEDURES USED: BESS KA01 = CP 35191.

REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.

METHOD AND PERFORMANCE:

    FOR 0<X<1 THE PROCEDURE NONEXP BESS KA CALLS FOR THE PROCEDURE
    BESS KA01. FOR X>=1 THE BESSEL FUNCTIONS ARE COMPUTED WITH A
    MILLER ALGORITHM FOR CONFLUENT HYPERGEOMETRIC FUNCTIONS.
    THE METHOD IS DESCRIBED IN REFERENCE [3].
    FOR ALL VALUES OF X CONSIDERED (X>0) THE FUNCTIONS
    DELIVERED ARE EQUAL TO THE VALUES COMPUTED BY THE PROCEDURE
    BESS KA01, APART FROM AN EXPONENTIAL FACTOR. THE RELATION BETWEEN
    THE TWO PROCEDURES WILL BE DESCRIBED BY THE PROGRAM:

    "BEGIN" "REAL" A, X, KA, NEKA, KA1, NEKA1;
        "PROCEDURE" BESS KA01(A, X, KA, KA1); "CODE" 35191;
        "PROCEDURE" NONEXP BESS KA(A, X, KA, KA1); "CODE" 35194;
        A:= .3; X:= 3.14;
        BESS KA01(A, X, KA, KA1);
        NONEXP KA 01(A, X, NEKA, NEKA1)
    "END"

    THEN WE HAVE

    KA = EXP(-X)*NEKA, KA1 = EXP(-X)*NEKA1. THE RELATIVE ACCURACY IS
    ABOUT "-13.

EXAMPLE OF USE:

    THE PROGRAM:

    "BEGIN" "REAL" P, Q;
        NONEXP BESS KA 01(0, 2, P, Q);
        OUTPUT(61, "("2(N)")", P, Q)
    "END"

    YIELDS THE FOLLOWING RESULTS:

    8.4156821507078"-001 +1.0334768470687"+000.


SUBSECTION: NONEXP BESS KAPLUSN.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:

    "PROCEDURE" NONEXP BESS KAPLUSN(A, X, NMAX, KAN);
    "VALUE" A, X, NMAX; "REAL" A, X; "INTEGER" NMAX; "ARRAY" KAN;
    "CODE" 35195;

    NONEXP BESS KAPLUSN GENERATES AN ARRAY OF MODIFIED BESSEL FUNCTIONS
    THE THIRD KIND OF ARGUMENT X AND ORDERS A+N, N=0, 1,..., NMAX TIMES
    THE FACTOR EXP(X).

    THE MEANING OF THE FORMAL PARAMETERS IS:
    A:      <ARITHMETIC EXPRESSION>;
            THE ORDER. IT IS ADVISED TO TAKE A >= 0;
    X:      <ARITHMETIC EXPRESSION>;
            THE ARGUMENT. THIS ARGUMENT SHOULD SATISFY X>0;
    NMAX:   <ARITHMETIC EXPRESSION>;
            THIS PARAMETER SHOULD SATISFY NMAX>=0; NMAX INDICATES THE
            MAXIMUM NUMBER OF FUNCTION VALUES TO BE GENERATED;
    KAN:    <ARRAY IDENTIFIER>;
            "ARRAY" KAN[0:NMAX]; NMAX>=0;
            EXIT: KAN[N] IS THE MODIFIED BESSEL FUNCTION OF THE THIRD
                  KIND OF ORDER N+A AND OF ARGUMENT X (N=0(1)NMAX)
                  TIMES THE FACTOR EXP(X).

PROCEDURES USED: NONEXP BESS KA = CP 35194.

REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE DECLARED.

METHOD AND PERFORMANCE:

    THE RECURRENCE RELATION KAN[N+1]=KAN[N-1]+2*(N+A)*KAN[N]/X IS USED.
    THE STARTING VALUES ARE OBTAINED FROM THE PROCEDURE NONEXP BESS KA.
    IF A>=0, RECURSION IS NUMERICALLY STABLE IN THE FORWARD DIRECTION.
    FOR ALL VALUES OF X AND NMAX CONSIDERED (X>0) THE FUNCTIONS
    DELIVERED ARE EQUAL TO THE VALUES COMPUTED BY THE PROCEDURE
    BESS KAPLUSN,APART FROM AN EXPONENTIAL FACTOR. THE RELATION BETWEEN
    THE TWO PROCEDURES WILL BE DESCRIBED BY THE PROGRAM:

    "BEGIN" "REAL" X, A; "ARRAY" KA, NEKA[0:10];
        "PROCEDURE" BESS KAPLUSN(A, X, NMAX, KA); "CODE" 35193;
        "PROCEDURE" NONEXP BESS KAPLUSN(A, X, NMAX, KAN); "CODE" 35195;
        X:= 2.78; A:= .96;
        BESS KAPLUSN(A, X, 10, KA);
        NONEXP BESS KAPLUSN(A, X, 10, NEKA)
    "END"

    THEN WE HAVE KA[N] = EXP(-X)*NEKA[N], N=0, 1, ..., 10.

EXAMPLE OF USE:

    THE PROGRAM:

    "BEGIN" "ARRAY" KAN[0:2];
         NONEXP BESS KAPLUSN(0, 5, 2, KAN);
         OUTPUT(61, "("3(N)")", KAN[0], KAN[1], KAN[2])
    "END"

    YIELDS THE FOLLOWING RESULTS:

    +5.4780756431352"-001 +6.0027385878831"-001 +7.8791710782884"-001.

SOURCE TEXT(S):

"CODE" 35190;

"CODE" 35191;

"CODE" 35192;
"CODE" 35193;

"CODE" 35194;

"CODE" 35195;