Refill some long/short copyright headers.
[bpt/emacs.git] / lisp / calc / README.prev
CommitLineData
95df8112 1Copyright (C) 2001-2011 Free Software Foundation, Inc.
2f969cd4 2See the end of the file for license conditions.
136211a9
EZ
3
4
5Summary of changes to "Calc" Preceding 2.00
6------- -- ------- -- ---- --------- ----
7
8
9Version 2.00:
10
11 * Changed to compile calc-macs/-maint, to allow "cp *.elc new-dir".
12
13 * Improved calc-describe-bindings to avoid showing redundant ESC maps.
14
15\f
16Version 2.00 beta 3:
17
18 * Removed version numbers from most .el files to reduce size of patches.
19
20 * Added a "calc-version" command.
21
22 * Changed `M-# ? ?' to allow for modified describe-function.
23
24 * Changed date parser to accept "Sept" as an alternative for "Sep".
25
26 * Inhibited answers to exercise from showing up in table of contents.
27
28 * Changed Makefile to say "texindex calc.[cfkptv]?" to avoid "calc.el".
29
30 * Fixed up the Makefile in various other ways.
31
32 * Rearranged banner at top of `h h' command's output.
33
34 * Changed "make summary" to print "Calc Summary" on the title page.
35
36 * Added "IntegSimpRules".
37
38 * Added `M-# :', `M-# _', and `M-# Z' options.
39
40 * Changed `^' to evaluate "[-3..-1]^-2" properly.
41
42 * Improved `f g' to give symbolic answers for, e.g., 101:2 and -3:2.
43
44 * Fixed a bug where `h k RET' didn't find the right place on the page.
45
46 * Fixed a bug that formatted "x*(y ? a : b)" as "x y ? a : b".
47
48 * Fixed a bug where defmath translated (< x 0) as (math-posp x)!
49
50 * Fixed a bug that prevented quick-calc from working sometimes.
51
52 * Fixed the `z ?' bug again (maybe this time for good?).
53
54 * Fixed a bug in which `V ^' (vint) was just plain wrong, wrong, wrong!
55
56 * Scanned for and fixed remaining bugs relating to autoloading.
57
58\f
59Version 2.00 beta 2:
60
61 * Changed "make info" to try "make texinfo" if "makeinfo" not found.
62
63 * Changed to "New for Calc 2.00"; texinfo.tex chokes on apostrophes.
64
65 * Added List Tutorial Exercise 14 (just in case there weren't enough!).
66
67 * Added a discussion of the `Z F' command to the Programming Tutorial.
68
69 * Improved `H a f' not to lose info if input is partially pre-factored.
70
71 * Improved simplification of expressions like sqrt(3) + 3^3:2.
72
73 * Changed Big mode to omit "*" in expressions like 2 sqrt(3) 5^3:4.
74
75 * Replaced European date format D/M/Y with D.M.Y.
76
77 * Changed `a N' and `a X' to consider the endpoints of the interval.
78
79 * Fixed a bug where TeX mode made c*(1+a/b) look like a function call.
80
81 * Fixed a bug formatting top-level evalto's while using selections.
82
83 * Fixed a bug that caused `z ?' to crash.
84
85 * Fixed a bug where `Z F' broke for argument names "t" and "nil".
86
87 * Fixed several bugs relating to autoloading.
88
89\f
90Version 2.00 beta 1:
91
92 * Added "What's new in Calc 2.00" to the manual (summary of info below).
93
94 * Added support for many GNUPLOT 3.0 features.
95
96 * Tweaked the Makefile and calc-compile a bit more.
97
98 * Modified to work with Zawinski's/Furuseth's optimizing byte compiler.
99
100 * Modified Calc to garbage-collect less often (raised gc-cons-threshold).
101
102 * Changed quick-calc to avoid autoloading so many parts of Calc.
103
104 * Changed Calc subfiles to work properly if not byte-compiled.
105
106 * Renamed `M-# s' to `M-# j', made `M-# s' be equivalent to `h s'.
107
108 * Changed calc-quit to avoid reapportioning space among other windows.
109
110 * Added `M-DEL' (calc-pop-above) key, to DEL as LFD is to RET.
111
112 * Added `{' and `}' to scroll vertically, analogous to `<' and `>'.
113
114 * Added `m t' for "total" algebraic mode.
115
116 * Added `d , \' option to group digits with "\,".
117
118 * Improved support of "prime" accent in "eqn" language mode.
119
120 * Changed macedit's read-kbd-macro to accept a string argument in Lisp.
121
122 * Changed calc-check-defines to use a more concise run-hooks linkage.
123
124 * Changed auto-why mode not to say [w=more] if next msg is not urgent.
125
126 * Made `a d' able to differentiate "a?b:c" and "a_i" formulas.
127
128 * Changed probability dist. functions to work with `a f' and `a d'.
129
130 * Added special constants "phi" and "gamma".
131
132 * Added "poly" function, simpler cousin of "gpoly".
133
134 * Added "pdeg", "plead", "pcont", "pprim"; cleaned up "pdiv" and "pgcd".
135
136 * Added `a p' command for polynomial interpolation.
137
138 * Added `a I' command for numerical integration; made IntegLimit variable.
139
140 * Added `a f' to factor polynomials; moved old `a f' to `a "'.
141
142 * Added `a a' to do partial fraction decompositions.
143
144 * Improved `a i' to integrate many more kinds of formulas.
145
146 * Modified `a P' to find numerical roots of high-degree polynomials.
147
148 * Modified `c 0' through `c 9' to convert int-valued floats to integers.
149
150 * Made sinh, arctanh, etc., expandable into exps/logs by `a f'.
151
152 * Added more algebraic simplifications having to do with logs and exps.
153
154 * Changed `s s', `s t', `s x', `s l' to accept an equation at prompt.
155
156 * Changed `s i' not to store Decls if its value is the default, [].
157
158 * Changed `s i' to store in `d O' language mode if in Normal or Big mode.
159
160 * Rearranged `V M'/`V R' matrix mapping modes.
161
162 * Added <#1+#2> notation for lambda expressions.
163
164 * Extended `b l' and other binary shifts to have a 2-argument version.
165
166 * Changed `u c' and `u t' to give unitless result for unitless input.
167
168 * Changed sqrt(1-cos(x)^2)-to-sin(x) to be an unsafe simplification.
169
170 * Improved simplification of sqrts, e.g., sqrt(a^2 x + a^2 y).
171
172 * Changed solver to treat (x-a)(x-b)(x-c) more intelligently.
173
174 * Changed Pascal language mode to use "$FFFF" for hexadecimal numbers.
175
176 * Added support for non-decimal display of floats.
177
178 * Changed `p' to refresh stack display if current float format uses it.
179
180 * Changed Big mode to use subscript notation for log10(x), log(x,b), r#nnn.
181
182 * Changed Big mode to format deriv(u,x) and tderiv(u,x) as du/dx.
183
184 * Changed Big mode to format integ(1/x,x) as "dx/x" instead of "1/x dx".
185
186 * Added "tty" output type for graphics commands.
187
188 * Documented Calc's random number generation algorithm in the manual.
189
190 * Fixed a bug involving having "(setq calc-timing t)" in .emacs.
191
192 * Fixed a bug that incorrectly parsed "|x| - 1" in TeX mode.
193
194 * Fixed bugs and made improvements in `a R' when widening the guess.
195
196 * Fixed a bug that where `a S' didn't solve (x - a)^2 = (x - b)^2.
197
198 * Fixed a bug that sometimes crashed `a P' on systems of equations.
199
200 * Fixed a bug that prevented `b p' (calc-pack-bits) from working.
201
202 * Fixed some bugs in which certain functions didn't get autoloaded.
203
204 * Fixed a bug in which the date <1/1/13> was incorrectly parsed.
205
206 * Fixed a bug which prevented `j D' from expanding (a+b)/c.
207
208 * Fixed a bug in solver: bad inverses for sinh and cosh.
209
210 * Fixed a bug in math-possible-signs that failed for x*0.
211
212 * Fixed a bug where sqrt(-a) was rewritten sqrt(a)*i even if a<0.
213
214 * Fixed a bug in line breaker when first "word" of line was too long.
215
216 * Worked around a makeinfo bug that handled @end group/@group badly.
217
218\f
219Version 2.00 alpha 3:
220
221 * Changed logic for locating component .elc files to be even smarter.
222
223 * Changed "make install" to "make compile"; added different "make install".
224
225 * Improved "make compile" to check file dates and compile only when needed.
226
227 * Made output of "make compile" in batch mode more compact and readable.
228
229 * Replaced "Quick Overview" in manual with "Demonstration of Calc".
230
231 * Changed to use keymaps for dispatching M-# and h prefix keys.
232
233 * Added TAGS target to the Calc Makefile.
234
235 * Removed most doc strings from functions; new help commands are better.
236
237 * Got rid of some crufty "fset" calls that were cluttering the code.
238
239 * Split calc-grab-region into two functions, calc-grab-region/-rectangle.
240
241 * Swapped positions of stack and trail in full-calc-keypad display.
242
243 * Improved line-breaking algorithm for displaying long formulas.
244
245 * Improved display of control characters in vectors shown as strings.
246
247 * Changed `d o' to allow fraction format to specify desired denominator.
248
249 * Changed `M-# y' to respect overwrite mode in target buffer.
250
251 * Added `H' prefix to display-mode commands to suppress stack refresh.
252
253 * Changed "calc-why" mechanism to display urgent messages automatically.
254
255 * Handled taking derivatives of symbolic integrals and vice-versa.
256
257 * Handled integrating vectors of formulas.
258
259 * Incorporated Ewerlid's polynomial division and GCD functions into Calc.
260
261 * Improved algebraic operations on "mod" forms, esp. polynomials.
262
263 * Added some more financial functions (sln, syd, ddb).
264
265 * Added nest, anest, fixp, and afixp (`H V R' and `H V U') functions.
266
267 * Added `a .' (calc-remove-equal) command to take apart equations.
268
269 * Generalized dfact to work for negative odd integers; added !! syntax.
270
271 * Changed `k f' to factor 1, 0, and negative integers.
272
273 * Changed `u M', etc., to accept +/- and [ .. ] forms as distributions.
274
275 * Changed `g q' to remove *Gnuplot Commands/Trail* window if present.
276
277 * Added support for Francois Pinard's "dumb terminal" driver for GNUPLOT.
278
279 * Added ":: remember" feature for rewrite rules.
280
281 * Changed rewrites to let pattern "a*b" match "x/2" with a=x, b=1/2.
282
283 * Added ability to put function names like "simplify" in rewrite schedule.
284
285 * Added "Rewrites Tutorial" to the manual.
286
287 * Changed ` to bind RET as newline instead of finish if editing a vector.
288
289 * Added some new exercises to the List Tutorial.
290
291 * Changed `Z F', `V M', etc. not to remove stored vars from def arg list.
292
293 * Added parsing for /1, 2, 3/ notation for Fortran mode vectors.
294
295 * Added a "%%" syntax for comments in formulas being read.
296
297 * Fixed a bug in which failing `h k' removed an existing Info window.
298
299 * Fixed a bug in `j /' operating on subformulas like "a + b".
300
301 * Fixed a bug in which "inf = inf" undesirably evaluated to 1.
302
303 * Fixed a bug that simplified "0 = 1 + a + 2" to "0 = a".
304
305 * Fixed a bug that failed for rewrite patterns like "fib(1 ||| 2)".
306
307 * Fixed a bug that arose because rewrite programs are non-reentrant.
308
309\f
310Version 2.00 alpha 2:
311
312 * Changed LFD terminating algebraic entry to push in no-simplify mode.
313
314 * Changed so that `K -' interprets `-' as calc-minus, not neg prefix arg.
315
316 * Improved `h c' command to understand all Calc key sequences.
317
318 * Fixed problems with DistribRules, NegateRules, and FitRules.
319
320 * Fixed several bad node pointers in the manual.
321
322 * Fixed a bug in `h C-w' when used with makeinfo-formatted manuals.
323
324 * Fixed a bug in sqrt(-1) when Polar and HMS modes are enabled.
325
326 * Fixed/improved dscalar and deven functions; added dodd.
327
328 * Fixed a bug in polynomial handling that also affected sum(sin(k),k,1,n).
329
330 * Fixed various other glitches in the manual.
331
332\f
333Version 2.00 alpha 1:
334
335 * Calc's tar file now creates a calc-(version) directory to unpack into.
336
337 * Calc now comes with a Makefile; install with "make install".
338
339 * Calc now comes already split into many files; installation is much simpler.
340
341 * Changed base file name of the manual from "calc-info" to "calc.info".
342
343 * Key binding for `M-# w' was documented but not implemented.
344
345 * Bound M-# ' to be synonymous with `M-# f' (used to be `M-# q').
346
347 * Changed M-# M-# to use last interface of C or K; E no longer counts.
348
349 * Changed `i' (and `M-# i') not to return to Top node unnecessarily.
350
351 * Changed `h' to be a prefix key with various help commands.
352
353 * Changed `s' to be a prefix key with various store and recall commands.
354
355 * Keys `i', `r', and `l' are obsolete (moved to `h' and `s' prefixes).
356
357 * Rearranged `K', `X', and `M-RET' keys; `K' is now calc-keep-args.
358
359 * Changed quick-calc to display input formula as well as output if room.
360
361 * Changed quick-calc to interact with the editing buffer and kill ring.
362
363 * Created pack, unpack, unpackt function equivalents of `v p', `v u'.
364
365 * Changed to expand (a/b)^x to a^x/b^x only if b > 0 (not if a > 0).
366
367 * Changed math-possible-signs to understand sqrt function.
368
369 * Changed Z [, rewrites to consider any provably non-zero value as true.
370
371 * Changed normal language modes to accept ** as a synonym for ^.
372
373 * Added "maple" language mode.
374
375 * Changed, e.g., Mathematica "(2 + 3 I)^(1.23*10^20)" to include parens.
376
377 * Generalized math-compose-big properties for all language modes.
378
379 * Introduced "string" and other function for composing expressions.
380
381 * Changed many recursive vector routines to use loops instead.
382
383 * Added evalv, evalvn function equivalents to `=', `N'.
384
385 * Changed "expr =>" not to evaluate at all if in no-simplify mode.
386
387 * Redesigned user interface of `a F' (calc-curve-fit) command.
388
a1506d29 389 * Added "phase" feature to the rewrite rule system.
136211a9
EZ
390
391 * Added "&&&", "|||", "!!!" to the rewrite rule system.
392
393 * Introduced a new notation for rewrites: LHS := RHS :: COND.
394
395 * Changed `a r' (but not `j r') to repeat 100 times by default.
396
397 * Integrated EvalRules more cleanly into the default simplifications.
398
399 * Added `H v l' [mdims] to measure the dimensions of a matrix.
400
401 * Changed `u c' to interpret "/units" as "1/units".
402
403 * Added `u a' to adjust unit prefix letters automatically.
404
405 * Changed `u s' to enable scalar mode while simplifying.
406
407 * Changed `c f' [pfloat] not to float integer powers or subscripts.
408
409 * Added a three-argument form for the "hms" function.
410
411 * Changed, e.g., sin(90) degrees to produce 1 instead of 1.0.
412
413 * Changed symbolic mode to prefer sqrt(int): abs([1 2 3]) => sqrt(14).
414
415 * Enhanced solver to handle, e.g., x + 1/x = a; exp(x) + exp(-x) = a.
416
417 * Enhanced simplifier to handle, e.g., exp(a+2) / e^a => e^2.
418
419 * Enhanced `a s' to simplify sqrt(x) - x^1:2 and exp(x) - e^x to 0.
420
421 * Added -(a + b) to -a - b as a default simplification.
422
423 * Added rules for differentiating sum() and prod() functions.
424
425 * Added a few more energy units (due to Przemek Klosowski).
426
427 * Added overflow/underflow checking for all floating-point arithmetic.
428
429 * Extended error forms to work with complex numbers.
430
431 * Generalized GCD to handle fractional arguments.
432
433 * Changed graphics routines to evaluate "x" values, e.g., [-pi .. pi].
434
435 * Added `g q', like `g K' but without viewing the Gnuplot Trail.
436
437 * Changed `g p' and `V M' to display better "Working..." messages.
438
439 * Modified `M-# g' to be more robust about grabbing formulas.
440
441 * Added `Y' prefix key reserved for user-written extensions.
442
443 * Added calc-load-hook and calc-ext-load-hook.
444
445 * Prevented calc-install from leaving large ~ files behind.
446
447 * Changed @bullet to @bullet{} in manual to conform to texinfo spec.
448
449 * Rearranged some chapters in the manual to be a bit more logical.
450
451 * Added calc-split-summary command.
452
453 * Fixed several bugs in embedded mode.
454
455 * Fixed a bug in calc-vector-covariance that required a prefix arg.
456
457 * Fixed a bug that prevented parsing "a=>" with no right-hand side.
458
459 * Fixed a bug which allowed incorrectly dividing a vector by a vector.
460
461 * Fixed a bug formatting sum(...)^2 in Big mode.
462
463 * Fixed a bug that prevented Calc from deleting old graphics temp files.
464
465 * Fixed some typos calling calc-inverse-func instead of calc-invert-func.
466
467 * Fixed bugs in the derivatives of conj, deg, and rad; added re, im.
468
469 * Fixed a bug where (r;theta) parsed as r exp(theta i) even in Deg mode.
470
471 * Fixed a bug which gave wrong answer for exp of a polar complex number.
472
473 * Fixed a bug in `Z F' that failed if formula used non-arg variables.
474
475 * Fixed a bad pointer to Info node "Assignments in Embedded Mode".
476
477 * Fixed several errors in the Calc Summary.
478
479\f
480Version 1.08 beta 1:
481
482 * Calc's copyright has been assigned to FSF, for inclusion in Emacs 19!
483
484 * Changed M-# to be a two-key sequence; use M-# M-# to start Calc now.
485
486 * Rewrote and expanded the introductory chapter of the manual.
487
488 * Added a key and function summary to the manual.
489
490 * Changed the manual to take better advantage of TeX's math formatting.
491
492 * Changed manual to be printable in @smallbook format.
493
494 * Added "calc-embedded" mode.
495
496 * Added "=>" [evalto] operator.
497
498 * Added facilities for date and date/time arithmetic.
499
500 * Added a set of financial functions (pv, fv, etc.).
501
502 * Added infinite quantities inf, uinf, and nan (plus infinite intervals).
503
504 * Added "EvalRules", "SimpRules", and "ExtSimpRules" variables.
505
506 * Added sum and product commands `a +', `a -', `a *', `a T'.
507
508 * Enhanced `a S' and `a P' to solve systems of equations.
509
510 * Enhanced solver to handle eqns like sin(x) = cos(2 x), sqrt(x) + x = 1.
511
512 * Added `a M' (calc-map-equation) command.
513
514 * Added new statistical functions: mean, standard deviation, etc.
515
516 * Added line, polynomial, and curve fitting commands (`a L' and `a F').
517
518 * Added support for composite units, e.g., "mi+ft+in".
519
520 * Enhanced "Big" mode to format square roots, choose, and powers better.
521
522 * Enhanced "Big" mode to display fractions in large notation.
523
524 * Added several alternate formats for matrix display.
525
526 * Changed TeX mode to write "(1 + x^2)" instead of "\left(1 + x^2\right)".
527
528 * Added support for relational operators in TeX and FORTRAN modes.
529
530 * Added recognition of accents like \dot, \tilde, \underline in TeX mode.
531
532 * Added "eqn" language mode.
533
534 * Added extra control over display justification with `d <', `d =', `d >'.
535
536 * Added calc-left-label and calc-right-label (`d {', `d }').
537
538 * Added "nn%" syntax for algebraic formulas; equivalent to "nn * .01".
539
540 * Added input syntaxes like a = b = c, a != b != c, a <= b < c.
541
542 * Changed "_" to mean subscripts; old use of "_" in vars is now "#".
543
544 * Introduced "matrix mode" and "scalar mode" (`m v').
545
546 * Introduced generic identity matrices (idn(1)).
547
548 * Added a method for declaring variables to be real, integer, > 0, etc.
549
550 * Added `Z S' command for editing stored value of a variable.
551
552 * Added "subst" algebraic function equivalent to the `a b' command.
553
554 * Added `a f' command, changed deriv/integ/solve-for to use it.
555
556 * Improved `a s' to simplify (x + y) (y + x) to (x + y)^2.
557
558 * Improved `a s' to simplify i^2 to -1.
559
560 * Improved `a s' to simplify, e.g., sin(pi/3) in Symbolic mode.
561
562 * Improved `a s' to simplify sqrt(8) to 2 sqrt(2), 1/sqrt(2) to sqrt(2)/2.
563
564 * Moved sin(arccos(x)) from `a e' to `a s'; not unsafe after all!
565
566 * Changed (x y)^z => x^z y^z to be a usually-unsafe simplification.
567
568 * Added thorough documentation of `a s' and `a e' to the manual.
569
570 * Improved `a c' to collect "f(a)" even if "a" also appears elsewhere.
571
572 * Introduced lin, linnt, islin, islinnt functions for linearity testing.
573
574 * Improved `a x' to use binomial theorem to give simpler answers.
575
576 * Improved `j D' to distribute powers of sums: (a + b)^n.
577
578 * Improved `j M' to merge products of powers (may need no-simplify mode).
579
580 * Changed to use defvar for DistribRules etc. so `Z V' works with them.
581
582 * Improved `j *' and `j /' to work properly in a few more cases.
583
584 * Improved `V R' to use identity value when reducing empty vectors.
585
586 * Improved `v p' and `v u' to support more complex packing operations.
587
588 * Disabled automatic simplification of sqrt(2)/2 to 1/sqrt(2).
589
590 * Bound SPC and RET to press, TAB to next-menu in *Calc Keypad* buffer.
591
592 * Added C-u ' to do algebraic entry with language mode forced to normal.
593
594 * Added "$1", "$2", etc. input notation for algebraic entry.
595
596 * Changed unary operators like `n', `&' to treat neg prefix args like RET.
597
598 * Changed ` (calc-edit) to show full precision regardless of float format.
599
600 * Enhanced quick-calc to display integers in several formats.
601
602 * Documented `g H' (calc-graph-hide) command (had been left from manual).
603
604 * Enhanced floor/ceil/trunc/round in several ways.
605
606 * Added rounde and roundu functions.
607
608 * Changed `c 1' through `c 9' to change small floats to 0.0; added `c 0'.
609
610 * Enhanced set operations to work on sets of intervals.
611
612 * Fixed erf(0), utpn(x,x,y), and arccosh(-1) to work properly.
613
614 * Changed complex arctan and arctanh to follow Steele 2nd edition.
615
616 * Expanded "Branch Cuts" section of the manual with some useful tables.
617
618 * Rearranged order of words in mode line to be a bit more logical.
619
620 * Changed `m N' (num-simplify) mode to evaluate constant vectors, too.
621
622 * Changed `a r'/`j r' to prompt twice for separate LHS/RHS if necessary.
623
624 * Enhanced `let(v,x)' in rewrites by allowing arbitrary patterns for v.
625
626 * Changed cursor positioning in second prompt for `a b' (calc-substitute).
627
628 * Changed `y' to omit line numbers more consistently.
629
630 * Changed `o' (calc-realign) to reset horizontal scrolling to zero, also.
631
632 * Added "pred" mode for calc-eval.
633
634 * Added "calc-report-bug" as an alias for "report-calc-bug".
635
636 * Added `Z T' and "calc-pass-errors" to aid debugging Calc-related code.
637
638 * Added "calc-load-everything" (`m X' or `M-# L') command.
639
640 * Enhanced calc-install to pre-build units table, CommuteRules, etc.
641
642 * Changed Calc to interact more gracefully with load-path.
643
644 * Changed Lisp Variable Index in manual to include user variables, too.
645
646 * Fixed a bug that prevented calc-install from working under VMS.
647
648 * Fixed a bug that sometimes crashed rewrites dealing with subtractions.
649
650 * Fixed a bug that prevented `a S' from solving "3 - x = 1 + x"!
651
652 * Fixed a bug in solver that crashed for certain cubics and quartics.
653
654 * Fixed a bug in calc-simplify that crashed for equations and ineqs.
655
656 * Fixed a bug which placed the "[" oddly in `d B' + `v /' mode.
657
658 * Fixed a bug where finishing calc-edit improperly obeyed language mode.
659
660 * Fixed a bug formatting (-1)^n in Big mode after selection commands.
661
662 * Fixed a bug that got ">=" and "<=" backwards in rewrite conditions.
663
664 * Fixed a bug that broke the `"x"' key in calc-keypad mode.
665
666 * Fixed a bug in which `MAP$' in calc-keypad didn't display "Working...".
667
668 * Fixed a bug where matrix division gave bad result for singular matrix.
669
670 * Fixed a bug which closed Calc window if calc-grab-region got an error.
671
672 * Fixed a bug where `a s' failed on formulas containing dimension errors.
673
674 * Fixed a bug that caused `m F' to hang.
675
676 * Fixed a bug in complex arithmetic that caused problems with solver.
677
678 * Fixed a bug which raised intervals to interval powers incorrectly.
679
680 * Fixed a bug in utpp/ltpp (order of arguments did not match the manual).
681
682 * Fixed a bug in which `t y' rounded yanked data with old precision.
683
684 * Fixed a bug in which "in(3, [3 .. 3))" returned true.
685
686 * Fixed a bug which simplified abs(abs(x)) incorrectly.
687
688 * Fixed a bug in which (a^2)^1:3 was unsafely simplified to a^2:3.
689
690 * Fixed a bug in rewrite system which missed pattern "2 sin(x) cos(x)".
691
692 * Fixed a bug in rewrite system which missed pattern "a - a cos(x)^2".
693
694 * Fixed obsolete trail tags gsmp, gneg, ginv to jsmp, jneg, jinv.
695
696 * Fixed some errors and made improvements in units table [Ulrich Mueller].
697
698\f
699Version 1.07:
700
701 * Added `m F' (calc-settings-file-name) command.
702
703 * Added calc-autoload-directory variable.
704
705 * Extended Z ` to accept a prefix argument.
706
707 * Added keystrokes (v h, v k) for head, tail, cons.
708
709 * Extended `v e' to accept a vector as the filler.
710
711 * Changed `V M', `V R' to accept mapping-mode keys in uppercase, too.
712
713 * Changed V M ' etc. to accept $, $$, ... as argument indicators.
714
715 * Changed `t y' to accept a prefix argument.
716
717 * Put in a cleaner and safer random number generator for `k r' et al.
718
719 * Fixed a bug which completely broke `a r' command!
720
721 * Fixed "0 * matrix" to generate a zero matrix instead of 0.
722
723 * Fixed a bug in `a R' which sometimes caused it to crash.
724
725 * Fixed a fatal typo in the TeX version of the manual.
726
727 * Fixed a bug that prevented C-k, C-w, M-w from working in Trail buffer.
728
729 * Fixed another bug in `Z P' command.
730
731 * Fixed a bug in `u s' which incorrectly simplified subtractions.
732
733 * Fixed an argument-name aliasing bug evaluating lambda( ) formulas.
734
735 * Fixed overfull hboxes in the manual.
736
737 * Fixed various other bugs in the manual.
738
739\f
740Version 1.06:
741
742 * Added "calc-keypad" mode for X window system users (try it!).
743
744 * Improved "calc-eval" for calling/operating Calc from user-written Lisp.
745
746 * Moved vector accumulate command to `V U' (old `H V R' still supported).
747
748 * Added right-to-left reductions: `I V R' and `I V U'.
749
750 * Added set operations on vectors: intersect, union, diff, xor.
751
752 * Added `I v s' to remove a subvector from a vector.
753
754 * Introduced `H |' to append two vectors with no magical special cases.
755
756 * Introduced rhead, rtail, and rcons for isolating last vector element.
757
758 * Changed `g p' to keep temp files around until data actually change.
759
760 * Improved `a S' to solve many higher-order polynomial equations.
761
762 * Added `a P' to produce a vector of all solutions to an equation.
763
764 * Enhanced `a v' and `j v' to allow top-level-only evaluation.
765
766 * Changed `j DEL' to delete a side of an eqn or ineq, leaving other side.
767
768 * Fixed binding for keys `j 1' through `j 9'.
769
770 * Introduced "let" marker in rewrite rules.
771
772 * Enhanced the "sign" function to provide a two-argument version.
773
774 * Changed "max-specpdl-size exceeded" error message to be user-friendly.
775
776 * Put "<Aborted>" in the trail in above case and when user presses C-g.
777
778 * Changed TeX mode to generate \ldots instead of \dots, recognize both.
779
780 * Changed "sin(0)" etc. (for integer 0) to generate "0" instead of "0.".
781
782 * Enhanced Programming Tutorial exercise 2.
783
784 * Fixed an error in the answer to Types Tutorial exercise 3.
785
786 * Fixed several bugs relating to head, tail, and cons functions.
787
788 * Fixed some other minor typos in the manual.
789
790 * Fixed several bugs in `Z P' (calc-user-define-permanent).
791
792 * Fixed several bugs that broke the `g P' command.
793
794\f
795Version 1.05:
796
797 * Created a calc-install command to ease installation.
798
799 * Added lots of exercises to the Tutorial section of the manual.
800
801 * Added ability to select and operate on sub-formulas.
802
803 * Substantially improved the algebraic rewrite-rule system.
804
805 * Added a set of graphing commands that use GNUPLOT.
806
807 * Added a command (`a R') for finding numerical roots to equations.
808
809 * Added several new math functions, such as erf and Bessel functions.
810
811 * Added key bindings for miscellaneous commands using the "f" prefix key.
812
813 * Added lots of new vector operations, many of them in the spirit of APL.
814
815 * Added more control over vector display, including an abbreviated mode.
816
817 * Improved keyboard macro editing; added read-kbd-macro to macedit.el.
818
819 * Introduced the `m S' (calc-shift-prefix) command.
820
821 * Enhanced the calc-edit command in several ways.
822
823 * Made it possible to hit ` (calc-edit) during numeric/algebraic entry.
824
825 * Enhanced the calc-solve-for command to handle inequalities.
826
827 * Enhanced calc-simplify to handle equations and inequalities.
828
829 * Taught log10 and log to look for exact integer or rational results.
830
831 * Added ability to take Nth roots directly.
832
833 * Added "increment" and "decrement" commands for integers and floats.
834
835 * Added "full-help" command, changed "h" key to invoke it.
836
837 * Added special help for Inverse and Hyperbolic prefixes.
838
839 * Added an optional prefix argument to `o' (calc-realign).
840
841 * Changed `t s' and `t r' to use RET as the search exit key.
842
843 * Made handling of operator keys for V M, V R, etc. more regular.
844
845 * Improved TeX mode; added support for \matrix format.
846
847 * Added a variant of `m a' mode that only affects ( and [ keys.
848
849 * Fixed "Mismatch" message for algebraic entry of semi-open intervals.
850
851 * Trimmed fat from calc.el to speed loading, moved more to calc-ext.el.
852
853 * Fixed a bug in which minibuffer entry rounded to out-of-date precision.
854
855 * Fixed a bug which crashed Calc 1.04 under Epoch.
856
857 * Fixed a bug which messed up Calc Trail's mode line, among other things.
858
859 * Fixed a bug which caused trail ">" to show only when in Trail buffer.
860
861 * Fixed a bug in which "calc" called "calc-grab-region" with too few args.
862
863 * Fixed bugs in both implementation and documentation of calc-perm.
864
865 * Fixed a bug in which calc-simplify-extended always used radians.
866
867 * Fixed a bug where calc-comma failed to override "polar" mode.
868
869 * Fixed a bug doing mixed arithmetic on rectangular+polar complex numbers.
870
871 * Fixed several bugs in transcendental functions with complex arguments.
872
873 * Fixed a bug in which `a s' simplified "x / .5" to ".5 x".
874
875 * Fixed numerous other bugs in various parts of Calc.
876
877 * Completed the "Hooks" section of the "Internals" chapter of the manual.
878
879\f
880Version 1.04:
881
882 * Included a copy of revision history (from README) in calc.el.
883
884 * Added the "calc-split" feature to split calc-ext.el into smaller bits.
885
886 * Changed calc-unpack to unpack floats and fractions, too.
887
888 * Added "mant", "xpon", and "scf" functions for decomposing floats.
889
890 * Fixed a bug in the "y" command with positive prefix arguments.
891
892 * Rearranged binary shift/rotate command keys to be a bit more convenient.
893
894 * Fixed a bug in which simplifying "(0/0) * 2" crashed with a Lisp error.
895
896 * Made `H F' [ffloor] and friends faster for very large arguments.
897
898 * Made calc-define-del more robust.
899
900 * Handled pasting of data into the Calculator using the mouse under X.
901
902 * Made overlay-arrow variables buffer-local to avoid interference.
903
904 * Fixed a problem in which Calc Trail buffer got stuck after a C-x C-w.
905
906\f
907Version 1.03:
908
909 * Changed math-choose to compute n-choose-m faster when m is large.
910
911 * Fixed some problems with TeX mode.
912
913 * Fixed a bug that prevented `b s' from working without a prefix argument.
914
915 * Added "calc-eval" function.
916
917 * Improved calc-grab-region.
918
919\f
920Version 1.02:
921
922 * Fixed a bug in Tutorial: telephone pole height/distance were switched!
923
924 * Fixed a few other things in the manual.
925
926 * Added "full-calc" command.
927
928 * Added "calc-insert-variables" (`Z I') command.
929
930 * Quick Calc now works even if you are already in the minibuffer.
931
932 * Fixed a bug in math-mul-bignum-digit which affected math-and, etc.
933
934 * Definition of "Hectares" was wrong in units table.
935
936 * Fixed a bug in calc-execute-kbd-macro concerning undo and refresh.
937
938 * Bound "calc-undo" to `C-x u' as well as `C-_' and `U'.
939\f
940Version 1.01:
941
942 * Added a tutorial section to the manual.
943
944 * Next and Prev for node Strings in the manual were reversed; fixed.
945
946 * Changed "'bignum" in calc-isqrt-bignum-iter to "'bigpos".
947
948 * Fixed a bug that prevented "$" from working during algebraic entry.
949
950 * Fixed a bug caused by an X (last-X) command following a K (macro) cmd.
951
952 * Fixed a bug in which K command incorrectly formatted stack in Big mode.
953
954 * Added space between unary operators and non-flat compositions.
955 (Otherwise, "-(a/b)" in Big mode blended the minus sign into the rule!)
956
957 * Fixed formatting of (-1)^n in Big mode.
958
959 * Fixed some problems relating to "not" operator in Pascal language mode.
960
961 * Fixed several bugs relating to V M ' and V M $ sequences.
962
963 * Fixed matrix-vector multiplication to produce a vector.
964
965 * Introduced Z ` ... Z ' commands; renamed old Z ' to Z #.
966
967 * Fixed various other bugs.
968
969 * Added calc-settings-file variable suggested by C. Witty.
970
971\f
972Version 1.00:
973
974 * First official release of Calc.
975
976 * If you used the Beta test version (0.01), you will find that this
977 version of Calc is over 50% larger than the original release.
978 General areas of improvement include much better algebra features;
979 operations on units; language modes; simplification modes; interval
980 arithmetic; vector mapping and reduction. Other new commands include
981 calc-fraction and calc-grab-region. The program has been split into
982 two parts for faster loading, and the manual is more complete.
983
2f969cd4
GM
984\f
985This file is part of GNU Emacs.
986
662c9c64 987GNU Emacs is free software: you can redistribute it and/or modify
2f969cd4 988it under the terms of the GNU General Public License as published by
662c9c64
GM
989the Free Software Foundation, either version 3 of the License, or
990(at your option) any later version.
2f969cd4
GM
991
992GNU Emacs is distributed in the hope that it will be useful,
993but WITHOUT ANY WARRANTY; without even the implied warranty of
994MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
995GNU General Public License for more details.
996
997You should have received a copy of the GNU General Public License
662c9c64 998along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.