Function: math-gamma-series
math-gamma-series is a byte-compiled function defined in
calc-funcs.el.gz.
Signature
(math-gamma-series SUM X XINVSQR OTERM N)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-funcs.el.gz
(defun math-gamma-series (sum x xinvsqr _oterm n)
(math-working "gamma" sum)
(let* ((bn (math-bernoulli-number n))
(term (math-mul (math-div-float (math-float (nth 1 bn))
(math-float (* (nth 2 bn)
(* n (1- n)))))
x))
(next (math-add sum term)))
(if (math-nearly-equal sum next)
next
(if (> n (* 2 calc-internal-prec))
(progn
;; Need this because series eventually diverges for large enough n.
(calc-record-why
"*Gamma computation stopped early, not all digits may be valid")
next)
(math-gamma-series next (math-mul x xinvsqr) xinvsqr term (+ n 2))))))