The affine number system adds +Infinity and -Infinity to the set of
real numbers; the projective system adds only (unsigned) Infinity.
Unless we specify which number system we refer to, statements like
"positive and negative infinity are the same" or the reply "you
couldn't be more wrong" are pointless. In my defense, I had only
intended to make a harmless mathematical pun, which predictably
backfired.
Neither of these number systems are used in JS, where +Infinity,
-Infinity, and even NaN are _numbers_. No mathemetical system (that I
know of) calls infinity a number, and certainly none of them calls
"not-a-number" a number. These values, like the signed zero, are
merely artifacts of the programming language we use.
Regarding Steve Young's question about how parallel lines can "meet"
in infinity - this is hard to grasp intuitively, but it's a logical
consequence of the concept of infinity. Here is one way to look at it:
imagine two straight lines in a cartesian coordinate system; one for
y = 2 and one for y = 4. If you draw the graphs for -10 < x < 10, the
distance between the lines is quite noticeable. The graphs for
-1000 < x < 1000 would show them very close to each other. The further
you go on the x axis, the less important the distance between the
lines becomes, until the distance 2 becomes completely meaningless
when compared to an infinite x. With the distance between the lines
gone, the can be said to "meet in infinity".
In number systems which include infinity, finite values can drop out
of arithmetic expressions:
∞ + 5 = ∞ ∞ - 5 = ∞
∞ * 5 = ∞ ∞ / 5 = ∞
The results of some types of expressions are usually left undefined,
like ∞ * 0, ∞ - ∞, or ∞ / ∞. In JS, the result for these
three is NaN. On the other hand, in JS, the result of 5 / 0 is
Infinity, where it could just as well have been defined as NaN. In
conclusion, JS and mathematics don't always mix well - which, I think,
sums up this thread rather nicely