Bug 3231

Summary: Bessel function y0(x) broken for x<2
Product: [Retired] Red Hat Linux Reporter: mhagger
Component: glibcAssignee: Cristian Gafton <gafton>
Severity: high Docs Contact:
Priority: high    
Version: 6.0CC: gborzi
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 1999-07-02 21:15:51 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description mhagger 1999-06-03 08:12:00 UTC
glibc-2.1.1 has a broken Bessel function y0(x) for any value
of x<2.

A coding change in libc/sysdeps/libm-ieee754/e_j0.c has
broken the evalation of y0(x) for x<2.  Evaluating y0(x) for
any value less than 2 will give the wrong answer.

Specifically lines 237-239 of this file should read:
  v1 = one*z*V[0];
  v2 = V[1]+z*V[2];
  v = v1 + z2*v2 + z4*V[3];

The problem is the indexing of V which should read from 0,
NOT 1.

The libc maintainers have been informed of this and will fix
it for the next release (libc bug number 1145).  However,
this is a serious bug in that the general Bessel function
yn(x) will also return the wrong answers as y0(x) is used to
generate yn(n).  This may break many numerical codes that
use Bessel functions.

Comment 1 Jeff Johnson 1999-06-13 03:06:59 UTC
*** Bug 3415 has been marked as a duplicate of this bug. ***

Function besy0(x) gives very inaccurate results (the error
is very high) for values of the argument x lesser 2.
Function besy1 gives correct results, but besyn(n,x) gives
wrong results for n>1 and x<2.

Comment 2 Jay Turner 1999-06-29 11:18:59 UTC
This issue has been forwarded to a developer for further action.

Comment 3 Cristian Gafton 1999-07-02 21:15:59 UTC
Fixed in glibc 2.1.2. Please reopen if this is still a problem.

The new package should ba available in rawhide shortly.