From: Yuri Tzara Date: 2010-11-27T00:32:50+09:00 Subject: Re: Ruby 1.8 vs 1.9 The big picture is that IEEE floating point is solidly grounded in mathematics regarding infinity. Phillip wants to convince us that this is not the case. He wants us to believe that the design of floating point regarding infinity is wrong and that he knows better. He is mistaken. That is all you need to know. Details follow. The most direct refutation of his claims comes from the actual reason why infinity was included in floating point: http://docs.sun.com/source/806-3568/ncg_goldberg.html#918 Infinity prevents wildly incorrect results. It also removes the need to check certain special cases. Now it happens that floating point is backed by a mathematical model: the extended real line. Phillip tells us that the extended real line is only useful for the 1% of programmers who are mathematicians. He is wrong. It is used every time infinity prevents an incorrect result or simplifies a calculation. The mathematics behind floating point design is slightly more than elementary, but that does not mean every programmer is required to have full knowledge of it. What follows is an examination of Phillip's descent into absurdity, apparently caused by a compelling need justify the mantras he learned in high school. If you are interested in the psychological phenomenon of cognitive dissonance, or if you still think that Phillip is being coherent, then keep reading. This conversation began when Phillip said about 1/0, > It cannot be infinity. It does, quite literally not compute. There's > no room for interpretation, it's a fact of (mathematical) life that > something divided by nothing has an undefined result. It doesn't > matter if it's 0, 0.0, or -0.0. Undefined is undefined. > > That other languages have the same issue makes matters worse, not > better (but at least it is consistent, so there's that). It's clear here that Phillip is unaware that IEEE floating point was designed to approximate the affinely extended real numbers, which has a rigorous definition of infinity along with operations upon it. http://mathworld.wolfram.com/AffinelyExtendedRealNumbers.html Floating point infinity obeys all the rules laid out there. Also notice the last paragraph in that link. > The IEEE standard, however, does *not* define how mathematics work. > Mathematics does that. In math, x_0/0 is *undefined*. It is not > infinity (David kindly explained the difference between limits and > numbers), it is not negative infinity, it is undefined. Division by > zero *cannot* happen... > > So, from a purely mathematical standpoint, the IEEE 754 standard is > wrong by treating the result of division by 0.0 any different than > dividing by 0... Here Phillip further confirms that he is unaware that IEEE used the mathematical definition of the extended reals. He thinks infinity was defined on the whim of the IEEE designers. No, mathematics told them how it worked. This conversation only continues because Phillip is trying desperately cover up his ignorance rather than simply acknowledging it and moving on. I was polite when I corrected him the first time, however when he ignored this correction along with a similar one by Adam, obstinately repeating his mistaken belief instead, that's when directness is required. For whatever reason he is compelled to "fake" expertise in this area despite being repeatedly exposed for doing so. To wit: > > Infinity defined this way has solid mathematical meaning and is > > established on a firm foundation, described in the link above. > > A firm foundation that is not used in algebraic math. This sentence is not even meaningful. What is "algebraic math"? That phrase makes no sense, especially to a mathematician. The extended reals is of course an algebraic structure with algebraic properties, so whatever "algebraic math" means here must apply to the extended reals. > > Right, IEEE does not define how mathematics works. IEEE took the > > mathematical definition and properties of infinity and > > incorporated it into the standard. Clearly, you were unaware of > > this and repeatedly ignored the information offered to you about > > it. > > It took *a* definition and *a* set of properties. If we are > splitting hairs, let's do it properly, at least. The affinely extended reals is the two-point compactification of the real line. The real projective line is the one-point compactification of the real line. These compactifications are _unique_. In a desperate display of backpedaling, Phillip only succeeds confirming his ignorance of the topic about which he claims expertise. > Pal, in algebraic maths, division by zero is undefined. End of > story. We are talking about algebraic math here... More nonsensical "algebraic math" terminology. What is this? Do you mean algebraic numbers? No, you can't mean that, since floating point is used for approximating transcendentals as well. Again, the extended reals is an algebraic structure with algebraic properties. Your introduction of the term "algebraic math" is just more backpedaling done in a manifestly incompetent way. In trying to move the goalposts, the goalposts fell on your head. As if that wasn't bad enough, you absurdly claim that I was moving goalposts. For more on what happened to Phillip, see the Dunning-Kruger effect. Don't let it happen to you. http://en.wikipedia.org/wiki/Dunning-Kruger_effect -- Posted via http://www.ruby-forum.com/.