Commit 317a26be authored by Vincent Belaïche's avatar Vincent Belaïche Committed by Jay Belanger
Browse files

(calcFunc-fdiv): Allow `fdiv' to divide fractions.

parent cb1b04a5
......@@ -205,16 +205,32 @@
n temp))
(math-div n d)))
(defun calcFunc-fdiv (a b) ; [R I I] [Public]
(if (Math-num-integerp a)
(if (Math-num-integerp b)
(if (Math-zerop b)
(math-reject-arg a "*Division by zero")
(math-make-frac (math-trunc a) (math-trunc b)))
(math-reject-arg b 'integerp))
(math-reject-arg a 'integerp)))
(cond
((Math-num-integerp a)
(cond
((Math-num-integerp b)
(if (Math-zerop b)
(math-reject-arg a "*Division by zero")
(math-make-frac (math-trunc a) (math-trunc b))))
((eq (car-safe b) 'frac)
(if (Math-zerop (cadr b))
(math-reject-arg a "*Division by zero")
(math-make-frac (math-mul (math-trunc a) (caddr b)) (cadr b))))
(t (math-reject-arg b 'integerp))))
((eq (car-safe a) 'frac)
(cond
((Math-num-integerp b)
(if (Math-zerop b)
(math-reject-arg a "*Division by zero")
(math-make-frac (cadr a) (math-mul (caddr a) (math-trunc b)))))
((eq (car-safe b) 'frac)
(if (Math-zerop (cadr b))
(math-reject-arg a "*Division by zero")
(math-make-frac (math-mul (cadr a) (caddr b)) (math-mul (caddr a) (cadr b)))))
(t (math-reject-arg b 'integerp))))
(t
(math-reject-arg a 'integerp))))
(provide 'calc-frac)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment