[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

*To*: Aubrey Jaffer <agj@xxxxxxxxxxxx>*Subject*: Re: comparison operators and *typos*From*: Paul Schlie <schlie@xxxxxxxxxxx>*Date*: Mon, 04 Jul 2005 23:50:39 -0400*Cc*: <srfi-70@xxxxxxxxxxxxxxxxx>*Delivered-to*: srfi-70@xxxxxxxxxxxxxxxxx*In-reply-to*: <20050705013304.F25BF1B77B4@xxxxxxxxxxxxxxxx>*User-agent*: Microsoft-Entourage/11.1.0.040913

> How will your system represent ((lambda (x) (+ 4. (/ (abs x) x))) 0.)? - It can't, it only attempts to deal with an ambiguous sign, not magnitude. (but have been convinced it's not worth the bother) > Mathematically there is no reciprocal of zero. It can be argued that > (/ 1.0 0.0) should return #i0/0 or signal an error. But (/ 1.0 +0.0) > should return #i1/0 if +0.0 is greater than 0. - if the convention that non-signed values are presumed positive, then by definition 0.0 is +0.0, and to eliminate any ordering ambiguity, there must be only 3 zeros: inexact -0.0, exact 0, inexact +0.0 (0.0) with the three corresponding reciprocals -1/0, 0/0, +1/0; where all exact zero's are equivalent: +0 => 0, -0 => 0, +0/0 => 0/0, -0/0 => 0/0, and only like signed inexact zero's are non-ambiguous: (+ +0.0 +0.0) => +0.0, (+ -0.0 -0.0) => -0.0, (+ -0.0 +0.0) => 0/0, (+ -1/0 +1/0) => 0/0 > The inexact real field must have an additive identity: > > ForAll[x] x + 0.0 = x > > If -0.0 + 0.0 is not -0.0, then 0.0 is not the additive identity. > What is it in your system? All zero's are non-accumulating, therefore all additive identities for values other than inexact zero's, however only exact 0 is an additive identify for all values.

**References**:**Re: comparison operators and *typos***From:*Aubrey Jaffer

- Prev by Date:
**Re: comparison operators and *typos** - Next by Date:
**Re: comparison operators and *typos** - Previous by thread:
**Re: comparison operators and *typos** - Next by thread:
**Re: comparison operators and *typos** - Index(es):