From bbafcc08d293b90cf13ff66329785766c90e0eb4 Mon Sep 17 00:00:00 2001 From: Abdulaziz Ghuloum Date: Sat, 18 Oct 2008 13:08:14 -0400 Subject: [PATCH] fixed bug in (eqv? 0.0 -0.0) returning #t. --- scheme/ikarus.predicates.ss | 8 +++++++- scheme/last-revision | 2 +- scheme/tests/numerics.ss | 5 ++--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/scheme/ikarus.predicates.ss b/scheme/ikarus.predicates.ss index 264aaa8..e861ba5 100644 --- a/scheme/ikarus.predicates.ss +++ b/scheme/ikarus.predicates.ss @@ -251,7 +251,13 @@ (import (ikarus)) (cond [(eq? x y) #t] - [(flonum? x) (and (flonum? y) (fl=? x y))] + [(flonum? x) + (and (flonum? y) + (if ($fl= x 0.0) + (and ($fl= y 0.0) + ($fl= ($fl/ 1.0 x) + ($fl/ 1.0 y))) + (fl=? x y)))] [(bignum? x) (and (bignum? y) (= x y))] [(ratnum? x) (and (ratnum? y) (= x y))] [(compnum? x) diff --git a/scheme/last-revision b/scheme/last-revision index 7e8f4ed..1008433 100644 --- a/scheme/last-revision +++ b/scheme/last-revision @@ -1 +1 @@ -1629 +1631 diff --git a/scheme/tests/numerics.ss b/scheme/tests/numerics.ss index d62ae42..69d90e0 100644 --- a/scheme/tests/numerics.ss +++ b/scheme/tests/numerics.ss @@ -49,8 +49,6 @@ (test-eqv -0.0 0.0 #f) (test-eqv -0.0 -0.0 #t)) - - (define (test-exact-integer-sqrt) (define (f i j inc) (when (< i j) @@ -67,4 +65,5 @@ (define (run-tests) (test-rounding) (test-exact-integer-sqrt) - #;(test-eqv))) + (test-eqv)) + )