Function: calcFunc-arccosh
calcFunc-arccosh is an autoloaded and byte-compiled function defined
in calc-math.el.gz.
Signature
(calcFunc-arccosh X)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-math.el.gz
(defun calcFunc-arccosh (x) ; [N N] [Public]
(cond ((eq x 1) 0)
((and (eq x -1) calc-symbolic-mode)
'(var pi var-pi))
((and (eq x 0) calc-symbolic-mode)
(math-div (math-mul '(var pi var-pi) '(var i var-i)) 2))
(math-expand-formulas
(math-normalize
(list 'calcFunc-ln (list '+ x (list 'calcFunc-sqrt
(list '- (list '^ x 2) 1))))))
((Math-numberp x)
(if calc-symbolic-mode (signal 'inexact-result nil))
(if (Math-equal-int x -1)
(math-imaginary (math-pi))
(math-with-extra-prec 2
(if (or t ; need to do this even in the real case!
(memq (car-safe x) '(cplx polar)))
(let ((xp1 (math-add 1 x))) ; this gets the branch cuts right
(math-ln-raw
(math-add x (math-mul xp1
(math-sqrt-raw
(math-div (math-sub
x
'(float 1 0))
xp1))))))
(math-ln-raw
(math-add x (math-sqrt-raw (math-add (math-sqr x)
'(float -1 0)))))))))
((eq (car-safe x) 'sdev)
(math-make-sdev (calcFunc-arccosh (nth 1 x))
(math-div (nth 2 x)
(math-sqrt
(math-add (math-sqr (nth 1 x)) -1)))))
((eq (car x) 'intv)
(math-sort-intv (nth 1 x)
(calcFunc-arccosh (nth 2 x))
(calcFunc-arccosh (nth 3 x))))
((or (equal x '(var inf var-inf))
(equal x '(neg (var inf var-inf)))
(equal x '(var nan var-nan)))
x)
(t (calc-record-why 'numberp x)
(list 'calcFunc-arccosh x))))