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;