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)))))