Subject: Re: [Boost-bugs] [Boost C++ Libraries] #13606: sinc_pi incorrect taylor_0_bound
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2018-06-18 08:47:52
#13606: sinc_pi incorrect taylor_0_bound
-------------------------------+------------------------------------
Reporter: minorlogic@⦠| Owner: John Maddock
Type: Bugs | Status: reopened
Milestone: To Be Determined | Component: math
Version: Boost 1.63.0 | Severity: Optimization
Resolution: | Keywords: sinc_pi taylor_0_bound
-------------------------------+------------------------------------
Changes (by anonymous):
* status: closed => reopened
* resolution: fixed =>
Comment:
Bounds is still incorrect.
Should look like
- Range0 for abs(x) in ( 0 , pow(eps, 1/2) )
result == 1.0, cause next Taylor x2/6 LESS than "epsilon" and 1.0-x2/6 ==
1.0
For example (for double) if abs(x) == 1.0e-10. The x2 == 1.0e-20 and
1.0e-20/6 is less than double::epsilon, so 1.0 + 1.0e-20/6 == 1.0.
- Range1 for abs(x) in ( pow(eps, 1/2) , pow(eps, 1/4) )
result == 1.0-x2/6, cause next Taylor x2*x2/120 LESS than "epsilon" even
in Horner method. Important signs of x2*x2 is out of epsilon range.
- Range2 for abs(x) in ( pow(eps, 1/4) , pow(eps, 1/6) )
result == 1.0 + x2 * (-1.0 + x2 / 20.0) / 6.0;, cause x^6/7! LESS than
"epsilon" even in Horner method.
NOTE: We can use approximate bounds from above ignoring Taylor series
coefficients. Calculation of exact bounds is not trivial, and should use
exact analytical precision bounds of all operations.
-- Ticket URL: <https://svn.boost.org/trac10/ticket/13606#comment:2> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2018-06-18 08:54:50 UTC