In the new version of IEEE-754-2019: IEEE Standard for floating-point arithmetic, the augmented arithmetic operations were introduced. These operations can be particularly useful in certain numerical schemes.
In the paper "The IEEE Standard 754: One for the History Books" (also available here), it is described, as follows:
The most interesting new feature of IEEE Standard 754-2019 is the augmented arithmetic operations. These provide the exact result of an addition, subtraction, or multiplication in two parts that add up to the exact result.
From what I understand, that would mean that the implementation of IEEE-754-2019 arithmetic will have to compute both the value of the operation (1) and the introduced error (2):
$$ \text{fl}\left(x\circ y \right) \tag{1} $$
$$ \text{fl}\Big(\text{fl}\left(x\circ y \right) - \left(x\circ y\right)\Big) \tag{2} $$
In (1) and (2), $\text{fl}(x)$ denotes rounding mapping a real number $x$ into the set of floating-point numbers, and $\circ$ denotes the supported augmented arithmetic operations.
This means that the augmented arithmetic operation has to return two values. I wonder if my understanding is correct, and (2) are correct. Is it the first operation in IEEE-754 that has several "returns"?
If that's right, that would mean that in the C-like language it can be implemented only as a procedure:
augmentedArithmOperation(x, y, &res, &error);
since return
ing several output arguments is not supported.