Function: math-rewrite-phase

math-rewrite-phase is a byte-compiled function defined in calc-rewr.el.gz.

Signature

(math-rewrite-phase SCHED)

Source Code

;; Defined in /usr/src/emacs/lisp/calc/calc-rewr.el.gz
(defun math-rewrite-phase (sched)
  (while (and sched (/= math-mt-many 0))
    (if (listp (car sched))
	(while (let ((save-expr math-rewrite-whole-expr))
		 (math-rewrite-phase (car sched))
		 (not (equal math-rewrite-whole-expr save-expr))))
      (if (symbolp (car sched))
	  (progn
	    (setq math-rewrite-whole-expr
                  (math-normalize (list (car sched) math-rewrite-whole-expr)))
	    (if trace-buffer
		(let ((fmt (math-format-stack-value
			    (list math-rewrite-whole-expr nil nil))))
		  (with-current-buffer trace-buffer
		    (insert "\ncall "
			    (substring (symbol-name (car sched)) 9)
			    ":\n" fmt "\n")))))
	(let ((math-rewrite-phase (car sched)))
	  (if trace-buffer
	      (with-current-buffer trace-buffer
		(insert (format "\n(Phase %d)\n" math-rewrite-phase))))
	  (while (let ((save-expr math-rewrite-whole-expr))
		   (setq math-rewrite-whole-expr (math-normalize
				     (math-map-tree-rec math-rewrite-whole-expr)))
		   (not (equal math-rewrite-whole-expr save-expr)))))))
    (setq sched (cdr sched))))