XLPack 7.0
XLPack Numerical Library (C API) Reference Manual
Loading...
Searching...
No Matches

◆ cbesh()

void cbesh ( doublecomplex  z,
double  nu,
int  kode,
int  m,
int  n,
doublecomplex  y[],
int *  info 
)

Sequence of Hankel functions Hν(m)(z) (fractional order)

Purpose
cbesh computes the sequence of the Hankel functions Hν(m)(z) for superscript m = 1 or 2, real nonnegative orders ν, ν+1, ... , and nonzero complex argument z.
A scaling option is available to help avoid overflow.
Parameters
[in]zArgument z. (z != 0)
[in]nuOrder of first member of the sequence. (nu >= 0)
[in]kodeA parameter to indicate the scaling option.
= 1: No scaling.
= 2: Returns exponentially scaled values.
[in]mSuperscript of Hankel function. (m = 1 or 2)
[in]nNumber of members in the sequence. (n members of orders nu to nu+n-1 to be computed) (n >= 1)
[out]y[]Array y[ly] (ly >= n)
Sequence of the Hankel functions.
kode = 1: Hν(m)(z) (ν = nu to nu+n-1)
kode = 2: exp(-(3-2m)*z*i)*Hν(m)(z) (ν = nu to nu+n-1)
[out]info= 0: Successful exit.
= -1: The argument z had an illegal value. (z = 0)
= -2: The argument nu had an illegal value. (nu < 0)
= -3: The argument kode had an illegal value. (kode != 1 and kode != 2)
= -4: The argument m had an illegal value. (m != 1 and m != 2)
= -5: The argument n had an illegal value. (n < 1)
= nz (0 < nz <= n): The last nz components of y[] set to zero due to underflow.
= n+1: Precision warning. (Half precision or less because abs(z) or nu+n-1 is large)
= n+2: Precision error. (No precision because abs(z) or nu+n-1 is too large)
= n+3: Overflow abs(z) too small and/or nu+n-1 too large.
= n+4: Algorithmic error. (Termination condition not met)
Reference
SLATEC