]> git.eshelyaron.com Git - emacs.git/commitdiff
(floor*): Use `floor' instead of doing most the work ourselves.
authorPaul Eggert <eggert@twinsun.com>
Tue, 10 Aug 1993 04:14:17 +0000 (04:14 +0000)
committerPaul Eggert <eggert@twinsun.com>
Tue, 10 Aug 1993 04:14:17 +0000 (04:14 +0000)
lisp/emacs-lisp/cl-extra.el

index 5b1fcc49b3d452143c6a46111a8d9c058b00c861..abd980a6020eac1466d3c5510a0c2a08fe3f4994 100644 (file)
@@ -387,19 +387,8 @@ If so, return the true (non-nil) value returned by PREDICATE."
 (defun floor* (x &optional y)
   "Return a list of the floor of X and the fractional part of X.
 With two arguments, return floor and remainder of their quotient."
-  (if y
-      (if (and (integerp x) (integerp y))
-         (if (and (>= x 0) (>= y 0))
-             (list (/ x y) (% x y))
-           (let ((q (cond ((>= x 0) (- (/ (- x y 1) (- y))))
-                          ((>= y 0) (- (/ (- y x 1) y)))
-                          (t (/ (- x) (- y))))))
-             (list q (- x (* q y)))))
-       (let ((q (floor (/ x y))))
-         (list q (- x (* q y)))))
-    (if (integerp x) (list x 0)
-      (let ((q (floor x)))
-       (list q (- x q))))))
+  (let ((q (floor x y)))
+    (list q (- x (if y (* y q) q)))))
 
 (defun ceiling* (x &optional y)
   "Return a list of the ceiling of X and the fractional part of X.