Function: calcFunc-vmeane
calcFunc-vmeane is an autoloaded and byte-compiled function defined in
calc-stat.el.gz.
Signature
(calcFunc-vmeane &rest VECS)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-stat.el.gz
;;; Compute the mean with an error estimate.
(defun calcFunc-vmeane (&rest vecs)
(let* ((split (math-split-sdev-vec (math-flatten-many-vecs vecs) nil))
(means (car split))
(wts (nth 1 split))
(len (1- (length means))))
(if (= len 0)
(math-reject-arg nil "*Must be at least 1 argument")
(math-with-extra-prec 2
(if wts
(let* ((sqrwts (calcFunc-map '(var mul var-mul) wts wts))
(suminvsqrwts (calcFunc-reduce
'(var add var-add)
(calcFunc-map '(var div var-div)
1 sqrwts))))
(math-make-sdev
(math-div (calcFunc-reduce '(var add var-add)
(calcFunc-map '(var div var-div)
means sqrwts))
suminvsqrwts)
(list 'calcFunc-sqrt (math-div 1 suminvsqrwts))))
(let ((mean (math-div (calcFunc-reduce '(var add var-add) means)
len)))
(math-make-sdev
mean
(list 'calcFunc-sqrt
(math-div (calcFunc-reducer
'(var add var-add)
(calcFunc-map '(var pow var-pow)
(calcFunc-map '(var abs var-abs)
(calcFunc-map
'(var add var-add)
means
(math-neg mean)))
2))
(math-mul len (1- len)))))))))))