Function: calcFunc-vmedian
calcFunc-vmedian is an autoloaded and byte-compiled function defined
in calc-stat.el.gz.
Signature
(calcFunc-vmedian &rest VECS)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-stat.el.gz
;;; Compute the median of a list of values.
(defun calcFunc-vmedian (&rest vecs)
(let* ((flat (copy-sequence (cdr (math-flatten-many-vecs vecs))))
(p flat)
(len (length flat))
(hlen (/ len 2)))
(if (= len 0)
(math-reject-arg nil "*Must be at least 1 argument")
(if (and (= len 1) (memq (car-safe (car flat)) '(sdev intv)))
(calcFunc-vmean (car flat))
(while p
(if (eq (car-safe (car p)) 'sdev)
(setcar p (nth 1 (car p))))
(or (Math-anglep (car p))
(math-reject-arg (car p) 'anglep))
(setq p (cdr p)))
(setq flat (sort flat 'math-lessp))
(if (= (% len 2) 0)
(math-div (math-add (nth (1- hlen) flat) (nth hlen flat)) 2)
(nth hlen flat))))))