Function: byte-optimize-multiply

byte-optimize-multiply is a byte-compiled function defined in byte-opt.el.gz.

Signature

(byte-optimize-multiply FORM)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/byte-opt.el.gz
(defun byte-optimize-multiply (form)
  (let* ((args (remq 1 (byte-opt--arith-reduce #'* 1 (cdr form)))))
    (cond
     ;; (*) -> 1
     ((null args) 1)
     ;; (* n) -> n, where n is a number
     ((and (null (cdr args)) (numberp (car args))) (car args))
     ;; (* x y z) -> (* (* x y) z)
     ((= (length args) 3)
      `(* ,(byte-optimize-multiply `(* ,(car args) ,(cadr args)))
          ,@(cddr args)))
     ;; not further optimized
     ((equal args (cdr form)) form)
     (t (cons '* args)))))