Error in ulps of the multiplication or division by a correctly-rounded function or constant in binary floating-point arithmetic
Résumé
Assume we use a binary floating-point arithmetic and that 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 ĉ = RN(c). For evaluating x • c (resp. x/c or c/x), the natural way is to replace it by RN(x • ĉ) (resp. RN(x/ĉ) or RN(ĉ/x)), that is, to call function ĉ and to perform a floatingpoint multiplication or division. This can be generalized to the approximation of n/d by RN(^n/ ^d) and the approximation of n • d by RN(^n • ^d), where ^n = RN(n) and ^d = 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 x * pi, ln(2)/x, x/(y + z), (x + y) * z, x/sqrt(y), sqrt(x)/y, (x + y)(z + t), (x + y)/(z + t), (x + y)/(zt), etc. in floating-point arithmetic.
Origine | Fichiers produits par l'(les) auteur(s) |
---|