www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 1877] New: Errors in the documentation of std.math.atan2

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1877

           Summary: Errors in the documentation of std.math.atan2
           Product: D
           Version: 2.011
          Platform: PC
               URL: http://www.digitalmars.com/d/2.0/phobos/std_math.html
        OS/Version: All
            Status: NEW
          Severity: minor
          Priority: P2
         Component: www.digitalmars.com
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: lio lunesu.com


First of all, the doc states "Calculates the arc tangent of y / x, returning a
value ranging from -π/2 to π/2." which should be "..from -π to π.", as is
shown in the table.

Then, there are a couple of inconsistencies in the "Special Values" table:
"±0.0 ±0.0 ±0.0" should be "±0.0 +0.0 ±0.0",
"<0.0 ±0.0 π/2" should be "<0.0 ±0.0 -π/2",
">0.0 ∞ ±0.0" should be "anything ∞ ±0.0",
">0.0 -∞ ±π" should be "anything -∞ ±π".


-- 
Feb 27 2008
next sibling parent reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1877





------- Comment #1 from clugdbug yahoo.com.au  2008-02-29 02:15 -------
(In reply to comment #0)
 First of all, the doc states "Calculates the arc tangent of y / x, returning a
 value ranging from -π/2 to π/2." which should be "..from -π to π.", as is
 shown in the table.
 
 Then, there are a couple of inconsistencies in the "Special Values" table:
 "±0.0 ±0.0 ±0.0" should be "±0.0 +0.0 ±0.0",
 "<0.0 ±0.0 π/2" should be "<0.0 ±0.0 -π/2",
 ">0.0 ∞ ±0.0" should be "anything ∞ ±0.0",
 ">0.0 -∞ ±π" should be "anything -∞ ±π".
 

You're correct for the first three, but not for the last two. atan2(NaN, inf) is NaN, not +-0. Also atan2(inf, inf) is pi/4. --
Feb 29 2008
parent reply Bill Baxter <dnewsgroup billbaxter.com> writes:
d-bugmail puremagic.com wrote:
 http://d.puremagic.com/issues/show_bug.cgi?id=1877
 
 
 
 
 
 ------- Comment #1 from clugdbug yahoo.com.au  2008-02-29 02:15 -------
 (In reply to comment #0)
 First of all, the doc states "Calculates the arc tangent of y / x, returning a
 value ranging from -π/2 to π/2." which should be "..from -π to π.", as is
 shown in the table.

 Then, there are a couple of inconsistencies in the "Special Values" table:
 "±0.0 ±0.0 ±0.0" should be "±0.0 +0.0 ±0.0",
 "<0.0 ±0.0 π/2" should be "<0.0 ±0.0 -π/2",
 ">0.0 ∞ ±0.0" should be "anything ∞ ±0.0",
 ">0.0 -∞ ±π" should be "anything -∞ ±π".

You're correct for the first three, but not for the last two. atan2(NaN, inf) is NaN, not +-0. Also atan2(inf, inf) is pi/4.

Who says the atan2(inf,inf) is pi/4? Is that an IEEE thing? Seems odd since that's like saying atan(inf/inf), and inf/inf is NaN, isn't it? Put another way atan2(inf,inf) the limit of any atan2(k*x,x) as x gets big. Since k could be anything, it seems strange for the value to suddenly change to pi/4 when x becomes inf. --bb
Feb 29 2008
parent Don Clugston <dac nospam.com.au> writes:
Bill Baxter wrote:
 d-bugmail puremagic.com wrote:
 http://d.puremagic.com/issues/show_bug.cgi?id=1877





 ------- Comment #1 from clugdbug yahoo.com.au  2008-02-29 02:15 -------
 (In reply to comment #0)
 First of all, the doc states "Calculates the arc tangent of y / x, 
 returning a
 value ranging from -π/2 to π/2." which should be "..from -π to π.", 
 as is
 shown in the table.

 Then, there are a couple of inconsistencies in the "Special Values" 
 table:
 "±0.0 ±0.0 ±0.0" should be "±0.0 +0.0 ±0.0",
 "<0.0 ±0.0 π/2" should be "<0.0 ±0.0 -π/2",
 ">0.0 ∞ ±0.0" should be "anything ∞ ±0.0",
 ">0.0 -∞ ±π" should be "anything -∞ ±π".

You're correct for the first three, but not for the last two. atan2(NaN, inf) is NaN, not +-0. Also atan2(inf, inf) is pi/4.

Who says the atan2(inf,inf) is pi/4? Is that an IEEE thing?

Yup. For a sanity check, here's a link to the Java docs: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Math.html#atan2(double,%20double)
 Seems odd since that's like saying atan(inf/inf), and inf/inf is NaN, 
 isn't it?

Yes, it's one of the strange IEEE results. There's a couple that are controversial.
 Put another way atan2(inf,inf)
 the limit of any atan2(k*x,x) as x gets big.  Since k could be anything, 
 it seems strange for the value to suddenly change to pi/4 when x becomes 
 inf.
 
 --bb

Feb 29 2008
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1877





------- Comment #2 from lio lunesu.com  2008-02-29 02:41 -------
I was using "anything" more like "anything, except values explicitely mentioned
elsewhere in this table", as seems to be the case in the row "±∞ anything
±π/2", already present in the table.

Also "inf,inf" is explictely mentioned in the table, so was not meant by
"anything". I agree that the word "anything" should be best avoided and
replaced by "<>0" or something similarly D-like.


-- 
Feb 29 2008
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1877


bugzilla digitalmars.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED




------- Comment #4 from bugzilla digitalmars.com  2008-03-07 00:37 -------
Fixed dmd 1.028 and 2.012


-- 
Mar 06 2008