Author(s): K.S. Kölbig | Library: MATHLIB |
Submitter: | Submitted: 24.01.1986 |
Language: Fortran | Revised: 15.03.1993 |
Subroutine subprograms CBSJA, WBSJA and WQBSJA calculate a sequence of Bessel functions
for complex arguments z, , and .
The quadruple-precision version WQBSJA is available only on computers which support a COMPLEX*32 Fortran data type.
Structure:
SUBROUTINE subprograms
User Entry Names: CBSJA, WBSJA, WQBSJA
Files Referenced: Unit 6
External References: GAMMA, DGAMMA,
QGAMMA, MTLMTR, ABEND
Usage:
Single-precision version:
CALL CBSJA(Z,A,NL,ND,CB)
CALL WBSJA(Z,A,NL,ND,CB)where A is of type DOUBLE PRECISION, Z and CB are of type COMPLEX*16.
On computers whose Fortran compiler does not support COMPLEX*16 arithmetic (e.g. CDC and Cray) the storage conventions for Z and CB are as follows:
CALL WQBSJA(Z,A,NL,ND,CB)where A is of type REAL*16, Z and CB are of type COMPLEX*32.
Method:
The method is an extension to complex arguments of 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.
Restrictions:
Im if Re , , .
Accuracy:
If Z does not lie on the real axis, the requested accuracy is usually obtained. There may be a loss of accuracy if A is close to 0 or 1, and in other special situations.
Error handling:
Error C344.1: with
and .
Error C344.2: or .
Error C344.3: or .
Error C344.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 CB
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 CB is undefined.
The subprogram is based on Algol procedures described in Ref. 1.
References: