comparison liboctave/lo-specfun.cc @ 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 72c96de7a403
children ce731bb6a191
comparison
equal deleted inserted replaced
14195:1eeb3a8d5708 14196:35ce1eab7400
850 if (zi == 0.0 && zr >= 0.0) 850 if (zi == 0.0 && zr >= 0.0)
851 yi = 0.0; 851 yi = 0.0;
852 852
853 retval = bessel_return_value (Complex (yr, yi), ierr); 853 retval = bessel_return_value (Complex (yr, yi), ierr);
854 } 854 }
855 else if (is_integer_value (alpha))
856 {
857 // zbesi can overflow as z->0, and cause troubles for generic case below
858 alpha = -alpha;
859 Complex tmp = zbesi (z, alpha, kode, ierr);
860 if ((static_cast <long> (alpha)) & 1)
861 tmp = - tmp;
862 retval = bessel_return_value (tmp, ierr);
863 }
855 else 864 else
856 { 865 {
857 alpha = -alpha; 866 alpha = -alpha;
858 867
859 Complex tmp = zbesi (z, alpha, kode, ierr); 868 Complex tmp = zbesi (z, alpha, kode, ierr);