NUMAL Section 6.9.2

BEGIN SECTION : 6.9.2 (December, 1978)

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

INSTITUTE: MATHEMATICAL CENTRE.

RECEIVED: 750201.

BRIEF DESCRIPTION:

    THIS SECTION CONTAINS THE FOLLOWING PROCEDURES:

    BESS I0;
      COMPUTES THE MODIFIED BESSEL FUNCTION OF THE FIRST KIND
      OF ORDER ZERO WITH ARGUMENT X;

    BESS I1;
      COMPUTES THE MODIFIED BESSEL FUNCTION OF THE FIRST KIND
      OF ORDER ONE WITH ARGUMENT X;

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

    BESS K01;
      COMPUTES THE MODIFIED BESSEL FUNCTIONS OF THE THIRD KIND
      OF ORDERS ZERO AND ONE WITH ARGUMENT X; X > 0;

    BESS K;
      GENERATES AN ARRAY OF MODIFIED BESSEL FUNCTIONS OF THE THIRD
      KIND OF ORDER L ( L = 0, ..., N) WITH ARGUMENT X; X > 0;

    NONEXP BESS I0;
      DOES THE SAME AS BESS I0, BUT THE RESULT IS MULTIPLIED
      BY EXP(-ABS(X));

    NONEXP BESS I1;
      DOES THE SAME AS BESS I1, BUT THE RESULT IS MULTIPLIED
      BY EXP(-ABS(X));

    NONEXP BESS I;
      DOES THE SAME AS BESS I, BUT THE ARRAY ELEMENTS ARE
      MULTIPLIED BY EXP(-ABS(X));

    NONEXP BESS K01;
      DOES THE SAME AS BESS K01, BUT THE RESULTS ARE MULTIPLIED
      BY EXP(X);

    NONEXP BESS K;
      DOES THE SAME AS BESS K, BUT THE ARRAY ELEMENTS ARE
      MULTIPLIED BY EXP(X).

KEYWORDS: BESSEL FUNCTIONS,
          MODIFIED BESSEL FUNCTIONS,
          INTEGER ORDER.

REFERENCES:

    [1] M.ABRAMOWITZ AND I.A. STEGUN,
        HANDBOOK OF MATHEMATICAL FUNCTIONS,
        DOVER PUBLICATIONS, INC., NEW YORK, 1968.

    [2] D.B.HUNTER,
        THE CALCULATION OF SOME BESSEL FUNCTIONS,
        MATHEMATICS OF COMPUTATION (1964), P. 123.

    [3] YUDELL LUKE,
        THE SPECIAL FUNCTIONS AND THEIR APPROXIMATIONS, VOLUME 2,
        ACADEMIC PRESS, NEW YORK AND LONDON (1969).

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

    [5] W.GAUTSCHI,
        COMPUTATIONAL ASPECTS OF THREE TERM RECURRENCE RELATIONS,
        SIAM REVIEWS, VOLUME 9 (1967), P. 24.

    [6] J.M.BLAIR,
        RATIONAL CHEBYSHEV APPROXIMATIONS FOR THE MODIFIED
        BESSEL FUNCTIONS I0(X) AND I1(X);
        MATHEMATICS OF COMPUTATIONS,VOLUME 28,
        NR 126, APRIL 1974, P. 581-583.


SUBSECTION:  BESS I0.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "REAL" "PROCEDURE" BESS I0(X); "VALUE" X; "REAL" X;
    "CODE" 35170;

    BESS I0 DELIVERS THE MODIFIED 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:

    NONEXP BESS I0  =  CP35175.

REQUIRED CENTRAL MEMORY:

    NO ARRAYS ARE USED.

RUNNING TIME:

    FOR X = 0 BESS I0 IS ASSIGNED ITS VALUE IMMEDIATELY;
    FOR 0 < ABS(X) <= 15.0 17 MULTIPLICATIONS AND ONE DIVISION
    ARE REQUIRED;
    FOR ABS(X) > 15.0 11 MULTIPLICATIONS, 3 DIVISIONS, ONE
    EVALUATION OF THE SQUARE ROOT AND ONE EVALUATION OF THE
    EXPONENNTIAL FUNCTION ARE REQUIRED.

METHOD AND PERFORMANCE: RATIONAL APPROXIMATION, SEE [6].

EXAMPLE OF USE:

    THE PROGRAM

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

    PRINTS THE FOLLOWING RESULTS:

    1      .12660658777520"  1


SUBSECTION:  BESS I1.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "REAL" "PROCEDURE" BESS I1(X); "VALUE" X; "REAL" X;
    "CODE" 35171;

    BESS I1 DELIVERS THE MODIFIED 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:

    NONEXP BESS I1  =  CP35176.

REQUIRED CENTRAL MEMORY:

    NO ARRAYS ARE USED.

RUNNING TIME:

    FOR X = 0   BESS I1 IS ASSIGNED ITS VALUE IMMEDIATELY;
    FOR 0 < ABS(X) <= 15.0  17 MULTIPLICATIONS AND ONE DIVISION
    ARE REQUIRED;
    FOR ABS(X) > 15.0  12 MULTIPLICATIONS, 3 DIVISIONS, ONE EVALUATION
    OF THE SQUARE ROOT AND ONE EVALUATION OF THE EXPONENTIAL FUNCTION
    ARE REQUIRED.

METHOD AND PERFORMANCE: RATIONAL APPROXIMATION, SEE [6].

EXAMPLE OF USE:

    THE PROGRAM

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

    PRINTS THE FOLLOWING RESULTS:

    1      .56515910399252"  0


SUBSECTION: BESS I.

CALLING SEQUENCE:

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

    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 THE ARRAY I;
    I:  <ARRAY IDENTIFIER>;
        "ARRAY" I[0 : N];
        EXIT: I[L] POSSESSES THE VALUE OF THE MODIFIED BESSEL FUNCTION
        OF THE FIRST KIND OF ORDER L (0 <= L <= N).

METHOD AND PERFORMANCE: SEE NON EXP BESS I (THIS SECTION).

PROCEDURES USED :

    NONEXP BESS I  = CP 35177.

REQUIRED CENTRAL MEMORY:

    NO AUXILIARY ARRAYS ARE USED.

RUNNING TIME:

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

EXAMPLE OF USE : THE FOLLOWING PROGRAM CHECKS FOR X = 1 (1) 20
    THE WRONSKIAN RELATION

     X * (I[N - 1] * K[N] + I[N] * K[N - 1]) - 1 = 0

    FOR N = 1 (1) 5; THE PROGRAM READS:

    "BEGIN" "REAL" X; "INTEGER" N; "ARRAY" I, K[0:5];

        "FOR" X:= 1 "STEP" 1 "UNTIL" 20 "DO"
        "BEGIN" OUTPUT(61,"("/ZD")", X);
            BESS I(X, 5, I); BESS K(X, 5, K);
            "FOR" N:= 1, 2, 3, 4, 5 "DO"
            OUTPUT(61,"("BB-.D"-ZD")",
            X * (I[N] * K[N - 1] + I[N - 1] * K[N]) - 1)
        "END"
    "END"

    THE RESULTS ARE:

     1   .0"  0   .0"  0  -.7"-14  -.7"-14  -.7"-14
     2   .0"  0   .0"  0   .0"  0   .0"  0   .0"  0
     3   .7"-14   .7"-14   .0"  0   .0"  0   .0"  0
     4   .7"-14   .0"  0   .0"  0   .0"  0   .0"  0
     5   .0"  0   .7"-14   .7"-14   .0"  0   .0"  0
     6   .0"  0   .0"  0   .0"  0   .0"  0  -.7"-14
     7   .0"  0   .0"  0   .0"  0   .0"  0   .0"  0
     8  -.1"-13  -.1"-13  -.1"-13  -.1"-13  -.1"-13
     9   .0"  0   .0"  0   .0"  0  -.7"-14  -.7"-14
    10   .0"  0   .0"  0   .0"  0   .0"  0   .0"  0
    11   .0"  0   .0"  0   .0"  0   .0"  0   .0"  0
    12   .0"  0   .0"  0   .0"  0   .0"  0   .0"  0
    13   .7"-14   .7"-14   .0"  0   .7"-14   .0"  0
    14   .0"  0   .7"-14   .0"  0   .0"  0   .0"  0
    15   .0"  0   .0"  0   .0"  0   .0"  0   .0"  0
    16   .0"  0   .0"  0   .0"  0   .0"  0  -.7"-14
    17   .7"-14   .0"  0   .0"  0   .0"  0   .0"  0
    18   .7"-14   .0"  0   .0"  0   .0"  0  -.7"-14
    19   .7"-14   .0"  0   .0"  0   .0"  0   .0"  0
    20   .0"  0   .0"  0   .0"  0   .0"  0  -.7"-14


SUBSECTION: BESS K01.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" BESS K01(X, K0, K1); "VALUE" X; "REAL" X, K0, K1;
    "CODE" 35173;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    X:  <ARITHMETIC EXPRESSION>;
        THE ARGUMENT OF THE BESSEL FUNCTIONS; X > 0;
    K0: <VARIABLE>;
        EXIT: K0 HAS THE VALUE OF THE MODIFIED BESSEL FUNCTION
              OF THE THIRD KIND OF ORDER 0 WITH ARGUMENT X;
    K1: <VARIABLE>;
        EXIT: K1 HAS THE VALUE OF THE MODIFIED BESSEL FUNCTION
              OF THE THIRD KIND OF ORDER ONE.

PROCEDURES USED:

    NONEXP BESS K01  = CP35178

REQUIRED CENTRAL MEMORY:

    NO ARRAYS ARE USED.

RUNNING TIME: DEPENDS ON THE VALUE OF X;
    THE GLOBAL VALUES IN MILLISECONDS ARE:

    0   < X <= 1.5    :       2.2 MS,
    1.5 < X <= 5.0    :       5.5 MS,
    5.0 < X           :       2.3 MS, ON THE CYBER 73/28.

METHOD AND PERFORMANCE:

    FOR THE COMPUTATION OF K0 AND K1 THREE DIFFERENT METHODS
    ARE USED DEPENDING ON THE VALUE OF X:
    FOR 0 < X <= 1.5 K0 AND K1 ARE EVALUATED BY MEANS OF TAYLOR SERIES
    EXPANSIONS (SEE [1], P. 375, FORMULA 9.6.13);
    FOR X > 1.5 K0 AND K1 ARE COMPUTED BY MEANS OF A CALL
    OF THE CODE PROCEDURE  NONEXP BESS K01 (SEE DESCRIPTION AHEAD)
    AND MULTIPLICATION BY EXP(- X).

EXAMPLE OF USE: THE PROGRAM

    "BEGIN" "REAL" X, K0, K1;
        "FOR" X:= .5, 1.5, 2.5 "DO"
        "BEGIN" BESS K01(X, K0, K1);
            OUTPUT(61,"("/,4BD.D,2(B-.14D"-ZD)")",X,K0,K1)
        "END"
    "END"

    PRINTS THE FOLLOWING RESULTS:

    0.5  .92441907122766"  0  .16564411200033"  1
    1.5  .21380556264754"  0  .27738780045683"  0
    2.5  .62347553200366" -1  .73890816347746" -1


SUBSECTION: BESS K.

CALLING SEQUENCE:

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

    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[I] POSSESSES THE VALUE OF THE MODIFIED BESSEL FUNCTION
              OF THE THIRD KIND OF ORDER I (0 <= I <= N).

PROCEDURES USED: BESS K01  =  CP 35173.

REQUIRED CENTRAL MEMORY:

    NO AUXILIARY ARRAYS ARE USED.

RUNNING TIME :

    DEPENDS ON THE VALUE OF X (SEE TABLE BELONGING TO BESS K01)
    AND N.

METHOD AND PERFORMANCE:

    K[0], ..., K[N] ARE COMPUTED ACCORDING TO THE RECURRENCE RELATION

        K[I + 1] = K[I - 1] + (2 * I / X) * K[I], I = 2, ..., N,

    (SEE [1], P. 376, FORMULA 9.6.26).

EXAMPLE OF USE: THE PROGRAM

    "BEGIN" "ARRAY"  K[0 : 2]; "REAL" X;
        "FOR" X:= .5, 1.0, 1.5, 2.0 "DO"
        "BEGIN" BESS K(X, 2, K);
           OUTPUT(61,"("/D.D,3(BB.12D"-D)")",X,K)
        "END"
    "END"

    PRINTS THE FOLLOWING RESULTS:

    0.5  .924419071228"0  .165644112000"1  .755018355124"1
    1.0  .421024438241"0  .601907230197"0  .162483889864"1
    1.5  .213805562648"0  .277387800457"0  .583655963257"0
    2.0  .113893872750"0  .139865881817"0  .253759754566"0


SUBSECTION:  NONEXP BESS I0.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "REAL" "PROCEDURE" NONEXP BESS I0(X); "VALUE" X; "REAL" X;
    "CODE" 35175;

    NONEXP BESS I0 DELIVERS THE MODIFIED BESSEL FUNCTION OF THE
    FIRST KIND OF ORDER 0 WITH ARGUMENT X MULTIPLIED BY EXP(-ABS(X)).

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

PROCEDURES USED:

    BESS I0  =  CP35170.

REQUIRED CENTRAL MEMORY:

    NO ARRAYS ARE USED.

RUNNING TIME:

    FOR  X = 0 NONEXP BESS I0 IS ASSIGNED ITS VALUE IMMEDIATELY;
    FOR 0 < ABS(X) <= 15.0  18 MULTIPLICATIONS, ONE DIVISION AND
    ONE EVALUATION OF THE EXPONENTIAL FUNCTION ARE REQUIRED;
    FOR ABS(X) > 15.0  10 MULTIPLICATIONS, 3 DIVISIONS AND ONE
    EVALUATION OF THE SQUARE ROOT ARE REQUIRED.

METHOD AND PERFORMANCE:

    SEE [6].

EXAMPLE OF USE:

    THE PROGRAM

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

    PRINTS THE FOLLOWING RESULTS:

      1      .46575960759364"  0


SUBSECTION:  NONEXP BESS I1.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "REAL" "PROCEDURE" NONEXP BESS I1(X); "VALUE" X; "REAL" X;
    "CODE" 35176;

    NONEXP BESS I1 DELIVERS THE MODIFIED BESSEL FUNCTION OF THE
    FIRST KIND OF ORDER 1 WITH ARGUMENT X MULTIPLIED BY EXP(-ABS(X)).

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

PROCEDURES USED:

    BESS I1  =  CP35171.

REQUIRED CENTRAL MEMORY:

    NO ARRAYS ARE USED.

RUNNING TIME:

    FOR  X = 0 NONEXP BESS I1 IS ASSIGNED ITS VALUE IMMEDIATELY;
    FOR  0 < ABS(X) <= 15.0 18 MULTIPLICATIONS, ONE DIVISION AND ONE
    EVALUATION OF THE EXPONENTIAL FUNCTION ARE REQUIRED;
    FOR  X > 15.0  11 MULTIPLICATIONS, 3 DIVISIONS AND ONE
    EVALUATION OF THE SQUARE ROOT ARE REQUIRED.

METHOD AND PERFORMANCE:

    SEE [6].

EXAMPLE OF USE:

    THE PROGRAM

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

    DELIVERS THE FOLLOWING RESULTS:

      1      .20791041534972"  0


SUBSECTION: NONEXP BESS I.

CALLING SEQUENCE:

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

    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 THE ARRAY I; N >= 0;
    I:  <ARRAY IDENTIFIER>;
        "ARRAY" I[0:N];
        EXIT: I[L] POSSESSES THE VALUE OF THE MODIFIED
              BESSEL FUNCTION OF THE FIRST KIND OF ORDER L (L=0,..,N)
              MULTIPLIED BY EXP (- ABS(X)).

PROCEDURES USED: START  =  CP 35185;

REQUIRED CENTRAL MEMORY:

    NO AUXILIARY ARRAYS ARE USED.

RUNNING TIME:

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

METHOD AND PERFORMANCE: SEE [5].

EXAMPLE OF USE: THE PROGRAM

    "BEGIN" "REAL" X; "ARRAY" I[0:2];
    "FOR" X:= .5, 1.0, 1.5, 2.0, 2.5 "DO"
      "BEGIN" NONEXP BESS I(X, 2, I);
        OUTPUT(61, "("/,4BZ.D,3(B-.12D"-D)")",X,
        I[0], I[1], I[2])
      "END"
    "END"

    PRINTS THE FOLLOWING RESULTS:

     .5  .645035270449" 0  .156420803185" 0  .193520577097"-1
    1.0  .465759607594" 0  .207910415350" 0  .499387768942"-1
    1.5  .367433609054" 0  .219039387421" 0  .753810924929"-1
    2.0  .308508322554" 0  .215269289249" 0  .932390333047"-1
    2.5  .270046441612" 0  .206584649531" 0  .104778721987" 0


SUBSECTION: NONEXP BESS K01.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" NONEXP BESS K01(X, K0, K1);
    "VALUE" X; "REAL" X, K0, K1;
    "CODE" 35178;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    X:  <ARITHMETIC EXPRESSION>;
        THE ARGUMENT OF THE BESSEL FUNCTIONS; X > 0;
    K0: <VARIABLE>;
        EXIT: K0 HAS THE VALUE OF THE MODIFIED BESSEL FUNCTION
              OF THE THIRD KIND OF ORDER 0 WITH ARGUMENT X MULTIPLIED
              BY EXP(X);
    K1: <VARIABLE>;
        EXIT: K1 HAS THE VALUE OF THE MODIFIED BESSEL FUNCTION OF
              THE THIRD KIND OF ORDER 1 MULTIPLIED BY EXP(X).

PROCEDURES USED:

    BESS K01  = CP35173.

REQUIRED CENTRAL MEMORY:

    NO ARRAYS ARE USED.

RUNNING TIME:

    DEPENDS ON THE VALUE OF X; BECAUSE OF THE STRONG
    INTERDEPENDENCE OF THE  BESS K01 ( = CP35173) AND NONEXP BESS K01
    THE READER IS REFERRED TO THE TABLE OF RUNNING TIMES BELONGING
    TO BESS K01.

METHOD AND PERFORMANCE:

    FOR THE COMPUTATION OF K0 AND K1 THREE
    DIFFERENT METHODS ARE USED DEPENDING ON THE VALUE OF  X:
    FOR 0 < X <= 1.5 K0 AND K1 ARE COMPUTED BY MEANS OF
    MULTIPLICATION OF THE MODIFIED BESSEL FUNCTIONS OF ORDER
    ZERO AND ONE (SEE DESCRIPTION OF K0) BY EXP(X);
    FOR 1.5 < X <= 5 K0 AND K1 ARE COMPUTED BY
    THE EVALUATION OF THEIR INTEGRAL REPRESENTATIONS (SEE [1],
    P. 376, FORMULA 9.6.23) BY MEANS OF THE TRAPEZOIDAL RULE (SEE [2]);
    FOR X > 5 K0 AND K1 ARE COMPUTED BY MEANS OF
    A FINITE CHEBYSHEV SERIES EXPANSION (SEE [3], P. 339 AND [4]).

EXAMPLE OF USE: THE PROGRAM

    "BEGIN" "REAL" X, K0, K1;
      "FOR" X:= .5, 1.0, 1.5, 2.0, 2.5 "DO"
      "BEGIN" NON EXP BESS K01(X, K0, K1);
        OUTPUT(61,"("/,4BZ.D,2(5B-.14D"-ZD)")",
        X, K0, K1)
      "END"
    "END"

    PRINTS THE FOLLOWING RESULTS:

     .5     .15241093857739"  1     .27310097082118"  1
    1.0     .11444630798069"  1     .16361534862633"  1
    1.5     .95821005329496"  0     .12431658735525"  1
    2.0     .84156821507078"  0     .10334768470687"  1
    2.5     .75954869032810"  0     .90017442390788"  0


SUBSECTION: NONEXP BESS K.

CALLING SEQUENCE:

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

    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[I] POSSESSES THE VALUE OF THE MODIFIED BESSEL
              FUNCTION OF THE THIRD KIND OF ORDER I (I = 0, ..., N)
              MULTIPLIED BY EXP(X).

PROCEDURES USED:

    NONEXP BESS K01  = CP 35178.

REQUIRED CENTRAL MEMORY: NO AUXILIARY ARRAYS ARE USED.

METHOD AND PERFORMANCE:
    K[0] AND K[1] ARE COMPUTED BY USING NONEXP BESS K01 (CP 35178),
    WHILE K[2], ..., K[N] ARE COMPUTED ACCORDING TO THE
    RECURRENCE RELATION
    K[I+1]=K[I]+(2*I/X)*K[I], I>=2
    (SEE [1], P. 376, FORMULA 9.6.26).

EXAMPLE OF USE:

    THE PROGRAM

    "BEGIN" "REAL" X; "ARRAY" K[0:2];
      "FOR" X:= .5, 1.0, 1.5, 2.0 "DO"
      "BEGIN" NONEXP BESS K(X, 2, K);
        OUTPUT(61, "("/,Z.D,3(5B.14D"D)")",X,K)
      "END"
    "END"
    PRINTS THE FOLLOWING RESULTS:

     .5  .15241093857739"1  .27310097082118"1  .12448148218621"2
    1.0  .11444630798069"1  .16361534862633"1  .44167700523334"1
    1.5  .95821005329496"0  .12431658735525"1  .26157645513649"1
    2.0  .84156821507078"0  .10334768470687"1  .18750450621395"1

SOURCE TEXT(S):

"CODE" 35170;
"CODE" 35171;

"CODE" 35172;
"CODE" 35173;

"CODE" 35174;

"CODE" 35175;

"CODE" 35176;
"CODE" 35177;

"CODE" 35178;

"CODE" 35179;