Where on earth did I say that infinity is “unconditionally” a number?
There are mathematical systems (like the ordinary integers) where it is not;
and there are mathematical systems (like the ordinal and cardinal numbers
of set theory) where there are infinities that count as numbers every bit
as much as 0 or 137. The fact that some mathematical systems include
infinities and some do not was pretty much the point that I was making.
As for computing, the IEEE infinities are members in good standing of
the category “IEEE numbers”. They are an essential part of IEEE floating-point
semantics, and refusing to call them “numbers” is petty quibbling over words
(lexicon) rather than meanings (semantics). NO floating-point system is or
can be anything other than a crude approximation to the mathematical real
number field. Get over it. The IEEE infinities are not peripheral or
optional; they are core elements of the IEEE system. It’s not useful
as an aid to practice or clear thinking to say that -0.0 is a number but
+infinity is not. If the result of a calculation using IEEE-compliant
operations is +infinity or -infinity, that actually gives you useful information
about what the numerical result would have been if possible: it would have
existed as a mathematical real AND its magnitude is very great. It’s not as
precise as other floating-point numbers, but floating-point numbers are not
all equally precise anyway, so once again, get over it.
Again, let’s not argue lexicon. Let’s argue semantics. +infinity is NOT an
approximation of an infinite number. It’s an approximation of an extremely
large number which is FINITE in the reals but outside the limits of finite floats.
It’s unfortunate that the word “infinity” was abused for this purpose;
“superbig” might have caused less confusion. (Where 1.0/0.0 comes in is that
0.0 doesn’t actually mean zero, it means “non-negative but too small to fit”.
Think of 0.0 as \epsilon, -0.0 as -\epsilon, +inf as 1/\epsilon, and
-inf as -1/\epsilon (except that each time you use \epsilon, it represents
a different teeny tiny number).)
Of course you are free to refuse the label “number” to anything you want to,
just as ancient Greek mathematicians refused to call 1 a number. (It’s not
a number, it’s the generator of numbers!) The question is whether the refusal
simplifies your mathematical life. Or in this case, your programming life.