Function: math-arctan-raw
math-arctan-raw is an autoloaded and byte-compiled function defined in
calc-math.el.gz.
Signature
(math-arctan-raw X)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-math.el.gz
(defun math-arctan-raw (x) ; [N N]
(cond ((memq (car x) '(cplx polar))
(math-with-extra-prec 2 ; extra-extra
(math-div (math-sub
(math-ln-raw (math-add 1 (math-mul '(cplx 0 1) x)))
(math-ln-raw (math-add 1 (math-mul '(cplx 0 -1) x))))
'(cplx 0 2))))
((Math-integer-negp (nth 1 x))
(math-neg-float (math-arctan-raw (math-neg-float x))))
((math-zerop x) x)
((math-use-emacs-fn 'atan x))
(calc-symbolic-mode (signal 'inexact-result nil))
((math-equal-int x 1) (math-pi-over-4))
((math-equal-int x -1) (math-neg (math-pi-over-4)))
((math-lessp-float '(float 414214 -6) x) ; if x > sqrt(2) - 1, reduce
(if (math-lessp-float '(float 1 0) x)
(math-sub-float (math-mul-float (math-pi) '(float 5 -1))
(math-arctan-raw (math-div-float '(float 1 0) x)))
(math-sub-float (math-mul-float (math-pi) '(float 25 -2))
(math-arctan-raw (math-div-float
(math-sub-float '(float 1 0) x)
(math-add-float '(float 1 0)
x))))))
(t (math-arctan-series x 3 x (math-neg-float (math-sqr-float x))))))