diff --git a/code/numbers.lisp b/code/numbers.lisp index 7b30deeb196e63b20a1bfbb1c3e873db712fa0d8..1a256870a2f72bf551781b29527a117a20c6cec0 100644 --- a/code/numbers.lisp +++ b/code/numbers.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman (FAHLMAN@CMUC). ;;; ********************************************************************** ;;; -;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/numbers.lisp,v 1.10 1990/07/21 15:32:33 wlott Exp $ +;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/numbers.lisp,v 1.11 1990/08/14 16:00:20 ram Exp $ ;;; ;;; This file contains the definitions of most number functions. ;;; @@ -720,17 +720,7 @@ (,op x (coerce 0 '(dispatch-type x))) (,op (rational x) y))) (((foreach bignum fixnum ratio) float) - (,op x (rational y))) - - ((complex complex) - (and (,op (realpart x) (realpart y)) - (,op (imagpart x) (imagpart y)))) - (((foreach fixnum bignum ratio single-float double-float) complex) - (and (,op x (realpart y)) - (,op 0 (imagpart y)))) - ((complex (or float rational)) - (and (,op (realpart x) y) - (,op (imagpart x) 0))))) + (,op x (rational y))))) (defmacro two-arg-</> (name op ratio-arg1 ratio-arg2 &rest cases) @@ -781,7 +771,17 @@ ((ratio integer) nil) ((ratio ratio) (and (eql (numerator x) (numerator y)) - (eql (denominator x) (denominator y)))))) + (eql (denominator x) (denominator y)))) + + ((complex complex) + (and (= (realpart x) (realpart y)) + (= (imagpart x) (imagpart y)))) + (((foreach fixnum bignum ratio single-float double-float) complex) + (and (= x (realpart y)) + (zerop (imagpart y)))) + ((complex (or float rational)) + (and (= (realpart x) y) + (zerop (imagpart x)))))) ;;; EQL -- Public