# HG changeset patch # User John W. Eaton # Date 1326388233 18000 # Node ID 35ce1eab7400af0b1faf404e3b863b0036eaa93c # Parent 1eeb3a8d5708f72240185558a7f8c52933b7d1f6 besseli: use special case for negative integer orders * lo-specfun.cc (zbesi): Special case for negative integer orders. diff -r 1eeb3a8d5708 -r 35ce1eab7400 liboctave/lo-specfun.cc --- a/liboctave/lo-specfun.cc Wed Jan 11 12:38:20 2012 -0500 +++ b/liboctave/lo-specfun.cc Thu Jan 12 12:10:33 2012 -0500 @@ -852,6 +852,15 @@ retval = bessel_return_value (Complex (yr, yi), ierr); } + else if (is_integer_value (alpha)) + { + // zbesi can overflow as z->0, and cause troubles for generic case below + alpha = -alpha; + Complex tmp = zbesi (z, alpha, kode, ierr); + if ((static_cast (alpha)) & 1) + tmp = - tmp; + retval = bessel_return_value (tmp, ierr); + } else { alpha = -alpha;