calc-vec.el (calc-histogram):
[bpt/emacs.git] / doc / misc / calc.texi
index 028afba..12b8d8e 100644 (file)
@@ -76,7 +76,6 @@
 @newcount@calcpageno
 @newtoks@calcoldeverypar @calcoldeverypar=@everypar
 @everypar={@calceverypar@the@calcoldeverypar}
-@ifx@turnoffactive@undefinedzzz@def@turnoffactive{}@fi
 @ifx@ninett@undefinedzzz@font@ninett=cmtt9@fi
 @catcode`@\=0 \catcode`\@=11
 \r@ggedbottomtrue
@@ -93,7 +92,7 @@ This file documents Calc, the GNU Emacs calculator, included with GNU Emacs 23.1
 @end ifnotinfo
 
 Copyright @copyright{} 1990, 1991, 2001, 2002, 2003, 2004,
-2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -1804,7 +1803,6 @@ or, in large mathematical notation,
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ 2 + { 3 \times 4 \times 5 \over 6 \times 7^8 } - 9 $$
 \afterdisplay
@@ -3358,7 +3356,6 @@ Suppose we had the following set of equations:
 @end group
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplayh
 $$ \openup1\jot \tabskip=0pt plus1fil
 \halign to\displaywidth{\tabskip=0pt
@@ -3385,7 +3382,6 @@ This can be cast into the matrix equation,
 @end group
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ \pmatrix{ 1 & 2 & 3 \cr 4 & 5 & 6 \cr 7 & 6 & 0 }
    \times
@@ -3457,7 +3453,6 @@ in terms of @expr{a} and @expr{b}.
 @end group
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ \eqalign{ x &+ a y = 6 \cr
              x &+ b y = 10}
@@ -3483,7 +3478,6 @@ on the left by the transpose of @expr{A}:
 @samp{trn(A)*A*X = trn(A)*B}.
 @end ifnottex
 @tex
-\turnoffactive
 $A^T A \, X = A^T B$, where $A^T$ is the transpose \samp{trn(A)}.
 @end tex
 Now 
@@ -3506,7 +3500,6 @@ system:
 @end group
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplayh
 $$ \openup1\jot \tabskip=0pt plus1fil
 \halign to\displaywidth{\tabskip=0pt
@@ -3778,7 +3771,6 @@ m = (N sum(x y) - sum(x) sum(y)) / (N sum(x^2) - sum(x)^2)
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ m = {N \sum x y - \sum x \sum y  \over
         N \sum x^2 - \left( \sum x \right)^2} $$
@@ -3820,7 +3812,6 @@ respectively.  (We could have used @kbd{*} to compute @samp{sum(x^2)} and
 @samp{sum(x y)}.)
 @end ifnottex
 @tex
-\turnoffactive
 These are $\sum x$, $\sum x^2$, $\sum y$, and $\sum x y$,
 respectively.  (We could have used \kbd{*} to compute $\sum x^2$ and
 $\sum x y$.)
@@ -3874,7 +3865,6 @@ b = (sum(y) - m sum(x)) / N
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ b = {\sum y - m \sum x \over N} $$
 \afterdisplay
@@ -5223,7 +5213,6 @@ down to the formula,
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ \displaylines{
       \qquad {h \over 3} (f(a) + 4 f(a+h) + 2 f(a+2h) + 4 f(a+3h) + \cdots
@@ -5245,7 +5234,6 @@ h * (f(a) + f(a+h) + f(a+2h) + f(a+3h) + ...
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ h (f(a) + f(a+h) + f(a+2h) + f(a+3h) + \cdots
            + f(a+(n-2)h) + f(a+(n-1)h)) $$
@@ -5287,25 +5275,25 @@ Suppose we want to simplify this trigonometric formula:
 
 @smallexample
 @group
-1:  1 / cos(x) - sin(x) tan(x)
+1:  2 / cos(x)^2 - 2 tan(x)^2
     .
 
-    ' 1/cos(x) - sin(x) tan(x) @key{RET}   s 1
+    ' 2/cos(x)^2 - 2tan(x)^2 @key{RET}   s 1
 @end group
 @end smallexample
 
 @noindent
 If we were simplifying this by hand, we'd probably replace the
 @samp{tan} with a @samp{sin/cos} first, then combine over a common
-denominator.  There is no Calc command to do the former; the @kbd{a n}
-algebra command will do the latter but we'll do both with rewrite
+denominator.  The @kbd{I a s} command will do the former and the @kbd{a n}
+algebra command will do the latter, but we'll do both with rewrite
 rules just for practice.
 
 Rewrite rules are written with the @samp{:=} symbol.
 
 @smallexample
 @group
-1:  1 / cos(x) - sin(x)^2 / cos(x)
+1:  2 / cos(x)^2 - 2 sin(x)^2 / cos(x)^2
     .
 
     a r tan(a) := sin(a)/cos(a) @key{RET}
@@ -5335,7 +5323,7 @@ To merge over a common denominator, we can use another simple rule:
 
 @smallexample
 @group
-1:  (1 - sin(x)^2) / cos(x)
+1:  (2 - 2 sin(x)^2) / cos(x)^2
     .
 
     a r a/x + b/x := (a+b)/x @key{RET}
@@ -5350,13 +5338,13 @@ denominators.
 
 Second, meta-variable names are independent from variables in the
 target formula.  Notice that the meta-variable @samp{x} here matches
-the subformula @samp{cos(x)}; Calc never confuses the two meanings of
+the subformula @samp{cos(x)^2}; Calc never confuses the two meanings of
 @samp{x}.
 
 And third, rewrite patterns know a little bit about the algebraic
 properties of formulas.  The pattern called for a sum of two quotients;
 Calc was able to match a difference of two quotients by matching
-@samp{a = 1}, @samp{b = -sin(x)^2}, and @samp{x = cos(x)}.
+@samp{a = 2}, @samp{b = -2 sin(x)^2}, and @samp{x = cos(x)^2}.
 
 @c [fix-ref Algebraic Properties of Rewrite Rules]
 We could just as easily have written @samp{a/x - b/x := (a-b)/x} for
@@ -5368,15 +5356,15 @@ of Rewrite Rules}, for some examples of this.)
 One more rewrite will complete the job.  We want to use the identity
 @samp{sin(x)^2 + cos(x)^2 = 1}, but of course we must first rearrange
 the identity in a way that matches our formula.  The obvious rule
-would be @samp{@w{1 - sin(x)^2} := cos(x)^2}, but a little thought shows
+would be @samp{@w{2 - 2 sin(x)^2} := 2 cos(x)^2}, but a little thought shows
 that the rule @samp{sin(x)^2 := 1 - cos(x)^2} will also work.  The
 latter rule has a more general pattern so it will work in many other
 situations, too.
 
 @smallexample
 @group
-1:  (1 + cos(x)^2 - 1) / cos(x)           1:  cos(x)
-    .                                         .
+1:  (2 + 2 cos(x)^2 - 2) / cos(x)^2           1:  2
+    .                                            .
 
     a r sin(x)^2 := 1 - cos(x)^2 @key{RET}          a s
 @end group
@@ -5397,7 +5385,7 @@ having to retype it.
 ' a/x + b/x := (a+b)/x @key{RET}         s t merge @key{RET}
 ' sin(x)^2 := 1 - cos(x)^2 @key{RET}     s t sinsqr @key{RET}
 
-1:  1 / cos(x) - sin(x) tan(x)     1:  cos(x)
+1:  2 / cos(x)^2 - 2 tan(x)^2      1:  2
     .                                  .
 
     r 1                a r tsc @key{RET}  a r merge @key{RET}  a r sinsqr @key{RET}  a s
@@ -5686,7 +5674,6 @@ cos(x) = 1 - x^2 / 2! + x^4 / 4! - x^6 / 6! + ...
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ \cos x = 1 - {x^2 \over 2!} + {x^4 \over 4!} - {x^6 \over 6!} + \cdots $$
 \afterdisplay
@@ -5704,7 +5691,6 @@ cos(x) = 1 - x^2 / 2! + O(x^3)
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ \cos x = 1 - {x^2 \over 2!} + O(x^3) $$
 \afterdisplay
@@ -6234,7 +6220,7 @@ new_x = x - f(x)/f'(x)
 @end ifnottex
 @tex
 \beforedisplay
-$$ x_{\rm new} = x - {f(x) \over f'(x)} $$
+$$ x_{\rm new} = x - {f(x) \over f^{\prime}(x)} $$
 \afterdisplay
 @end tex
 
@@ -6336,7 +6322,6 @@ s(n+1,m) = s(n,m-1) - n s(n,m)   for n >= m >= 1.
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ \eqalign{ s(n,n)   &= 1 \qquad \hbox{for } n \ge 0,  \cr
              s(n,0)   &= 0 \qquad \hbox{for } n > 0, \cr
@@ -6875,7 +6860,6 @@ get the row sum.  Similarly, use @kbd{[1 1] r 4 *} to get the column sum.
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ \eqalign{ x &+ a y = 6 \cr
              x &+ b y = 10}
@@ -6939,7 +6923,6 @@ which we can solve using Calc's @samp{/} command.
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplayh
 $$ \openup1\jot \tabskip=0pt plus1fil
 \halign to\displaywidth{\tabskip=0pt
@@ -7074,7 +7057,6 @@ the first job is to form the matrix that describes the problem.
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ m \times x + b \times 1 = y $$
 \afterdisplay
@@ -7865,7 +7847,6 @@ So the result when we take the modulo after every step is,
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ 3 (3 a + b - 511 m) + c - 511 n $$
 \afterdisplay
@@ -7881,7 +7862,6 @@ the distributive law yields
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ 9 a + 3 b + c - 511\times3 m - 511 n $$
 \afterdisplay
@@ -7899,9 +7879,8 @@ term.  So we can take it out to get an equivalent formula with
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
-$$ 9 a + 3 b + c - 511 n' $$
+$$ 9 a + 3 b + c - 511 n^{\prime} $$
 \afterdisplay
 @end tex
 
@@ -8031,7 +8010,7 @@ But if @w{@samp{17 inf = inf}}, then @samp{17 inf / inf = inf / inf = 17}, too.
 
 @samp{exp(inf) = inf}.  It's tempting to say that the exponential
 of infinity must be ``bigger'' than ``regular'' infinity, but as
-far as Calc is concerned all infinities are as just as big.
+far as Calc is concerned all infinities are the same size.
 In other words, as @expr{x} goes to infinity, @expr{e^x} also goes
 to infinity, but the fact the @expr{e^x} grows much faster than
 @expr{x} is not relevant here.
@@ -9819,6 +9798,23 @@ stack but resets everything else to its default state.
 @noindent
 @cindex Help commands
 @kindex ?
+@kindex a ?
+@kindex b ?
+@kindex c ?
+@kindex d ?
+@kindex f ?
+@kindex g ?
+@kindex j ?
+@kindex k ?
+@kindex m ?
+@kindex r ?
+@kindex s ?
+@kindex t ?
+@kindex u ?
+@kindex v ?
+@kindex V ?
+@kindex z ?
+@kindex Z ?
 @pindex calc-help
 The @kbd{?} key (@code{calc-help}) displays a series of brief help messages.
 Some keys (such as @kbd{b} and @kbd{d}) are prefix keys, like Emacs'
@@ -11076,29 +11072,29 @@ days 0 and @mathit{-1} respectively in Calc's internal numbering scheme.
 
 @cindex Julian day counting
 Another day counting system in common use is, confusingly, also called
-``Julian.''  The Julian day number is the numbers of days since 
-12:00 noon (GMT) on Jan 1, 4713 BC, which in Calc's scheme (in GMT) 
+``Julian.''  The Julian day number is the numbers of days since
+12:00 noon (GMT) on Jan 1, 4713 BC, which in Calc's scheme (in GMT)
 is @mathit{-1721423.5} (recall that Calc starts at midnight instead
 of noon).  Thus to convert a Calc date code obtained by unpacking a
 date form into a Julian day number, simply add 1721423.5 after
 compensating for the time zone difference.  The built-in @kbd{t J}
 command performs this conversion for you.
 
-The Julian day number is based on the Julian cycle, which was invented 
+The Julian day number is based on the Julian cycle, which was invented
 in 1583 by Joseph Justus Scaliger.  Scaliger named it the Julian cycle
-since it is involves the Julian calendar, but some have suggested that
+since it involves the Julian calendar, but some have suggested that
 Scaliger named it in honor of his father, Julius Caesar Scaliger.  The
-Julian cycle is based it on three other cycles: the indiction cycle,
-the Metonic cycle, and the solar cycle.  The indiction cycle is a 15
-year cycle originally used by the Romans for tax purposes but later
-used to date medieval documents.  The Metonic cycle is a 19 year
-cycle; 19 years is close to being a common multiple of a solar year
-and a lunar month, and so every 19 years the phases of the moon will
-occur on the same days of the year.  The solar cycle is a 28 year
-cycle; the Julian calendar repeats itself every 28 years.  The
-smallest time period which contains multiples of all three cycles is
-the least common multiple of 15 years, 19 years and 28 years, which
-(since they're pairwise relatively prime) is 
+Julian cycle is based on three other cycles: the indiction cycle, the
+Metonic cycle, and the solar cycle.  The indiction cycle is a 15 year
+cycle originally used by the Romans for tax purposes but later used to
+date medieval documents.  The Metonic cycle is a 19 year cycle; 19
+years is close to being a common multiple of a solar year and a lunar
+month, and so every 19 years the phases of the moon will occur on the
+same days of the year.  The solar cycle is a 28 year cycle; the Julian
+calendar repeats itself every 28 years.  The smallest time period
+which contains multiples of all three cycles is the least common
+multiple of 15 years, 19 years and 28 years, which (since they're
+pairwise relatively prime) is
 @texline @math{15\times 19\times 28 = 7980} years.
 @infoline 15*19*28 = 7980 years.
 This is the length of a Julian cycle.  Working backwards, the previous
@@ -12117,17 +12113,18 @@ the @emph{appearance} or @emph{interpretation} of the stack's contents.
 @cindex Saving mode settings
 @cindex Permanent mode settings
 @cindex Calc init file, mode settings
-You can save all of the current mode settings in your Calc init file 
+You can save all of the current mode settings in your Calc init file
 (the file given by the variable @code{calc-settings-file}, typically
-@file{~/.calc.el}) with the @kbd{m m} (@code{calc-save-modes}) command.
-This will cause Emacs to reestablish these modes each time it starts up.
-The modes saved in the file include everything controlled by the @kbd{m}
-and @kbd{d} prefix keys, the current precision and binary word size,
-whether or not the trail is displayed, the current height of the Calc
-window, and more.  The current interface (used when you type @kbd{C-x * *}) 
-is also saved.  If there were already saved mode settings in the
-file, they are replaced.  Otherwise, the new mode information is
-appended to the end of the file.
+@file{~/.emacs.d/calc.el}) with the @kbd{m m} (@code{calc-save-modes})
+command.  This will cause Emacs to reestablish these modes each time
+it starts up.  The modes saved in the file include everything
+controlled by the @kbd{m} and @kbd{d} prefix keys, the current
+precision and binary word size, whether or not the trail is displayed,
+the current height of the Calc window, and more.  The current
+interface (used when you type @kbd{C-x * *}) is also saved.  If there
+were already saved mode settings in the file, they are replaced.
+Otherwise, the new mode information is appended to the end of the
+file.
 
 @kindex m R
 @pindex calc-mode-record-mode
@@ -12149,7 +12146,7 @@ You are prompted for a file name.  All Calc modes are then reset to
 their default values, then settings from the file you named are loaded
 if this file exists, and this file becomes the one that Calc will
 use in the future for commands like @kbd{m m}.  The default settings
-file name is @file{~/.calc.el}.  You can see the current file name by
+file name is @file{~/.emacs.d/calc.el}.  You can see the current file name by
 giving a blank response to the @kbd{m F} prompt.  See also the
 discussion of the @code{calc-settings-file} variable; @pxref{Customizing Calc}.
 
@@ -12271,15 +12268,21 @@ may be executed with @kbd{x} or @kbd{M-x}.  Their effect is simply to
 toggle the Inverse and/or Hyperbolic flags and then execute the
 corresponding base command (@code{calc-sin} in this case).
 
-The Inverse and Hyperbolic flags apply only to the next Calculator
-command, after which they are automatically cleared.  (They are also
-cleared if the next keystroke is not a Calc command.)  Digits you
-type after @kbd{I} or @kbd{H} (or @kbd{K}) are treated as prefix
-arguments for the next command, not as numeric entries.  The same
-is true of @kbd{C-u}, but not of the minus sign (@kbd{K -} means to
-subtract and keep arguments).
-
-The third Calc prefix flag, @kbd{K} (keep-arguments), is discussed
+@kindex O
+@pindex calc-option
+The @kbd{O} key (@code{calc-option}) sets another flag, the
+@dfn{Option Flag}, which also can alter the subsequent Calc command in
+various ways. 
+
+The Inverse, Hyperbolic and Option flags apply only to the next
+Calculator command, after which they are automatically cleared.  (They
+are also cleared if the next keystroke is not a Calc command.)  Digits
+you type after @kbd{I}, @kbd{H} or @kbd{O} (or @kbd{K}) are treated as
+prefix arguments for the next command, not as numeric entries.  The
+same is true of @kbd{C-u}, but not of the minus sign (@kbd{K -} means
+to subtract and keep arguments).
+
+Another Calc prefix flag, @kbd{K} (keep-arguments), is discussed
 elsewhere.  @xref{Keep Arguments}.
 
 @node Calculation Modes, Simplification Modes, Inverse and Hyperbolic, Mode Settings
@@ -13156,6 +13159,45 @@ are displayed with at least enough digits to represent
 in the current radix.  (Larger integers will still be displayed in their
 entirety.) 
 
+@cindex Two's complements
+Calc can display @expr{w}-bit integers using two's complement
+notation, although this is most useful with the binary, octal and
+hexadecimal display modes.  This option is selected by using the
+@kbd{O} option prefix before setting the display radix, and a negative word
+size might be appropriate (@pxref{Binary Functions}). In two's
+complement notation, the integers in the (nearly) symmetric interval
+from
+@texline @math{-2^{w-1}}
+@infoline @expr{-2^(w-1)}
+to
+@texline @math{2^{w-1}-1}
+@infoline @expr{2^(w-1)-1}
+are represented by the integers from @expr{0} to @expr{2^w-1}:
+the integers from @expr{0} to
+@texline @math{2^{w-1}-1}
+@infoline @expr{2^(w-1)-1}
+are represented by themselves and the integers from
+@texline @math{-2^{w-1}}
+@infoline @expr{-2^(w-1)}
+to @expr{-1} are represented by the integers from 
+@texline @math{2^{w-1}}
+@infoline @expr{2^(w-1)}
+to @expr{2^w-1} (the integer @expr{k} is represented by @expr{k+2^w}).
+Calc will display a two's complement integer by the radix (either
+@expr{2}, @expr{8} or @expr{16}), two @kbd{#} symbols, and then its
+representation (including any leading zeros necessary to include all
+@expr{w} bits).  In a two's complement display mode, numbers that
+are not displayed in two's complement notation (i.e., that aren't
+integers from  
+@texline @math{-2^{w-1}}
+@infoline @expr{-2^(w-1)}
+to
+@c (
+@texline @math{2^{w-1}-1})
+@infoline @expr{2^(w-1)-1})
+will be represented using Calc's usual notation (in the appropriate
+radix).
+
 @node Grouping Digits, Float Formats, Radix Modes, Display Modes
 @subsection Grouping Digits
 
@@ -14345,7 +14387,6 @@ $$ \sin\left( a^2 \over b_i \right) $$
 @end group
 @end example
 @tex
-\turnoffactive
 $$ [3 + 4i, {3 \over 4}, 3 \pm 4, [ 3 \ldots \infty)] $$
 @end tex
 @sp 1
@@ -14371,7 +14412,6 @@ $$ [|a|, \left| a \over b \right|,
 @end group
 @end example
 @tex
-\turnoffactive
 $$ [\sin{a}, \sin{2 a}, \sin(2 + a), \sin\left( {a \over b} \right)] $$
 @end tex
 @sp 2
@@ -14404,7 +14444,6 @@ First with @samp{\def\evalto@{@}}, then with @samp{\def\evalto#1\to@{@}}:
 @end group
 @end example
 @tex
-\turnoffactive
 $$ 2 + 3 \to 5 $$
 $$ 5 $$
 @end tex
@@ -14419,7 +14458,6 @@ First with standard @code{\to}, then with @samp{\let\to\Rightarrow}:
 @end group
 @end example
 @tex
-\turnoffactive
 $$ [{2 + 3 \to 5}, {{a \over 2} \to {b + c \over 2}}] $$
 {\let\to\Rightarrow
 $$ [{2 + 3 \to 5}, {{a \over 2} \to {b + c \over 2}}] $$}
@@ -14436,7 +14474,6 @@ Matrices normally, then changing @code{\matrix} to @code{\pmatrix}:
 @end group
 @end example
 @tex
-\turnoffactive
 $$ \matrix{ {a \over b} & 0 \cr 0 & 2^{(x + 1)} } $$
 $$ \pmatrix{ {a \over b} & 0 \cr 0 & 2^{(x + 1)} } $$
 @end tex
@@ -15950,7 +15987,7 @@ No line breaking (@kbd{d b}).
 Selections show deep structure (@kbd{j b}; @pxref{Making Selections}).
 
 @item Save
-Record modes in @file{~/.calc.el} (@kbd{m R}; @pxref{General Mode Commands}).
+Record modes in @file{~/.emacs.d/calc.el} (@kbd{m R}; @pxref{General Mode Commands}).
 
 @item Local
 Record modes in Embedded buffer (@kbd{m R}).
@@ -16553,6 +16590,7 @@ or matrix argument, these functions operate element-wise.
 @mindex v p
 @end ignore
 @kindex v p (complex)
+@kindex V p (complex)
 @pindex calc-pack
 The @kbd{v p} (@code{calc-pack}) command can pack the top two numbers on
 the stack into a composite object such as a complex number.  With
@@ -16564,6 +16602,7 @@ with an argument of @mathit{-2}, it produces a polar complex number.
 @mindex v u
 @end ignore
 @kindex v u (complex)
+@kindex V u (complex)
 @pindex calc-unpack
 The @kbd{v u} (@code{calc-unpack}) command takes the complex number
 (or other composite object) on the top of the stack and unpacks it
@@ -17870,7 +17909,6 @@ ddb(cost, salv, life, per) = --------,  book = cost - depreciation so far
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 $$ \code{fv}(r, n, p) = p { (1 + r)^n - 1 \over r } $$
 $$ \code{fvb}(r, n, p) = p { ((1 + r)^n - 1) (1 + r) \over r } $$
 $$ \code{fvl}(r, n, p) = p (1 + r)^n $$
@@ -17950,7 +17988,7 @@ of the binary operations described here operate modulo @expr{2^w}.  In
 particular, negative arguments are converted to positive integers modulo
 @expr{2^w} by all binary functions.
 
-If the word size is negative, binary operations produce 2's complement
+If the word size is negative, binary operations produce twos-complement
 integers from 
 @texline @math{-2^{-w-1}}
 @infoline @expr{-(2^(-w-1))} 
@@ -18526,7 +18564,6 @@ letter gamma).  You can obtain these using the @kbd{H f G} [@code{gammag}]
 and @kbd{H I f G} [@code{gammaG}] commands.
 @end ifnottex
 @tex
-\turnoffactive
 The functions corresponding to the integrals that define $P(a,x)$
 and $Q(a,x)$ but without the normalizing $1/\Gamma(a)$
 factor are called $\gamma(a,x)$ and $\Gamma(a,x)$, respectively.
@@ -19365,6 +19402,7 @@ described in this chapter because they are most often used to build
 vectors.
 
 @kindex v p
+@kindex V p
 @pindex calc-pack
 The @kbd{v p} (@code{calc-pack}) [@code{pack}] command collects several
 elements from the stack into a matrix, complex number, HMS form, error
@@ -19497,6 +19535,7 @@ number of data items does not match the number of items required
 by the mode.
 
 @kindex v u
+@kindex V u
 @pindex calc-unpack
 The @kbd{v u} (@code{calc-unpack}) command takes the vector, complex
 number, HMS form, or other composite object on the top of the stack and
@@ -19614,6 +19653,7 @@ two stack arguments in the opposite order.  Thus @kbd{I |} is equivalent
 to @kbd{@key{TAB} |}, but possibly more convenient and also a bit faster.
 
 @kindex v d
+@kindex V d
 @pindex calc-diag
 @tindex diag
 The @kbd{v d} (@code{calc-diag}) [@code{diag}] function builds a diagonal
@@ -19632,6 +19672,7 @@ matrix first and then add a constant value to that matrix.  (Another
 alternative would be to use @kbd{v b} and @kbd{v a}; see below.)
 
 @kindex v i
+@kindex V i
 @pindex calc-ident
 @tindex idn
 The @kbd{v i} (@code{calc-ident}) [@code{idn}] function builds an identity
@@ -19652,6 +19693,7 @@ identity matrices are immediately expanded to the current default
 dimensions.
 
 @kindex v x
+@kindex V x
 @pindex calc-index
 @tindex index
 The @kbd{v x} (@code{calc-index}) [@code{index}] function builds a vector
@@ -19676,6 +19718,7 @@ sequence to be generated.  For example, @samp{index(-3, a, b)} produces
 is one for positive @var{n} or two for negative @var{n}.
 
 @kindex v b
+@kindex V b
 @pindex calc-build-vector
 @tindex cvec
 The @kbd{v b} (@code{calc-build-vector}) [@code{cvec}] function builds a
@@ -19686,7 +19729,9 @@ can also be used to build an @var{n}-by-@var{m} matrix of copies of @var{x}.
 to build a matrix of copies of that row.)
 
 @kindex v h
+@kindex V h
 @kindex I v h
+@kindex I V h
 @pindex calc-head
 @pindex calc-tail
 @tindex head
@@ -19697,6 +19742,7 @@ function returns the vector with its first element removed.  In both
 cases, the argument must be a non-empty vector.
 
 @kindex v k
+@kindex V k
 @pindex calc-cons
 @tindex cons
 The @kbd{v k} (@code{calc-cons}) [@code{cons}] function takes a value @var{h}
@@ -19706,15 +19752,18 @@ if @var{h} is itself a vector, @kbd{|} will concatenate the two vectors
 whereas @code{cons} will insert @var{h} at the front of the vector @var{t}.
 
 @kindex H v h
+@kindex H V h
 @tindex rhead
 @ignore
 @mindex @idots
 @end ignore
 @kindex H I v h
+@kindex H I V h
 @ignore
 @mindex @null
 @end ignore
 @kindex H v k
+@kindex H V k
 @ignore
 @mindex @null
 @end ignore
@@ -19736,6 +19785,7 @@ Also, @samp{head([a, b, c, d]) = a}, @samp{tail([a, b, c, d]) = [b, c, d]},
 
 @noindent
 @kindex v r
+@kindex V r
 @pindex calc-mrow
 @tindex mrow
 The @kbd{v r} (@code{calc-mrow}) [@code{mrow}] command extracts one row of
@@ -19786,6 +19836,7 @@ of a square matrix in the form of a vector.  In algebraic form this
 function is called @code{getdiag}.
 
 @kindex v c
+@kindex V c
 @pindex calc-mcol
 @tindex mcol
 @tindex mrcol
@@ -19803,6 +19854,7 @@ use subscript notation:  @samp{m_i_j} gives row @expr{i}, column @expr{j}
 of matrix @expr{m}.
 
 @kindex v s
+@kindex V s
 @pindex calc-subvector
 @tindex subvec
 The @kbd{v s} (@code{calc-subvector}) [@code{subvec}] command extracts
@@ -19823,6 +19875,7 @@ end of the vector are used.  The infinity symbol, @code{inf}, also
 has this effect when used as the ending index.
 
 @kindex I v s
+@kindex I V s
 @tindex rsubvec
 With the Inverse flag, @kbd{I v s} [@code{rsubvec}] removes a subvector
 from a vector.  The arguments are interpreted the same as for the
@@ -19838,6 +19891,7 @@ vectors one element at a time.
 
 @noindent
 @kindex v l
+@kindex V l
 @pindex calc-vlength
 @tindex vlen
 The @kbd{v l} (@code{calc-vlength}) [@code{vlen}] command computes the
@@ -19846,6 +19900,7 @@ Note that matrices are just vectors of vectors for the purposes of this
 command.
 
 @kindex H v l
+@kindex H V l
 @tindex mdims
 With the Hyperbolic flag, @kbd{H v l} [@code{mdims}] computes a vector
 of the dimensions of a vector, matrix, or higher-order object.  For
@@ -19856,6 +19911,7 @@ its argument is a
 matrix.
 
 @kindex v f
+@kindex V f
 @pindex calc-vector-find
 @tindex find
 The @kbd{v f} (@code{calc-vector-find}) [@code{find}] command searches
@@ -19866,6 +19922,7 @@ Otherwise, the result is zero.  The numeric prefix argument, if given,
 allows you to select any starting index for the search.
 
 @kindex v a
+@kindex V a
 @pindex calc-arrange-vector
 @tindex arrange
 @cindex Arranging a matrix
@@ -19896,7 +19953,9 @@ matrix), and @kbd{v a 0} produces the flattened list
 @samp{[1, 2, @w{3, 4}]}.
 
 @cindex Sorting data
+@kindex v S
 @kindex V S
+@kindex I v S
 @kindex I V S
 @pindex calc-sort
 @tindex sort
@@ -19919,7 +19978,9 @@ The @kbd{I V S} [@code{rsort}] command sorts a vector into decreasing order.
 @cindex Inverse of permutation
 @cindex Index tables
 @cindex Rank tables
+@kindex v G
 @kindex V G
+@kindex I v G
 @kindex I V G
 @pindex calc-grade
 @tindex grade
@@ -19951,6 +20012,7 @@ by phone numbers.  Because the sort is stable, any two rows with equal
 phone numbers will remain sorted by name even after the second sort.
 
 @cindex Histograms
+@kindex v H
 @kindex V H
 @pindex calc-histogram
 @ignore
@@ -19968,6 +20030,21 @@ range are ignored.  (You can tell if elements have been ignored by noting
 that the counts in the result vector don't add up to the length of the
 input vector.)
 
+If no prefix is given, then you will be prompted for a vector which
+will be used to determine the bins. (If a positive integer is given at
+this prompt, it will be still treated as if it were given as a
+prefix.)  Each bin will consist of the interval of numbers closest to
+the corresponding number of this new vector; if the vector 
+@expr{[a, b, c, ...]} is entered at the prompt, the bins will be 
+@expr{(-inf, (a+b)/2]}, @expr{((a+b)/2, (b+c)/2]}, etc.  The result of 
+this command will be a vector counting how many elements of the
+original vector are in each bin.
+
+The result will then be a vector with the same length as this new vector;
+each element of the new vector will be replaced by the number of
+elements of the original vector which are closest to it.
+
+@kindex H v H
 @kindex H V H
 With the Hyperbolic flag, @kbd{H V H} pulls two vectors from the stack.
 The second-to-top vector is the list of numbers as before.  The top
@@ -19977,6 +20054,7 @@ the first weight is 10, then 10 will be added to bin 4 of the result
 vector.  Without the hyperbolic flag, every element has a weight of one.
 
 @kindex v t
+@kindex V t
 @pindex calc-transpose
 @tindex trn
 The @kbd{v t} (@code{calc-transpose}) [@code{trn}] command computes
@@ -19985,6 +20063,7 @@ is a plain vector, it is treated as a row vector and transposed into
 a one-column matrix.
 
 @kindex v v
+@kindex V v
 @pindex calc-reverse-vector
 @tindex rev
 The @kbd{v v} (@code{calc-reverse-vector}) [@code{rev}] command reverses
@@ -19994,6 +20073,7 @@ principle can be used to apply other vector commands to the columns of
 a matrix.)
 
 @kindex v m
+@kindex V m
 @pindex calc-mask-vector
 @tindex vmask
 The @kbd{v m} (@code{calc-mask-vector}) [@code{vmask}] command uses
@@ -20006,6 +20086,7 @@ to zeros in the mask vector deleted.  Thus, for example,
 @xref{Logical Operations}.
 
 @kindex v e
+@kindex V e
 @pindex calc-expand-vector
 @tindex vexp
 The @kbd{v e} (@code{calc-expand-vector}) [@code{vexp}] command
@@ -20019,6 +20100,7 @@ unreplaced in the result.  Thus @samp{vexp([2, 0, 3, 0, 7], [a, b])}
 produces @samp{[a, 0, b, 0, 7]}.
 
 @kindex H v e
+@kindex H V e
 With the Hyperbolic flag, @kbd{H v e} takes a filler value from the
 top of the stack; the mask and target vectors come from the third and
 second elements of the stack.  This filler is used where the mask is
@@ -20051,6 +20133,7 @@ vectors or matrices: @code{change-sign}, @code{conj}, @code{arg},
 @code{re}, @code{im}, @code{polar}, @code{rect}, @code{clean},
 @code{float}, @code{frac}.  @xref{Function Index}.
 
+@kindex v J
 @kindex V J
 @pindex calc-conj-transpose
 @tindex ctrn
@@ -20074,6 +20157,7 @@ a point in two- or three-dimensional space, this is the distance
 from that point to the origin.
 
 @kindex v n
+@kindex V n
 @pindex calc-rnorm
 @tindex rnorm
 The @kbd{v n} (@code{calc-rnorm}) [@code{rnorm}] command computes the
@@ -20082,6 +20166,7 @@ vector, this is the maximum of the absolute values of the elements.  For
 a matrix, this is the maximum of the row-absolute-value-sums, i.e., of
 the sums of the absolute values of the elements along the various rows.
 
+@kindex v N
 @kindex V N
 @pindex calc-cnorm
 @tindex cnorm
@@ -20093,6 +20178,7 @@ General @expr{k}-norms for @expr{k} other than one or infinity are
 not provided.  However, the 2-norm (or Frobenius norm) is provided for
 vectors by the @kbd{A} (@code{calc-abs}) command.
 
+@kindex v C
 @kindex V C
 @pindex calc-cross
 @tindex cross
@@ -20121,12 +20207,14 @@ command simply computes @expr{1/x}.  This is okay, because the
 @samp{/} operator also does a matrix inversion when dividing one
 by a matrix.
 
+@kindex v D
 @kindex V D
 @pindex calc-mdet
 @tindex det
 The @kbd{V D} (@code{calc-mdet}) [@code{det}] command computes the
 determinant of a square matrix.
 
+@kindex v L
 @kindex V L
 @pindex calc-mlud
 @tindex lud
@@ -20137,6 +20225,7 @@ The first is a permutation matrix that arises from pivoting in the
 algorithm, the second is lower-triangular with ones on the diagonal,
 and the third is upper-triangular.
 
+@kindex v T
 @kindex V T
 @pindex calc-mtrace
 @tindex tr
@@ -20144,6 +20233,7 @@ The @kbd{V T} (@code{calc-mtrace}) [@code{tr}] command computes the
 trace of a square matrix.  This is defined as the sum of the diagonal
 elements of the matrix.
 
+@kindex v K
 @kindex V K
 @pindex calc-kron
 @tindex kron
@@ -20184,6 +20274,7 @@ single interval, the interval itself is returned instead.
 a certain value is a member of a given set.  To test if the set @expr{A}
 is a subset of the set @expr{B}, use @samp{vdiff(A, B) = []}.
 
+@kindex v +
 @kindex V +
 @pindex calc-remove-duplicates
 @tindex rdup
@@ -20196,6 +20287,7 @@ necessary.  You rarely need to use @kbd{V +} explicitly, since all the
 other set-based commands apply @kbd{V +} to their inputs before using
 them.
 
+@kindex v V
 @kindex V V
 @pindex calc-set-union
 @tindex vunion
@@ -20205,6 +20297,7 @@ only if it is in either (or both) of the input sets.  (You could
 accomplish the same thing by concatenating the sets with @kbd{|},
 then using @kbd{V +}.)
 
+@kindex v ^
 @kindex V ^
 @pindex calc-set-intersect
 @tindex vint
@@ -20221,6 +20314,7 @@ and
 @texline intersection@tie{}(@math{A \cap B}).
 @infoline intersection.
 
+@kindex v -
 @kindex V -
 @pindex calc-set-difference
 @tindex vdiff
@@ -20235,6 +20329,7 @@ Obviously this is only practical if the set of all possible values in
 your problem is small enough to list in a Calc vector (or simple
 enough to express in a few intervals).
 
+@kindex v X
 @kindex V X
 @pindex calc-set-xor
 @tindex vxor
@@ -20244,6 +20339,7 @@ An object is in the symmetric difference of two sets if and only
 if it is in one, but @emph{not} both, of the sets.  Objects that
 occur in both sets ``cancel out.''
 
+@kindex v ~
 @kindex V ~
 @pindex calc-set-complement
 @tindex vcompl
@@ -20253,6 +20349,7 @@ Thus @samp{vcompl(x)} is equivalent to @samp{vdiff([-inf .. inf], x)}.
 For example, @samp{vcompl([2, (3 .. 4]])} evaluates to
 @samp{[[-inf .. 2), (2 .. 3], (4 .. inf]]}.
 
+@kindex v F
 @kindex V F
 @pindex calc-set-floor
 @tindex vfloor
@@ -20265,6 +20362,7 @@ complement of the set @samp{[2, 6, 7, 8]} is messy, but if you wanted
 the complement with respect to the set of integers you could type
 @kbd{V ~ V F} to get @samp{[[-inf .. 1], [3 .. 5], [9 .. inf]]}.
 
+@kindex v E
 @kindex V E
 @pindex calc-set-enumerate
 @tindex venum
@@ -20274,6 +20372,7 @@ the set are expanded out to lists of all integers encompassed by
 the intervals.  This only works for finite sets (i.e., sets which
 do not involve @samp{-inf} or @samp{inf}).
 
+@kindex v :
 @kindex V :
 @pindex calc-set-span
 @tindex vspan
@@ -20283,6 +20382,7 @@ The lower limit will be the smallest element in the set; the upper
 limit will be the largest element.  For an empty set, @samp{vspan([])}
 returns the empty interval @w{@samp{[0 .. 0)}}.
 
+@kindex v #
 @kindex V #
 @pindex calc-set-cardinality
 @tindex vcard
@@ -20445,7 +20545,6 @@ this is the weighted mean of the @expr{x} values with weights
 @texline @math{1 /\sigma^2}.
 @infoline @expr{1 / s^2}.
 @tex
-\turnoffactive
 $$ \mu = { \displaystyle \sum { x_i \over \sigma_i^2 } \over
            \displaystyle \sum { 1 \over \sigma_i^2 } } $$
 @end tex
@@ -20479,7 +20578,6 @@ root of the reciprocal of the sum of the reciprocals of the squares
 of the input errors.  (I.e., the variance is the reciprocal of the
 sum of the reciprocals of the variances.)
 @tex
-\turnoffactive
 $$ \sigma_\mu^2 = {1 \over \displaystyle \sum {1 \over \sigma_i^2}} $$
 @end tex
 If the inputs are plain
@@ -20489,7 +20587,6 @@ out to be equivalent to calculating the standard deviation and
 then assuming each value's error is equal to this standard
 deviation.)
 @tex
-\turnoffactive
 $$ \sigma_\mu^2 = {\sigma^2 \over N} $$
 @end tex
 
@@ -20522,7 +20619,6 @@ command computes the harmonic mean of the data values.  This is
 defined as the reciprocal of the arithmetic mean of the reciprocals
 of the values.
 @tex
-\turnoffactive
 $$ { N \over \displaystyle \sum {1 \over x_i} } $$
 @end tex
 
@@ -20536,7 +20632,6 @@ is the @var{n}th root of the product of the values.  This is also
 equal to the @code{exp} of the arithmetic mean of the logarithms
 of the data values.
 @tex
-\turnoffactive
 $$ \exp \left ( \sum { \ln x_i } \right ) =
    \left ( \prod { x_i } \right)^{1 / N} $$
 @end tex
@@ -20548,7 +20643,6 @@ mean'' of two numbers taken from the stack.  This is computed by
 replacing the two numbers with their arithmetic mean and geometric
 mean, then repeating until the two values converge.
 @tex
-\turnoffactive
 $$ a_{i+1} = { a_i + b_i \over 2 } , \qquad b_{i+1} = \sqrt{a_i b_i} $$
 @end tex
 
@@ -20571,7 +20665,6 @@ deviation, whose value is the square root of the sum of the squares of
 the differences between the values and the mean of the @expr{N} values,
 divided by @expr{N-1}.
 @tex
-\turnoffactive
 $$ \sigma^2 = {1 \over N - 1} \sum (x_i - \mu)^2 $$
 @end tex
 
@@ -20598,7 +20691,6 @@ is used when the input represents a sample of the set of all
 data values, so that the mean computed from the input is itself
 only an estimate of the true mean.
 @tex
-\turnoffactive
 $$ \sigma^2 = {1 \over N} \sum (x_i - \mu)^2 $$
 @end tex
 
@@ -20663,7 +20755,6 @@ are composed of error forms, the error for a given data point
 is taken as the square root of the sum of the squares of the two
 input errors.
 @tex
-\turnoffactive
 $$ \sigma_{x\!y}^2 = {1 \over N-1} \sum (x_i - \mu_x) (y_i - \mu_y) $$
 $$ \sigma_{x\!y}^2 =
     {\displaystyle {1 \over N-1}
@@ -20691,7 +20782,6 @@ This is defined by the covariance of the vectors divided by the
 product of their standard deviations.  (There is no difference
 between sample or population statistics here.)
 @tex
-\turnoffactive
 $$ r_{x\!y} = { \sigma_{x\!y}^2 \over \sigma_x^2 \sigma_y^2 } $$
 @end tex
 
@@ -20702,6 +20792,7 @@ $$ r_{x\!y} = { \sigma_{x\!y}^2 \over \sigma_x^2 \sigma_y^2 } $$
 The commands in this section allow for more general operations on the
 elements of vectors.
 
+@kindex v A
 @kindex V A
 @pindex calc-apply
 @tindex apply
@@ -20879,6 +20970,7 @@ about it.)
 @subsection Mapping
 
 @noindent
+@kindex v M
 @kindex V M
 @pindex calc-map
 @tindex map
@@ -20975,6 +21067,7 @@ variable's stored value using a @kbd{V M}-like operator.
 @subsection Reducing
 
 @noindent
+@kindex v R
 @kindex V R
 @pindex calc-reduce
 @tindex reduce
@@ -20987,6 +21080,7 @@ the remaining elements.  Reducing @code{max} computes the maximum element
 and so on.  In general, reducing @code{f} over the vector @samp{[a, b, c, d]}
 produces @samp{f(f(f(a, b), c), d)}.
 
+@kindex I v R
 @kindex I V R
 @tindex rreduce
 The @kbd{I V R} [@code{rreduce}] command is similar to @kbd{V R} except
@@ -20996,6 +21090,7 @@ but @kbd{I V R -} on the same vector produces @samp{a - (b - (c - d))},
 or @samp{a - b + c - d}.  This ``alternating sum'' occurs frequently
 in power series expansions.
 
+@kindex v U
 @kindex V U
 @tindex accum
 The @kbd{V U} (@code{calc-accumulate}) [@code{accum}] command does an
@@ -21005,6 +21100,7 @@ a vector of all the intermediate results.  Accumulating @code{+} over
 the vector @samp{[a, b, c, d]} produces the vector
 @samp{[a, a + b, a + b + c, a + b + c + d]}.
 
+@kindex I v U
 @kindex I V U
 @tindex raccum
 The @kbd{I V U} [@code{raccum}] command does a right-to-left accumulation.
@@ -21052,6 +21148,7 @@ rows of the matrix.  @xref{Grabbing From Buffers}.
 @subsection Nesting and Fixed Points
 
 @noindent
+@kindex H v R
 @kindex H V R
 @tindex nest
 The @kbd{H V R} [@code{nest}] command applies a function to a given
@@ -21062,6 +21159,7 @@ is 3, the result is @samp{f(f(f(a)))}.  The number @samp{n} may be
 negative if Calc knows an inverse for the function @samp{f}; for
 example, @samp{nest(sin, a, -2)} returns @samp{arcsin(arcsin(a))}.
 
+@kindex H v U
 @kindex H V U
 @tindex anest
 The @kbd{H V U} [@code{anest}] command is an accumulating version of
@@ -21070,6 +21168,7 @@ The @kbd{H V U} [@code{anest}] command is an accumulating version of
 @samp{F} is the inverse of @samp{f}, then the result is of the
 form @samp{[a, F(a), F(F(a)), F(F(F(a)))]}.
 
+@kindex H I v R
 @kindex H I V R
 @tindex fixp
 @cindex Fixed points
@@ -21078,6 +21177,7 @@ that it takes only an @samp{a} value from the stack; the function is
 applied until it reaches a ``fixed point,'' i.e., until the result
 no longer changes.
 
+@kindex H I v U
 @kindex H I V U
 @tindex afixp
 The @kbd{H I V U} [@code{afixp}] command is an accumulating @code{fixp}.
@@ -21127,6 +21227,7 @@ when 20 steps have been taken, whichever is sooner.
 @node Generalized Products,  , Nesting and Fixed Points, Reducing and Mapping
 @subsection Generalized Products
 
+@kindex v O
 @kindex V O
 @pindex calc-outer-product
 @tindex outer
@@ -21138,6 +21239,7 @@ and @samp{[x, y, z]} on the stack produces a multiplication table:
 the result matrix is obtained by applying the operator to element @var{r}
 of the lefthand vector and element @var{c} of the righthand vector.
 
+@kindex v I
 @kindex V I
 @pindex calc-inner-product
 @tindex inner
@@ -21170,10 +21272,13 @@ in the same way (@pxref{Display Modes}).  Matrix display is also
 influenced by the @kbd{d O} (@code{calc-flat-language}) mode;
 @pxref{Normal Language Modes}.
 
+@kindex v <
 @kindex V <
 @pindex calc-matrix-left-justify
+@kindex v =
 @kindex V =
 @pindex calc-matrix-center-justify
+@kindex v >
 @kindex V >
 @pindex calc-matrix-right-justify
 The commands @kbd{v <} (@code{calc-matrix-left-justify}), @kbd{v >}
@@ -21181,10 +21286,13 @@ The commands @kbd{v <} (@code{calc-matrix-left-justify}), @kbd{v >}
 (@code{calc-matrix-center-justify}) control whether matrix elements
 are justified to the left, right, or center of their columns.
 
+@kindex v [
 @kindex V [
 @pindex calc-vector-brackets
+@kindex v @{
 @kindex V @{
 @pindex calc-vector-braces
+@kindex v (
 @kindex V (
 @pindex calc-vector-parens
 The @kbd{v [} (@code{calc-vector-brackets}) command turns the square
@@ -21199,15 +21307,21 @@ display mode, either brackets or braces may be used to enter vectors,
 and parentheses may never be used for this purpose.
 
 @kindex V ]
+@kindex v ]
+@kindex V )
+@kindex v )
+@kindex V @}
+@kindex v @}
 @pindex calc-matrix-brackets
 The @kbd{v ]} (@code{calc-matrix-brackets}) command controls the
-``big'' style display of matrices.  It prompts for a string of code
-letters; currently implemented letters are @code{R}, which enables
-brackets on each row of the matrix; @code{O}, which enables outer
-brackets in opposite corners of the matrix; and @code{C}, which
-enables commas or semicolons at the ends of all rows but the last.
-The default format is @samp{RO}.  (Before Calc 2.00, the format
-was fixed at @samp{ROC}.)  Here are some example matrices:
+``big'' style display of matrices, for matrices which have more than
+one row.  It prompts for a string of code letters; currently
+implemented letters are @code{R}, which enables brackets on each row
+of the matrix; @code{O}, which enables outer brackets in opposite
+corners of the matrix; and @code{C}, which enables commas or
+semicolons at the ends of all rows but the last.  The default format
+is @samp{RO}.  (Before Calc 2.00, the format was fixed at @samp{ROC}.)
+Here are some example matrices:
 
 @example
 @group
@@ -21246,6 +21360,7 @@ Note that of the formats shown here, @samp{RO}, @samp{ROC}, and
 @samp{OC} are all recognized as matrices during reading, while
 the others are useful for display only.
 
+@kindex v ,
 @kindex V ,
 @pindex calc-vector-commas
 The @kbd{v ,} (@code{calc-vector-commas}) command turns commas on and
@@ -21261,6 +21376,7 @@ case as @samp{[(a b)]}.  You can disable these extra parentheses
 ambiguity) by adding the letter @code{P} to the control string you
 give to @kbd{v ]} (as described above).
 
+@kindex v .
 @kindex V .
 @pindex calc-full-vectors
 The @kbd{v .} (@code{calc-full-vectors}) command turns abbreviated
@@ -21282,6 +21398,7 @@ unable to recover those vectors.  If you are working with very
 large vectors, this mode will improve the speed of all operations
 that involve the trail.
 
+@kindex v /
 @kindex V /
 @pindex calc-break-vectors
 The @kbd{v /} (@code{calc-break-vectors}) command turns multi-line
@@ -22199,6 +22316,8 @@ turn the default simplifications off first (with @kbd{m O}).
 
 @noindent
 @kindex a s
+@kindex I a s
+@kindex H a s
 @pindex calc-simplify
 @tindex simplify
 The @kbd{a s} (@code{calc-simplify}) [@code{simplify}] command applies
@@ -22222,6 +22341,23 @@ and rewrite rules.  @xref{Rearranging with Selections}.
 simplification occurs automatically.  Normally only the ``default
 simplifications'' occur.
 
+There are some simplifications that, while sometimes useful, are never
+done automatically.  For example, the @kbd{I} prefix can be given to
+@kbd{a s}; the @kbd{I a s} command will change any trigonometric
+function to the appropriate combination of @samp{sin}s and @samp{cos}s
+before simplifying.  This can be useful in simplifying even mildly
+complicated trigonometric expressions.  For example, while @kbd{a s}
+can reduce @samp{sin(x) csc(x)} to @samp{1}, it will not simplify
+@samp{sin(x)^2 csc(x)}.  The command @kbd{I a s} can be used to
+simplify this latter expression; it will transform @samp{sin(x)^2
+csc(x)} into @samp{sin(x)}.  However, @kbd{I a s} will also perform
+some ``simplifications'' which may not be desired; for example, it
+will transform @samp{tan(x)^2} into @samp{sin(x)^2 / cos(x)^2}.  The
+Hyperbolic prefix @kbd{H} can be used similarly; the @kbd{H a s} will
+replace any hyperbolic functions in the formula with the appropriate
+combinations of @samp{sinh}s and @samp{cosh}s before simplifying.
+
+
 @menu
 * Default Simplifications::
 * Algebraic Simplifications::
@@ -24201,8 +24337,6 @@ For example, suppose the data matrix
 @end example
 @end ifnottex
 @tex
-\turnoffactive
-\turnoffactive
 \beforedisplay
 $$ \pmatrix{ 1 & 2 & 3 & 4  & 5  \cr
              5 & 7 & 9 & 11 & 13 }
@@ -24262,7 +24396,6 @@ chi^2 = sum((y_i - (a + b x_i))^2, i, 1, N)
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ \chi^2 = \sum_{i=1}^N (y_i - (a + b x_i))^2 $$
 \afterdisplay
@@ -24453,7 +24586,6 @@ chi^2 = sum(((y_i - (a + b x_i)) / sigma_i)^2, i, 1, N)
 @end example
 @end ifnottex
 @tex
-\turnoffactive
 \beforedisplay
 $$ \chi^2 = \sum_{i=1}^N \left(y_i - (a + b x_i) \over \sigma_i\right)^2 $$
 \afterdisplay
@@ -25228,7 +25360,6 @@ any later ones are answered by reading additional elements from
 the stack.  Thus, @kbd{' k^2 @key{RET} ' k @key{RET} 1 @key{RET} 5 @key{RET} a + @key{RET}}
 produces the result 55.
 @tex
-\turnoffactive
 $$ \sum_{k=1}^5 k^2 = 55 $$
 @end tex
 
@@ -27955,7 +28086,7 @@ possible to create user-defined temperature units.
 @cindex Calc init file, user-defined units
 The @kbd{u p} (@code{calc-permanent-units}) command stores the user-defined
 units in your Calc init file (the file given by the variable
-@code{calc-settings-file}, typically @file{~/.calc.el}), so that the
+@code{calc-settings-file}, typically @file{~/.emacs.d/calc.el}), so that the
 units will still be available in subsequent Emacs sessions.  If there
 was already a set of user-defined units in your Calc init file, it
 is replaced by the new set.  (@xref{General Mode Commands}, for a way to
@@ -28356,7 +28487,7 @@ names rather than prompting for the variable name.
 @cindex Calc init file, variables
 The @kbd{s p} (@code{calc-permanent-variable}) command saves a
 variable's value permanently in your Calc init file (the file given by
-the variable @code{calc-settings-file}, typically @file{~/.calc.el}), so
+the variable @code{calc-settings-file}, typically @file{~/.emacs.d/calc.el}), so
 that its value will still be available in future Emacs sessions.  You
 can re-execute @w{@kbd{s p}} later on to update the saved value, but the
 only way to remove a saved variable is to edit your calc init file
@@ -28566,14 +28697,15 @@ However, it is free software.   It can be obtained from
 
 @vindex calc-gnuplot-name
 If you have GNUPLOT installed on your system but Calc is unable to
-find it, you may need to set the @code{calc-gnuplot-name} variable
-in your Calc init file or @file{.emacs}.  You may also need to set some Lisp
-variables to show Calc how to run GNUPLOT on your system; these
-are described under @kbd{g D} and @kbd{g O} below.  If you are
-using the X window system, Calc will configure GNUPLOT for you
-automatically.  If you have GNUPLOT 3.0 or later and you are not using X,
-Calc will configure GNUPLOT to display graphs using simple character
-graphics that will work on any terminal.
+find it, you may need to set the @code{calc-gnuplot-name} variable in
+your Calc init file or @file{.emacs}.  You may also need to set some
+Lisp variables to show Calc how to run GNUPLOT on your system; these
+are described under @kbd{g D} and @kbd{g O} below.  If you are using
+the X window system or MS-Windows, Calc will configure GNUPLOT for you
+automatically.  If you have GNUPLOT 3.0 or later and you are using a
+Unix or GNU system without X, Calc will configure GNUPLOT to display
+graphs using simple character graphics that will work on any
+Posix-compatible terminal.
 
 @menu
 * Basic Graphics::
@@ -29080,9 +29212,10 @@ not override it with a plain @kbd{g D} command.  If you enter a
 blank line this command shows you the current default.  The special
 name @code{default} signifies that Calc should choose @code{x11} if
 the X window system is in use (as indicated by the presence of a
-@code{DISPLAY} environment variable), or otherwise @code{dumb} under
-GNUPLOT 3.0 and later, or @code{postscript} under GNUPLOT 2.0.
-This is the initial default value.
+@code{DISPLAY} environment variable), @code{windows} on MS-Windows, or
+otherwise @code{dumb} under GNUPLOT 3.0 and later, or
+@code{postscript} under GNUPLOT 2.0.  This is the initial default
+value.
 
 The @code{dumb} device is an interface to ``dumb terminals,'' i.e.,
 terminals with no special graphics facilities.  It writes a crude
@@ -29114,14 +29247,14 @@ plot on any text-only printer.
 
 @kindex g O
 @pindex calc-graph-output
-The @kbd{g O} (@code{calc-graph-output}) command sets the name of
-the output file used by GNUPLOT.  For some devices, notably @code{x11},
-there is no output file and this information is not used.  Many other
-``devices'' are really file formats like @code{postscript}; in these
-cases the output in the desired format goes into the file you name
-with @kbd{g O}.  Type @kbd{g O stdout @key{RET}} to set GNUPLOT to write
-to its standard output stream, i.e., to @samp{*Gnuplot Trail*}.
-This is the default setting.
+The @kbd{g O} (@code{calc-graph-output}) command sets the name of the
+output file used by GNUPLOT.  For some devices, notably @code{x11} and
+@code{windows}, there is no output file and this information is not
+used.  Many other ``devices'' are really file formats like
+@code{postscript}; in these cases the output in the desired format
+goes into the file you name with @kbd{g O}.  Type @kbd{g O stdout
+@key{RET}} to set GNUPLOT to write to its standard output stream,
+i.e., to @samp{*Gnuplot Trail*}.  This is the default setting.
 
 Another special output name is @code{tty}, which means that GNUPLOT
 is going to write graphics commands directly to its standard output,
@@ -29183,14 +29316,21 @@ command for specifying the position and size of the X window.
 The normal value is @code{default}, which generally means your
 window manager will let you place the window interactively.
 Entering @samp{800x500+0+0} would create an 800-by-500 pixel
-window in the upper-left corner of the screen.
+window in the upper-left corner of the screen.  This command has no
+effect if the current device is @code{windows}.
 
 The buffer called @samp{*Gnuplot Trail*} holds a transcript of the
 session with GNUPLOT.  This shows the commands Calc has ``typed'' to
 GNUPLOT and the responses it has received.  Calc tries to notice when an
 error message has appeared here and display the buffer for you when
 this happens.  You can check this buffer yourself if you suspect
-something has gone wrong.
+something has gone wrong@footnote{
+On MS-Windows, due to the peculiarities of how the Windows version of
+GNUPLOT (called @command{wgnuplot}) works, the GNUPLOT responses are
+not communicated back to Calc.  Instead, you need to look them up in
+the GNUPLOT command window that is displayed as in normal interactive
+usage of GNUPLOT.
+}.
 
 @kindex g C
 @pindex calc-graph-command
@@ -29210,7 +29350,9 @@ and @samp{*Gnuplot Trail*} buffers, respectively, in another window.
 This happens automatically when Calc thinks there is something you
 will want to see in either of these buffers.  If you type @kbd{g v}
 or @kbd{g V} when the relevant buffer is already displayed, the
-buffer is hidden again.
+buffer is hidden again.  (Note that on MS-Windows, the @samp{*Gnuplot
+Trail*} buffer will usually show nothing of interest, because
+GNUPLOT's responses are not communicated back to Calc.)
 
 One reason to use @kbd{g v} is to add your own commands to the
 @samp{*Gnuplot Commands*} buffer.  Press @kbd{g v}, then use
@@ -30698,7 +30840,7 @@ Two more mode-recording modes selectable by @kbd{m R} are available
 which are also available outside of Embedded mode.  
 (@pxref{General Mode Commands}.) They are @code{Save},  in which mode
 settings are recorded permanently in your Calc init file (the file given
-by the variable @code{calc-settings-file}, typically @file{~/.calc.el})
+by the variable @code{calc-settings-file}, typically @file{~/.emacs.d/calc.el})
 rather than by annotating the current document, and no-recording
 mode (where there is no symbol like @code{Save} or @code{Local} in
 the mode line), in which mode-changing commands do not leave any
@@ -30958,7 +31100,7 @@ The @kbd{Z P} (@code{calc-user-define-permanent}) command makes a key
 binding permanent so that it will remain in effect even in future Emacs
 sessions.  (It does this by adding a suitable bit of Lisp code into
 your Calc init file; that is, the file given by the variable
-@code{calc-settings-file}, typically @file{~/.calc.el}.)  For example,
+@code{calc-settings-file}, typically @file{~/.emacs.d/calc.el}.)  For example,
 @kbd{Z P s} would register our @code{sincos} command permanently.  If
 you later wish to unregister this command you must edit your Calc init
 file by hand.  (@xref{General Mode Commands}, for a way to tell Calc to
@@ -31691,7 +31833,7 @@ step of @code{myfact} could have been written
 
 A good place to put your @code{defmath} commands is your Calc init file
 (the file given by @code{calc-settings-file}, typically
-@file{~/.calc.el}), which will not be loaded until Calc starts.
+@file{~/.emacs.d/calc.el}), which will not be loaded until Calc starts.
 If a file named @file{.emacs} exists in your home directory, Emacs reads
 and executes the Lisp forms in this file as it starts up.  While it may
 seem reasonable to put your favorite @code{defmath} commands there,
@@ -31804,7 +31946,7 @@ the function with code that looks roughly like this:
 @smallexample
 (let ((calc-command-flags nil))
   (unwind-protect
-      (save-excursion
+      (save-current-buffer
         (calc-select-buffer)
         @emph{body of function}
         @emph{renumber stack}
@@ -34792,7 +34934,9 @@ If @code{calc-settings-file} is not your user init file (typically
 @code{nil}, then Calc will automatically load your settings file (if it
 exists) the first time Calc is invoked.
 
-The default value for this variable is @code{"~/.calc.el"}.
+The default value for this variable is @code{"~/.emacs.d/calc.el"}
+unless the file @file{~/.calc.el} exists, in which case the default
+value will be @code{"~/.calc.el"}.
 @end defvar
 
 @defvar calc-gnuplot-name
@@ -35105,7 +35249,7 @@ to work on these, please send a message (using @kbd{M-x report-calc-bug})
 so any efforts can be coordinated.
 
 The latest version of Calc is available from Savannah, in the Emacs
-CVS tree.  See @uref{http://savannah.gnu.org/projects/emacs}.
+repository.  See @uref{http://savannah.gnu.org/projects/emacs}.
 
 @c [summary]
 @node Summary, Key Index, Reporting Bugs, Top
@@ -35295,6 +35439,7 @@ keystrokes are not listed in this summary.
 @r{       @:      M     @:             @:        @:calc-more-recursion-depth@:}
 @r{       @:    I M     @:             @:        @:calc-less-recursion-depth@:}
 @r{      a@:      N     @:             @:     5  @:evalvn@:(a)}
+@r{       @:      O     @:command      @:    32  @:@:Option}
 @r{       @:      P     @:             @:        @:@:pi}
 @r{       @:    I P     @:             @:        @:@:gamma}
 @r{       @:    H P     @:             @:        @:@:e}