Author(s): K.S. Kölbig | Library: MATHLIB |
Submitter: | Submitted: 24.01.1986 |
Language: Fortran | Revised: 15.03.1993 |
Subroutine subprograms BSJA, BSIA, DBSJA, DBSIA and QBSJA, QBSIA calculate the sequences of Bessel functions
for real argument x>0, , and .
The quadruple-precision versions QBSJA and QBSIA are available only on computers which support a REAL*16 Fortran data type.
Structure:
SUBROUTINE subprograms
User Entry Names: BSJA, BSIA, DBSJA, DBSIA,
QBSJA, QBSIA
Files Referenced: Unit 6
External References:
GAMMA, DGAMMA, QGAMMA,
MTLMTR, ABEND
Usage:
Single-precision version:
CALL BSJA(X,A,NL,ND,B) or
CALL BSIA(X,A,NL,ND,B)
Method:
For , the method of computation is a variant of Miller's backwards recurrence algorithm (see Ref. 1). The requested accuracy is obtained, when possible, by a judicious choice of the initial value of the recursion index, together with at least one repetition of the recursion with this index increased by 5. For , only the first two functions in the sequence are computed in this way. The remaining functions are computed by the standard Bessel function recurrence relation.
Restrictions:
, , .
Accuracy:
If X is close to a zero of one of the functions , the accuracy of that particular function will be less than ND significant digits. There may also be a loss of accuracy in any of the computed functions if A is close to 0 or 1, and in other special situations.
Error handling:
Error C343.1: .
Error C343.2: or .
Error C343.3: .
Error C343.4: Difficulties of convergence. Try smaller
.
In all cases, a message is written on
Unit 6, unless subroutine MTLSET (N002) has been called.
If Error 1 to 3 occurs, the initial contents of array B
is left unchanged.
If the requested accuracy cannot be obtained after the initial
recursion index has been increased fifty times (Error 4),
the contents of array B is undefined.
The subprogram is based on Algol procedures described in Ref. 1.
References: