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 nth 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 nth 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 section Reducing and Mapping Vectors), 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.