Function: math-make-float
math-make-float is a byte-compiled function defined in calc.el.gz.
Signature
(math-make-float MANT EXP)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc.el.gz
;; Build a normalized floating-point number. [F I S]
(defun math-make-float (mant exp)
(if (eq mant 0)
'(float 0 0)
(let* ((ldiff (- calc-internal-prec (math-numdigs mant))))
(if (< ldiff 0)
(setq mant (math-scale-rounding mant ldiff)
exp (- exp ldiff))))
(while (= (% mant 10) 0)
(setq mant (/ mant 10)
exp (1+ exp)))
(if (and (<= exp -4000000)
(<= (+ exp (math-numdigs mant) -1) -4000000))
(signal 'math-underflow nil)
(if (and (>= exp 3000000)
(>= (+ exp (math-numdigs mant) -1) 4000000))
(signal 'math-overflow nil)
(list 'float mant exp)))))