Go forward to Stack Control.
Go backward to Printing Commands.
Go up to Top.

Arithmetic
**********

`+'
     Pops two values off the stack, adds them, and pushes the result.
     The precision of the result is determined only by the values of
     the arguments, and is enough to be exact.

`-'
     Pops two values, subtracts the first one popped from the second
     one popped, and pushes the result.

`*'
     Pops two values, multiplies them, and pushes the result.  The
     number of fraction digits in the result is controlled by the
     current precision value (see below) and does not depend on the
     values being multiplied.

`/'
     Pops two values, divides the second one popped from the first one
     popped, and pushes the result.  The number of fraction digits is
     specified by the precision value.

`%'
     Pops two values, computes the remainder of the division that the
     `/' command would do, and pushes that.  The division is done with
     as many fraction digits as the precision value specifies, and the
     remainder is also computed with that many fraction digits.

`^'
     Pops two values and exponentiates, using the first value popped as
     the exponent and the second popped as the base.  The fraction part
     of the exponent is ignored.  The precision value specifies the
     number of fraction digits in the result.

`v'
     Pops one value, computes its square root, and pushes that.  The
     precision value specifies the number of fraction digits in the
     result.

   Most arithmetic operations are affected by the *precision value*,
which you can set with the `k' command.  The default precision value is
zero, which means that all arithmetic except for addition and
subtraction produces integer results.

   The remainder operation (`%') requires some explanation: applied to
arguments `a' and `b' it produces `a - (b * (a / b))', where `a / b' is
computed in the current precision.