Bug 1877 – Errors in the documentation of std.math.atan2

Status
RESOLVED
Resolution
FIXED
Severity
minor
Priority
P2
Component
dlang.org
Product
D
Version
D2
Platform
x86
OS
All
Creation time
2008-02-27T22:25:00Z
Last change time
2015-06-09T01:14:34Z
Assigned to
bugzilla
Creator
lio+bugzilla

Comments

Comment #0 by lio+bugzilla — 2008-02-27T22:25:34Z
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 -∞ ±π".
Comment #1 by clugdbug — 2008-02-29T02:15:04Z
(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.
Comment #2 by lio+bugzilla — 2008-02-29T02:41:03Z
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.
Comment #3 by aldacron — 2008-02-29T07:55:25Z
Bill Baxter wrote: > [email protected] wrote: >> http://d.puremagic.com/issues/show_bug.cgi?id=1877 >> >> >> >> >> >> ------- Comment #1 from [email protected] 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
Comment #4 by bugzilla — 2008-03-07T00:37:00Z
Fixed dmd 1.028 and 2.012