Function: math-apply-units
math-apply-units is a byte-compiled function defined in
calc-units.el.gz.
Signature
(math-apply-units EXPR UNITS ULIST &optional PURE)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-units.el.gz
(defun math-apply-units (expr units ulist &optional pure)
(setq expr (math-simplify-units expr))
(if ulist
(let ((new 0)
value)
(or (math-numberp expr)
(error "Incompatible units"))
(while (cdr ulist)
(setq value (math-div expr (nth 1 (car ulist)))
value (math-floor (let ((calc-internal-prec
(1- calc-internal-prec)))
(math-normalize value)))
new (math-add new (math-mul value (car (car ulist))))
expr (math-sub expr (math-mul value (nth 1 (car ulist))))
ulist (cdr ulist)))
(math-add new (math-mul (math-div expr (nth 1 (car ulist)))
(car (car ulist)))))
(if pure
expr
(math-simplify-units (list '* expr units)))))