LibArb values do not own their precision

The input values have no memory of the precision that was used to create them. An input value could be,

[1.0 +/- 0.25], irrespective of the precision used to compute it – was it 2 bits, 100 or 1_000 bits.

Just think of a ball as a pair of rational numbers, not in terms of precision. The precision p for the new operation specifies ... that the midpoint of the output ball is to be rounded to at most p bits; if p = 100 then the output will be rounded to at most 100 bits even if the inputs have 1000000 bits.

– Fredrik Johansson on nemo-dev, 2018-Dec-05

ArbNumerics values own their own precision

  • works properly with mixed precision arithmetic
  • works as intended with precision reduction
  • maintains value integrity with precision expansion