@inproceedings{dem-che-den-dos-21-aa-tagged, author = {Demeure, Nestor and Chevalier, C{\'e}dric and Denis, Christophe and Dossantos-Uzarralde, Pierre}, title = {Tagged Error: {Tracing} Numerical Error through Computations}, journal = {2021 IEEE 28th ...,}, booktitle = {Proceedings of the 28th Symposium on Computer Arithmetic (ARITH)}, location = {Lyngby, DK}, pages = {9-16}, year = 2021, month = jun, doi = {10.1109/ARITH51176.2021.00014}, comment = {Defines ``Tagged error'' an arithmetic ``inspired by AA'', used to estimate error in programs ``taking error amplification or dampening into account''. Example: conjugate gradient.}, abstract = {Extensive work has been done to evaluate the numerical accuracy of computations. However, getting fine-grained information on the operations that caused the inaccuracies observed in a given output is still a hard problem. We propose a new method, under the name tagged error, to get fine information on the impact of user-defined code sections on the numerical error of any floating-point number in a program. Our method uses a dedicated arithmetic over a type that encapsulates both the result the user would have had with the original computation and an approximation of its numerical error stored as an unevaluated sum of terms that can each be attributed to a single source. It lets us quantify the impact of potential error sources on any output of a computation while taking phenomena such as error amplification or dampening, due to later operations, into account. Furthermore, we can use this information to do targeted modifications of an algorithm, improving both its speed and precision, as illustrated by a study on the conjugate gradient algorithm.} }