Function: math-reduce-many-vecs
math-reduce-many-vecs is a byte-compiled function defined in
calc-stat.el.gz.
Signature
(math-reduce-many-vecs FUNC WHOLE-FUNC VECS IDENT)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-stat.el.gz
(defun math-reduce-many-vecs (func whole-func vecs ident)
(let ((const-part nil)
(symb-part nil)
val vec)
(let ((calc-internal-prec (+ calc-internal-prec 2)))
(while vecs
(setq val (car vecs))
(and (eq (car-safe val) 'var)
(eq (car-safe (calc-var-value (nth 2 val))) 'vec)
(setq val (symbol-value (nth 2 val))))
(cond ((Math-vectorp val)
(setq vec (append (and const-part (list const-part))
(math-flatten-vector val)))
(setq const-part (if vec
(calcFunc-reducer
(math-calcFunc-to-var func)
(cons 'vec vec))
ident)))
((or (Math-objectp val) (math-infinitep val))
(setq const-part (if const-part
(funcall func const-part val)
val)))
(t
(setq symb-part (nconc symb-part (list val)))))
(setq vecs (cdr vecs))))
(if const-part
(progn
(setq const-part (math-normalize const-part))
(if symb-part
(funcall func const-part (cons whole-func symb-part))
const-part))
(if symb-part (cons whole-func symb-part) ident))))