comparison liboctave/lo-specfun.cc @ 11904:059fadc0cbc3 release-3-0-x

fix scaling factor for negative alpha in zbesi,cbesi add bessel function tests add all scaling factors to bessel documentation
author Brian Gough <bjg@gnu.org>
date Mon, 12 Jan 2009 10:42:03 +0100
parents 6525eb2fba0f
children
comparison
equal deleted inserted replaced
11903:afe7e59fd69e 11904:059fadc0cbc3
409 409
410 Complex tmp = zbesi (z, alpha, kode, ierr); 410 Complex tmp = zbesi (z, alpha, kode, ierr);
411 411
412 if (ierr == 0 || ierr == 3) 412 if (ierr == 0 || ierr == 3)
413 { 413 {
414 tmp += (2.0 / M_PI) * sin (M_PI * alpha) 414 Complex tmp2 = (2.0 / M_PI) * sin (M_PI * alpha)
415 * zbesk (z, alpha, kode, ierr); 415 * zbesk (z, alpha, kode, ierr);
416
417 if (kode == 2)
418 {
419 // Compensate for different scaling factor of besk.
420 tmp2 *= exp(-z - std::abs(z.real()));
421 }
422
423 tmp += tmp2;
416 424
417 retval = bessel_return_value (tmp, ierr); 425 retval = bessel_return_value (tmp, ierr);
418 } 426 }
419 else 427 else
420 retval = Complex (octave_NaN, octave_NaN); 428 retval = Complex (octave_NaN, octave_NaN);