]> git.eshelyaron.com Git - emacs.git/commitdiff
calc-menu.el (calc-modes-menu): Add entries for matrix modes
authorJay Belanger <jay.p.belanger@gmail.com>
Thu, 9 Aug 2012 02:51:58 +0000 (21:51 -0500)
committerJay Belanger <jay.p.belanger@gmail.com>
Thu, 9 Aug 2012 02:51:58 +0000 (21:51 -0500)
and simplification modes.

lisp/ChangeLog
lisp/calc/calc-menu.el

index 5edb41db10079577d4429613b00f0cbc83e4e98c..5ccb2b66734d8a96ae897de228d315f575dc0c89 100644 (file)
@@ -1,3 +1,8 @@
+2012-08-09  Jay Belanger  <jay.p.belanger@gmail.com>
+
+       * calc/calc-menu.el (calc-modes-menu): Add entries for matrix
+       modes and simplification modes.
+
 2012-08-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * delsel.el (delete-selection-pre-hook): Don't propagate the
index e67d169b6833ef0b4366cc1f5794c39a75d266fe..5d5463aac82f375da92aa9d2cb8906ef4e4038e9 100644 (file)
          :keys "v ."
          :style toggle
          :selected (not calc-full-vectors)]
+        (list "Simplification"
+              ["No simplification mode"
+               (progn
+                 (require 'calc-mode)
+                 (calc-no-simplify-mode t))
+               :keys "m O"
+               :style radio
+               :selected (eq calc-simplify-mode 'none)
+               :help "No simplifications are done automatically"]
+              ["Numeric simplification mode"
+               (progn
+                 (require 'calc-mode)
+                 (calc-num-simplify-mode t))
+               :keys "m N"
+               :style radio
+               :selected (eq calc-simplify-mode 'num)
+               :help "Only numeric simplifications are done automatically"]
+              ["Basic simplification mode"
+               (progn
+                 (require 'calc-mode)
+                 (calc-basic-simplify-mode t))
+               :keys "m I"
+               :style radio
+               :selected (eq calc-simplify-mode nil)
+               :help "Only basic simplifications are done automatically"]
+              ["Binary simplification mode"
+               (progn
+                 (require 'calc-mode)
+                 (calc-bin-simplify-mode t))
+               :keys "m B"
+               :style radio
+               :selected (eq calc-simplify-mode 'binary)
+               :help "Basic simplifications with binary clipping are done automatically"]
+              ["Algebraic simplification mode"
+               (progn
+                 (require 'calc-mode)
+                 (calc-alg-simplify-mode t))
+               :keys "m A"
+               :style radio
+               :selected (eq calc-simplify-mode 'alg)
+               :help "Standard algebraic simplifications are done automatically"]
+              ["Extended simplification mode"
+               (progn
+                 (require 'calc-mode)
+                 (calc-ext-simplify-mode t))
+               :keys "m E"
+               :style radio
+               :selected (eq calc-simplify-mode 'ext)
+               :help "Extended (unsafe) simplifications are done automatically"]
+              ["Units simplification mode"
+               (progn
+                 (require 'calc-mode)
+                 (calc-units-simplify-mode t))
+               :keys "m U"
+               :style radio
+               :selected (eq calc-simplify-mode 'units)
+               :help "Algebraic and unit simplifications are done automatically"])
         (list "Angle Measure"
               ["Radians"
                (progn
                :style radio
                :selected (eq calc-algebraic-mode 'total)
                :help "All regular letters and punctuation begin algebraic entry"])
+        (list "Matrix"
+              ["Off"
+               (progn
+                 (require 'calc-mode)
+                 (calc-matrix-mode -1))
+               :style radio
+               :selected (eq calc-matrix-mode nil)
+               :help "Variables are not assumed to be matrix or scalar"]
+              ["Matrix mode"
+               (progn
+                 (require 'calc-mode)
+                 (calc-matrix-mode -2))
+               :style radio
+               :selected (eq calc-matrix-mode 'matrix)
+               :help "Variables are assumed to be matrices"]
+              ["Square matrix mode"
+               (progn
+                 (require 'calc-mode)
+                 (calc-matrix-mode '(4)))
+               :style radio
+               :selected (eq calc-matrix-mode 'sqmatrix)
+               :help "Variables are assumed to be square matrices"]
+              ["Dimensioned matrix mode"
+               (let ((dim (string-to-number (read-from-minibuffer "Dimension: "))))
+                 (if (natnump dim)
+                     (progn
+                       (require 'calc-mode)
+                       (calc-matrix-mode dim))
+                   (error "The dimension must be a positive integer")))
+               :style radio
+               :selected (and (integerp calc-matrix-mode) (> calc-matrix-mode 0))
+               :help "Variables are assumed to be NxN matrices"]
+              ["Scalar"
+               (progn
+                 (require 'calc-mode)
+                 (calc-matrix-mode 0))
+               :style radio
+               :selected (eq calc-matrix-mode 'scalar)
+               :help "Variables are assumed to be scalars"])
         (list "Language"
               ["Normal"
                (progn