changeset 85615:991e2f962164

(Default Simplifications, Making Selections, Customizing Calc): Clarify associativity of multiplication.
author Jay Belanger <jay.p.belanger@gmail.com>
date Thu, 25 Oct 2007 03:39:00 +0000
parents 9f3a25157e4f
children 2d1d8c03e736
files doc/misc/calc.texi
diffstat 1 files changed, 26 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/doc/misc/calc.texi	Thu Oct 25 02:38:41 2007 +0000
+++ b/doc/misc/calc.texi	Thu Oct 25 03:39:00 2007 +0000
@@ -21357,16 +21357,17 @@
 @pindex calc-break-selections
 The @kbd{j b} (@code{calc-break-selections}) command controls a mode
 in which the ``deep structure'' of these associative formulas shows
-through.  Calc actually stores the above formulas as @samp{((a + b) - c) + d}
-and @samp{x * (y * z)}.  (Note that for certain obscure reasons, Calc
-treats multiplication as right-associative.)  Once you have enabled
-@kbd{j b} mode, selecting with the cursor on the @samp{-} sign would
-only select the @samp{a + b - c} portion, which makes sense when the
-deep structure of the sum is considered.  There is no way to select
-the @samp{b - c + d} portion; although this might initially look
-like just as legitimate a sub-formula as @samp{a + b - c}, the deep
-structure shows that it isn't.  The @kbd{d U} command can be used
-to view the deep structure of any formula (@pxref{Normal Language Modes}).
+through.  Calc actually stores the above formulas as 
+@samp{((a + b) - c) + d} and @samp{x * (y * z)}.  (Note that for certain 
+obscure reasons, by default Calc treats multiplication as
+right-associative.)  Once you have enabled @kbd{j b} mode, selecting
+with the cursor on the @samp{-} sign would only select the @samp{a + b -
+c} portion, which makes sense when the deep structure of the sum is
+considered.  There is no way to select the @samp{b - c + d} portion;
+although this might initially look like just as legitimate a sub-formula
+as @samp{a + b - c}, the deep structure shows that it isn't.  The @kbd{d
+U} command can be used to view the deep structure of any formula
+(@pxref{Normal Language Modes}).
 
 When @kbd{j b} mode has not been enabled, the deep structure is
 generally hidden by the selection commands---what you see is what
@@ -22158,13 +22159,13 @@
 arguments in Calc's internal form.  Sums and products of three or
 more terms are arranged by the associative law of algebra into
 a left-associative form for sums, @expr{((a + b) + c) + d}, and
-a right-associative form for products, @expr{a * (b * (c * d))}.
-Formulas like @expr{(a + b) + (c + d)} are rearranged to
-left-associative form, though this rarely matters since Calc's
-algebra commands are designed to hide the inner structure of
-sums and products as much as possible.  Sums and products in
-their proper associative form will be written without parentheses
-in the examples below.
+(by default) a right-associative form for products, 
+@expr{a * (b * (c * d))}.  Formulas like @expr{(a + b) + (c + d)} are
+rearranged to left-associative form, though this rarely matters since
+Calc's algebra commands are designed to hide the inner structure of sums
+and products as much as possible.  Sums and products in their proper
+associative form will be written without parentheses in the examples
+below.
 
 Sums and products are @emph{not} rearranged according to the
 commutative law (@expr{a + b} to @expr{b + a}) except in a few
@@ -34868,12 +34869,14 @@
 
 @defvar calc-multiplication-has-precedence
 The variable @code{calc-multiplication-has-precedence} determines
-whether multiplication has precedence over division in algebraic formulas
-in normal language modes.  If @code{calc-multiplication-has-precedence}
-is non-@code{nil}, then multiplication has precedence, and so for
-example @samp{a/b*c} will be interpreted as @samp{a/(b*c)}. If
-@code{calc-multiplication-has-precedence} is @code{nil}, then
-multiplication has the same precedence as division, and so for example
+whether multiplication has precedence over division in algebraic
+formulas in normal language modes.  If
+@code{calc-multiplication-has-precedence} is non-@code{nil}, then
+multiplication has precedence (and, for certain obscure reasons, is
+right associative), and so for example @samp{a/b*c} will be interpreted
+as @samp{a/(b*c)}. If @code{calc-multiplication-has-precedence} is
+@code{nil}, then multiplication has the same precedence as division
+(and, like division, is left associative), and so for example
 @samp{a/b*c} will be interpreted as @samp{(a/b)*c}.  The default value
 of @code{calc-multiplication-has-precedence} is @code{t}.
 @end defvar