Function: calc-sel-add-both-sides
calc-sel-add-both-sides is an autoloaded, interactive and
byte-compiled function defined in calc-sel.el.gz.
Signature
(calc-sel-add-both-sides NO-SIMP &optional SUBTRACT)
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-sel.el.gz
(defun calc-sel-add-both-sides (no-simp &optional subtract)
(interactive "P")
(calc-wrapper
(calc-preserve-point)
(let* ((num (max 1 (calc-locate-cursor-element (point))))
(calc-sel-reselect calc-keep-selection)
(entry (calc-top num 'entry))
(expr (car entry))
(sel (or (calc-auto-selection entry) expr))
(func (car-safe sel))
alg lhs rhs)
(setq alg (calc-with-default-simplification
(car (calc-do-alg-entry ""
(if subtract
"Subtract from both sides: "
"Add to both sides: ")
nil 'calc-selection-history))))
(and alg
(progn
(if (and (assq func calc-tweak-eqn-table)
(= (length sel) 3))
(progn
(setq lhs (list (if subtract '- '+) (nth 1 sel) alg)
rhs (list (if subtract '- '+) (nth 2 sel) alg))
(or no-simp
(setq lhs (math-simplify lhs)
rhs (math-simplify rhs)))
(setq alg (calc-encase-atoms
(calc-normalize (list func lhs rhs)))))
(setq rhs (list (if subtract '+ '-) sel alg))
(or no-simp
(setq rhs (math-simplify rhs)))
(setq alg (calc-encase-atoms
(calc-normalize (list (if subtract '- '+) alg rhs)))))
(calc-pop-push-record-list 1 (if subtract "sub" "add")
(list (calc-replace-sub-formula
expr sel alg))
num
(list (and calc-sel-reselect alg)))))
(calc-handle-whys))))