[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Wrapping up SRFI-70
> From: bear <bear@xxxxxxxxx>
> On Sun, 14 Aug 2005, Aubrey Jaffer wrote:
> ...
> However, multiplication by exact zero certainly does "trump"
> mere overflows (signed numbers that are too large for the
> current encoding to represent). Under your current formulation,
> are infinities distinguished from overflows? Do you think it
> would be a reasonable thing to do? Do you think it would be
> a reasonable thing to forbid anyone to do?
>
>> | Forbidding an implementation to return an exact zero in
>> | that situation is to ignore a fundamental law of mathematics
>> | and also forbid the implementation from providing true and
>> | potentially useful information to its user.
>>
>> R5RS also allows an implementation to return inexact zero. Is that
>> wrong? Do you feel that latitude should be removed?
>
> If the other operand is anything other than an actual infinity,
> then zero (EXACTLY zero) is the correct mathematical result.
> The latitude to return inexact zero is a concession to simple,
> efficient code that runs fast on hardware which presents a
> flawed model of mathematics; it permits the flaw to affect the
> results. *Requiring* the flaw to affect the results is, I
> believe, The Wrong Thing.
- Given that "in your experience" (which seems sensible), true infinities
and presumably corresponding reciprocals tend to be rare relative to
computational over/underflows; therefore in representations where they
are not distinguishable, it would seem that it may then be correspondingly
appropriate to presume values represented as infinites are over/under-
flowed values, thereby implying that any value other than an exact
infinity multiplied by an exact 0 is 0, and correspondingly implying
that only 0/0 and/or any value who's absolute value is greater than 1
divided by, or who's absolute value is less than 1 multiplied by, an
infinity are considered NaN's [aka 0/0] (as otherwise the resulting value
will be known to be within the value ranges designated for infinites
and/or their reciprocals, and represented as such)?