Innocuous Double Rounding of Basic Arithmetic Operations

Pierre Roux

Abstract


Double rounding occurs when a floating-point value is first rounded to an intermediate precision before being rounded to a final precision. The result of two such consecutive roundings can differ from the result obtained when directly rounding to the final precision. Double rounding practically happens, for instance, when implementing the IEEE754 binary32 format with an arithmetic unit performing operations only in the larger binary64 format, such as done in the PowerPC or x87 floating-point units. It belongs to the folklore in the floating-point arithmetic community that double rounding is innocuous for the basic arithmetic operations (addition, division, multiplication, and square root) as soon as the final precision is about twice larger than the intermediate one. This paper adresses the formal proof of this fact considering underflow cases and its extension to radices other than two.

Keywords


floating-point arithmetic; double rounding; Coq

Full Text:

PDF (English)


DOI: 10.6092/issn.1972-5787/4359

Copyright (c) 2014 Pierre Roux

Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 Unported License.