cc [ flags ] -I/usr/local/include file(s) -L/usr/local/lib -lmcw [ ... ] #include <mathcw.h> extern void vsbksf (int n, float ks[/* n+1 */], float x); extern void vsbks (int n, double ks[/* n+1 */], double x); extern void vsbksl (int n, long double ks[/* n+1 */], long double x); extern void vsbksw (int n, __float80 ks[/* n+1 */], __float80 x); extern void vsbksq (int n, __float128 ks[/* n+1 */], __float128 x); extern void vsbksll (int n, long_long_double ks[/* n+1 */], long_long_double x); extern void vsbksdf (int n, decimal_float ks[/* n+1 */], decimal_float x); extern void vsbksd (int n, decimal_double ks[/* n+1 */], decimal_double x); extern void vsbksdl (int n, decimal_long_double decimal_long_double ks[/* n+1 */], decimal_long_double x); extern void vsbksdll (int n, decimal_long_long_double decimal_long_long_double ks[/* n+1 */], decimal_long_long_double x);
NB: Functions with prototypes containing underscores in type names may be available only with certain extended compilers.
This function is considerably faster than one that simply invokes sbksn(k,x) for each element.
The modified Bessel functions provided by these software implementations are defined according to Chapter 9, Bessel Functions of Integer Order, of the Handbook of Mathematical Functions, edited by Milton Abramowitz and Irene A. Stegun, National Bureau of Standards Applied Mathematics Series #55, US Department of Commerce, Washington, DC (1964).
The k(n,x) functions fall exponentially with increasing x, and underflow even with moderate x values. For that reason, this function family returns values of this Bessel function increased by a factor of exp(x); see vbk(3CW) for the unscaled companions.
If the argument is negative, errno is set to EDOM, and a quiet NaN is returned in the output array.
If the argument is zero, errno is set to ERANGE, and a positive Infinity (or the largest floating-point magnitude, if Infinity is not available) is returned in the output array.