Efficient Generation of Error-Inducing Floating-Point Inputs via Symbolic Execution

Floating point is widely used in software to emulate arithmetic over reals. Unfortunately, floating point leads to rounding errors that propagate and accumulate during execution. Generating inputs to maximize the numerical error is critical when evaluating the accuracy of floating-point code. In thi...

Celý popis

Uložené v:
Podrobná bibliografia
Vydané v:2020 IEEE/ACM 42nd International Conference on Software Engineering (ICSE) s. 1261 - 1272
Hlavní autori: Guo, Hui, Rubio-Gonzalez, Cindy
Médium: Konferenčný príspevok..
Jazyk:English
Vydavateľské údaje: ACM 01.10.2020
Predmet:
ISSN:1558-1225
On-line prístup:Získať plný text
Tagy: Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
Abstract Floating point is widely used in software to emulate arithmetic over reals. Unfortunately, floating point leads to rounding errors that propagate and accumulate during execution. Generating inputs to maximize the numerical error is critical when evaluating the accuracy of floating-point code. In this paper, we formulate the problem of generating high error-inducing floating-point inputs as a code coverage maximization problem solved using symbolic execution. Specifically, we define inaccuracy checks to detect large precision loss and cancellation. We inject these checks at strategic program locations to construct specialized branches that, when covered by a given input, are likely to lead to large errors in the result. We apply symbolic execution to generate inputs that exercise these specialized branches, and describe optimizations that make our approach practical. We implement a tool named FPGen and present an evaluation on 21 numerical programs including matrix computation and statistics libraries. We show that FPGen exposes errors for 20 of these programs and triggers errors that are, on average, over 2 orders of magnitude larger than the state of the art.
AbstractList Floating point is widely used in software to emulate arithmetic over reals. Unfortunately, floating point leads to rounding errors that propagate and accumulate during execution. Generating inputs to maximize the numerical error is critical when evaluating the accuracy of floating-point code. In this paper, we formulate the problem of generating high error-inducing floating-point inputs as a code coverage maximization problem solved using symbolic execution. Specifically, we define inaccuracy checks to detect large precision loss and cancellation. We inject these checks at strategic program locations to construct specialized branches that, when covered by a given input, are likely to lead to large errors in the result. We apply symbolic execution to generate inputs that exercise these specialized branches, and describe optimizations that make our approach practical. We implement a tool named FPGen and present an evaluation on 21 numerical programs including matrix computation and statistics libraries. We show that FPGen exposes errors for 20 of these programs and triggers errors that are, on average, over 2 orders of magnitude larger than the state of the art.
Author Guo, Hui
Rubio-Gonzalez, Cindy
Author_xml – sequence: 1
  givenname: Hui
  surname: Guo
  fullname: Guo, Hui
  email: higuo@ucdavis.edu
  organization: University of California,Department of Computer Science,Davis,USA
– sequence: 2
  givenname: Cindy
  surname: Rubio-Gonzalez
  fullname: Rubio-Gonzalez, Cindy
  email: crubio@ucdavis.edu
  organization: University of California,Department of Computer Science,Davis,USA
BookMark eNotjk1LAzEYhKMo2K2ePXjJH9ia5N1skqOUbV0oKFTPJZu8WyJtUvZD7L93i54GZp4ZJiM3MUUk5JGzBeeFfAZQSnO-ANAMpLki2eQyUFxwuCYzLqXOuRDyjmR9_8UYKwtjZmRbtW1wAeNA1xixs0NIkaaWVl2XuryOfnQh7unqkKYo7vP3FCa2jqdx6Ol3sHR7PjbpEBytftCNl_o9uW3toceHf52Tz1X1sXzNN2_revmyya3QesidkIXx0z3vOBpvWcNbJZrGKNDKo0O03qIGZ1rWMO-YBc9UqbmQ0iq0MCdPf7sBEXenLhxtd94ZocHIEn4BN61R7w
CODEN IEEPAD
ContentType Conference Proceeding
DBID 6IE
6IH
CBEJK
RIE
RIO
DOI 10.1145/3377811.3380359
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Proceedings Order Plan (POP) 1998-present by volume
IEEE Xplore All Conference Proceedings
IEEE Electronic Library (IEL)
IEEE Proceedings Order Plans (POP) 1998-present
DatabaseTitleList
Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Xplore
  url: https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISBN 1450371213
9781450371216
EISSN 1558-1225
EndPage 1272
ExternalDocumentID 9283956
Genre orig-research
GrantInformation_xml – fundername: National Science Foundation
  grantid: CCF-1750983
  funderid: 10.13039/100000001
– fundername: Advanced Scientific Computing Research
  grantid: DE-SC0020286
  funderid: 10.13039/100006192
– fundername: U.S. Department of Energy
  funderid: 10.13039/100000015
GroupedDBID -~X
.4S
.DC
123
23M
29O
5VS
6IE
6IF
6IH
6IK
6IL
6IM
6IN
8US
AAJGR
AAWTH
ABLEC
ADZIZ
AFFNX
ALMA_UNASSIGNED_HOLDINGS
APO
ARCSS
AVWKF
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CBEJK
CHZPO
EDO
FEDTE
I-F
I07
IEGSK
IJVOP
IPLJI
M43
OCL
RIE
RIL
RIO
RNS
XOL
ID FETCH-LOGICAL-a288t-c2549d213dc1e9da0b1f72bb97387deceeadae83c9f0b0dc0a3d07681255a7ea3
IEDL.DBID RIE
ISICitedReferencesCount 29
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000652529800103&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
IngestDate Wed Aug 27 02:32:58 EDT 2025
IsDoiOpenAccess false
IsOpenAccess true
IsPeerReviewed false
IsScholarly true
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-a288t-c2549d213dc1e9da0b1f72bb97387deceeadae83c9f0b0dc0a3d07681255a7ea3
OpenAccessLink https://dl.acm.org/doi/pdf/10.1145/3377811.3380359
PageCount 12
ParticipantIDs ieee_primary_9283956
PublicationCentury 2000
PublicationDate 2020-Oct.
PublicationDateYYYYMMDD 2020-10-01
PublicationDate_xml – month: 10
  year: 2020
  text: 2020-Oct.
PublicationDecade 2020
PublicationTitle 2020 IEEE/ACM 42nd International Conference on Software Engineering (ICSE)
PublicationTitleAbbrev ICSE
PublicationYear 2020
Publisher ACM
Publisher_xml – name: ACM
SSID ssj0006499
ssj0002870079
Score 2.3113708
Snippet Floating point is widely used in software to emulate arithmetic over reals. Unfortunately, floating point leads to rounding errors that propagate and...
SourceID ieee
SourceType Publisher
StartPage 1261
SubjectTerms catastrophic cancellation
floating-point
roundoff errors
symbolic execution
testing
Title Efficient Generation of Error-Inducing Floating-Point Inputs via Symbolic Execution
URI https://ieeexplore.ieee.org/document/9283956
WOSCitedRecordID wos000652529800103&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LS8NAEF7a4sFT1VZ8swePbptkm2z2LCkKUgpV6K3sYxYKmkj6QP-9O9tYEbx4CyFMlsljvtmZ-T5CbjPtUMRCsxSMZCOXJkwh4WWiPNaXGrKIh0HhJzGZ5PO5nLbI3X4WBgBC8xkM8DDU8m1lNrhVNpQ-Fno83yZtIbLdrNZ-PwULdhFWnJq_cOZv1VD5xKN0yLnAmcqBz8iQtO6XlkoIJePu_xZxRPo_M3l0uo82x6QF5Qnpfosy0OYb7ZFZEUghvA26o5RGz9PK0aKuq5qhVIfxBuj4tVLY8sym1dJf-1h6Oyu6XSo6-3zTyBZMiw8w4b3sk5dx8Xz_wBrlBKaSPF8zg2mfTWJuTQzSqkjHTiRaS8FzYcEvVVkFOTfSRTqyJlLcYknOo51UCVD8lHTKqoQzQkWmQHmMkWqfuKXOeUSm4sgY7kSsjdPnpIc-WrzvyDEWjXsu_j59SQ4TTFhDN9wV6azrDVyTA7NdL1f1TXiiX7YBorY
linkProvider IEEE
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LS8NAEB5qFfRUtRXf7sGj226yTTY5S0qLtRRaobeyTyhoIukD_ffubmNF8OIthDBZJo_5Zmfm-wDuY2GciIXAkZYp7pooxNwRXobcYv1U6JhQPyg8ZKNRMpul4xo87GZhtNa--Uy33aGv5atCrt1WWSe1sdDi-T3Yj7rdkGyntXY7Kq5kR1zNqfoPx_ZmFZlP0I06lDI3Vdm2OZmjrfulpuKDSa_xv2UcQ-tnKg-Nd_HmBGo6P4XGtywDqr7SJkwyTwthbaAtqbTzPSoMysqyKLET65DWAOq9Ftw1PeNxsbDXDnJrZ4k2C44mn2_C8QWj7ENL_2a24KWXTR_7uNJOwDxMkhWWLvFTYUCVDHSqOBGBYaEQKaMJU9oulSuuEypTQwRRknCqXFHO4p2IM83pGdTzItfngFjMNbcoIxI2dYuMsZiMB0RKalggpBEX0HQ-mr9v6THmlXsu_z59B4f96fNwPhyMnq7gKHTpq--Nu4b6qlzrGziQm9ViWd76p_sFWqql_Q
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=proceeding&rft.title=2020+IEEE%2FACM+42nd+International+Conference+on+Software+Engineering+%28ICSE%29&rft.atitle=Efficient+Generation+of+Error-Inducing+Floating-Point+Inputs+via+Symbolic+Execution&rft.au=Guo%2C+Hui&rft.au=Rubio-Gonzalez%2C+Cindy&rft.date=2020-10-01&rft.pub=ACM&rft.eissn=1558-1225&rft.spage=1261&rft.epage=1272&rft_id=info:doi/10.1145%2F3377811.3380359&rft.externalDocID=9283956