On 2019-02-15 10:19:03 +0000, Austin Group Bug Tracker wrote: > New proposed resolution: > > On page 611 line 21228 section atan2(), change:<blockquote>[MX]If the > correct value would cause underflow, a range error may occur, and atan(), > atan2f(), and atan2l() shall return an implementation-defined value no > greater in magnitude than DBL_MIN, FLT_MIN, and LDBL_MIN, > respectively.[/MX] > > [MXX]If the IEC 60559 Floating-Point option is supported, y/x should be > returned.[/MXX]</blockquote>to:<blockquote>If the correct value would cause > underflow, a range error may occur, and atan2(), atan2f(), and atan2l() > shall return an implementation-defined value no greater in magnitude than > DBL_MIN, FLT_MIN, and LDBL_MIN, respectively. [MXX]If the IEC 60559 > Floating-Point option is supported, y/x should be > returned.[/MXX]</blockquote>
I don't understand the recommendation "y/x should be returned", while correct rounding would be more accurate. While in case of underflow, atan2(y,x) is mathematically very close to y/x, there may be a difference in correct rounding when the exact value of y/x is the midpoint of two machine numbers (which is possible in the subnormal range). At least it should offer the choice between returning y/x correctly rounded and returning atan2(y,x) correctly rounded. -- Vincent Lefèvre <vinc...@vinc17.net> - Web: <https://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)