From 6bc003ab134a145b9e9d065327ee91b5ee6c2e38 Mon Sep 17 00:00:00 2001
From: pw <pw>
Date: Tue, 10 Apr 2001 22:35:09 +0000
Subject: [PATCH] From Ray Toy:

src/numbers.lisp:
Handle comparisons with floating infinities correctly.
---
 code/numbers.lisp | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/code/numbers.lisp b/code/numbers.lisp
index 2284072ba..f9fb02434 100644
--- a/code/numbers.lisp
+++ b/code/numbers.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/numbers.lisp,v 1.36 2001/03/04 20:12:39 pw Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/numbers.lisp,v 1.37 2001/04/10 22:35:09 pw Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -843,11 +843,15 @@
     ((double-float single-float)
      (,op x (coerce y 'double-float)))
     (((foreach single-float double-float #+long-float long-float) rational)
-     (if (eql y 0)
+     ;; Comparing infinity against any rational produces the same
+     ;; answer as comparing infinity against 0.
+     (if (float-infinity-p x)
 	 (,op x (coerce 0 '(dispatch-type x)))
 	 (,op (rational x) y)))
     (((foreach bignum fixnum ratio) float)
-     (,op x (rational y)))))
+     (if (float-infinity-p y)
+	 (,op (coerce 0 '(dispatch-type x)) y)
+	 (,op x (rational y))))))
 
 
 (defmacro two-arg-</> (name op ratio-arg1 ratio-arg2 &rest cases)
-- 
GitLab