[r6rs-discuss] Re: [Formal] eq?/eqv? misbehave around NaNs

From: Jed Davis <r6rs>
Date: Fri Nov 24 03:59:28 2006

On Thu, Nov 23, 2006 at 02:46:59PM -0600, Alan Watson wrote:
>
> If inexacts are unboxed and +nan.0 has only one representation, then the
> implementor can most simply implement eqv? on inexacts with a bitwise
> comparison. In this case, you get #t.
>
> If inexacts are boxed, then the implementor can most simply implement
> eqv? on inexacts with a numerical comparison. In this case, you get #f.

I'm not sure I see what boxing has to do with it; I was thinking more:

If inexacts are currently living in floating-point registers, the
simplest way to compare them may be with a numerical comparison
instruction that considers them not equal. So, you get #f.

In a similar situation on different hardware, it may be that a bit
comparison is the preferred option. So, you get #t.

-- 
(let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map
((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l))))))  (lambda
(f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l))
(C k)))))))    '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline)))))
Received on Fri Nov 24 2006 - 03:59:23 UTC

This archive was generated by hypermail 2.3.0 : Wed Oct 23 2024 - 09:15:00 UTC