[comp.archives] [gnu.emacs.sources] Beta-testing Calc 1.08

daveg@NEAR.CS.CALTECH.EDU (Dave Gillespie) (03/28/91)

Archive-name: math/calculator/gnu-emacs-calc/1991-03-24
Archive: csvax.cs.caltech.edu:/pub/calc-1.08beta1.tar.Z [131.215.131.131]
Original-posting-by: daveg@NEAR.CS.CALTECH.EDU (Dave Gillespie)
Original-subject: Beta-testing Calc 1.08
Reposted-by: emv@msen.com (Edward Vielmetti, MSEN)

Just when you thought it was safe to go back in the water...

A preliminary copy of Calc 1.08, the latest version of my Emacs Calculator,
is available for anonymous FTP from csvax.cs.caltech.edu in the file
"pub/calc-1.08beta1.tar.Z".  This is a BETA TEST only---due to the large
number of changes in this version, I want to let some brave volunteers
with easy FTP access try it out first.  Assuming all goes well, patches
for Calc 1.08 will be posted in a couple of weeks.  (The patches are
nearly as large as the program itself, so I may re-post it in full and
call it Calc 2.00.  Either way the posting will be roughly two megabytes,
thus the care to get it right the first time.)

As for what's in the new version:  If you've asked for it, chances
are it's there (even if I told you it probably wouldn't be).  Some
examples:  Date arithmetic, financial functions, an "eqn" language
mode, many improvements to the facilities for algebra, better "Big"
mode formatting, "embedded mode" for in-place editing of numbers and
formulas in regular buffers, and much more.  The manual has been
enhanced in several ways, including a new summary of keystrokes
and functions.

If you want to see what's changed in the manual, get the file
"pub/calc.mandiff.Z" from csvax.  This is an abridged (but still
large) diff of the Calc 1.07 and 1.08 manuals.  You'll find the
change history for version 1.08 attached below.

There is also a file "poly.el" with some commands for polynomial
division and GCD.  Its author, Ove Ewerlid, has been working on
a new version but if there is interest I'll include the current
"poly.el" in Calc 1.08.  Ulrich Mueller has provided an updated
table of units and physical constants.  Let's see some more
user-contributed code!

This beta test is open to anybody who has access to FTP.  If you
take the beta version, please send me mail so I'll know to send you
last-minute updates.  A few things that need particular testing are
embedded mode, "eqn" mode, EvalRules, and the declarations mechanism.
Also, it would be great if someone knowledgeable in such matters
could check if the financial functions are correct, complete, and
useful.  And I'd like to know what people think of the new M-#
mechanism.

								-- Dave



Version 1.08:

 * Calc's copyright has been assigned to FSF, for inclusion in Emacs 19!
 * Changed M-# to be a two-key sequence; use M-# M-# to start Calc now.
 * Rewrote and expanded the introductory chapter of the manual.
 * Added a key and function summary to the manual.
 * Changed the manual to take better advantage of TeX's math formatting.
 * Changed manual to be printable in @smallbook format.
 * Added "calc-embedded" mode.
 * Added "=>" [evalto] operator.
 * Added facilities for date and date/time arithmetic.
 * Added a set of financial functions (pv, fv, etc.).
 * Added infinite quantities inf, uinf, and nan (plus infinite intervals).
 * Added "EvalRules", "SimpRules", and "ExtSimpRules" variables.
 * Added sum and product commands `a +', `a -', `a *', `a T'.
 * Enhanced `a S' and `a P' to solve systems of equations.
 * Enhanced solver to handle eqns like sin(x) = cos(2 x), sqrt(x) + x = 1.
 * Added `a M' (calc-map-equation) command.
 * Added new statistical functions: mean, standard deviation, etc.
 * Added line, polynomial, and curve fitting commands (`a L' and `a F').
 * Added support for composite units, e.g., "mi+ft+in".
 * Enhanced "Big" mode to format square roots, choose, and powers better.
 * Enhanced "Big" mode to display fractions in large notation.
 * Added several alternate formats for matrix display.
 * Changed TeX mode to write "(1 + x^2)" instead of "\left(1 + x^2\right)".
 * Added support for relational operators in TeX and FORTRAN modes.
 * Added recognition of accents like \dot, \tilde, \underline in TeX mode.
 * Added "eqn" language mode.
 * Added extra control over display justification with `d <', `d =', `d >'.
 * Added calc-left-label and calc-right-label (`d {', `d }').
 * Added "nn%" syntax for algebraic formulas; equivalent to "nn * .01".
 * Added input syntaxes like a = b = c, a != b != c, a <= b < c.
 * Changed "_" to mean subscripts; old use of "_" in vars is now "#".
 * Introduced "matrix mode" and "scalar mode" (`m v').
 * Introduced generic identity matrices (idn(1)).
 * Added a method for declaring variables to be real, integer, > 0, etc.
 * Added `Z S' command for editing stored value of a variable.
 * Added "subst" algebraic function equivalent to the `a b' command.
 * Added `a f' command, changed deriv/integ/solve-for to use it.
 * Improved `a s' to simplify (x + y) (y + x) to (x + y)^2.
 * Improved `a s' to simplify i^2 to -1.
 * Improved `a s' to simplify, e.g., sin(pi/3) in Symbolic mode.
 * Improved `a s' to simplify sqrt(8) to 2 sqrt(2), 1/sqrt(2) to sqrt(2)/2.
 * Moved sin(arccos(x)) from `a e' to `a s'; not unsafe after all!
 * Changed (x y)^z => x^z y^z to be a usually-unsafe simplification.
 * Added thorough documentation of `a s' and `a e' to the manual.
 * Improved `a c' to collect "f(a)" even if "a" also appears elsewhere.
 * Introduced lin, linnt, islin, islinnt functions for linearity testing.
 * Improved `a x' to use binomial theorem to give simpler answers.
 * Improved `j D' to distribute powers of sums: (a + b)^n.
 * Improved `j M' to merge products of powers (may need no-simplify mode).
 * Changed to use defvar for DistribRules etc. so `Z V' works with them.
 * Improved `j *' and `j /' to work properly in a few more cases.
 * Improved `V R' to use identity value when reducing empty vectors.
 * Improved `v p' and `v u' to support more complex packing operations.
 * Disabled automatic simplification of sqrt(2)/2 to 1/sqrt(2).
 * Bound SPC and RET to press, TAB to next-menu in *Calc Keypad* buffer.
 * Added C-u ' to do algebraic entry with language mode forced to normal.
 * Added "$1", "$2", etc. input notation for algebraic entry.
 * Changed unary operators like `n', `&' to treat neg prefix args like RET.
 * Changed ` (calc-edit) to show full precision regardless of float format.
 * Enhanced quick-calc to display integers in several formats.
 * Documented `g H' (calc-graph-hide) command (had been left from manual).
 * Enhanced floor/ceil/trunc/round in several ways.
 * Added rounde and roundu functions.
 * Changed `c 1' through `c 9' to change small floats to 0.0; added `c 0'.
 * Enhanced set operations to work on sets of intervals.
 * Fixed erf(0), utpn(x,x,y), and arccosh(-1) to work properly.
 * Changed complex arctan and arctanh to follow Steele 2nd edition.
 * Expanded "Branch Cuts" section of the manual with some useful tables.
 * Rearranged order of words in mode line to be a bit more logical.
 * Changed `m N' (num-simplify) mode to evaluate constant vectors, too.
 * Changed `a r'/`j r' to prompt twice for separate LHS/RHS if necessary.
 * Enhanced `let(v,x)' in rewrites by allowing arbitrary patterns for v.
 * Changed cursor positioning in second prompt for `a b' (calc-substitute).
 * Changed `y' to omit line numbers more consistently.
 * Changed `o' (calc-realign) to reset horizontal scrolling to zero, also.
 * Added "pred" mode for calc-eval.
 * Added "calc-report-bug" as an alias for "report-calc-bug".
 * Added `Z T' and "calc-pass-errors" to aid debugging Calc-related code.
 * Added "calc-load-everything" (`m X' or `M-# L') command.
 * Enhanced calc-install to pre-build units table, CommuteRules, etc.
 * Changed Calc to interact more gracefully with load-path.
 * Changed Lisp Variable Index in manual to include user variables, too.
 * Fixed a bug that sometimes crashed rewrites dealing with subtractions.
 * Fixed a bug that prevented `a S' from solving "3 - x = 1 + x"!
 * Fixed a bug in solver that crashed for certain cubics and quartics.
 * Fixed a bug in calc-simplify that crashed for equations and ineqs.
 * Fixed a bug which placed the "[" oddly in `d B' + `v /' mode.
 * Fixed a bug where finishing calc-edit improperly obeyed language mode.
 * Fixed a bug formatting (-1)^n in Big mode after selection commands.
 * Fixed a bug that got ">=" and "<=" backwards in rewrite conditions.
 * Fixed a bug that broke the `"x"' key in calc-keypad mode.
 * Fixed a bug in which `MAP$' in calc-keypad didn't display "Working...".
 * Fixed a bug where matrix division gave bad result for singular matrix.
 * Fixed a bug which closed Calc window if calc-grab-region got an error.
 * Fixed a bug where `a s' failed on formulas containing dimension errors.
 * Fixed a bug that caused `m F' to hang.
 * Fixed a bug in complex arithmetic that caused problems with solver.
 * Fixed a bug which raised intervals to interval powers incorrectly.
 * Fixed a bug in utpp/ltpp (order of arguments did not match the manual).
 * Fixed a bug in which `t y' rounded yanked data with old precision.
 * Fixed a bug in which "in(3, [3 .. 3))" returned true.
 * Fixed a bug which simplified abs(abs(x)) incorrectly.
 * Fixed a bug in which (a^2)^1:3 was unsafely simplified to a^2:3.
 * Fixed a bug in rewrite system which missed pattern "2 sin(x) cos(x)".
 * Fixed a bug in rewrite system which missed pattern "a - a cos(x)^2".
 * Fixed obsolete trail tags gsmp, gneg, ginv to jsmp, jneg, jinv.
 * Fixed some errors and made improvements in units table [Ulrich Mueller].


--
Dave Gillespie
  256-80 Caltech Pasadena CA USA 91125
  daveg@csvax.cs.caltech.edu, ...!cit-vax!daveg