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

[Scheme-reports] John Cowan votes for `r6rs` (operational equivalence)

In the matter of the definition of `eqv?` on inexact numbers, I
have voted for `r6rs` (operational equivalence), `representational`
(representational, i.e., bitwise equivalence), and `r5rs` (numerical
equality as in `=`) in that order.  Note that `eqv?` will remain
unspecified on two NaNs no matter how this vote comes out.

Here's my rationale:

I think the `r5rs` choice is Just Wrong as long as IEEE is the dominant
representation of inexact numbers: there needs to be a way to distinguish
between 0.0 and -0.0 for memoization and other purposes, as they behave
differently for some arithmetic procedures.  For IEEE (always excepting
NaNs, which are implementation-dependent), `r6rs` and `representational`
mean the same thing: with only one bit pattern per operationally distinct
number, `representational` can't discriminate between them. In the non-IEEE
space, I think the `r6rs` choice is more principled, but I can live with
`representational`, though it may end up discriminating between non-IEEE
numbers that aren't really different.

When I'm stuck in something boring              John Cowan
where reading would be impossible or            (who loves Asimov too)
rude, I often set up math problems for          cowan@x
myself and solve them as a way to pass          http://www.ccil.org/~cowan
the time.      --John Jenkins

Scheme-reports mailing list