
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.

