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 section Binary Number 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 section Algebraic Simplifications.

The `m E` (`calc-ext-simplify-mode`

) mode does "extended"
algebraic simplification, as by the `a e` (`calc-simplify-extended`

)
command. See section "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 section Programming with Formulas, for another sample use of no-simplification mode.

Go to the first, previous, next, last section, table of contents.