Update of /project/movitz/cvsroot/movitz/losp/muerte In directory common-lisp.net:/tmp/cvs-serv6978
Modified Files: integers.lisp Log Message: Some more ratio support.
Date: Tue Jul 27 06:47:09 2004 Author: ffjeld
Index: movitz/losp/muerte/integers.lisp diff -u movitz/losp/muerte/integers.lisp:1.82 movitz/losp/muerte/integers.lisp:1.83 --- movitz/losp/muerte/integers.lisp:1.82 Wed Jul 21 15:30:51 2004 +++ movitz/losp/muerte/integers.lisp Tue Jul 27 06:47:09 2004 @@ -9,7 +9,7 @@ ;;;; Created at: Wed Nov 8 18:44:57 2000 ;;;; Distribution: See the accompanying file COPYING. ;;;; -;;;; $Id: integers.lisp,v 1.82 2004/07/21 22:30:51 ffjeld Exp $ +;;;; $Id: integers.lisp,v 1.83 2004/07/27 13:47:09 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -681,6 +681,14 @@ (- x (- y))) (((integer * -1) (integer * -1)) (%negatef (+ (- x) (- y)) x y)) + ((ratio t) + (make-rational (+ (* (ratio-numerator x) (denominator y)) + (* (numerator y) (ratio-denominator x))) + (* (ratio-denominator x) (denominator y)))) + ((integer ratio) + (make-rational (+ (* x (denominator y)) + (* (ratio-numerator y) x)) + (denominator y))) ))) (do-it))) (t (&rest terms) @@ -1165,6 +1173,15 @@ (i 0 (+ i 29))) ((>= i length) r) (incf r (ash (* x (ldb (byte 29 i) y)) i))))) + ((ratio ratio) + (make-rational (* (ratio-numerator x) (ratio-numerator y)) + (* (ratio-denominator x) (ratio-denominator x)))) + ((ratio t) + (make-rational (* y (ratio-numerator x)) + (ratio-denominator x))) + ((t ratio) + (make-rational (* x (ratio-numerator y)) + (ratio-denominator y))) ((t (integer * -1)) (%negatef (* x (- y)) x y)) (((integer * -1) t)