[Boost-bugs] [Boost C++ Libraries] #6171: nonconforming behavior of inverse functions on branch cuts

Subject: [Boost-bugs] [Boost C++ Libraries] #6171: nonconforming behavior of inverse functions on branch cuts
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-11-24 09:04:07


#6171: nonconforming behavior of inverse functions on branch cuts
---------------------------------------------------+------------------------
 Reporter: Richard B. Kreckel <kreckel@…> | Owner: johnmaddock
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: math
  Version: Boost 1.48.0 | Severity: Problem
 Keywords: |
---------------------------------------------------+------------------------
 The inverse trigonometric and hyperbolic functions in boost/math treat
 signed zero incorrectly. The positions of the branch cuts are right, but
 C99 specifies to "''map a cut so the function is continuous as the cut is
 approached coming around the finite endpoint of the cut in a counter
 clockwise direction''" and so does C++11.

 Here are some examples of failures:
 * asin(-1.75-0.0*I) returns -1.5708+1.1588*I (should be -1.5708-1.1588*I)
 * acos(-1.25+0.0*I) returns +3.1416+0.6932*I (should be +3.1416-0.6932*I)
 * atan(-0.0-1.75*I) returns +1.5708-0.6496*I (should be -1.5708-0.6496*I)
 * asinh(+0.0+1.5*I) returns -0.9624+1.5708*I (should be +0.9624+1.5708*I)
 * acosh(-2.5+0.0*I) returns +1.5668-3.1416*I (should be +1.5668+3.1416*I)
 * atanh(-2.0-0.0*I) returns -0.5493+1.5708*I (should be -0.5493-1.5708*I)

 I'm attaching a patch.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/6171>
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 : 2017-02-16 18:50:07 UTC