"Index into `calc-stack' of \"top\" of stack.
This is 1 unless `calc-truncate-stack' has been used.")
-(defvar calc-always-load-extensions nil
- "If non-nil, load the calc-ext module automatically when calc is loaded.")
+(defvar calc-display-sci-high 0
+ "Floating-point numbers with this positive exponent or higher above the
+current precision are displayed in scientific notation in calc-mode.")
+
+(defvar calc-display-sci-low -3
+ "Floating-point numbers with this negative exponent or lower are displayed
+scientific notation in calc-mode.")
+
+(defvar calc-other-modes nil
+ "List of used-defined strings to append to Calculator mode line.")
-(defvar calc-line-numbering t
- "If non-nil, display line numbers in Calculator stack.")
+(defvar calc-Y-help-msgs nil
+ "List of strings for Y prefix help.")
-(defvar calc-line-breaking t
- "If non-nil, break long values across multiple lines in Calculator stack.")
+(defvar calc-loaded-settings-file nil
+ "t if `calc-settings-file' has been loaded yet.")
-(defvar calc-display-just nil
- "If nil, stack display is left-justified.
+(defvar calc-always-load-extensions)
+(defvar calc-line-numbering)
+(defvar calc-line-breaking)
+(defvar calc-display-just)
+(defvar calc-display-origin)
+(defvar calc-number-radix)
+(defvar calc-leading-zeros)
+(defvar calc-group-digits)
+(defvar calc-group-char)
+(defvar calc-point-char)
+(defvar calc-frac-format)
+(defvar calc-prefer-frac)
+(defvar calc-hms-format)
+(defvar calc-date-format)
+(defvar calc-float-format)
+(defvar calc-full-float-format)
+(defvar calc-complex-format)
+(defvar calc-complex-mode)
+(defvar calc-infinite-mode)
+(defvar calc-display-strings)
+(defvar calc-matrix-just)
+(defvar calc-break-vectors)
+(defvar calc-full-vectors)
+(defvar calc-full-trail-vectors)
+(defvar calc-vector-commas)
+(defvar calc-vector-brackets)
+(defvar calc-matrix-brackets)
+(defvar calc-language)
+(defvar calc-language-option)
+(defvar calc-left-label)
+(defvar calc-right-label)
+(defvar calc-word-size)
+(defvar calc-previous-modulo)
+(defvar calc-simplify-mode)
+(defvar calc-auto-recompute)
+(defvar calc-display-raw)
+(defvar calc-internal-prec)
+(defvar calc-angle-mode)
+(defvar calc-algebraic-mode)
+(defvar calc-incomplete-algebraic-mode)
+(defvar calc-symbolic-mode)
+(defvar calc-matrix-mode)
+(defvar calc-shift-prefix)
+(defvar calc-window-height)
+(defvar calc-display-trail)
+(defvar calc-show-selections)
+(defvar calc-use-selections)
+(defvar calc-assoc-selections)
+(defvar calc-display-working-message)
+(defvar calc-auto-why)
+(defvar calc-timing)
+(defvar calc-mode-save-mode)
+(defvar calc-standard-date-formats)
+(defvar calc-autorange-units)
+(defvar calc-was-keypad-mode)
+(defvar calc-full-mode)
+(defvar calc-user-parse-tables)
+(defvar calc-gnuplot-default-device)
+(defvar calc-gnuplot-default-output)
+(defvar calc-gnuplot-print-device)
+(defvar calc-gnuplot-print-output)
+(defvar calc-gnuplot-geometry)
+(defvar calc-graph-default-resolution)
+(defvar calc-graph-default-resolution-3d)
+(defvar calc-invocation-macro)
+(defvar calc-show-banner)
+
+(defconst calc-mode-var-list '(
+ (calc-always-load-extensions nil
+ "If non-nil, load the calc-ext module automatically when calc is loaded.")
+
+ (calc-line-numbering t
+ "If non-nil, display line numbers in Calculator stack.")
+
+ (calc-line-breaking t
+ "If non-nil, break long values across multiple lines in Calculator stack.")
+
+ (calc-display-just nil
+ "If nil, stack display is left-justified.
If `right', stack display is right-justified.
If `center', stack display is centered.")
-(defvar calc-display-origin nil
- "Horizontal origin of displayed stack entries.
+ (calc-display-origin nil
+ "Horizontal origin of displayed stack entries.
In left-justified mode, this is effectively indentation. (Default 0).
In right-justified mode, this is effectively window width.
In centered mode, center of stack entry is placed here.")
-(defvar calc-number-radix 10
- "Radix for entry and display of numbers in calc-mode, 2-36.")
+ (calc-number-radix 10
+ "Radix for entry and display of numbers in calc-mode, 2-36.")
-(defvar calc-leading-zeros nil
- "If non-nil, leading zeros are provided to pad integers to calc-word-size.")
+ (calc-leading-zeros nil
+ "If non-nil, leading zeros are provided to pad integers to calc-word-size.")
-(defvar calc-group-digits nil
- "If non-nil, group digits in large displayed integers by inserting spaces.
+ (calc-group-digits nil
+ "If non-nil, group digits in large displayed integers by inserting spaces.
If an integer, group that many digits at a time.
If t, use 4 for binary and hex, 3 otherwise.")
-(defvar calc-group-char ","
- "The character (in the form of a string) to be used for grouping digits.
+ (calc-group-char ","
+ "The character (in the form of a string) to be used for grouping digits.
This is used only when calc-group-digits mode is on.")
-(defvar calc-point-char "."
- "The character (in the form of a string) to be used as a decimal point.")
+ (calc-point-char "."
+ "The character (in the form of a string) to be used as a decimal point.")
+
+ (calc-frac-format (":" nil)
+ "Format of displayed fractions; a string of one or two of \":\" or \"/\".")
-(defvar calc-frac-format '(":" nil)
- "Format of displayed fractions; a string of one or two of \":\" or \"/\".")
+ (calc-prefer-frac nil
+ "If non-nil, prefer fractional over floating-point results.")
-(defvar calc-prefer-frac nil
- "If non-nil, prefer fractional over floating-point results.")
-
-(defvar calc-hms-format "%s@ %s' %s\""
- "Format of displayed hours-minutes-seconds angles, a format string.
+ (calc-hms-format "%s@ %s' %s\""
+ "Format of displayed hours-minutes-seconds angles, a format string.
String must contain three %s marks for hours, minutes, seconds respectively.")
-(defvar calc-date-format '((H ":" mm C SS pp " ")
- Www " " Mmm " " D ", " YYYY)
- "Format of displayed date forms.")
+ (calc-date-format ((H ":" mm C SS pp " ")
+ Www " " Mmm " " D ", " YYYY)
+ "Format of displayed date forms.")
-(defvar calc-float-format '(float 0)
- "Format to use for display of floating-point numbers in calc-mode.
+ (calc-float-format (float 0)
+ "Format to use for display of floating-point numbers in calc-mode.
Must be a list of one of the following forms:
(float 0) Floating point format, display full precision.
(float N) N > 0: Floating point format, at most N significant figures.
(eng N) N > 0: Engineering notation, N significant figures.
(eng -N) -N < 0: Engineering notation, calc-internal-prec - N figs.")
-(defvar calc-full-float-format '(float 0)
- "Format to use when full precision must be displayed.")
+ (calc-full-float-format (float 0)
+ "Format to use when full precision must be displayed.")
-(defvar calc-complex-format nil
- "Format to use for display of complex numbers in calc-mode. Must be one of:
+ (calc-complex-format nil
+ "Format to use for display of complex numbers in calc-mode. Must be one of:
nil Use (x, y) form.
i Use x + yi form.
j Use x + yj form.")
-(defvar calc-complex-mode 'cplx
- "Preferred form, either `cplx' or `polar', for complex numbers.")
+ (calc-complex-mode cplx
+ "Preferred form, either `cplx' or `polar', for complex numbers.")
-(defvar calc-infinite-mode nil
- "If nil, 1 / 0 is left unsimplified.
+ (calc-infinite-mode nil
+ "If nil, 1 / 0 is left unsimplified.
If 0, 1 / 0 is changed to inf (zeros are considered positive).
Otherwise, 1 / 0 is changed to uinf (undirected infinity).")
-(defvar calc-display-strings nil
- "If non-nil, display vectors of byte-sized integers as strings.")
+ (calc-display-strings nil
+ "If non-nil, display vectors of byte-sized integers as strings.")
-(defvar calc-matrix-just 'center
- "If nil, vector elements are left-justified.
+ (calc-matrix-just 'center
+ "If nil, vector elements are left-justified.
If `right', vector elements are right-justified.
If `center', vector elements are centered.")
-(defvar calc-break-vectors nil
- "If non-nil, display vectors one element per line.")
+ (calc-break-vectors nil
+ "If non-nil, display vectors one element per line.")
-(defvar calc-full-vectors t
- "If non-nil, display long vectors in full. If nil, use abbreviated form.")
+ (calc-full-vectors t
+ "If non-nil, display long vectors in full. If nil, use abbreviated form.")
-(defvar calc-full-trail-vectors t
- "If non-nil, display long vectors in full in the trail.")
+ (calc-full-trail-vectors t
+ "If non-nil, display long vectors in full in the trail.")
-(defvar calc-vector-commas ","
- "If non-nil, separate elements of displayed vectors with this string.")
+ (calc-vector-commas ","
+ "If non-nil, separate elements of displayed vectors with this string.")
-(defvar calc-vector-brackets "[]"
- "If non-nil, surround displayed vectors with these characters.")
+ (calc-vector-brackets "[]"
+ "If non-nil, surround displayed vectors with these characters.")
-(defvar calc-matrix-brackets '(R O)
- "A list of code-letter symbols that control \"big\" matrix display.
+ (calc-matrix-brackets '(R O)
+ "A list of code-letter symbols that control \"big\" matrix display.
If `R' is present, display inner brackets for matrices.
If `O' is present, display outer brackets for matrices (above/below).
If `C' is present, display outer brackets for matrices (centered).")
-(defvar calc-language nil
- "Language or format for entry and display of stack values. Must be one of:
+ (calc-language nil
+ "Language or format for entry and display of stack values. Must be one of:
nil Use standard Calc notation.
flat Use standard Calc notation, one-line format.
big Display formulas in 2-d notation (enter w/std notation).
math Use Mathematica(tm) notation.
maple Use Maple notation.")
-(defvar calc-language-option nil
- "Numeric prefix argument for the command that set `calc-language'.")
-
-(defvar calc-function-open "("
- "Open-parenthesis string for function call notation.")
-
-(defvar calc-function-close ")"
- "Close-parenthesis string for function call notation.")
-
-(defvar calc-language-output-filter nil
- "Function through which to pass strings after formatting.")
-
-(defvar calc-language-input-filter nil
- "Function through which to pass strings before parsing.")
-
-(defvar calc-radix-formatter nil
- "Formatting function used for non-decimal numbers.")
+ (calc-language-option nil
+ "Numeric prefix argument for the command that set `calc-language'.")
-(defvar calc-left-label ""
- "Label to display at left of formula.")
+ (calc-left-label ""
+ "Label to display at left of formula.")
-(defvar calc-right-label ""
- "Label to display at right of formula.")
+ (calc-right-label ""
+ "Label to display at right of formula.")
-(defvar calc-word-size 32
- "Minimum number of bits per word, if any, for binary operations in calc-mode.")
+ (calc-word-size 32
+ "Minimum number of bits per word, if any, for binary operations in calc-mode.")
-(defvar calc-previous-modulo nil
- "Most recently used value of M in a modulo form.")
+ (calc-previous-modulo nil
+ "Most recently used value of M in a modulo form.")
-(defvar calc-simplify-mode nil
- "Type of simplification applied to results.
+ (calc-simplify-mode nil
+ "Type of simplification applied to results.
If `none', results are not simplified when pushed on the stack.
If `num', functions are simplified only when args are constant.
If nil, only fast simplifications are applied.
If `ext', `math-simplify-extended' is applied.
If `units', `math-simplify-units' is applied.")
-(defvar calc-auto-recompute t
- "If non-nil, recompute evalto's automatically when necessary.")
+ (calc-auto-recompute t
+ "If non-nil, recompute evalto's automatically when necessary.")
-(defvar calc-display-raw nil
- "If non-nil, display shows unformatted Lisp exprs. (For debugging)")
+ (calc-display-raw nil
+ "If non-nil, display shows unformatted Lisp exprs. (For debugging)")
-(defvar calc-internal-prec 12
- "Number of digits of internal precision for calc-mode calculations.")
-
-(defvar calc-inverse-flag nil
- "If non-nil, next operation is Inverse.")
-
-(defvar calc-hyperbolic-flag nil
- "If non-nil, next operation is Hyperbolic.")
+ (calc-internal-prec 12
+ "Number of digits of internal precision for calc-mode calculations.")
-(defvar calc-keep-args-flag nil
- "If non-nil, next operation should not remove its arguments from stack.")
-
-(defvar calc-angle-mode 'deg
- "If deg, angles are in degrees; if rad, angles are in radians.
+ (calc-angle-mode deg
+ "If deg, angles are in degrees; if rad, angles are in radians.
If hms, angles are in degrees-minutes-seconds.")
-(defvar calc-algebraic-mode nil
- "If non-nil, numeric entry accepts whole algebraic expressions.
+ (calc-algebraic-mode nil
+ "If non-nil, numeric entry accepts whole algebraic expressions.
If nil, algebraic expressions must be preceded by \"'\".")
-(defvar calc-incomplete-algebraic-mode nil
- "Like calc-algebraic-mode except only affects ( and [ keys.")
+ (calc-incomplete-algebraic-mode nil
+ "Like calc-algebraic-mode except only affects ( and [ keys.")
-(defvar calc-symbolic-mode nil
- "If non-nil, inexact numeric computations like sqrt(2) are postponed.
+ (calc-symbolic-mode nil
+ "If non-nil, inexact numeric computations like sqrt(2) are postponed.
If nil, computations on numbers always yield numbers where possible.")
-(defvar calc-matrix-mode nil
- "If `matrix', variables are assumed to be matrix-valued.
+ (calc-matrix-mode nil
+ "If `matrix', variables are assumed to be matrix-valued.
If a number, variables are assumed to be NxN matrices.
If `scalar', variables are assumed to be scalar-valued.
If nil, symbolic math routines make no assumptions about variables.")
-(defvar calc-shift-prefix nil
- "If non-nil, shifted letter keys are prefix keys rather than normal meanings.")
+ (calc-shift-prefix nil
+ "If non-nil, shifted letter keys are prefix keys rather than normal meanings.")
-(defvar calc-window-height 7
- "Initial height of Calculator window.")
+ (calc-window-height 7
+ "Initial height of Calculator window.")
-(defvar calc-display-trail t
- "If non-nil, M-x calc creates a window to display Calculator trail.")
+ (calc-display-trail t
+ "If non-nil, M-x calc creates a window to display Calculator trail.")
-(defvar calc-show-selections t
- "If non-nil, selected sub-formulas are shown by obscuring rest of formula.
+ (calc-show-selections t
+ "If non-nil, selected sub-formulas are shown by obscuring rest of formula.
If nil, selected sub-formulas are highlighted by obscuring the sub-formulas.")
-(defvar calc-use-selections t
- "If non-nil, commands operate only on selected portions of formulas.
+ (calc-use-selections t
+ "If non-nil, commands operate only on selected portions of formulas.
If nil, selections displayed but ignored.")
-(defvar calc-assoc-selections t
- "If non-nil, selection hides deep structure of associative formulas.")
+ (calc-assoc-selections t
+ "If non-nil, selection hides deep structure of associative formulas.")
-(defvar calc-display-working-message 'lots
- "If non-nil, display \"Working...\" for potentially slow Calculator commands.")
+ (calc-display-working-message 'lots
+ "If non-nil, display \"Working...\" for potentially slow Calculator commands.")
-(defvar calc-auto-why 'maybe
- "If non-nil, automatically execute a \"why\" command to explain odd results.")
+ (calc-auto-why 'maybe
+ "If non-nil, automatically execute a \"why\" command to explain odd results.")
-(defvar calc-timing nil
- "If non-nil, display timing information on each slow command.")
+ (calc-timing nil
+ "If non-nil, display timing information on each slow command.")
-(defvar calc-display-sci-high 0
- "Floating-point numbers with this positive exponent or higher above the
-current precision are displayed in scientific notation in calc-mode.")
+ (calc-mode-save-mode local)
-(defvar calc-display-sci-low -3
- "Floating-point numbers with this negative exponent or lower are displayed
-scientific notation in calc-mode.")
+ (calc-standard-date-formats
+ '("N"
+ "<H:mm:SSpp >Www Mmm D, YYYY"
+ "D Mmm YYYY<, h:mm:SS>"
+ "Www Mmm BD< hh:mm:ss> YYYY"
+ "M/D/Y< H:mm:SSpp>"
+ "D.M.Y< h:mm:SS>"
+ "M-D-Y< H:mm:SSpp>"
+ "D-M-Y< h:mm:SS>"
+ "j<, h:mm:SS>"
+ "YYddd< hh:mm:ss>"))
+ (calc-autorange-units nil)
+
+ (calc-was-keypad-mode nil)
+
+ (calc-full-mode nil)
-(defvar calc-other-modes nil
- "List of used-defined strings to append to Calculator mode line.")
+ (calc-user-parse-tables nil)
-(defvar calc-Y-help-msgs nil
- "List of strings for Y prefix help.")
+ (calc-gnuplot-default-device "default")
-(defvar calc-loaded-settings-file nil
- "t if `calc-settings-file' has been loaded yet.")
+ (calc-gnuplot-default-output "STDOUT")
+
+ (calc-gnuplot-print-device "postscript")
+
+ (calc-gnuplot-print-output "auto")
+
+ (calc-gnuplot-geometry nil)
+
+ (calc-graph-default-resolution 15)
+ (calc-graph-default-resolution-3d 5)
+
+ (calc-invocation-macro nil)
+ (calc-show-banner t))
+ "List of variables (and default values) used in customizing GNU Calc.")
-(defvar calc-mode-save-mode 'local)
-(defvar calc-standard-date-formats
- '("N"
- "<H:mm:SSpp >Www Mmm D, YYYY"
- "D Mmm YYYY<, h:mm:SS>"
- "Www Mmm BD< hh:mm:ss> YYYY"
- "M/D/Y< H:mm:SSpp>"
- "D.M.Y< h:mm:SS>"
- "M-D-Y< H:mm:SSpp>"
- "D-M-Y< h:mm:SS>"
- "j<, h:mm:SS>"
- "YYddd< hh:mm:ss>"))
-(defvar calc-autorange-units nil)
-(defvar calc-was-keypad-mode nil)
-(defvar calc-full-mode nil)
-(defvar calc-user-parse-tables nil)
-(defvar calc-gnuplot-default-device "default")
-(defvar calc-gnuplot-default-output "STDOUT")
-(defvar calc-gnuplot-print-device "postscript")
-(defvar calc-gnuplot-print-output "auto")
-(defvar calc-gnuplot-geometry nil)
-(defvar calc-graph-default-resolution 15)
-(defvar calc-graph-default-resolution-3d 5)
-(defvar calc-invocation-macro nil)
-(defvar calc-show-banner t)
+(mapcar (function (lambda (v)
+ (or (boundp (car v))
+ (set (car v) (nth 1 v)))
+ (if (nth 2 v)
+ (put (car v) 'variable-documentation (nth 2 v)))))
+ calc-mode-var-list)
(defconst calc-local-var-list '(calc-stack
calc-stack-top
(defvar calc-trail-buffer nil) ; Pointer to Calc Trail buffer.
(defvar calc-why nil) ; Explanations of most recent errors.
(defvar calc-next-why nil)
-(defvar calc-inverse-flag nil)
-(defvar calc-hyperbolic-flag nil)
-(defvar calc-keep-args-flag nil)
+(defvar calc-inverse-flag nil
+ "If non-nil, next operation is Inverse.")
+(defvar calc-hyperbolic-flag nil
+ "If non-nil, next operation is Hyperbolic.")
+(defvar calc-keep-args-flag nil
+ "If non-nil, next operation should not remove its arguments from stack.")
+(defvar calc-function-open "("
+ "Open-parenthesis string for function call notation.")
+(defvar calc-function-close ")"
+ "Close-parenthesis string for function call notation.")
+(defvar calc-language-output-filter nil
+ "Function through which to pass strings after formatting.")
+(defvar calc-language-input-filter nil
+ "Function through which to pass strings before parsing.")
+(defvar calc-radix-formatter nil
+ "Formatting function used for non-decimal numbers.")
+
(defvar calc-last-kill nil) ; Last number killed in calc-mode.
(defvar calc-previous-alg-entry nil) ; Previous algebraic entry.
(defvar calc-dollar-values nil) ; Values to be used for '$'.