From: james@... Date: 2002-06-01T03:47:40+09:00 Subject: RE: Infinity (?!) > This is exactly what I'm talking about: this is an arbitrary distinction > imposed by the underlying processing mechanism. The point I'm trying to > illustrate is the lack of transitive logic between equalities: > > 1 == 1.0 > 1/0 == 1/0 (in that they both throw exceptions) > 1/0.0 == 1/0.0 plus, 0 == 0.0 # true and 0.0 == 0 # true > > but > > 0/0 != 0/0.0 > > I don't see how this can be rationalized except by an appeal to > "that's the > way it has to be because of how computers work". Which is a surprising, and unpleasant, coupling. The Ruby 1.7 source has this, in numeric.c: #if defined(__FreeBSD__) && __FreeBSD__ < 4 /* allow divide by zero -- Inf */ fpsetmask(fpgetmask() & ~(FP_X_DZ|FP_X_INV|FP_X_OFL)); #endif Is this because some systems really *don't* let you divide by zero? James