(defun cl:mod (number divisor)
(if (= (abs number) (abs divisor))
(if (and (integerp number) (integerp divisor)) 0 0.0)
(let* ((i-quotient (/ (truncate number) (truncate divisor)))
(f-quotient (/ (float number) divisor))
(quotient (if (or (= i-quotient f-quotient) ; integer result
(not (minusp f-quotient)))
(truncate f-quotient)
(1- (truncate f-quotient)))))
(- number (* quotient divisor)))))
The