406 lines
12 KiB
Plaintext
406 lines
12 KiB
Plaintext
|
||
This tar file contains version 1.07 of Calc, an advanced desk
|
||
calculator for GNU Emacs.
|
||
|
||
"Calc" Copyright 1990 Dave Gillespie
|
||
256-80 Caltech
|
||
Pasadena CA 91125
|
||
daveg@csvax.cs.caltech.edu, cit-vax!daveg
|
||
|
||
|
||
|
||
From the Introduction to the manual:
|
||
|
||
"Calc" is an advanced calculator and mathematical tool that runs as
|
||
part of the GNU Emacs environment. Very roughly based on the HP-28/48
|
||
series of calculators, its many features include:
|
||
|
||
* Choice of algebraic or RPN style entry of calculations.
|
||
|
||
* Arbitrary precision integers and floating-point numbers.
|
||
|
||
* Arithmetic on rational numbers, complex numbers (rectangular and polar),
|
||
error forms with standard deviations, open and closed intervals, vectors
|
||
and matrices, quantities with units, and simple algebraic expressions.
|
||
|
||
* Mathematical operations such as logarithms and trig functions.
|
||
|
||
* Programmer's features (bitwise operations, non-decimal integers).
|
||
|
||
* Number theoretical features such as prime factorization and arithmetic
|
||
modulo M for any M.
|
||
|
||
* Algebraic manipulation features, including symbolic calculus.
|
||
|
||
* Kill and yank to and from regular editing buffers.
|
||
|
||
* Graphics using GNUPLOT, a versatile (and free) plotting program.
|
||
|
||
* Easy programming using keyboard macros, algebraic formulas,
|
||
algebraic rewrite rules, or Lisp code.
|
||
|
||
|
||
|
||
To install Calc:
|
||
|
||
1. Create a directory for Calc
|
||
2. "cd" to that directory
|
||
3. Place calc-1.07.tar.Z in the directory (be sure to ftp it in binary mode)
|
||
4. Type "uncompress calc-1.07.tar.Z"
|
||
5. Type "tar xvf calc-1.07.tar"
|
||
4,5. Alternatively: "zcat calc-1.07.tar.Z | tar xvf -"
|
||
6. Follow the instructions in the file "calc-INSTALL".
|
||
|
||
|
||
|
||
The files contained in this tar file are:
|
||
|
||
calc-README This very file.
|
||
|
||
calc-INSTALL Installation instructions (excerpted from the manual).
|
||
|
||
calc.el The main source file. This contains just the basic
|
||
arithmetic functions, and is kept small for fast
|
||
loading. 141K.
|
||
|
||
calc-ext.el The rest of the Calculator source. This file is
|
||
auto-loaded the first time you use an advanced Calc
|
||
command. 784K.
|
||
|
||
calc.elc The byte-compiled version of Calc. You can make
|
||
calc-ext.elc these yourself from calc.el and calc-ext.el if you
|
||
prefer; use the M-x byte-compile-file command, or
|
||
use the automatic calc-install function.
|
||
(Not available in shar distribution; 76K + 544K.)
|
||
|
||
calc.texinfo Documentation for Calc. This can be turned into
|
||
a printed manual and also into on-line help. 743K.
|
||
Beware: Printed, this is over 300 pages!
|
||
|
||
macedit.el A handy utility for editing keyboard macros; good
|
||
for using Calc as a programmable calculator. 21K.
|
||
|
||
|
||
Calc is written entirely in Emacs Lisp, for maximum portability.
|
||
You do not need to recompile Emacs to install and use Calc.
|
||
|
||
You will need about five megabytes of disk space to hold Calc with
|
||
its Info documentation.
|
||
|
||
See the file calc-INSTALL for installation instructions. If you're
|
||
impatient, use `M-x load-file' to load `calc.elc' and `calc-ext.elc',
|
||
then type `M-x calc' to run the Calculator. Type `?' for help; read
|
||
`calc.texinfo' for the complete documentation.
|
||
|
||
Don't even try to run Calc in uncompiled (.el) form! It's far too slow.
|
||
|
||
|
||
I am anxious to hear about your experiences using Calc. Send mail to
|
||
"daveg@csvax.cs.caltech.edu", or "cit-vax!daveg". A bug report is most
|
||
useful if you include the exact input and output that occurred, any
|
||
modes in effect (such as the current precision), and so on. If you
|
||
find Calc is difficult to operate in any way, or if you have other
|
||
suggestions, don't hesitate to let me know. If you find errors
|
||
(including simple typos) in the manual, let me know. Even if you find
|
||
no bugs at all I would love to hear your opinions.
|
||
|
||
The latest Calc tar files and patches are available for anonymous FTP on
|
||
csvax.cs.caltech.edu [131.215.131.131]. Look in the "pub" subdirectory.
|
||
|
||
Thanks,
|
||
|
||
-- Dave
|
||
|
||
|
||
|
||
|
||
|
||
Summary of changes to "Calc"
|
||
------- -- ------- -- ----
|
||
|
||
Version 1.07:
|
||
|
||
* Added `m F' (calc-settings-file-name) command.
|
||
|
||
* Added calc-autoload-directory variable.
|
||
|
||
* Extended Z ` to accept a prefix argument.
|
||
|
||
* Added keystrokes (v h, v k) for head, tail, cons.
|
||
|
||
* Extended `v e' to accept a vector as the filler.
|
||
|
||
* Changed `V M', `V R' to accept mapping-mode keys in uppercase, too.
|
||
|
||
* Changed V M ' etc. to accept $, $$, ... as argument indicators.
|
||
|
||
* Changed `t y' to accept a prefix argument.
|
||
|
||
* Put in a cleaner and safer random number generator for `k r' et al.
|
||
|
||
* Fixed a bug which completely broke `a r' command!
|
||
|
||
* Fixed "0 * matrix" to generate a zero matrix instead of 0.
|
||
|
||
* Fixed a bug in `a R' which sometimes caused it to crash.
|
||
|
||
* Fixed a fatal typo in the TeX version of the manual.
|
||
|
||
* Fixed a bug that prevented C-k, C-w, M-w from working in Trail buffer.
|
||
|
||
* Fixed another bug in `Z P' command.
|
||
|
||
* Fixed a bug in `u s' which incorrectly simplified subtractions.
|
||
|
||
* Fixed an argument-name aliasing bug evaluating lambda( ) formulas.
|
||
|
||
* Fixed overfull hboxes in the manual.
|
||
|
||
* Fixed various other bugs in the manual.
|
||
|
||
|
||
Version 1.06:
|
||
|
||
* Added "calc-keypad" mode for X window system users (try it!).
|
||
|
||
* Improved "calc-eval" for calling/operating Calc from user-written Lisp.
|
||
|
||
* Moved vector accumulate command to `V U' (old `H V R' still supported).
|
||
|
||
* Added right-to-left reductions: `I V R' and `I V U'.
|
||
|
||
* Added set operations on vectors: intersect, union, diff, xor.
|
||
|
||
* Added `I v s' to remove a subvector from a vector.
|
||
|
||
* Introduced `H |' to append two vectors with no magical special cases.
|
||
|
||
* Introduced rhead, rtail, and rcons for isolating last vector element.
|
||
|
||
* Changed `g p' to keep temp files around until data actually change.
|
||
|
||
* Improved `a S' to solve many higher-order polynomial equations.
|
||
|
||
* Added `a P' to produce a vector of all solutions to an equation.
|
||
|
||
* Enhanced `a v' and `j v' to allow top-level-only evaluation.
|
||
|
||
* Changed `j DEL' to delete a side of an eqn or ineq, leaving other side.
|
||
|
||
* Fixed binding for keys `j 1' through `j 9'.
|
||
|
||
* Introduced "let" marker in rewrite rules.
|
||
|
||
* Enhanced the "sign" function to provide a two-argument version.
|
||
|
||
* Changed "max-specpdl-size exceeded" error message to be user-friendly.
|
||
|
||
* Put "<Aborted>" in the trail in above case and when user presses C-g.
|
||
|
||
* Changed TeX mode to generate \ldots instead of \dots, recognize both.
|
||
|
||
* Changed "sin(0)" etc. (for integer 0) to generate "0" instead of "0.".
|
||
|
||
* Enhanced Programming Tutorial exercise 2.
|
||
|
||
* Fixed an error in the answer to Types Tutorial exercise 3.
|
||
|
||
* Fixed several bugs relating to head, tail, and cons functions.
|
||
|
||
* Fixed some other minor typos in the manual.
|
||
|
||
* Fixed several bugs in `Z P' (calc-user-define-permanent).
|
||
|
||
* Fixed several bugs that broke the `g P' command.
|
||
|
||
|
||
Version 1.05:
|
||
|
||
* Created a calc-install command to ease installation.
|
||
|
||
* Added lots of exercises to the Tutorial section of the manual.
|
||
|
||
* Added ability to select and operate on sub-formulas.
|
||
|
||
* Substantially improved the algebraic rewrite-rule system.
|
||
|
||
* Added a set of graphing commands that use GNUPLOT.
|
||
|
||
* Added a command (`a R') for finding numerical roots to equations.
|
||
|
||
* Added several new math functions, such as erf and Bessel functions.
|
||
|
||
* Added key bindings for miscellaneous commands using the "f" prefix key.
|
||
|
||
* Added lots of new vector operations, many of them in the spirit of APL.
|
||
|
||
* Added more control over vector display, including an abbreviated mode.
|
||
|
||
* Improved keyboard macro editing; added read-kbd-macro to macedit.el.
|
||
|
||
* Introduced the `m S' (calc-shift-prefix) command.
|
||
|
||
* Enhanced the calc-edit command in several ways.
|
||
|
||
* Made it possible to hit ` (calc-edit) during numeric/algebraic entry.
|
||
|
||
* Enhanced the calc-solve-for command to handle inequalities.
|
||
|
||
* Enhanced calc-simplify to handle equations and inequalities.
|
||
|
||
* Taught log10 and log to look for exact integer or rational results.
|
||
|
||
* Added ability to take Nth roots directly.
|
||
|
||
* Added "increment" and "decrement" commands for integers and floats.
|
||
|
||
* Added "full-help" command, changed "h" key to invoke it.
|
||
|
||
* Added special help for Inverse and Hyperbolic prefixes.
|
||
|
||
* Added an optional prefix argument to `o' (calc-realign).
|
||
|
||
* Changed `t s' and `t r' to use RET as the search exit key.
|
||
|
||
* Made handling of operator keys for V M, V R, etc. more regular.
|
||
|
||
* Improved TeX mode; added support for \matrix format.
|
||
|
||
* Added a variant of `m a' mode that only affects ( and [ keys.
|
||
|
||
* Fixed "Mismatch" message for algebraic entry of semi-open intervals.
|
||
|
||
* Trimmed fat from calc.el to speed loading, moved more to calc-ext.el.
|
||
|
||
* Fixed a bug in which minibuffer entry rounded to out-of-date precision.
|
||
|
||
* Fixed a bug which crashed Calc 1.04 under Epoch.
|
||
|
||
* Fixed a bug which messed up Calc Trail's mode line, among other things.
|
||
|
||
* Fixed a bug which caused trail ">" to show only when in Trail buffer.
|
||
|
||
* Fixed a bug in which "calc" called "calc-grab-region" with too few args.
|
||
|
||
* Fixed bugs in both implementation and documentation of calc-perm.
|
||
|
||
* Fixed a bug in which calc-simplify-extended always used radians.
|
||
|
||
* Fixed a bug where calc-comma failed to override "polar" mode.
|
||
|
||
* Fixed a bug doing mixed arithmetic on rectangular+polar complex numbers.
|
||
|
||
* Fixed several bugs in transcendental functions with complex arguments.
|
||
|
||
* Fixed a bug in which `a s' simplified "x / .5" to ".5 x".
|
||
|
||
* Fixed numerous other bugs in various parts of Calc.
|
||
|
||
* Completed the "Hooks" section of the "Internals" chapter of the manual.
|
||
|
||
|
||
Version 1.04:
|
||
|
||
* Included a copy of revision history (from README) in calc.el.
|
||
|
||
* Added the "calc-split" feature to split calc-ext.el into smaller bits.
|
||
|
||
* Changed calc-unpack to unpack floats and fractions, too.
|
||
|
||
* Added "mant", "xpon", and "scf" functions for decomposing floats.
|
||
|
||
* Fixed a bug in the "y" command with positive prefix arguments.
|
||
|
||
* Rearranged binary shift/rotate command keys to be a bit more convenient.
|
||
|
||
* Fixed a bug in which simplifying "(0/0) * 2" crashed with a Lisp error.
|
||
|
||
* Made `H F' [ffloor] and friends faster for very large arguments.
|
||
|
||
* Made calc-define-del more robust.
|
||
|
||
* Handled pasting of data into the Calculator using the mouse under X.
|
||
|
||
* Made overlay-arrow variables buffer-local to avoid interference.
|
||
|
||
* Fixed a problem in which Calc Trail buffer got stuck after a C-x C-w.
|
||
|
||
|
||
Version 1.03:
|
||
|
||
* Changed math-choose to compute n-choose-m faster when m is large.
|
||
|
||
* Fixed some problems with TeX mode.
|
||
|
||
* Fixed a bug that prevented `b s' from working without a prefix argument.
|
||
|
||
* Added "calc-eval" function.
|
||
|
||
* Improved calc-grab-region.
|
||
|
||
|
||
Version 1.02:
|
||
|
||
* Fixed a bug in Tutorial: telephone pole height/distance were switched!
|
||
|
||
* Fixed a few other things in the manual.
|
||
|
||
* Added "full-calc" command.
|
||
|
||
* Added "calc-insert-variables" (`Z I') command.
|
||
|
||
* Quick Calc now works even if you are already in the minibuffer.
|
||
|
||
* Fixed a bug in math-mul-bignum-digit which affected math-and, etc.
|
||
|
||
* Definition of "Hectares" was wrong in units table.
|
||
|
||
* Fixed a bug in calc-execute-kbd-macro concerning undo and refresh.
|
||
|
||
* Bound "calc-undo" to `C-x u' as well as `C-_' and `U'.
|
||
|
||
Version 1.01:
|
||
|
||
* Added a tutorial section to the manual.
|
||
|
||
* Next and Prev for node Strings in the manual were reversed; fixed.
|
||
|
||
* Changed "'bignum" in calc-isqrt-bignum-iter to "'bigpos".
|
||
|
||
* Fixed a bug that prevented "$" from working during algebraic entry.
|
||
|
||
* Fixed a bug caused by an X (last-X) command following a K (macro) cmd.
|
||
|
||
* Fixed a bug in which K command incorrectly formatted stack in Big mode.
|
||
|
||
* Added space between unary operators and non-flat compositions.
|
||
(Otherwise, "-(a/b)" in Big mode blended the minus sign into the rule!)
|
||
|
||
* Fixed formatting of (-1)^n in Big mode.
|
||
|
||
* Fixed some problems relating to "not" operator in Pascal language mode.
|
||
|
||
* Fixed several bugs relating to V M ' and V M $ sequences.
|
||
|
||
* Fixed matrix-vector multiplication to produce a vector.
|
||
|
||
* Introduced Z ` ... Z ' commands; renamed old Z ' to Z #.
|
||
|
||
* Fixed various other bugs.
|
||
|
||
* Added calc-settings-file variable suggested by C. Witty.
|
||
|
||
|
||
Version 1.00:
|
||
|
||
* First official release of Calc.
|
||
|
||
* If you used the Beta test version (0.01), you will find that this
|
||
version of Calc is over 50% larger than the original release.
|
||
General areas of improvement include much better algebra features;
|
||
operations on units; language modes; simplification modes; interval
|
||
arithmetic; vector mapping and reduction. Other new commands include
|
||
calc-fraction and calc-grab-region. The program has been split into
|
||
two parts for faster loading, and the manual is more complete.
|
||
|