Algorithm 935: IIPBF, a MATLAB toolbox for infinite integral of products of two Bessel functions. A MATLAB toolbox, IIPBF, for calculating infinite integrals involving a product of two Bessel functions J a (ρx)J b (τx),J a (ρx)Y b (τx) and Y a (ρx)Y b (τ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 (ρx)J b (τx) only, 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 QUADPACK and IMSL functions from a MATLAB conversion of the SLATEC library. In addition, MATLAB’s own quadgk function for adaptive Gauss-Kronrod quadrature results in a significant speed up compared with the original algorithm. Usage of IIPBF is described and eighteen test cases illustrate the robustness of the toolbox; five additional ones are used to compare IIPBF with the BESSELINT code for rational and exponential forms of f(x) with J a (ρx)J b (τx). Reliability for a broad range of values of ρ and τ 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.

This software is also peer reviewed by journal TOMS.

Keywords for this software

Anything in here will be replaced on browsers that support the canvas element