{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,25]],"date-time":"2025-03-25T14:51:22Z","timestamp":1742914282214,"version":"3.40.3"},"publisher-location":"Cham","reference-count":33,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783030995232"},{"type":"electronic","value":"9783030995249"}],"license":[{"start":{"date-parts":[[2022,1,1]],"date-time":"2022-01-01T00:00:00Z","timestamp":1640995200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2022,3,30]],"date-time":"2022-03-30T00:00:00Z","timestamp":1648598400000},"content-version":"vor","delay-in-days":88,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2022]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Aggregated roundoff errors caused by floating-point arithmetic can make numerical code highly unreliable. Verified postconditions for floating-point functions can guarantee the accuracy of their results under specific preconditions on the function inputs, but how to systematically find an adequate precondition for a desired error bound has not been explored so far. We present two novel techniques for automatically synthesizing preconditions for floating-point functions that guarantee that user-provided accuracy requirements are satisfied. Our evaluation on a standard benchmark set shows that our approaches are complementary and able to find accurate preconditions in reasonable time.<\/jats:p>","DOI":"10.1007\/978-3-030-99524-9_16","type":"book-chapter","created":{"date-parts":[[2022,3,29]],"date-time":"2022-03-29T06:14:55Z","timestamp":1648534495000},"page":"303-321","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":2,"title":["Inferring Interval-Valued Floating-Point Preconditions"],"prefix":"10.1007","author":[{"given":"Jonas","family":"Kr\u00e4mer","sequence":"first","affiliation":[]},{"given":"Lionel","family":"Blatter","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-6848-3163","authenticated-orcid":false,"given":"Eva","family":"Darulova","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2350-1831","authenticated-orcid":false,"given":"Mattias","family":"Ulbrich","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2022,3,30]]},"reference":[{"key":"16_CR1","unstructured":"Smile - Statistical Machine Intelligence and Learning Engine, https:\/\/haifengl.github.io\/"},{"key":"16_CR2","unstructured":"The GNU MPFR Library (2020), https:\/\/www.mpfr.org\/"},{"key":"16_CR3","doi-asserted-by":"publisher","unstructured":"Benz, F., Hildebrandt, A., Hack, S.: A Dynamic Program Analysis to Find Floating-Point Accuracy Problems. In: Programming Language Design and Implementation (PLDI) (2012). https:\/\/doi.org\/10.1145\/2254064.2254118","DOI":"10.1145\/2254064.2254118"},{"key":"16_CR4","unstructured":"Breiman, L., Friedman, J., Stone, C.J., Olshen, R.A.: Classification and Regression Trees. CRC press (1984)"},{"key":"16_CR5","doi-asserted-by":"publisher","unstructured":"Chiang, W.F., Baranowski, M., Briggs, I., Solovyev, A., Gopalakrishnan, G., Rakamari\u0107, Z.: Rigorous Floating-Point Mixed-Precision Tuning. In: Principles of Programming Languages (POPL) (2017). https:\/\/doi.org\/10.1145\/3009837.3009846","DOI":"10.1145\/3009837.3009846"},{"key":"16_CR6","doi-asserted-by":"publisher","unstructured":"Chiang, W., Gopalakrishnan, G., Rakamaric, Z., Solovyev, A.: Efficient Search for Inputs Causing High Floating-Point Errors. In: Principles and Practice of Parallel Programming (PPoPP) (2014). https:\/\/doi.org\/10.1145\/2555243.2555265","DOI":"10.1145\/2555243.2555265"},{"key":"16_CR7","doi-asserted-by":"publisher","unstructured":"Claessen, K., Smallbone, N., Hughes, J.: QuickSpec: Guessing Formal Specifications Using Testing. In: Tests and Proofs (2010). https:\/\/doi.org\/10.1007\/978-3-642-13977-2_3","DOI":"10.1007\/978-3-642-13977-2_3"},{"key":"16_CR8","doi-asserted-by":"publisher","unstructured":"Damouche, N., Martel, M., Panchekha, P., Qiu, C., Sanchez-Stern, A., Tatlock, Z.: Toward a Standard Benchmark Format and Suite for Floating-Point Analysis. In: Numerical Software Verification (2017). https:\/\/doi.org\/10.1007\/978-3-319-54292-8_6","DOI":"10.1007\/978-3-319-54292-8_6"},{"key":"16_CR9","doi-asserted-by":"publisher","unstructured":"Darulova, E., Horn, E., Sharma, S.: Sound Mixed-Precision Optimization with Rewriting. In: International Conference on Cyber-Physical Systems (ICCPS) (2018). https:\/\/doi.org\/10.1109\/ICCPS.2018.00028","DOI":"10.1109\/ICCPS.2018.00028"},{"key":"16_CR10","doi-asserted-by":"publisher","unstructured":"Darulova, E., Izycheva, A., Nasir, F., Ritter, F., Becker, H., Bastian, R.: Daisy - Framework for Analysis and Optimization of Numerical Programs (Tool Paper). In: Tools and Algorithms for the Construction and Analysis of Systems (TACAS) (2018). https:\/\/doi.org\/10.1007\/978-3-319-89960-2_15","DOI":"10.1007\/978-3-319-89960-2_15"},{"key":"16_CR11","doi-asserted-by":"publisher","unstructured":"Daumas, M., Melquiond, G.: Certification of bounds on expressions involving rounded operators. ACM Transactions on Mathematical Software 37(1) (2010). https:\/\/doi.org\/10.1145\/1644001.1644003","DOI":"10.1145\/1644001.1644003"},{"key":"16_CR12","doi-asserted-by":"publisher","unstructured":"Dijkstra, E.W.: Guarded Commands, Nondeterminacy and Formal Derivation of Programs. Communications of the ACM 18(8) (1975). https:\/\/doi.org\/10.1145\/360933.360975","DOI":"10.1145\/360933.360975"},{"key":"16_CR13","doi-asserted-by":"publisher","unstructured":"Ernst, M.D., Perkins, J.H., Guo, P.J., McCamant, S., Pacheco, C., Tschantz, M.S., Xiao, C.: The Daikon System for Dynamic Detection of Likely Invariants. Science of Computer Programming 69(1-3) (2007). https:\/\/doi.org\/10.1016\/j.scico.2007.01.015","DOI":"10.1016\/j.scico.2007.01.015"},{"key":"16_CR14","doi-asserted-by":"publisher","unstructured":"Goubault, E., Putot, S.: Static Analysis of Finite Precision Computations. In: Verification, Model Checking, and Abstract Interpretation (VMCAI) (2011). https:\/\/doi.org\/10.1007\/978-3-642-18275-4_17","DOI":"10.1007\/978-3-642-18275-4_17"},{"key":"16_CR15","doi-asserted-by":"publisher","unstructured":"Guo, H., Rubio-Gonz\u00e1lez, C.: Exploiting Community Structure for Floating-Point Precision Tuning. In: International Symposium on Software Testing and Analysis (ISSTA) (2018). https:\/\/doi.org\/10.1145\/3213846.3213862","DOI":"10.1145\/3213846.3213862"},{"key":"16_CR16","unstructured":"Himmelblau, D.M., Clark, B.J., Eichberg, M.: Applied Nonlinear Programming. McGraw-Hill (1972)"},{"key":"16_CR17","doi-asserted-by":"publisher","unstructured":"Ho, N., Manogaran, E., Wong, W., Anoosheh, A.: Efficient Floating Point Precision Tuning for Approximate Computing. In: Asia and South Pacific Design Automation Conference (ASP-DAC) (2017). https:\/\/doi.org\/10.1109\/ASPDAC.2017.7858297","DOI":"10.1109\/ASPDAC.2017.7858297"},{"key":"16_CR18","doi-asserted-by":"publisher","unstructured":"IEEE Computer Society: IEEE Standard for Floating-Point Arithmetic. IEEE Std 754-2019 (Revision of IEEE 754-2008) (2019). https:\/\/doi.org\/10.1109\/IEEESTD.2019.8766229","DOI":"10.1109\/IEEESTD.2019.8766229"},{"key":"16_CR19","doi-asserted-by":"publisher","unstructured":"Lam, M.O., Vanderbruggen, T., Menon, H., Schordan, M.: Tool Integration for Source-Level Mixed Precision. In: Workshop on Software Correctness for HPC Applications (Correctness) (2019). https:\/\/doi.org\/10.1109\/Correctness49594.2019.00009","DOI":"10.1109\/Correctness49594.2019.00009"},{"key":"16_CR20","doi-asserted-by":"publisher","unstructured":"Loh, E., Walster, G.W.: Rump\u2019s Example Revisited. Reliable Computing 8(3) (2002). https:\/\/doi.org\/10.1023\/A:1015569431383","DOI":"10.1023\/A:1015569431383"},{"key":"16_CR21","doi-asserted-by":"publisher","unstructured":"Magron, V., Constantinides, G., Donaldson, A.: Certified Roundoff Error Bounds Using Semidefinite Programming. ACM Transactions on Mathematical Software 43(4) (2017). https:\/\/doi.org\/10.1145\/3015465","DOI":"10.1145\/3015465"},{"key":"16_CR22","doi-asserted-by":"publisher","unstructured":"Moscato, M., Titolo, L., Dutle, A., Mu\u00f1oz, C.A.: Automatic Estimation of Verified Floating-Point Round-Off Errors via Static Analysis. In: Computer Safety, Reliability, and Security (SAFECOMP) (2017). https:\/\/doi.org\/10.1007\/978-3-319-66266-4_14","DOI":"10.1007\/978-3-319-66266-4_14"},{"key":"16_CR23","doi-asserted-by":"publisher","unstructured":"Moy, Y.: Sufficient Preconditions for Modular Assertion Checking. In: Verification, Model Checking, and Abstract Interpretation (VMCAI) (2008). https:\/\/doi.org\/10.1007\/978-3-540-78163-9_18","DOI":"10.1007\/978-3-540-78163-9_18"},{"key":"16_CR24","doi-asserted-by":"publisher","unstructured":"Muller, J.M., Brunie, N., de\u00a0Dinechin, F., Jeannerod, C.P., Joldes, M., Lef\u00e8vre, V., Melquiond, G., Revol, N., Torres, S.: Handbook of Floating-Point Arithmetic. Springer International Publishing (2018). https:\/\/doi.org\/10.1007\/978-3-319-76526-6","DOI":"10.1007\/978-3-319-76526-6"},{"key":"16_CR25","unstructured":"Nathan, R., Naeimi, H., Sorin, D.J., Sun, X.: Profile-Driven Automated Mixed Precision. CoRR abs\/1606.00251 (2016), http:\/\/arxiv.org\/abs\/1606.00251"},{"key":"16_CR26","doi-asserted-by":"publisher","unstructured":"Panchekha, P., Sanchez-Stern, A., Wilcox, J.R., Tatlock, Z.: Automatically Improving Accuracy for Floating Point Expressions. In: Programming Language Design and Implementation (PLDI) (2015). https:\/\/doi.org\/10.1145\/2737924.2737959","DOI":"10.1145\/2737924.2737959"},{"key":"16_CR27","doi-asserted-by":"publisher","unstructured":"Rabe, R., Izycheva, A., Darulova, E.: Regime Inference for Sound Floating-Point Optimizations. ACM Trans. Embed. Comput. Syst. (EMSOFT) 20(5s) (2021). https:\/\/doi.org\/10.1145\/3477012","DOI":"10.1145\/3477012"},{"key":"16_CR28","doi-asserted-by":"publisher","unstructured":"Seghir, M.N., Kroening, D.: Counterexample-Guided Precondition Inference. In: Programming Languages and Systems (ESOP) (2013). https:\/\/doi.org\/10.1007\/978-3-642-37036-6_25","DOI":"10.1007\/978-3-642-37036-6_25"},{"key":"16_CR29","doi-asserted-by":"publisher","unstructured":"Solovyev, A., Baranowski, M.S., Briggs, I., Jacobsen, C., Rakamari\u0107, Z., Gopalakrishnan, G.: Rigorous Estimation of Floating-Point Round-Off Errors with Symbolic Taylor Expansions. ACM Transactions on Programming Languages and Systems 41(1) (2018). https:\/\/doi.org\/10.1145\/3230733","DOI":"10.1145\/3230733"},{"key":"16_CR30","doi-asserted-by":"publisher","unstructured":"Wang, X., Wang, H., Su, Z., Tang, E., Chen, X., Shen, W., Chen, Z., Wang, L., Zhang, X., Li, X.: Global Optimization of Numerical Programs via Prioritized Stochastic Algebraic Transformations. In: International Conference on Software Engineering (ICSE) (2019). https:\/\/doi.org\/10.1109\/ICSE.2019.00116","DOI":"10.1109\/ICSE.2019.00116"},{"key":"16_CR31","doi-asserted-by":"publisher","unstructured":"Xia, Y., Guo, S., Hao, J., Liu, D., Xu, J.: Error Detection of Arithmetic Expressions. The Journal of Supercomputing (2020). https:\/\/doi.org\/10.1007\/s11227-020-03469-7","DOI":"10.1007\/s11227-020-03469-7"},{"key":"16_CR32","doi-asserted-by":"publisher","unstructured":"Yi, X., Chen, L., Mao, X., Ji, T.: Efficient Automated Repair of High Floating-Point Errors in Numerical Libraries. Proceedings of the ACM on Programming Languages 3(POPL) (2019). https:\/\/doi.org\/10.1145\/3290369","DOI":"10.1145\/3290369"},{"key":"16_CR33","doi-asserted-by":"publisher","unstructured":"Zou, D., Wang, R., Xiong, Y., Zhang, L., Su, Z., Mei, H.: A Genetic Algorithm for Detecting Significant Floating-Point Inaccuracies. In: International Conference on Software Engineering (ICSE) (2015). https:\/\/doi.org\/10.1109\/ICSE.2015.70","DOI":"10.1109\/ICSE.2015.70"}],"container-title":["Lecture Notes in Computer Science","Tools and Algorithms for the Construction and Analysis of Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-99524-9_16","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,3,29]],"date-time":"2022-03-29T06:21:06Z","timestamp":1648534866000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-030-99524-9_16"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022]]},"ISBN":["9783030995232","9783030995249"],"references-count":33,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-99524-9_16","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2022]]},"assertion":[{"value":"30 March 2022","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"TACAS","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Tools and Algorithms for the Construction and Analysis of Systems","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Munich","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Germany","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2022","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2 April 2022","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"7 April 2022","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"28","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"tacas2022","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/etaps.org\/2022\/tacas","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Single-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"EasyChair","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"159","order":3,"name":"number_of_submissions_sent_for_review","label":"Number of Submissions Sent for Review","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"46","order":4,"name":"number_of_full_papers_accepted","label":"Number of Full Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"4","order":5,"name":"number_of_short_papers_accepted","label":"Number of Short Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"29% - The value is computed by the equation \"Number of Full Papers Accepted \/ Number of Submissions Sent for Review * 100\" and then rounded to a whole number.","order":6,"name":"acceptance_rate_of_full_papers","label":"Acceptance Rate of Full Papers","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"3","order":7,"name":"average_number_of_reviews_per_paper","label":"Average Number of Reviews per Paper","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"10","order":8,"name":"average_number_of_papers_per_reviewer","label":"Average Number of Papers per Reviewer","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"Yes","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"16 tool papers of the affiliated competition SV-Comp and 1 paper consisting of the competition report are also included in the proceedings","order":10,"name":"additional_info_on_review_process","label":"Additional Info on Review Process","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}}]}}