4 ms·
How about determining the quadrant of an angle? That's how atan2() uses signed zero and it's the greatest of all libm functions.
by jart 5y ago
How about determining the quadrant of an angle? That's how atan2() uses signed zero and it's the greatest of all libm functions.
- titzer 5y agoAfter staring at the MatLab[https://www.mathworks.com/help/matlab/ref/atan2.html#buct8h0-4 https://www.mathworks.com/help/matlab/ref/atan2.html#buct8h0...] explanation, I have to admit I don't really get that. Minus zero is a encoding artifact. Values of [x,y] with either `x == 0` or `y == 0` don't have, in the mathematical sense, a quadrant. The fact that a convention preserves an encoding artifact doesn't make it useful. E.g. I've seen it argued that +0 and -0 represent limits of functions that approach zero from the negative side or the positive side. But that makes no sense, because no other floating point number represents a limit going from above or below the number, so why should 0? Also, all this walking on eggshells around a possible -0 (because that represents the limit of 0 coming from below 0) is just lost when someone writes 0. Admittedly, I've not seen the guts of most numerical code, but the only time I have ever seen a minus 0 written into code was to test the minus-zero handling of something. /shrug
- deleted 5y ago[deleted]