]> code.delx.au - gnu-emacs/blobdiff - lisp/calc/calc-menu.el
Update copyright year to 2015
[gnu-emacs] / lisp / calc / calc-menu.el
index e67d169b6833ef0b4366cc1f5794c39a75d266fe..44086872dd02eb0f88d3b49c91b04172503bfa2d 100644 (file)
@@ -1,6 +1,6 @@
 ;;; calc-menu.el --- a menu for Calc
 
-;; Copyright (C) 2007-201 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2015 Free Software Foundation, Inc.
 
 ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com>
 
                    (call-interactively 'calc-vector-geometric-mean)))
                :keys "H u G"
                :active (>= (calc-stack-size) 1)]
-               ["RMS(1:)"
-                (progn (require 'calc-arith)
-                       (call-interactively 'calc-abs))
-                :keys "A"
-                :active (>= (calc-stack-size) 1)
-                :help "The root-mean-square, or quadratic mean"])
+               ;; ["RMS(1:)"
+               ;;  (progn (require 'calc-arith)
+               ;;         (call-interactively 'calc-abs))
+               ;;  :keys "A"
+               ;;  :active (>= (calc-stack-size) 1)
+               ;;  :help "The root-mean-square, or quadratic mean"]
+               )
         ["Abbreviate long vectors"
          (progn
            (require 'calc-mode)
          :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 mode"
+               (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
            (Info-goto-node "Help Commands"))])
   "Menu for Calc's help functions.")
 
-(defvar calc-mode-map)
+;; Needed to make this file loadable in isolation.
+;; Another option would be to use calc-load-hook.
+(require 'calc)
 
 (easy-menu-define
   calc-menu