gibuu is hosted by Hepforge, IPPP Durham
GiBUU

## /besselK [ Modules ]

[ Top ] [ Modules ]

NAME

module besselK

PURPOSE

provide the 'modified Bessel functions of first kind', I_n, and the 'modified Bessel functions of second kind', K_n.

NOTES

• The expansions by Pavel Holoborodko are used, https://www.advanpix.com/2015/11/11/rational-approximations-for-the-modified-bessel-function-of-the-first-kind-i0-computations-double-precision/ (see for further references below at the definition of the fuction.) These expressions claim to be exact within one unit of machine precision, i.e. ~2e-16
• The series expansions given by Abramowitz&Stegun (chapter 9.8) only have single precission (~1e-7)
• K0 and K1 are imlemented explicitely, using own parametrization of I0 and I1. K2 is implemented by recursion.
• One should catch the case of x > 400, since then the exp results as NaN.
• One could think of implementing a second order Horner scheme in order to speed up the calculations of the polynomials. Here one splits the polynomial p(x) into the odd and even polynomials p_odd(y) and p_even(y) (with y=x^2) and returns p(x) = p_even + x*p_odd. see e.g.: J.-M. Muller, Elementary Functions. Algorithms and Implementation Birkhäuser / Springer, 2016

## besselK/BesselI0 [ Functions ]

[ Top ] [ besselK ] [ Functions ]

NAME

real function BesselI0(x)

PURPOSE

return the value I(0,x)

NOTES

## besselK/BesselI1 [ Functions ]

[ Top ] [ besselK ] [ Functions ]

NAME

real function BesselI1(x)

PURPOSE

return the value I(1,x)

NOTES

## besselK/BesselK0 [ Functions ]

[ Top ] [ besselK ] [ Functions ]

NAME

real function BesselK0(x)

PURPOSE

return the value K(0,x)

NOTES

## besselK/BesselK1 [ Functions ]

[ Top ] [ besselK ] [ Functions ]

NAME

real function BesselK1(x)

PURPOSE

return the value K(1,x)

NOTES

## besselK/BesselK2 [ Functions ]

[ Top ] [ besselK ] [ Functions ]

NAME

real function BesselK2(x)

PURPOSE

return the value K(2,x)