Go forward to Declarations. Go backward to Calculation Modes. Go up to Mode Settings.

Simplification Modes
====================

The current "simplification mode" controls how numbers and formulas
are "normalized" when being taken from or pushed onto the stack.  Some
normalizations are unavoidable, such as rounding floating-point
results to the current precision, and reducing fractions to simplest
form.  Others, such as simplifying a formula like `a+a' (or `2+3'),
are done by default but can be turned off when necessary.

When you press a key like `+' when `2' and `3' are on the stack, Calc
pops these numbers, normalizes them, creates the formula `2+3',
normalizes it, and pushes the result.  Of course the standard rules
for normalizing `2+3' will produce the result `5'.

Simplification mode commands consist of the lower-case `m' prefix key
followed by a shifted letter.

The `m O' (`calc-no-simplify-mode') command turns off all optional
simplifications.  These would leave a formula like `2+3' alone.  In
fact, nothing except simple numbers are ever affected by normalization
in this mode.

The `m N' (`calc-num-simplify-mode') command turns off simplification
of any formulas except those for which all arguments are constants.
For example, `1+2' is simplified to `3', and `a+(2-2)' is simplified
to `a+0' but no further, since one argument of the sum is not a
constant.  Unfortunately, `(a+2)-2' is *not* simplified because the
top-level `-' operator's arguments are not both constant numbers (one
of them is the formula `a+2').  A constant is a number or other
numeric object (such as a constant error form or modulo form), or a
vector all of whose elements are constant.

The `m D' (`calc-default-simplify-mode') command restores the default
simplifications for all formulas.  This includes many easy and fast
algebraic simplifications such as `a+0' to `a', and `a + 2 a' to `3
a', as well as evaluating functions like `deriv(x^2, x)' to `2 x'.

The `m B' (`calc-bin-simplify-mode') mode applies the default
simplifications to a result and then, if the result is an integer,
uses the `b c' (`calc-clip') command to clip the integer according to
the current binary word size.  See Binary Functions.  Real numbers
are rounded to the nearest integer and then clipped; other kinds of
results (after the default simplifications) are left alone.

The `m A' (`calc-alg-simplify-mode') mode does algebraic
simplification; it applies all the default simplifications, and also
the more powerful (and slower) simplifications made by `a s'
(`calc-simplify').  See Algebraic Simplifications.

The `m E' (`calc-ext-simplify-mode') mode does "extended" algebraic
simplification, as by the `a e' (`calc-simplify-extended') command.
See Unsafe Simplifications.

The `m U' (`calc-units-simplify-mode') mode does units simplification;
it applies the command `u s' (`calc-simplify-units'), which in turn is
a superset of `a s'.  In this mode, variable names which are
identifiable as unit names (like `mm' for "millimeters") are
simplified with their unit definitions in mind.

A common technique is to set the simplification mode down to the
lowest amount of simplification you will allow to be applied
automatically, then use manual commands like `a s' and `c c'
(`calc-clean') to perform higher types of simplifications on demand.
See Algebraic Definitions, for another sample use of
no-simplification mode.