(floor*): Use `floor' instead of doing most the work ourselves.

This commit is contained in:
Paul Eggert 1993-08-10 04:14:17 +00:00
parent 2ec5af1103
commit ebe6b81460

View 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.