Function: math-check-known-matrixp

math-check-known-matrixp is a byte-compiled function defined in calc-arith.el.gz.

Signature

(math-check-known-matrixp A)

Source Code

;; Defined in /usr/src/emacs/lisp/calc/calc-arith.el.gz
;;; Try to prove that A is *not* a scalar.
(defun math-check-known-matrixp (a)
  (cond ((Math-objectp a) nil)
	((memq (car a) math-nonscalar-functions)
	 t)
	((memq (car a) math-scalar-if-args-functions)
	 (while (and (setq a (cdr a))
		     (not (math-check-known-matrixp (car a)))))
	 a)
	((eq (car a) '^)
	 (math-check-known-matrixp (nth 1 a)))
	((math-const-var a) nil)
	(t
	 (let ((decl (if (eq (car a) 'var)
			 (or (assq (nth 2 a) math-decls-cache)
			     math-decls-all)
		       (assq (car a) math-decls-cache)))
               val)
           (cond
            ((memq 'matrix (nth 1 decl))
             t)
            ((and (eq (car a) 'var)
                  (symbolp (nth 2 a))
                  (boundp (nth 2 a))
                  (setq val (symbol-value (nth 2 a))))
             (math-check-known-matrixp val))
            (t
             nil))))))