If one only wants numerical values in double precision for real arguments then Maple is quite slow, even for the quite typical case of index 1 or 0. A way is to use the GNU Scientific Library GSL as external source for this special cases or to compile the needed stuff into a DLL and use that through external calls. However I (once) wanted to have that as Maple code and translated Ooura's solution into Maple (which is not too complicated). The motivation was to have something fast for evaluating integrals over such Bessel functions. Putting the coefficients needed for the numericial approximation into global arrays this makes Maple as fast as GSL (almost, M9.5 did, M11 is somewhat slower for this approach) for this functions, if one uses hardware float evaluations 'evalhf' (=double precision). The only drawback: I am not aware of a way to use Compiler:-Compile on that, but it is fast enough for my needs. The attached sheet shows the timings and achieved exactness (quite good) comparing GSL 1.3, Maple and Ooura's translated solution. May be this is of interest and useful for others as well. Download 102_BesselK_numeric.mws
View file details

Please Wait...