Mercurial > hg > octave-nkf
changeset 14196:35ce1eab7400 stable
besseli: use special case for negative integer orders
* lo-specfun.cc (zbesi): Special case for negative integer orders.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 12 Jan 2012 12:10:33 -0500 |
parents | 1eeb3a8d5708 |
children | ce731bb6a191 |
files | liboctave/lo-specfun.cc |
diffstat | 1 files changed, 9 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/liboctave/lo-specfun.cc +++ b/liboctave/lo-specfun.cc @@ -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 <long> (alpha)) & 1) + tmp = - tmp; + retval = bessel_return_value (tmp, ierr); + } else { alpha = -alpha;