Next: Undo, Previous: Quick Calculator, Up: Introduction

Many Calculator commands use numeric prefix arguments. Some, such as
`d s` (`calc-sci-notation`

), set a parameter to the value of
the prefix argument or use a default if you don't use a prefix.
Others (like `d f` (`calc-fix-notation`

)) require an argument
and prompt for a number if you don't give one as a prefix.

As a rule, stack-manipulation commands accept a numeric prefix argument
which is interpreted as an index into the stack. A positive argument
operates on the top `n` stack entries; a negative argument operates
on the `n`th stack entry in isolation; and a zero argument operates
on the entire stack.

Most commands that perform computations (such as the arithmetic and
scientific functions) accept a numeric prefix argument that allows the
operation to be applied across many stack elements. For unary operations
(that is, functions of one argument like absolute value or complex
conjugate), a positive prefix argument applies that function to the top
`n` stack entries simultaneously, and a negative argument applies it
to the `n`th stack entry only. For binary operations (functions of
two arguments like addition, GCD, and vector concatenation), a positive
prefix argument “reduces” the function across the top `n`
stack elements (for example, `C-u 5 +` sums the top 5 stack entries;
see Reducing and Mapping), and a negative argument maps the next-to-top
`n` stack elements with the top stack element as a second argument
(for example, `7 c-u -5 +` adds 7 to the top 5 stack elements).
This feature is not available for operations which use the numeric prefix
argument for some other purpose.

Numeric prefixes are specified the same way as always in Emacs: Press
a sequence of <META>-digits, or press <ESC> followed by digits,
or press `C-u` followed by digits. Some commands treat plain
`C-u` (without any actual digits) specially.

You can type `~` (`calc-num-prefix`

) to pop an integer from the
top of the stack and enter it as the numeric prefix for the next command.
For example, `C-u 16 p` sets the precision to 16 digits; an alternate
(silly) way to do this would be `2 <RET> 4 ^ ~ p`, i.e., compute 2
to the fourth power and set the precision to that value.

Conversely, if you have typed a numeric prefix argument the `~` key
pushes it onto the stack in the form of an integer.