Function: math-ln-raw
math-ln-raw is an autoloaded and byte-compiled function defined in
calc-math.el.gz.
Signature
(math-ln-raw X)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-math.el.gz
(defun math-ln-raw (x) ; [N N] --- must be float format!
(cond ((eq (car-safe x) 'cplx)
(list 'cplx
(math-mul-float (math-ln-raw
(math-add-float (math-sqr-float (nth 1 x))
(math-sqr-float (nth 2 x))))
'(float 5 -1))
(math-arctan2-raw (nth 2 x) (nth 1 x))))
((eq (car x) 'polar)
(math-polar (list 'cplx
(math-ln-raw (nth 1 x))
(math-to-radians (nth 2 x)))))
((Math-equal-int x 1)
'(float 0 0))
(calc-symbolic-mode (signal 'inexact-result nil))
((math-posp (nth 1 x)) ; positive and real
(cond
((math-use-emacs-fn 'log x))
(t
(let ((xdigs (1- (math-numdigs (nth 1 x)))))
(math-add-float (math-ln-raw-2 (list 'float (nth 1 x) (- xdigs)))
(math-mul-float (math-float (+ (nth 2 x) xdigs))
(math-ln-10)))))))
((math-zerop x)
(math-reject-arg x "*Logarithm of zero"))
((eq calc-complex-mode 'polar) ; negative and real
(math-polar
(list 'cplx ; negative and real
(math-ln-raw (math-neg-float x))
(math-pi))))
(t (list 'cplx ; negative and real
(math-ln-raw (math-neg-float x))
(math-pi)))))