{"title":"Error in Ulps of the Multiplication or Division by a Correctly-Rounded Function or Constant in Binary Floating-Point Arithmetic","authors":"Nicolas Brisebarre;Jean-Michel Muller;Joris Picot","doi":"10.1109/TETC.2023.3294986","DOIUrl":null,"url":null,"abstract":"Assume we use a binary floating-point arithmetic and that \n<inline-formula><tex-math>$\\operatorname{RN}$</tex-math></inline-formula>\n is the round-to-nearest function. Also assume that \n<inline-formula><tex-math>$c$</tex-math></inline-formula>\n is a constant or a real function of one or more variables, and that we have at our disposal a correctly rounded implementation of \n<inline-formula><tex-math>$c$</tex-math></inline-formula>\n, say \n<inline-formula><tex-math>$\\hat{c}= \\operatorname{RN}(c)$</tex-math></inline-formula>\n. For evaluating \n<inline-formula><tex-math>$x \\cdot c$</tex-math></inline-formula>\n (resp. \n<inline-formula><tex-math>$ x / c$</tex-math></inline-formula>\n or \n<inline-formula><tex-math>$c / x$</tex-math></inline-formula>\n), the natural way is to replace it by \n<inline-formula><tex-math>$\\operatorname{RN}(x \\cdot \\hat{c})$</tex-math></inline-formula>\n (resp. \n<inline-formula><tex-math>$ \\operatorname{RN}(x / \\hat{c})$</tex-math></inline-formula>\n or \n<inline-formula><tex-math>$\\operatorname{RN}(\\hat{c}/ x)$</tex-math></inline-formula>\n), that is, to call function \n<inline-formula><tex-math>$\\hat{c}$</tex-math></inline-formula>\n and to perform a floating-point multiplication or division. This can be generalized to the approximation of \n<inline-formula><tex-math>$n/d$</tex-math></inline-formula>\n by \n<inline-formula><tex-math>$\\operatorname{RN}(\\hat{n}/\\hat{d})$</tex-math></inline-formula>\n and the approximation of \n<inline-formula><tex-math>$n \\cdot d$</tex-math></inline-formula>\n by \n<inline-formula><tex-math>$\\operatorname{RN}(\\hat{n} \\cdot \\hat{d})$</tex-math></inline-formula>\n, where \n<inline-formula><tex-math>$\\hat{n} = \\operatorname{RN}(n)$</tex-math></inline-formula>\n and \n<inline-formula><tex-math>$\\hat{d} = \\operatorname{RN}(d)$</tex-math></inline-formula>\n, and \n<inline-formula><tex-math>$n$</tex-math></inline-formula>\n and \n<inline-formula><tex-math>$d$</tex-math></inline-formula>\n are functions for which we have at our disposal a correctly rounded implementation. We discuss tight error bounds in ulps of such approximations. From our results, one immediately obtains tight error bounds for calculations such as \n<inline-formula><tex-math>$\\mathtt {x * pi}$</tex-math></inline-formula>\n, \n<inline-formula><tex-math>$\\mathtt {ln(2)/x}$</tex-math></inline-formula>\n, \n<inline-formula><tex-math>$\\mathtt {x/(y+z)}$</tex-math></inline-formula>\n, \n<inline-formula><tex-math>$\\mathtt {(x+y)*z}$</tex-math></inline-formula>\n, \n<inline-formula><tex-math>$\\mathtt {x/sqrt(y)}$</tex-math></inline-formula>\n, \n<inline-formula><tex-math>$\\mathtt {sqrt(x)/{y}}$</tex-math></inline-formula>\n, \n<inline-formula><tex-math>$\\mathtt {(x+y)(z+t)}$</tex-math></inline-formula>\n, \n<inline-formula><tex-math>$\\mathtt {(x+y)/(z+t)}$</tex-math></inline-formula>\n, \n<inline-formula><tex-math>$\\mathtt {(x+y)/(zt)}$</tex-math></inline-formula>\n, etc. in floating-point arithmetic.","PeriodicalId":13156,"journal":{"name":"IEEE Transactions on Emerging Topics in Computing","volume":"12 2","pages":"656-666"},"PeriodicalIF":5.1000,"publicationDate":"2023-07-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"IEEE Transactions on Emerging Topics in Computing","FirstCategoryId":"94","ListUrlMain":"https://ieeexplore.ieee.org/document/10186374/","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, INFORMATION SYSTEMS","Score":null,"Total":0}
引用次数: 0
Abstract
Assume we use a binary floating-point arithmetic and that
$\operatorname{RN}$
is the round-to-nearest function. Also assume that
$c$
is a constant or a real function of one or more variables, and that we have at our disposal a correctly rounded implementation of
$c$
, say
$\hat{c}= \operatorname{RN}(c)$
. For evaluating
$x \cdot c$
(resp.
$ x / c$
or
$c / x$
), the natural way is to replace it by
$\operatorname{RN}(x \cdot \hat{c})$
(resp.
$ \operatorname{RN}(x / \hat{c})$
or
$\operatorname{RN}(\hat{c}/ x)$
), that is, to call function
$\hat{c}$
and to perform a floating-point multiplication or division. This can be generalized to the approximation of
$n/d$
by
$\operatorname{RN}(\hat{n}/\hat{d})$
and the approximation of
$n \cdot d$
by
$\operatorname{RN}(\hat{n} \cdot \hat{d})$
, where
$\hat{n} = \operatorname{RN}(n)$
and
$\hat{d} = \operatorname{RN}(d)$
, and
$n$
and
$d$
are functions for which we have at our disposal a correctly rounded implementation. We discuss tight error bounds in ulps of such approximations. From our results, one immediately obtains tight error bounds for calculations such as
$\mathtt {x * pi}$
,
$\mathtt {ln(2)/x}$
,
$\mathtt {x/(y+z)}$
,
$\mathtt {(x+y)*z}$
,
$\mathtt {x/sqrt(y)}$
,
$\mathtt {sqrt(x)/{y}}$
,
$\mathtt {(x+y)(z+t)}$
,
$\mathtt {(x+y)/(z+t)}$
,
$\mathtt {(x+y)/(zt)}$
, etc. in floating-point arithmetic.
期刊介绍:
IEEE Transactions on Emerging Topics in Computing publishes papers on emerging aspects of computer science, computing technology, and computing applications not currently covered by other IEEE Computer Society Transactions. Some examples of emerging topics in computing include: IT for Green, Synthetic and organic computing structures and systems, Advanced analytics, Social/occupational computing, Location-based/client computer systems, Morphic computer design, Electronic game systems, & Health-care IT.