Bug 3231 - Bessel function y0(x) broken for x<2
Summary: Bessel function y0(x) broken for x<2
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: glibc
Version: 6.0
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Cristian Gafton
QA Contact:
: 3415 (view as bug list)
Depends On:
TreeView+ depends on / blocked
Reported: 1999-06-03 08:12 UTC by mhagger
Modified: 2008-05-01 15:37 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 1999-07-02 21:15:51 UTC

Attachments (Terms of Use)

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.

Note You need to log in before you can comment on or make changes to this bug.