|Summary:||Bessel function y0(x) broken for x<2|
|Product:||[Retired] Red Hat Linux||Reporter:||mhagger|
|Component:||glibc||Assignee:||Cristian Gafton <gafton>|
|Status:||CLOSED CURRENTRELEASE||QA Contact:|
|Fixed In Version:||Doc Type:||Bug Fix|
|Doc Text:||Story Points:||---|
|Last Closed:||1999-07-02 21:15:51 UTC||Type:||---|
|oVirt Team:||---||RHEL 7.3 requirements from Atomic Host:|
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; v2 = V+z*V; v = v1 + z2*v2 + z4*V; 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.