{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:15:58Z","timestamp":1750220158179,"version":"3.41.0"},"reference-count":47,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2022,12,31]],"date-time":"2022-12-31T00:00:00Z","timestamp":1672444800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Math. Softw."],"published-print":{"date-parts":[[2022,12,31]]},"abstract":"<jats:p>Floating-point numbers represent only a subset of real numbers. As such, floating-point arithmetic introduces approximations that can compound and have a significant impact on numerical simulations. We introduce encapsulated error, a new way to estimate the numerical error of an application and provide a reference implementation, the Shaman library. Our method uses 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. We thus can measure the number of significant digits of any result or intermediate result in a simulation. We show that this approach, although simple, gives results competitive with state-of-the-art methods. It has a smaller overhead, and it is compatible with parallelism, making it suitable for the study of large-scale applications.<\/jats:p>","DOI":"10.1145\/3549205","type":"journal-article","created":{"date-parts":[[2023,2,18]],"date-time":"2023-02-18T06:18:54Z","timestamp":1676701134000},"page":"1-16","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Algorithm\u00a01029: Encapsulated Error, a Direct Approach to Evaluate Floating-Point Accuracy"],"prefix":"10.1145","volume":"48","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-0530-6530","authenticated-orcid":false,"given":"Nestor","family":"Demeure","sequence":"first","affiliation":[{"name":"Universit\u00e9 Paris-Saclay, ENS Paris-Saclay, CNRS, Centre Borelli and CEA, DAM, DIF, Arpajon, France"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7730-9239","authenticated-orcid":false,"given":"C\u00e9dric","family":"Chevalier","sequence":"additional","affiliation":[{"name":"CEA, DAM, DIF, Arpajon, France"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-6825-3819","authenticated-orcid":false,"given":"Christophe","family":"Denis","sequence":"additional","affiliation":[{"name":"Sorbonne Universit\u00e9, CNRS, LIP6, Paris, France"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0478-3666","authenticated-orcid":false,"given":"Pierre","family":"Dossantos-Uzarralde","sequence":"additional","affiliation":[{"name":"CEA, DAM, DIF, Arpajon, France"}]}],"member":"320","published-online":{"date-parts":[[2023,3,22]]},"reference":[{"key":"e_1_3_1_2_2","doi-asserted-by":"publisher","DOI":"10.1145\/212066.212075"},{"key":"e_1_3_1_3_2","doi-asserted-by":"publisher","DOI":"10.3390\/math3020337"},{"key":"e_1_3_1_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/2345156.2254118"},{"key":"e_1_3_1_5_2","doi-asserted-by":"publisher","DOI":"10.1109\/ARITH.1991.145529"},{"key":"e_1_3_1_6_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.tcs.2005.09.062"},{"key":"e_1_3_1_7_2","first-page":"9","volume-title":"Proceedings of the 7th Brazilian Symposium on Computer Graphics and Image Processing (Sibgrapi\u201993)","author":"Comba Jo\u00e3o Luiz Dihl","year":"1993","unstructured":"Jo\u00e3o Luiz Dihl Comba and Jorge Stolfi. 1993. Affine arithmetic and its applications to computer graphics. In Proceedings of the 7th Brazilian Symposium on Computer Graphics and Image Processing (Sibgrapi\u201993). 9\u201318."},{"key":"e_1_3_1_8_2","doi-asserted-by":"publisher","DOI":"10.1109\/99.660313"},{"key":"e_1_3_1_9_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-89960-2_15"},{"key":"e_1_3_1_10_2","volume-title":"On Numerical Error Propagation with Sensitivity","author":"Darulova Eva","year":"2014","unstructured":"Eva Darulova and Viktor Kuncak. 2014. On Numerical Error Propagation with Sensitivity. Technical Report. Ecole Polytechnique Federale de Lausanne. http:\/\/infoscience.epfl.ch\/record\/200132."},{"key":"e_1_3_1_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/2578855.2535874"},{"key":"e_1_3_1_12_2","article-title":"Certifying the floating-point implementation of an elementary function using Gappa","author":"Dinechin Florent de","year":"2011","unstructured":"Florent de Dinechin, Christoph Lauter, and Guillaume Melquiond. 2011. Certifying the floating-point implementation of an elementary function using Gappa. IEEE Transactions on Computers 60, 2 (2011), 242\u2013253.","journal-title":"IEEE Transactions on Computers"},{"key":"e_1_3_1_13_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF01397083"},{"key":"e_1_3_1_14_2","unstructured":"Nestor Demeure C\u00e9dric Chevalier Christophe Denis and Pierre Dossantos-Uzarralde. 2022. Shaman GitLab Repository. Retrieved February 24 2023 from https:\/\/gitlab.com\/numerical_shaman\/shaman\/-\/tree\/paper."},{"key":"e_1_3_1_15_2","first-page":"516","volume-title":"Verification, Model Checking, and Abstract Interpretation","author":"Feli\u00fa Marco A.","year":"2018","unstructured":"Marco A. Feli\u00fa, Mariano Moscato, and C\u00e9sar A. Mu\u00f1oz. 2018. An abstract interpretation framework for the round-off error analysis of floating-point programs. In Verification, Model Checking, and Abstract Interpretation. Lecture Notes in Computer Science, Vol. 10747. Springer, 516\u2013537."},{"key":"e_1_3_1_16_2","doi-asserted-by":"publisher","DOI":"10.1145\/1236463.1236468"},{"key":"e_1_3_1_17_2","volume-title":"Proceedings of the International Symposium on Scientific Computing, Computer Arithmetics, and Verified Numerics (SCAN\u201916)","author":"F\u00e9votte Fran\u00e7ois","year":"2016","unstructured":"Fran\u00e7ois F\u00e9votte and Bruno Lathuili\u00e8re. 2016. VERROU: A CESTAC evaluation without recompilation. In Proceedings of the International Symposium on Scientific Computing, Computer Arithmetics, and Verified Numerics (SCAN\u201916)."},{"key":"e_1_3_1_18_2","unstructured":"Fran\u00e7ois F\u00e9votte and Bruno Lathuili\u00e8re. 2017. Verrou Tutorial for the PRECIS Summer School [in French]. Retrieved February 24 2023 from https:\/\/github.com\/edf-hpc\/verrou\/tree\/ecole-precis."},{"key":"e_1_3_1_19_2","volume-title":"Static Analysis","author":"Goubault Eric","year":"2013","unstructured":"Eric Goubault. 2013. Static analysis by abstract interpretation of numerical programs and systems, and FLUCTUAT. In Static Analysis. Lecture Notes in Computer Science, Vol. 7935. Springer, 1\u20133."},{"key":"e_1_3_1_20_2","article-title":"The Computer Language Benchmarks Game","author":"Gouy Isaac","year":"2020","unstructured":"Isaac Gouy. 2020. The Computer Language Benchmarks Game. Retrieved January 10, 2020 from https:\/\/benchmarksgame-team.pages.debian.net\/benchmarksgame\/.","journal-title":"https:\/\/benchmarksgame-team.pages.debian.net\/benchmarksgame\/."},{"key":"e_1_3_1_21_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-01591-5_14"},{"key":"e_1_3_1_22_2","doi-asserted-by":"publisher","DOI":"10.1016\/0167-8191(96)00024-5"},{"key":"e_1_3_1_23_2","unstructured":"Ga\u00ebl Guennebaud and Beno\u00eet Jacob. 2010. Eigen v3. Retrieved February 24 2023 from http:\/\/eigen.tuxfamily.org."},{"key":"e_1_3_1_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/1089014.1089021"},{"key":"e_1_3_1_25_2","article-title":"MPFR C++","author":"Holoborodko Pavel","year":"2010","unstructured":"Pavel Holoborodko. 2010. MPFR C++. Retrieved February 24, 2023 from http:\/\/www.holoborodko.com\/pavel\/mpfr\/. http:\/\/www.holoborodko.com\/pavel\/mpfr\/.","journal-title":"http:\/\/www.holoborodko.com\/pavel\/mpfr\/"},{"key":"e_1_3_1_26_2","article-title":"IEEE Standard for Floating-Point Arithmetic","author":"Committee IEEE Microprocessor Standards","year":"2019","unstructured":"IEEE Microprocessor Standards Committee. 2019. IEEE Standard for Floating-Point Arithmetic. IEEE Std 754-2019 (Revision of IEEE 754-2008). IEEE, Los Alamitos, CA.","journal-title":"IEEE Std 754-2019 (Revision of IEEE 754-2008)"},{"key":"e_1_3_1_27_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.cpc.2008.02.003"},{"key":"e_1_3_1_28_2","doi-asserted-by":"publisher","DOI":"10.2172\/1059462"},{"key":"e_1_3_1_29_2","doi-asserted-by":"publisher","DOI":"10.1021\/ct200239p"},{"key":"e_1_3_1_30_2","volume-title":"The Art of Computer Programming: Seminumerical Algorithms","author":"Knuth Donald","year":"1998","unstructured":"Donald Knuth. 1998. The Art of Computer Programming: Seminumerical Algorithms. Vol. 2. Addison Wesley, Reading, MA."},{"key":"e_1_3_1_31_2","doi-asserted-by":"publisher","DOI":"10.1145\/3290955"},{"key":"e_1_3_1_32_2","article-title":"Twofold fast arithmetic","author":"Latkin Evgeny","year":"2014","unstructured":"Evgeny Latkin. 2014. Twofold fast arithmetic. arXiv preprint arXiv:1401.6235 (2014).","journal-title":"arXiv preprint arXiv:1401.6235"},{"key":"e_1_3_1_33_2","volume-title":"Proceedings of the BSD Conference (BSDCan\u201908)","volume":"5","author":"Lattner Chris","year":"2008","unstructured":"Chris Lattner. 2008. LLVM and Clang: Next generation compiler technology. In Proceedings of the BSD Conference (BSDCan\u201908), Vol. 5."},{"key":"e_1_3_1_34_2","doi-asserted-by":"publisher","DOI":"10.1145\/1064978.1065034"},{"key":"e_1_3_1_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/3015465"},{"key":"e_1_3_1_36_2","doi-asserted-by":"publisher","DOI":"10.5555\/904631"},{"key":"e_1_3_1_37_2","article-title":"Interval Analysis","author":"Moore Ramon E.","year":"1966","unstructured":"Ramon E. Moore. 1966. Interval Analysis. Prentice-Hall, Englewood Cliffs, NJ.","journal-title":"Prentice-Hall, Englewood Cliffs, NJ."},{"key":"e_1_3_1_38_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-0-8176-4705-6"},{"key":"e_1_3_1_39_2","doi-asserted-by":"publisher","DOI":"10.1145\/1273442.1250746"},{"key":"e_1_3_1_40_2","volume-title":"Monte Carlo Arithmetic: Exploiting Randomness in Floating-Point Arithmetic","author":"Parker Douglass Stott","year":"1997","unstructured":"Douglass Stott Parker. 1997. Monte Carlo Arithmetic: Exploiting Randomness in Floating-Point Arithmetic. Technical Report. Computer Science Department, University of California, Los Angeles."},{"key":"e_1_3_1_41_2","volume-title":"On Properties of Floating Point Arithmetics: Numerical Stability and the Cost of Accurate Computations","author":"Priest Douglas M.","year":"1992","unstructured":"Douglas M. Priest. 1992. On Properties of Floating Point Arithmetics: Numerical Stability and the Cost of Accurate Computations. Ph.D. Dissertation. University of California, Berkeley."},{"key":"e_1_3_1_42_2","doi-asserted-by":"publisher","DOI":"10.1023\/B:NUMA.0000005354.92791.41"},{"key":"e_1_3_1_43_2","doi-asserted-by":"publisher","DOI":"10.1145\/2503210.2503296"},{"key":"e_1_3_1_44_2","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192411"},{"key":"e_1_3_1_45_2","volume-title":"FM 2015: Formal Methods","author":"Solovyev Alexey","year":"2015","unstructured":"Alexey Solovyev, Charles Jacobsen, Zvonimir Rakamari\u0107, and Ganesh Gopalakrishnan. 2015. Rigorous estimation of floating-point round-off errors with symbolic Taylor expansions. In FM 2015: Formal Methods. Lecture Notes in Computer Science, Vol. 9109. Springer, 532\u2013550."},{"key":"e_1_3_1_46_2","volume-title":"Debugging with GDB","author":"Stallman Richard","year":"2002","unstructured":"Richard Stallman, Roland Pesch, and Stan Shebs. 2002. Debugging with GDB. Free Software Foundation Inc."},{"key":"e_1_3_1_47_2","first-page":"377","article-title":"Error analysis in computing","volume":"30","author":"Vignes Jean","year":"1974","unstructured":"Jean Vignes and M. La Porte. 1974. Error analysis in computing. Information Processing 30 (1974), 377\u2013390.","journal-title":"Information Processing"},{"key":"e_1_3_1_48_2","doi-asserted-by":"publisher","DOI":"10.1109\/P3HPC.2018.00005"}],"container-title":["ACM Transactions on Mathematical Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3549205","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3549205","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T19:00:22Z","timestamp":1750186822000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3549205"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,12,31]]},"references-count":47,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2022,12,31]]}},"alternative-id":["10.1145\/3549205"],"URL":"https:\/\/doi.org\/10.1145\/3549205","relation":{},"ISSN":["0098-3500","1557-7295"],"issn-type":[{"type":"print","value":"0098-3500"},{"type":"electronic","value":"1557-7295"}],"subject":[],"published":{"date-parts":[[2022,12,31]]},"assertion":[{"value":"2019-10-30","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-07-13","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-03-22","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}