Function: math-exp-raw
math-exp-raw is an autoloaded and byte-compiled function defined in
calc-math.el.gz.
Signature
(math-exp-raw X)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-math.el.gz
(defun math-exp-raw (x) ; [N N]
(cond ((math-zerop x) '(float 1 0))
(calc-symbolic-mode (signal 'inexact-result nil))
((eq (car x) 'cplx)
(let ((expx (math-exp-raw (nth 1 x)))
(sc (math-sin-cos-raw (nth 2 x))))
(list 'cplx
(math-mul-float expx (cdr sc))
(math-mul-float expx (car sc)))))
((eq (car x) 'polar)
(let ((xc (math-complex x)))
(list 'polar
(math-exp-raw (nth 1 xc))
(math-from-radians (nth 2 xc)))))
((math-use-emacs-fn 'exp x))
((or (math-lessp-float '(float 5 -1) x)
(math-lessp-float x '(float -5 -1)))
(if (math-lessp-float '(float 921035 1) x)
(math-overflow)
(if (math-lessp-float x '(float -921035 1))
(math-underflow)))
(let* ((two-x (math-mul-float x '(float 2 0)))
(hint (math-scale-int (nth 1 two-x) (nth 2 two-x)))
(hfrac (math-sub-float x (math-mul-float (math-float hint)
'(float 5 -1)))))
(math-mul-float (math-ipow (math-sqrt-e) hint)
(math-add-float '(float 1 0)
(math-exp-minus-1-raw hfrac)))))
(t (math-add-float '(float 1 0) (math-exp-minus-1-raw x)))))