-;; Calculator for GNU Emacs, part II [calc-stuff.el]
-;; Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
-;; Written by Dave Gillespie, daveg@synaptics.com.
+;;; calc-stuff.el --- miscellaneous functions for Calc
+
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc.
+
+;; Author: David Gillespie <daveg@synaptics.com>
+;; Maintainer: Jay Belanger <belanger@truman.edu>
;; This file is part of GNU Emacs.
;; file named COPYING. Among other things, the copyright notice
;; and this notice must be preserved on all copies.
+;;; Commentary:
+;;; Code:
;; This file is autoloaded from calc-ext.el.
-(require 'calc-ext)
+(require 'calc-ext)
(require 'calc-macs)
-(defun calc-Need-calc-stuff () nil)
-
-
(defun calc-num-prefix (n)
"Use the number at the top of stack as the numeric prefix for the next command.
With a prefix, push that prefix as a number onto the stack."
(error "Argument must be a small integer"))
(calc-pop-stack 1)
(setq prefix-arg num)
- (message "%d-" num)))) ; a (lame) simulation of the real thing...
-)
+ (message "%d-" num))))) ; a (lame) simulation of the real thing...
(defun calc-more-recursion-depth (n)
(if (> n 1)
(setq max-specpdl-size (* max-specpdl-size n)
max-lisp-eval-depth (* max-lisp-eval-depth n))))
- (message "max-lisp-eval-depth is now %d" max-lisp-eval-depth)))
-)
+ (message "max-lisp-eval-depth is now %d" max-lisp-eval-depth))))
(defun calc-less-recursion-depth (n)
(interactive "P")
(max (/ max-specpdl-size n) 600)
max-lisp-eval-depth
(max (/ max-lisp-eval-depth n) 200))))
- (message "max-lisp-eval-depth is now %d" max-lisp-eval-depth)
-)
+ (message "max-lisp-eval-depth is now %d" max-lisp-eval-depth))
+(defvar calc-which-why nil)
+(defvar calc-last-why-command nil)
(defun calc-explain-why (why &optional more)
(if (eq (car why) '*)
(setq why (cdr why)))
(car why)
(math-format-flat-expr (car why) 0)))
punc ", ")))
- (message "%s%s" msg (if more " [w=more]" "")))
-)
+ (message "%s%s" msg (if more " [w=more]" ""))))
(defun calc-why ()
(interactive)
(progn
(message "(No further explanations available)")
(setq calc-which-why calc-why))
- (message "No explanations available")))
-)
-(setq calc-which-why nil)
-(setq calc-last-why-command nil)
+ (message "No explanations available"))))
(defun calc-version ()
(interactive)
- (message "Calc %s, installed %s" calc-version calc-installed-date))
-
-
-(defun calc-flush-caches ()
- (interactive)
+ (message "Calc %s" calc-version))
+
+;; The following caches are declared in other files, but are
+;; reset here.
+(defvar math-lud-cache) ; calc-mtx.el
+(defvar math-log2-cache) ; calc-bin.el
+(defvar math-radix-digits-cache) ; calc-bin.el
+(defvar math-radix-float-cache-tag) ; calc-bin.el
+(defvar math-random-cache) ; calc-comb.el
+(defvar math-max-digits-cache) ; calc-bin.el
+(defvar math-integral-cache) ; calcalg2.el
+(defvar math-units-table) ; calc-units.el
+(defvar math-format-date-cache) ; calc-forms.el
+(defvar math-holidays-cache-tag) ; calc-forms.el
+
+(defun calc-flush-caches (&optional inhibit-msg)
+ (interactive "P")
(calc-wrapper
(setq math-lud-cache nil
math-log2-cache nil
math-radix-float-cache-tag nil
math-random-cache nil
math-max-digits-cache nil
- math-checked-rewrites nil
math-integral-cache nil
math-units-table nil
math-decls-cache-tag nil
math-eval-rules-cache-tag t
- math-graph-var-cache nil
- math-graph-data-cache nil
math-format-date-cache nil
math-holidays-cache-tag t)
(mapcar (function (lambda (x) (set x -100))) math-cache-list)
- (message "All internal calculator caches have been reset."))
-)
+ (unless inhibit-msg
+ (message "All internal calculator caches have been reset"))))
;;; Conversions.
(if (<= n 0)
(+ n calc-internal-prec)
n)))
- (list func (calc-top-n 1)))))))
-)
+ (list func (calc-top-n 1))))))))
(defun calc-clean-num (num)
(interactive "P")
(calc-clean (- (if num
- (prefix-numeric-value num)
+ (prefix-numeric-value num)
(if (and (>= last-command-char ?0)
(<= last-command-char ?9))
(- last-command-char ?0)
- (error "Number required")))))
-)
+ (error "Number required"))))))
+(defvar math-chopping-small nil)
(defun calcFunc-clean (a &optional prec) ; [X X S] [Public]
(if prec
(cond ((Math-messy-integerp prec)
a))
((Math-objectp a) a)
((math-infinitep a) a)
- (t (list 'calcFunc-clean a))))
-)
-(setq math-chopping-small nil)
+ (t (list 'calcFunc-clean a)))))
(defun calcFunc-pclean (a &optional prec)
(math-map-over-constants (function (lambda (x) (calcFunc-clean x prec)))
- a)
-)
+ a))
(defun calcFunc-pfloat (a)
- (math-map-over-constants 'math-float a)
-)
+ (math-map-over-constants 'math-float a))
(defun calcFunc-pfrac (a &optional tol)
(math-map-over-constants (function (lambda (x) (calcFunc-frac x tol)))
- a)
-)
+ a))
-(defun math-map-over-constants (func expr)
- (math-map-over-constants-rec expr)
-)
+;; The variable math-moc-func is local to math-map-over-constants,
+;; but is used by math-map-over-constants-rec, which is called by
+;; math-map-over-constants.
+(defvar math-moc-func)
+
+(defun math-map-over-constants (math-moc-func expr)
+ (math-map-over-constants-rec expr))
(defun math-map-over-constants-rec (expr)
(cond ((or (Math-primp expr)
(memq (car expr) '(intv sdev)))
(or (and (Math-objectp expr)
- (funcall func expr))
+ (funcall math-moc-func expr))
expr))
((and (memq (car expr) '(^ calcFunc-subscr))
- (eq func 'math-float)
+ (eq math-moc-func 'math-float)
(= (length expr) 3)
(Math-integerp (nth 2 expr)))
(list (car expr)
(math-map-over-constants-rec (nth 1 expr))
(nth 2 expr)))
- (t (cons (car expr) (mapcar 'math-map-over-constants-rec (cdr expr)))))
-)
-
-
+ (t (cons (car expr) (mapcar 'math-map-over-constants-rec (cdr expr))))))
+(provide 'calc-stuff)
+;;; arch-tag: 789332ef-a178-49d3-8fb7-5d7ed7e21f56
+;;; calc-stuff.el ends here