mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-08 08:43:52 -08:00
Improve commenting convention.
(calc-digit-map, toplevel): Simplify.
This commit is contained in:
parent
0aeb71a7e2
commit
5cb16bfc75
2 changed files with 113 additions and 124 deletions
|
|
@ -1,5 +1,8 @@
|
|||
2009-08-30 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* calc/calc.el: Improve commenting convention.
|
||||
(calc-digit-map, toplevel): Simplify.
|
||||
|
||||
* comint.el (comint-insert-input): Be careful to only set point if we
|
||||
don't delegate to some other command.
|
||||
|
||||
|
|
|
|||
|
|
@ -1043,25 +1043,13 @@ Used by `calc-user-invocation'.")
|
|||
map)
|
||||
"The key map for Calc.")
|
||||
|
||||
|
||||
|
||||
(defvar calc-digit-map
|
||||
(let ((map (make-keymap)))
|
||||
(if (featurep 'xemacs)
|
||||
(map-keymap (function
|
||||
(lambda (keys bind)
|
||||
(define-key map keys
|
||||
(if (eq bind 'undefined)
|
||||
'undefined 'calcDigit-nondigit))))
|
||||
calc-mode-map)
|
||||
(let ((cmap (nth 1 calc-mode-map))
|
||||
(dmap (nth 1 map))
|
||||
(i 0))
|
||||
(while (< i 128)
|
||||
(aset dmap i
|
||||
(if (eq (aref cmap i) 'undefined)
|
||||
'undefined 'calcDigit-nondigit))
|
||||
(setq i (1+ i)))))
|
||||
(map-keymap (lambda (key bind)
|
||||
(define-key map (vector key)
|
||||
(if (eq bind 'undefined)
|
||||
'undefined 'calcDigit-nondigit)))
|
||||
calc-mode-map)
|
||||
(mapc (lambda (x) (define-key map (char-to-string x) 'calcDigit-key))
|
||||
"_0123456789.e+-:n#@oh'\"mspM")
|
||||
(mapc (lambda (x) (define-key map (char-to-string x) 'calcDigit-letter))
|
||||
|
|
@ -1078,15 +1066,13 @@ Used by `calc-user-invocation'.")
|
|||
(define-key calc-digit-map x 'calcDigit-backspace)
|
||||
(define-key calc-mode-map x 'calc-pop)
|
||||
(define-key calc-mode-map
|
||||
(if (vectorp x)
|
||||
(if (featurep 'xemacs)
|
||||
(if (= (length x) 1)
|
||||
(vector (if (consp (aref x 0))
|
||||
(cons 'meta (aref x 0))
|
||||
(list 'meta (aref x 0))))
|
||||
"\e\C-d")
|
||||
(vconcat "\e" x))
|
||||
(concat "\e" x))
|
||||
(if (and (vectorp x) (featurep 'xemacs))
|
||||
(if (= (length x) 1)
|
||||
(vector (if (consp (aref x 0))
|
||||
(cons 'meta (aref x 0))
|
||||
(list 'meta (aref x 0))))
|
||||
"\e\C-d")
|
||||
(vconcat "\e" x))
|
||||
'calc-pop-above))
|
||||
(error nil)))
|
||||
(if calc-scan-for-dels
|
||||
|
|
@ -2436,101 +2422,101 @@ largest Emacs integer.")
|
|||
|
||||
|
||||
;;;; Arithmetic routines.
|
||||
;;;
|
||||
;;; An object as manipulated by one of these routines may take any of the
|
||||
;;; following forms:
|
||||
;;;
|
||||
;;; integer An integer. For normalized numbers, this format
|
||||
;;; is used only for
|
||||
;;; negative math-small-integer-size + 1 to
|
||||
;;; math-small-integer-size - 1
|
||||
;;;
|
||||
;;; (bigpos N0 N1 N2 ...) A big positive integer,
|
||||
;;; N0 + N1*math-bignum-digit-size
|
||||
;;; + N2*(math-bignum-digit-size)^2 ...
|
||||
;;; (bigneg N0 N1 N2 ...) A big negative integer,
|
||||
;;; - N0 - N1*math-bignum-digit-size ...
|
||||
;;; Each digit N is in the range
|
||||
;;; 0 ... math-bignum-digit-size -1.
|
||||
;;; Normalized, always at least three N present,
|
||||
;;; and the most significant N is nonzero.
|
||||
;;;
|
||||
;;; (frac NUM DEN) A fraction. NUM and DEN are small or big integers.
|
||||
;;; Normalized, DEN > 1.
|
||||
;;;
|
||||
;;; (float NUM EXP) A floating-point number, NUM * 10^EXP;
|
||||
;;; NUM is a small or big integer, EXP is a small int.
|
||||
;;; Normalized, NUM is not a multiple of 10, and
|
||||
;;; abs(NUM) < 10^calc-internal-prec.
|
||||
;;; Normalized zero is stored as (float 0 0).
|
||||
;;;
|
||||
;;; (cplx REAL IMAG) A complex number; REAL and IMAG are any of above.
|
||||
;;; Normalized, IMAG is nonzero.
|
||||
;;;
|
||||
;;; (polar R THETA) Polar complex number. Normalized, R > 0 and THETA
|
||||
;;; is neither zero nor 180 degrees (pi radians).
|
||||
;;;
|
||||
;;; (vec A B C ...) Vector of objects A, B, C, ... A matrix is a
|
||||
;;; vector of vectors.
|
||||
;;;
|
||||
;;; (hms H M S) Angle in hours-minutes-seconds form. All three
|
||||
;;; components have the same sign; H and M must be
|
||||
;;; numerically integers; M and S are expected to
|
||||
;;; lie in the range [0,60).
|
||||
;;;
|
||||
;;; (date N) A date or date/time object. N is an integer to
|
||||
;;; store a date only, or a fraction or float to
|
||||
;;; store a date and time.
|
||||
;;;
|
||||
;;; (sdev X SIGMA) Error form, X +/- SIGMA. When normalized,
|
||||
;;; SIGMA > 0. X is any complex number and SIGMA
|
||||
;;; is real numbers; or these may be symbolic
|
||||
;;; expressions where SIGMA is assumed real.
|
||||
;;;
|
||||
;;; (intv MASK LO HI) Interval form. MASK is 0=(), 1=(], 2=[), or 3=[].
|
||||
;;; LO and HI are any real numbers, or symbolic
|
||||
;;; expressions which are assumed real, and LO < HI.
|
||||
;;; For [LO..HI], if LO = HI normalization produces LO,
|
||||
;;; and if LO > HI normalization produces [LO..LO).
|
||||
;;; For other intervals, if LO > HI normalization
|
||||
;;; sets HI equal to LO.
|
||||
;;;
|
||||
;;; (mod N M) Number modulo M. When normalized, 0 <= N < M.
|
||||
;;; N and M are real numbers.
|
||||
;;;
|
||||
;;; (var V S) Symbolic variable. V is a Lisp symbol which
|
||||
;;; represents the variable's visible name. S is
|
||||
;;; the symbol which actually stores the variable's
|
||||
;;; value: (var pi var-pi).
|
||||
;;;
|
||||
;;; In general, combining rational numbers in a calculation always produces
|
||||
;;; a rational result, but if either argument is a float, result is a float.
|
||||
;;
|
||||
;; An object as manipulated by one of these routines may take any of the
|
||||
;; following forms:
|
||||
;;
|
||||
;; integer An integer. For normalized numbers, this format
|
||||
;; is used only for
|
||||
;; negative math-small-integer-size + 1 to
|
||||
;; math-small-integer-size - 1
|
||||
;;
|
||||
;; (bigpos N0 N1 N2 ...) A big positive integer,
|
||||
;; N0 + N1*math-bignum-digit-size
|
||||
;; + N2*(math-bignum-digit-size)^2 ...
|
||||
;; (bigneg N0 N1 N2 ...) A big negative integer,
|
||||
;; - N0 - N1*math-bignum-digit-size ...
|
||||
;; Each digit N is in the range
|
||||
;; 0 ... math-bignum-digit-size -1.
|
||||
;; Normalized, always at least three N present,
|
||||
;; and the most significant N is nonzero.
|
||||
;;
|
||||
;; (frac NUM DEN) A fraction. NUM and DEN are small or big integers.
|
||||
;; Normalized, DEN > 1.
|
||||
;;
|
||||
;; (float NUM EXP) A floating-point number, NUM * 10^EXP;
|
||||
;; NUM is a small or big integer, EXP is a small int.
|
||||
;; Normalized, NUM is not a multiple of 10, and
|
||||
;; abs(NUM) < 10^calc-internal-prec.
|
||||
;; Normalized zero is stored as (float 0 0).
|
||||
;;
|
||||
;; (cplx REAL IMAG) A complex number; REAL and IMAG are any of above.
|
||||
;; Normalized, IMAG is nonzero.
|
||||
;;
|
||||
;; (polar R THETA) Polar complex number. Normalized, R > 0 and THETA
|
||||
;; is neither zero nor 180 degrees (pi radians).
|
||||
;;
|
||||
;; (vec A B C ...) Vector of objects A, B, C, ... A matrix is a
|
||||
;; vector of vectors.
|
||||
;;
|
||||
;; (hms H M S) Angle in hours-minutes-seconds form. All three
|
||||
;; components have the same sign; H and M must be
|
||||
;; numerically integers; M and S are expected to
|
||||
;; lie in the range [0,60).
|
||||
;;
|
||||
;; (date N) A date or date/time object. N is an integer to
|
||||
;; store a date only, or a fraction or float to
|
||||
;; store a date and time.
|
||||
;;
|
||||
;; (sdev X SIGMA) Error form, X +/- SIGMA. When normalized,
|
||||
;; SIGMA > 0. X is any complex number and SIGMA
|
||||
;; is real numbers; or these may be symbolic
|
||||
;; expressions where SIGMA is assumed real.
|
||||
;;
|
||||
;; (intv MASK LO HI) Interval form. MASK is 0=(), 1=(], 2=[), or 3=[].
|
||||
;; LO and HI are any real numbers, or symbolic
|
||||
;; expressions which are assumed real, and LO < HI.
|
||||
;; For [LO..HI], if LO = HI normalization produces LO,
|
||||
;; and if LO > HI normalization produces [LO..LO).
|
||||
;; For other intervals, if LO > HI normalization
|
||||
;; sets HI equal to LO.
|
||||
;;
|
||||
;; (mod N M) Number modulo M. When normalized, 0 <= N < M.
|
||||
;; N and M are real numbers.
|
||||
;;
|
||||
;; (var V S) Symbolic variable. V is a Lisp symbol which
|
||||
;; represents the variable's visible name. S is
|
||||
;; the symbol which actually stores the variable's
|
||||
;; value: (var pi var-pi).
|
||||
;;
|
||||
;; In general, combining rational numbers in a calculation always produces
|
||||
;; a rational result, but if either argument is a float, result is a float.
|
||||
|
||||
;;; In the following comments, [x y z] means result is x, args must be y, z,
|
||||
;;; respectively, where the code letters are:
|
||||
;;;
|
||||
;;; O Normalized object (vector or number)
|
||||
;;; V Normalized vector
|
||||
;;; N Normalized number of any type
|
||||
;;; N Normalized complex number
|
||||
;;; R Normalized real number (float or rational)
|
||||
;;; F Normalized floating-point number
|
||||
;;; T Normalized rational number
|
||||
;;; I Normalized integer
|
||||
;;; B Normalized big integer
|
||||
;;; S Normalized small integer
|
||||
;;; D Digit (small integer, 0..999)
|
||||
;;; L Normalized bignum digit list (without "bigpos" or "bigneg" symbol)
|
||||
;;; or normalized vector element list (without "vec")
|
||||
;;; P Predicate (truth value)
|
||||
;;; X Any Lisp object
|
||||
;;; Z "nil"
|
||||
;;;
|
||||
;;; Lower-case letters signify possibly un-normalized values.
|
||||
;;; "L.D" means a cons of an L and a D.
|
||||
;;; [N N; n n] means result will be normalized if argument is.
|
||||
;;; Also, [Public] marks routines intended to be called from outside.
|
||||
;;; [This notation has been neglected in many recent routines.]
|
||||
;; In the following comments, [x y z] means result is x, args must be y, z,
|
||||
;; respectively, where the code letters are:
|
||||
;;
|
||||
;; O Normalized object (vector or number)
|
||||
;; V Normalized vector
|
||||
;; N Normalized number of any type
|
||||
;; N Normalized complex number
|
||||
;; R Normalized real number (float or rational)
|
||||
;; F Normalized floating-point number
|
||||
;; T Normalized rational number
|
||||
;; I Normalized integer
|
||||
;; B Normalized big integer
|
||||
;; S Normalized small integer
|
||||
;; D Digit (small integer, 0..999)
|
||||
;; L Normalized bignum digit list (without "bigpos" or "bigneg" symbol)
|
||||
;; or normalized vector element list (without "vec")
|
||||
;; P Predicate (truth value)
|
||||
;; X Any Lisp object
|
||||
;; Z "nil"
|
||||
;;
|
||||
;; Lower-case letters signify possibly un-normalized values.
|
||||
;; "L.D" means a cons of an L and a D.
|
||||
;; [N N; n n] means result will be normalized if argument is.
|
||||
;; Also, [Public] marks routines intended to be called from outside.
|
||||
;; [This notation has been neglected in many recent routines.]
|
||||
|
||||
(defvar math-eval-rules-cache)
|
||||
(defvar math-eval-rules-cache-other)
|
||||
|
|
@ -2662,7 +2648,7 @@ largest Emacs integer.")
|
|||
|
||||
|
||||
|
||||
;;; True if A is a floating-point real or complex number. [P x] [Public]
|
||||
;; True if A is a floating-point real or complex number. [P x] [Public]
|
||||
(defun math-floatp (a)
|
||||
(cond ((eq (car-safe a) 'float) t)
|
||||
((memq (car-safe a) '(cplx polar mod sdev intv))
|
||||
|
|
@ -2674,7 +2660,7 @@ largest Emacs integer.")
|
|||
|
||||
|
||||
|
||||
;;; Verify that A is a complete object and return A. [x x] [Public]
|
||||
;; Verify that A is a complete object and return A. [x x] [Public]
|
||||
(defun math-check-complete (a)
|
||||
(cond ((integerp a) a)
|
||||
((eq (car-safe a) 'incomplete)
|
||||
|
|
@ -2684,7 +2670,7 @@ largest Emacs integer.")
|
|||
|
||||
|
||||
|
||||
;;; Coerce integer A to be a bignum. [B S]
|
||||
;; Coerce integer A to be a bignum. [B S]
|
||||
(defun math-bignum (a)
|
||||
(if (>= a 0)
|
||||
(cons 'bigpos (math-bignum-big a))
|
||||
|
|
@ -2697,7 +2683,7 @@ largest Emacs integer.")
|
|||
(math-bignum-big (/ a math-bignum-digit-size)))))
|
||||
|
||||
|
||||
;;; Build a normalized floating-point number. [F I S]
|
||||
;; Build a normalized floating-point number. [F I S]
|
||||
(defun math-make-float (mant exp)
|
||||
(if (eq mant 0)
|
||||
'(float 0 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue