{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,5]],"date-time":"2026-02-05T07:25:31Z","timestamp":1770276331002,"version":"3.49.0"},"reference-count":41,"publisher":"Association for Computing Machinery (ACM)","issue":"POPL","license":[{"start":{"date-parts":[[2019,1,2]],"date-time":"2019-01-02T00:00:00Z","timestamp":1546387200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"crossref","award":["61672529, 61872445, 61502015"],"award-info":[{"award-number":["61672529, 61872445, 61502015"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/501100012166","name":"National Key R&D Program of China","doi-asserted-by":"crossref","award":["2017YFB1001802"],"award-info":[{"award-number":["2017YFB1001802"]}],"id":[{"id":"10.13039\/501100012166","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2019,1,2]]},"abstract":"<jats:p>Floating point computation is by nature inexact, and numerical libraries that intensively involve floating-point computations may encounter high floating-point errors. Due to the wide use of numerical libraries, it is highly desired to reduce high floating-point errors in them. Using higher precision will degrade performance and may also introduce extra errors for certain precision-specific operations in numerical libraries. Using mathematical rewriting that mostly focuses on rearranging floating-point expressions or taking Taylor expansions may not fit for reducing high floating-point errors evoked by ill-conditioned problems that are in the nature of the mathematical feature of many numerical programs in numerical libraries.<\/jats:p>\n          <jats:p>In this paper, we propose a novel approach for efficient automated repair of high floating-point errors in numerical libraries. Our main idea is to make use of the mathematical feature of a numerical program for detecting and reducing high floating-point errors. The key components include a detecting method based on two algorithms for detecting high floating-point errors and a repair method for deriving an approximation of a mathematical function to generate patch to satisfy a given repair criterion. We implement our approach by constructing a new tool called AutoRNP. Our experiments are conducted on 20 numerical programs in GNU Scientific Library (GSL). Experimental results show that our approach can efficiently repair (with 100% accuracy over all randomly sampled points) high floating-point errors for 19 of the 20 numerical programs.<\/jats:p>","DOI":"10.1145\/3290369","type":"journal-article","created":{"date-parts":[[2019,1,4]],"date-time":"2019-01-04T13:33:51Z","timestamp":1546608831000},"page":"1-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":38,"title":["Efficient automated repair of high floating-point errors in numerical libraries"],"prefix":"10.1145","volume":"3","author":[{"given":"Xin","family":"Yi","sequence":"first","affiliation":[{"name":"National University of Defense Technology, China"}]},{"given":"Liqian","family":"Chen","sequence":"additional","affiliation":[{"name":"National University of Defense Technology, China"}]},{"given":"Xiaoguang","family":"Mao","sequence":"additional","affiliation":[{"name":"National University of Defense Technology, China"}]},{"given":"Tao","family":"Ji","sequence":"additional","affiliation":[{"name":"National University of Defense Technology, China"}]}],"member":"320","published-online":{"date-parts":[[2019,1,2]]},"reference":[{"key":"e_1_2_2_1_1","volume-title":"With Formulas, Graphs, and Mathematical Tables","author":"Abramowitz Milton"},{"key":"e_1_2_2_2_1","volume-title":"Jordan","author":"Andrieu Christophe","year":"2003"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/2509136.2509526"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/2254064.2254118"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1090\/S0002-9904-1911-02072-9"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2692916.2555265"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/512950.512973"},{"key":"e_1_2_2_8_1","volume-title":"Natarajan Shankar and Bruno Dutertre (Eds.)","volume":"5","author":"Damouche Nasrine","year":"2018"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/3078659.3078662"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/2593735.2593740"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.5555\/3155562.3155627"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2896921.2896931"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1236463.1236468"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2814270.2814317"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/3062341.3062383"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/103162.103163"},{"key":"e_1_2_2_17_1","volume-title":"Muhammad Zubair Malik, and Sarfraz Khurshid","author":"Gopinath Divya","year":"2011"},{"key":"e_1_2_2_18_1","unstructured":"Fredrik Johansson et al. 2013. mpmath: a Python library for arbitrary-precision floating-point arithmetic (version 0.18). http:\/\/mpmath.org\/.  Fredrik Johansson et al. 2013. mpmath: a Python library for arbitrary-precision floating-point arithmetic (version 0.18). http:\/\/mpmath.org\/."},{"key":"e_1_2_2_19_1","first-page":"94720","article-title":"IEEE standard 754 for binary floating-point arithmetic","volume":"754","author":"Kahan William","year":"1996","journal-title":"Lecture Notes on the Status of IEEE"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158135"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2786805.2786811"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2837614.2837617"},{"key":"e_1_2_2_23_1","volume-title":"Lamelas Marcote and Martin Monperrus","author":"Sebastian","year":"2015"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.5555\/2818754.2818811"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2884781.2884807"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1273442.1250746"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.5555\/2486788.2486890"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/2737924.2737959"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2568225.2568254"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192411"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594302"},{"key":"e_1_2_2_32_1","volume-title":"Floating-point computation","author":"Sterbenz Pat H"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1008202821328"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2016.2642956"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1021\/jp970984n"},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2950290.2950355"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2009.5070536"},{"key":"e_1_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2016.2560811"},{"key":"e_1_2_2_39_1","volume-title":"Automated Repair of High Inaccuracies in Numerical Programs. In 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME \u201917)","author":"Yi Xin","year":"2017"},{"key":"e_1_2_2_40_1","volume-title":"Efficient Global Search for Inputs Triggering High Floating-Point Inaccuracies. In 2017 24th Asia-Pacific Software Engineering Conference (APSEC \u201917)","author":"Yi Xin","year":"2017"},{"key":"e_1_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.5555\/2818754.2818820"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3290369","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3290369","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T00:58:04Z","timestamp":1750208284000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3290369"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,1,2]]},"references-count":41,"journal-issue":{"issue":"POPL","published-print":{"date-parts":[[2019,1,2]]}},"alternative-id":["10.1145\/3290369"],"URL":"https:\/\/doi.org\/10.1145\/3290369","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,1,2]]},"assertion":[{"value":"2019-01-02","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}