@Article{Ratnanather:2014:AIM, author = "J. Tilak Ratnanather and Jung H. Kim and Sirong Zhang and Anthony M. J. Davis and Stephen K. Lucas", title = "Algorithm 935: {IIPBF}, a {MATLAB} toolbox for infinite integral of products of two {Bessel} functions", journal = "{ACM} Transactions on Mathematical Software", volume = 40, number = 2, year = 2014, month = feb, pages = "14:1--14:12", url = "http://doi.acm.org/10.1145/2508435", accepted = "29 July 2013", abstract = " A \texttt{MATLAB} toolbox, \texttt{IIPBF}, for calculating infinite integrals involving a product of two Bessel functions $J_{a}(\rho x)J_{b}(\tau x), J_{a}(\rho x)Y_{b}(\tau x)$ and $Y_{a}(\rho x)Y_{b}(\tau x)$, for non-negative integers $a,b$, and a well behaved function $f(x)$, is described. Based on the Lucas algorithm previously developed for $J_{a}(\rho x)J_{b}(\tau x)$ only, \texttt{IIPBF} recasts each product as the sum of two functions whose oscillatory behavior is exploited in the three step procedure of adaptive integration, summation and extrapolation. The toolbox uses customised \texttt{QUADPACK} and \texttt{IMSL} functions from a \texttt{MATLAB} conversion of the \texttt{SLATEC} library. In addition, \texttt{MATLAB}'s own \texttt{quadgk} function for adaptive Gauss-Kronrod quadrature results in a significant speed up compared with the original algorithm. Usage of \texttt{IIPBF} is described and eighteen test cases illustrate the robustness of the toolbox; five additional ones are used to compare \texttt{IIPBF} with the \texttt{BESSELINT} code for rational and exponential forms of $f(x)$ with $J_{a}(\rho x)J_{b}(\tau x)$. Reliability for a broad range of values of $\rho$ and $\tau$ for the three different product types as well as different orders in one case is demonstrated. An electronic appendix provides a novel derivation of formulae for five cases.", }