Two different algorithms for calculation of intervals or propagation of uncertainties are supported (selectable from **interval()** function or “±” notation, or with “read precision” enabled, and variables, including physical constants, with specified standard uncertainty. The uncertainty will be calculated separately for non-differentiable functions.

By default the variance formula is used. Intervals are with this method treated as values with measurement uncertainties (the value 5±0.01 has a standard deviation of 0.01). The final uncertainty, or error, is estimated using partial derivatives, as shown below. For expressions involving complex numbers, the imaginary uncertainty are calculated separately.

Alternatively interval arithmetic can be used. Intervals are treated as an abolsute range of values and the result represents all possible values for every value within all ranges in the expression. For monotonic functions the endpoints in the result corresponds to the function values for the endpoints of the input (e.g. “interval(x, y)^3=interval(x^3, y^3)”).

Interval arithmetic is also used implicitly, regardless of selected interval calculation algorithm, for all approximate calculations to keep track of precision changes, and gracefully handle for example catastrophic cancellation (in subtraction two nearly equal numbers). The behaviour can be (de)activated using

+ → .Some non-invertible functions (including bessel and airy functions) do not properly support interval arithmetic and only the function values for the endpoints of the interval are calculated. Trigonometric functions returns correct intervals for real and imaginary numbers, but will in some cases for complex numbers with both a real and imaginary part return a too wide interval. Generally, the resulting interval will be guaranteed to include the true interval, but may for non-trivial expression (especially involving complex numbers) return an interval that is too wide.

The result is by default shown as an ordinary number with the number of significant digits determined by the size of the uncertainty (“2.11±0.03 = 2.1”), or the width of interval, unless the interval is too wide. If the **interval()** function has been used in the expression the result is by default displayed as an interval, and if “±” notation (or the **uncertainty()** function) has been used, it will also be used in the result. The default behaviour can be changed from + . The midpoint alternative displays the value halfway between the lower and upper limit of the interval (“interval(2.075, 2.15) = 2.1125”). Note that, for the plus/minus notation, the same midpoint (note that when interval arithmetic is enabled this does not necessarily equal the result for the midpoint of intervals in the expression) is displayed in front of the plus/minus symbol. In plus/minus notation, the uncertainty is displayed with two significant digits, with the exception that all digits before the decimal separator are always shown.