CALC-NEWS 35.4 KB
Newer Older
1
Copyright (C) 2001-2019 Free Software Foundation, Inc.
2
See the end of the file for license conditions.
3

4
Calc is an advanced desk calculator for GNU Emacs.
5

6
Originally written by:
7 8 9 10 11
	Dave Gillespie
	c/o Synaptics, Inc.
	2698 Orchard Parkway
	San Jose CA 95134
	daveg@synaptics.com, uunet!synaptx!daveg
12

13
Calc was maintained for many years by:
14 15 16 17 18 19 20
     Jay Belanger <jay.p.belanger@gmail.com>

Summary of changes to "Calc"
------- -- ------- --  ----

For changes in Emacs 23.1 and later, see the main Emacs NEWS file.

21
* Version 2.1:
22

23
** New matrix mode for square matrices.  Improved handling of
24 25
  non-commutative products.

26
** New functions: powerexpand and ldiv.
27

28
** Added new functions: sec, csc, cot, sech, csch, coth.
29

30
** 0^0 now evaluates to 1.
31

32
** Added a new language mode for LaTeX.
33

34
** Calc now tries to use an appropriate language mode in embedded mode.
35

36
** Calc now restores original modes when leaving embedded mode.
37

38
** User settable variables which are not set with keystrokes are now
39 40
  customizable.

41
** Made ~/.calc.el the default Calc settings file.
42

43
** Miscellaneous updates and bugfixes.
44 45


46
* Version 2.02f:
47

48
** Fixed a bug which broke `I', `H', `K' prefix keys in recent Emacs.
49

50
** Fixed a bug in calc.texinfo which prevented "make tex2" from working.
51

52
** Updated `C-y' (calc-yank) to understand Emacs 19 generalized kill ring.
53

54
** Added a copy of "calccard.tex", the Calc quick reference card.
55 56


57
* Version 2.02e:
58

59
** Fixed an installation bug caused by recent changes to `write-region'.
60 61


62
* Version 2.02d:
63

64
** Fixed a minor installation problem with an Emacs 19.29 byte-compiler bug.
65

66
** Removed archaic "macedit" package (superseded by "edmacro").
67 68


69
* Version 2.02c:
70

71
** Patch to port Calc to Lucid Emacs 19; still works with GNU 18 and GNU 19.
72

73
** Fixed a bug that broke `C-x C-c' after Calc graphics had been used.
74 75


76
* Version 2.02b:
77

78
** Minor patch to port Calc to GNU Emacs 19.  Will be superseded by Calc 3.00.
79 80


81
* Version 2.02:
82

83
** Revamped the manual a bit; rearranged some sections.
84

85
** Added marginal notes for Key/Function Index refs in printed manual.
86

87
** Changed `M-# r' to deal more gracefully with blank lines.
88

89
** Made reductions like `V R +' and `M-# :' considerably faster.
90

91
** Improved parsing and display of cases like "[a + b]".
92

93
** Added `t +' and `t -' for doing business date arithmetic.
94

95
** Added "syntax tables," the opposite of compositions.
96

97
** Added another Rewrites Tutorial exercise.
98

99
** Added the "vmatches" function.
100

101
** Added the `Modes' variable and `m g' command.
102

103
** Improved `u s' to cancel, e.g., "11 mph hr / yd" to get a number.
104

105
** Added "quick units" commands "u 0" through "u 9".
106

107
** Moved `M-%' to calc.el to avoid autoloading problems.
108

109
** Added `M-=' during algebraic entry, acts like `RET ='.
110

111
** Made `LFD' prevent evaluation when finishing a calc-edit command.
112

113
** Changed calc-store commands to use `t .' mode for trail display.
114

115
** Improved integrator to understand forms involving "erf".
116

117
** Fixed parser to make sense of "[1....1e2]" input.
118

119
** Fixed FORTRAN parser to treat a(i,j) as a_i_j if a is declared matrix.
120

121
** Got rid of some version number stamps to reduce size of patches.
122

123
** Fixed a bug in defmath treating "<=" and ">=" predicates.
124

125
** Fixed a bug in which Calc crashed multiplying two date forms.
126

127
** Fixed a bug in line breaker that crashed for large, nested formulas.
128

129
** Fixed a bug using ` to edit string("foo").
130

131
** Fixed a bug where `M-# y' in Big mode copied stack level number.
132

133
** Fixed a bug where `g O' used wrong default directory, no completion.
134

135
** Fixed a bug where "foo_bar(i)" parsed in C mode but showed as foo#bar.
136

137
** Fixed several bugs where large calculations got "computation too long."
138 139


140
* Version 2.01:
141

142
** Added percentage commands `M-%', `b %', and `c %'.
143

144
** Changed Big mode to force radix-10 in superscripts.
145

146
** Improved display of fractions in various language modes.
147

148
** Changed `a n' to work properly with equations and inequalities.
149

150
** The problem with cross references to Index nodes in TeX has been fixed.
151

152
** Fixed a bug where recursive esc-maps make calc-ext/-aent unloadable.
153

154
** Fixed a bug in `M-# k', then `OFF' right away, with fresh Emacs.
155

156
** Fixed a bug in which "S_i_j" was formatted wrong after `j s'.
157

158
** Fixed a bug in which `h k u c' positioned cursor on wrong line.
159

160
** Fixed a bug where `z ?' crashed if `z %' was defined.
161

162
** Fixed a bug in `j O' (calc-select-once-maybe).
163

164
** Fixed "make private" not to ask "Delete excess versions" and crash.
165 166


167
* Version 2.00:
168

169
** First complete posting of Calc since 1.01.
170

171
** Most parts of Calc have seen changes since version 1.07.  See
172 173
   section "New for Calc 2.00" in the manual for a summary.

174
** Changed to compile calc-macs/-maint, to allow "cp *.elc new-dir".
175

176
** Improved calc-describe-bindings to avoid showing redundant ESC maps.
177 178


179
* Version 2.00 beta 3:
180

181
** Removed version numbers from most .el files to reduce size of patches.
182

183
** Added a "calc-version" command.
184

185
** Changed `M-# ? ?' to allow for modified describe-function.
186

187
** Changed date parser to accept "Sept" as an alternative for "Sep".
188

189
** Inhibited answers to exercise from showing up in table of contents.
190

191
** Changed Makefile to say "texindex calc.[cfkptv]?" to avoid "calc.el".
192

193
** Fixed up the Makefile in various other ways.
194

195
** Rearranged banner at top of `h h' command's output.
196

197
** Changed "make summary" to print "Calc Summary" on the title page.
198

199
** Added "IntegSimpRules".
200

201
** Added `M-# :', `M-# _', and `M-# Z' options.
202

203
** Changed `^' to evaluate "[-3..-1]^-2" properly.
204

205
** Improved `f g' to give symbolic answers for, e.g., 101:2 and -3:2.
206

207
** Fixed a bug where `h k RET' didn't find the right place on the page.
208

209
** Fixed a bug that formatted "x*(y ? a : b)" as "x y ? a : b".
210

211
** Fixed a bug where defmath translated (< x 0) as (math-posp x)!
212

213
** Fixed a bug that prevented quick-calc from working sometimes.
214

215
** Fixed the `z ?' bug again (maybe this time for good?).
216

217
** Fixed a bug in which `V ^' (vint) was just plain wrong, wrong, wrong!
218

219
** Scanned for and fixed remaining bugs relating to autoloading.
220 221


222
* Version 2.00 beta 2:
223

224
** Changed "make info" to try "make texinfo" if "makeinfo" not found.
225

226
** Changed to "New for Calc 2.00"; texinfo.tex chokes on apostrophes.
227

228
** Added List Tutorial Exercise 14 (just in case there weren't enough!).
229

230
** Added a discussion of the `Z F' command to the Programming Tutorial.
231

232
** Improved `H a f' not to lose info if input is partially pre-factored.
233

234
** Improved simplification of expressions like sqrt(3) + 3^3:2.
235

236
** Changed Big mode to omit "*" in expressions like 2 sqrt(3) 5^3:4.
237

238
** Replaced European date format D/M/Y with D.M.Y.
239

240
** Changed `a N' and `a X' to consider the endpoints of the interval.
241

242
** Fixed a bug where TeX mode made c*(1+a/b) look like a function call.
243

244
** Fixed a bug formatting top-level evalto's while using selections.
245

246
** Fixed a bug that caused `z ?' to crash.
247

248
** Fixed a bug where `Z F' broke for argument names "t" and "nil".
249

250
** Fixed several bugs relating to autoloading.
251 252


253
* Version 2.00 beta 1:
254

255
** Added "What's new in Calc 2.00" to the manual (summary of info below).
256

257
** Added support for many GNUPLOT 3.0 features.
258

259
** Tweaked the Makefile and calc-compile a bit more.
260

261
** Modified to work with Zawinski's/Furuseth's optimizing byte compiler.
262

263
** Modified Calc to garbage-collect less often (raised gc-cons-threshold).
264

265
** Changed quick-calc to avoid autoloading so many parts of Calc.
266

267
** Changed Calc subfiles to work properly if not byte-compiled.
268

269
** Renamed `M-# s' to `M-# j', made `M-# s' be equivalent to `h s'.
270

271
** Changed calc-quit to avoid reapportioning space among other windows.
272

273
** Added `M-DEL' (calc-pop-above) key, to DEL as LFD is to RET.
274

275
** Added `{' and `}' to scroll vertically, analogous to `<' and `>'.
276

277
** Added `m t' for "total" algebraic mode.
278

279
** Added `d , \' option to group digits with "\,".
280

281
** Improved support of "prime" accent in "eqn" language mode.
282

283
** Changed macedit's read-kbd-macro to accept a string argument in Lisp.
284

285
** Changed calc-check-defines to use a more concise run-hooks linkage.
286

287
** Changed auto-why mode not to say [w=more] if next msg is not urgent.
288

289
** Made `a d' able to differentiate "a?b:c" and "a_i" formulas.
290

291
** Changed probability dist. functions to work with `a f' and `a d'.
292

293
** Added special constants "phi" and "gamma".
294

295
** Added "poly" function, simpler cousin of "gpoly".
296

297
** Added "pdeg", "plead", "pcont", "pprim"; cleaned up "pdiv" and "pgcd".
298

299
** Added `a p' command for polynomial interpolation.
300

301
** Added `a I' command for numerical integration; made IntegLimit variable.
302

303
** Added `a f' to factor polynomials; moved old `a f' to `a "'.
304

305
** Added `a a' to do partial fraction decompositions.
306

307
** Improved `a i' to integrate many more kinds of formulas.
308

309
** Modified `a P' to find numerical roots of high-degree polynomials.
310

311
** Modified `c 0' through `c 9' to convert int-valued floats to integers.
312

313
** Made sinh, arctanh, etc., expandable into exps/logs by `a f'.
314

315
** Added more algebraic simplifications having to do with logs and exps.
316

317
** Changed `s s', `s t', `s x', `s l' to accept an equation at prompt.
318

319
** Changed `s i' not to store Decls if its value is the default, [].
320

321
** Changed `s i' to store in `d O' language mode if in Normal or Big mode.
322

323
** Rearranged `V M'/`V R' matrix mapping modes.
324

325
** Added <#1+#2> notation for lambda expressions.
326

327
** Extended `b l' and other binary shifts to have a 2-argument version.
328

329
** Changed `u c' and `u t' to give unitless result for unitless input.
330

331
** Changed sqrt(1-cos(x)^2)-to-sin(x) to be an unsafe simplification.
332

333
** Improved simplification of sqrts, e.g., sqrt(a^2 x + a^2 y).
334

335
** Changed solver to treat (x-a)(x-b)(x-c) more intelligently.
336

337
** Changed Pascal language mode to use "$FFFF" for hexadecimal numbers.
338

339
** Added support for non-decimal display of floats.
340

341
** Changed `p' to refresh stack display if current float format uses it.
342

343
** Changed Big mode to use subscript notation for log10(x), log(x,b), r#nnn.
344

345
** Changed Big mode to format deriv(u,x) and tderiv(u,x) as du/dx.
346

347
** Changed Big mode to format integ(1/x,x) as "dx/x" instead of "1/x dx".
348

349
** Added "tty" output type for graphics commands.
350

351
** Documented Calc's random number generation algorithm in the manual.
352

353
** Fixed a bug involving having "(setq calc-timing t)" in .emacs.
354

355
** Fixed a bug that incorrectly parsed "|x| - 1" in TeX mode.
356

357
** Fixed bugs and made improvements in `a R' when widening the guess.
358

359
** Fixed a bug that where `a S' didn't solve (x - a)^2 = (x - b)^2.
360

361
** Fixed a bug that sometimes crashed `a P' on systems of equations.
362

363
** Fixed a bug that prevented `b p' (calc-pack-bits) from working.
364

365
** Fixed some bugs in which certain functions didn't get autoloaded.
366

367
** Fixed a bug in which the date <1/1/13> was incorrectly parsed.
368

369
** Fixed a bug which prevented `j D' from expanding (a+b)/c.
370

371
** Fixed a bug in solver: bad inverses for sinh and cosh.
372

373
** Fixed a bug in math-possible-signs that failed for x*0.
374

375
** Fixed a bug where sqrt(-a) was rewritten sqrt(a)*i even if a<0.
376

377
** Fixed a bug in line breaker when first "word" of line was too long.
378

379
** Worked around a makeinfo bug that handled @end group/@group badly.
380 381


382
* Version 2.00 alpha 3:
383

384
** Changed logic for locating component .elc files to be even smarter.
385

386
** Changed "make install" to "make compile"; added different "make install".
387

388
** Improved "make compile" to check file dates and compile only when needed.
389

390
** Made output of "make compile" in batch mode more compact and readable.
391

392
** Replaced "Quick Overview" in manual with "Demonstration of Calc".
393

394
** Changed to use keymaps for dispatching M-# and h prefix keys.
395

396
** Added TAGS target to the Calc Makefile.
397

398
** Removed most doc strings from functions; new help commands are better.
399

400
** Got rid of some crufty "fset" calls that were cluttering the code.
401

402
** Split calc-grab-region into two functions, calc-grab-region/-rectangle.
403

404
** Swapped positions of stack and trail in full-calc-keypad display.
405

406
** Improved line-breaking algorithm for displaying long formulas.
407

408
** Improved display of control characters in vectors shown as strings.
409

410
** Changed `d o' to allow fraction format to specify desired denominator.
411

412
** Changed `M-# y' to respect overwrite mode in target buffer.
413

414
** Added `H' prefix to display-mode commands to suppress stack refresh.
415

416
** Changed "calc-why" mechanism to display urgent messages automatically.
417

418
** Handled taking derivatives of symbolic integrals and vice-versa.
419

420
** Handled integrating vectors of formulas.
421

422
** Incorporated Ewerlid's polynomial division and GCD functions into Calc.
423

424
** Improved algebraic operations on "mod" forms, esp. polynomials.
425

426
** Added some more financial functions (sln, syd, ddb).
427

428
** Added nest, anest, fixp, and afixp (`H V R' and `H V U') functions.
429

430
** Added `a .' (calc-remove-equal) command to take apart equations.
431

432
** Generalized dfact to work for negative odd integers; added !! syntax.
433

434
** Changed `k f' to factor 1, 0, and negative integers.
435

436
** Changed `u M', etc., to accept +/- and [ .. ] forms as distributions.
437

438
** Changed `g q' to remove *Gnuplot Commands/Trail* window if present.
439

440
** Added support for Francois Pinard's "dumb terminal" driver for GNUPLOT.
441

442
** Added ":: remember" feature for rewrite rules.
443

444
** Changed rewrites to let pattern "a*b" match "x/2" with a=x, b=1/2.
445

446
** Added ability to put function names like "simplify" in rewrite schedule.
447

448
** Added "Rewrites Tutorial" to the manual.
449

450
** Changed ` to bind RET as newline instead of finish if editing a vector.
451

452
** Added some new exercises to the List Tutorial.
453

454
** Changed `Z F', `V M', etc. not to remove stored vars from def arg list.
455

456
** Added parsing for /1, 2, 3/ notation for Fortran mode vectors.
457

458
** Added a "%%" syntax for comments in formulas being read.
459

460
** Fixed a bug in which failing `h k' removed an existing Info window.
461

462
** Fixed a bug in `j /' operating on subformulas like "a + b".
463

464
** Fixed a bug in which "inf = inf" undesirably evaluated to 1.
465

466
** Fixed a bug that simplified "0 = 1 + a + 2" to "0 = a".
467

468
** Fixed a bug that failed for rewrite patterns like "fib(1 ||| 2)".
469

470
** Fixed a bug that arose because rewrite programs are non-reentrant.
471 472


473
* Version 2.00 alpha 2:
474

475
** Changed LFD terminating algebraic entry to push in no-simplify mode.
476

477
** Changed so that `K -' interprets `-' as calc-minus, not neg prefix arg.
478

479
** Improved `h c' command to understand all Calc key sequences.
480

481
** Fixed problems with DistribRules, NegateRules, and FitRules.
482

483
** Fixed several bad node pointers in the manual.
484

485
** Fixed a bug in `h C-w' when used with makeinfo-formatted manuals.
486

487
** Fixed a bug in sqrt(-1) when Polar and HMS modes are enabled.
488

489
** Fixed/improved dscalar and deven functions; added dodd.
490

491
** Fixed a bug in polynomial handling that also affected sum(sin(k),k,1,n).
492

493
** Fixed various other glitches in the manual.
494 495


496
* Version 2.00 alpha 1:
497

498
** Calc's tar file now creates a calc-(version) directory to unpack into.
499

500
** Calc now comes with a Makefile; install with "make install".
501

502
** Calc now comes already split into many files; installation is much simpler.
503

504
** Changed base file name of the manual from "calc-info" to "calc.info".
505

506
** Key binding for `M-# w' was documented but not implemented.
507

508
** Bound M-# ' to be synonymous with `M-# f' (used to be `M-# q').
509

510
** Changed M-# M-# to use last interface of C or K; E no longer counts.
511

512
** Changed `i' (and `M-# i') not to return to Top node unnecessarily.
513

514
** Changed `h' to be a prefix key with various help commands.
515

516
** Changed `s' to be a prefix key with various store and recall commands.
517

518
** Keys `i', `r', and `l' are obsolete (moved to `h' and `s' prefixes).
519

520
** Rearranged `K', `X', and `M-RET' keys; `K' is now calc-keep-args.
521

522
** Changed quick-calc to display input formula as well as output if room.
523

524
** Changed quick-calc to interact with the editing buffer and kill ring.
525

526
** Created pack, unpack, unpackt function equivalents of `v p', `v u'.
527

528
** Changed to expand (a/b)^x to a^x/b^x only if b > 0 (not if a > 0).
529

530
** Changed math-possible-signs to understand sqrt function.
531

532
** Changed Z [, rewrites to consider any provably non-zero value as true.
533

534
** Changed normal language modes to accept ** as a synonym for ^.
535

536
** Added "maple" language mode.
537

538
** Changed, e.g., Mathematica "(2 + 3 I)^(1.23*10^20)" to include parens.
539

540
** Generalized math-compose-big properties for all language modes.
541

542
** Introduced "string" and other function for composing expressions.
543

544
** Changed many recursive vector routines to use loops instead.
545

546
** Added evalv, evalvn function equivalents to `=', `N'.
547

548
** Changed "expr =>" not to evaluate at all if in no-simplify mode.
549

550
** Redesigned user interface of `a F' (calc-curve-fit) command.
551

552
** Added "phase" feature to the rewrite rule system.
553

554
** Added "&&&", "|||", "!!!" to the rewrite rule system.
555

556
** Introduced a new notation for rewrites:  LHS := RHS :: COND.
557

558
** Changed `a r' (but not `j r') to repeat 100 times by default.
559

560
** Integrated EvalRules more cleanly into the default simplifications.
561

562
** Added `H v l' [mdims] to measure the dimensions of a matrix.
563

564
** Changed `u c' to interpret "/units" as "1/units".
565

566
** Added `u a' to adjust unit prefix letters automatically.
567

568
** Changed `u s' to enable scalar mode while simplifying.
569

570
** Changed `c f' [pfloat] not to float integer powers or subscripts.
571

572
** Added a three-argument form for the "hms" function.
573

574
** Changed, e.g., sin(90) degrees to produce 1 instead of 1.0.
575

576
** Changed symbolic mode to prefer sqrt(int): abs([1 2 3]) => sqrt(14).
577

578
** Enhanced solver to handle, e.g., x + 1/x = a; exp(x) + exp(-x) = a.
579

580
** Enhanced simplifier to handle, e.g., exp(a+2) / e^a => e^2.
581

582
** Enhanced `a s' to simplify sqrt(x) - x^1:2 and exp(x) - e^x to 0.
583

584
** Added -(a + b) to -a - b as a default simplification.
585

586
** Added rules for differentiating sum() and prod() functions.
587

588
** Added a few more energy units (due to Przemek Klosowski).
589

590
** Added overflow/underflow checking for all floating-point arithmetic.
591

592
** Extended error forms to work with complex numbers.
593

594
** Generalized GCD to handle fractional arguments.
595

596
** Changed graphics routines to evaluate "x" values, e.g., [-pi .. pi].
597

598
** Added `g q', like `g K' but without viewing the Gnuplot Trail.
599

600
** Changed `g p' and `V M' to display better "Working..." messages.
601

602
** Modified `M-# g' to be more robust about grabbing formulas.
603

604
** Added `Y' prefix key reserved for user-written extensions.
605

606
** Added calc-load-hook and calc-ext-load-hook.
607

608
** Prevented calc-install from leaving large ~ files behind.
609

610
** Changed @bullet to @bullet{} in manual to conform to texinfo spec.
611

612
** Rearranged some chapters in the manual to be a bit more logical.
613

614
** Added calc-split-summary command.
615

616
** Fixed several bugs in embedded mode.
617

618
** Fixed a bug in calc-vector-covariance that required a prefix arg.
619

620
** Fixed a bug that prevented parsing "a=>" with no right-hand side.
621

622
** Fixed a bug which allowed incorrectly dividing a vector by a vector.
623

624
** Fixed a bug formatting sum(...)^2 in Big mode.
625

626
** Fixed a bug that prevented Calc from deleting old graphics temp files.
627

628
** Fixed some typos calling calc-inverse-func instead of calc-invert-func.
629

630
** Fixed bugs in the derivatives of conj, deg, and rad; added re, im.
631

632
** Fixed a bug where (r;theta) parsed as r exp(theta i) even in Deg mode.
633

634
** Fixed a bug which gave wrong answer for exp of a polar complex number.
635

636
** Fixed a bug in `Z F' that failed if formula used non-arg variables.
637

638
** Fixed a bad pointer to Info node "Assignments in Embedded Mode".
639

640
** Fixed several errors in the Calc Summary.
641 642


643
* Version 1.08 beta 1:
644

645
** Calc's copyright has been assigned to FSF, for inclusion in Emacs 19!
646

647
** Changed M-# to be a two-key sequence; use M-# M-# to start Calc now.
648

649
** Rewrote and expanded the introductory chapter of the manual.
650

651
** Added a key and function summary to the manual.
652

653
** Changed the manual to take better advantage of TeX's math formatting.
654

655
** Changed manual to be printable in @smallbook format.
656

657
** Added "calc-embedded" mode.
658

659
** Added "=>" [evalto] operator.
660

661
** Added facilities for date and date/time arithmetic.
662

663
** Added a set of financial functions (pv, fv, etc.).
664

665
** Added infinite quantities inf, uinf, and nan (plus infinite intervals).
666

667
** Added "EvalRules", "SimpRules", and "ExtSimpRules" variables.
668

669
** Added sum and product commands `a +', `a -', `a *', `a T'.
670

671
** Enhanced `a S' and `a P' to solve systems of equations.
672

673
** Enhanced solver to handle eqns like sin(x) = cos(2 x), sqrt(x) + x = 1.
674

675
** Added `a M' (calc-map-equation) command.
676

677
** Added new statistical functions: mean, standard deviation, etc.
678

679
** Added line, polynomial, and curve fitting commands (`a L' and `a F').
680

681
** Added support for composite units, e.g., "mi+ft+in".
682

683
** Enhanced "Big" mode to format square roots, choose, and powers better.
684

685
** Enhanced "Big" mode to display fractions in large notation.
686

687
** Added several alternate formats for matrix display.
688

689
** Changed TeX mode to write "(1 + x^2)" instead of "\left(1 + x^2\right)".
690

691
** Added support for relational operators in TeX and FORTRAN modes.
692

693
** Added recognition of accents like \dot, \tilde, \underline in TeX mode.
694

695
** Added "eqn" language mode.
696

697
** Added extra control over display justification with `d <', `d =', `d >'.
698

699
** Added calc-left-label and calc-right-label (`d {', `d }').
700

701
** Added "nn%" syntax for algebraic formulas; equivalent to "nn * .01".
702

703
** Added input syntaxes like a = b = c, a != b != c, a <= b < c.
704

705
** Changed "_" to mean subscripts; old use of "_" in vars is now "#".
706

707
** Introduced "matrix mode" and "scalar mode" (`m v').
708

709
** Introduced generic identity matrices (idn(1)).
710

711
** Added a method for declaring variables to be real, integer, > 0, etc.
712

713
** Added `Z S' command for editing stored value of a variable.
714

715
** Added "subst" algebraic function equivalent to the `a b' command.
716

717
** Added `a f' command, changed deriv/integ/solve-for to use it.
718

719
** Improved `a s' to simplify (x + y) (y + x) to (x + y)^2.
720

721
** Improved `a s' to simplify i^2 to -1.
722

723
** Improved `a s' to simplify, e.g., sin(pi/3) in Symbolic mode.
724

725
** Improved `a s' to simplify sqrt(8) to 2 sqrt(2), 1/sqrt(2) to sqrt(2)/2.
726

727
** Moved sin(arccos(x)) from `a e' to `a s'; not unsafe after all!
728

729
** Changed (x y)^z => x^z y^z to be a usually-unsafe simplification.
730

731
** Added thorough documentation of `a s' and `a e' to the manual.
732

733
** Improved `a c' to collect "f(a)" even if "a" also appears elsewhere.
734

735
** Introduced lin, linnt, islin, islinnt functions for linearity testing.
736

737
** Improved `a x' to use binomial theorem to give simpler answers.
738

739
** Improved `j D' to distribute powers of sums: (a + b)^n.
740

741
** Improved `j M' to merge products of powers (may need no-simplify mode).
742

743
** Changed to use defvar for DistribRules etc. so `Z V' works with them.
744

745
** Improved `j *' and `j /' to work properly in a few more cases.
746

747
** Improved `V R' to use identity value when reducing empty vectors.
748

749
** Improved `v p' and `v u' to support more complex packing operations.
750

751
** Disabled automatic simplification of sqrt(2)/2 to 1/sqrt(2).
752

753
** Bound SPC and RET to press, TAB to next-menu in *Calc Keypad* buffer.
754

755
** Added C-u ' to do algebraic entry with language mode forced to normal.
756

757
** Added "$1", "$2", etc. input notation for algebraic entry.
758

759
** Changed unary operators like `n', `&' to treat neg prefix args like RET.
760

761
** Changed ` (calc-edit) to show full precision regardless of float format.
762

763
** Enhanced quick-calc to display integers in several formats.
764

765
** Documented `g H' (calc-graph-hide) command (had been left from manual).
766

767
** Enhanced floor/ceil/trunc/round in several ways.
768