Issue No. 02 - February (2008 vol. 57)

ISSN: 0018-9340

pp: 165-174

DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TC.2007.70813

ABSTRACT

We introduce an algorithm for multiplying a floating-point number $x$ by a constant $C$ that is not exactly representable in floating-point arithmetic. Our algorithm uses a multiplication and a fused multiply and add instruction. Such instructions are available in some modern processors such as the IBM Power PC and the Intel/HP Itanium. We give three methods for checking whether, for a given value of $C$ and a given floating-point format, our algorithm returns a correctly rounded result for any $x$. When it does not, some of our methods return all the values $x$ for which the algorithm fails. We generalize our study to the case where a wider internal format is used for the intermediate calculations, which gives a fourth method. Our programs and some additional information (such as the case where an arbitrary nonbinary even radix is used), as well as examples of runs of our programs can be downloaded from \\url{http://perso.ens-lyon.fr/jean-michel.muller/MultConstant.html}

INDEX TERMS

computer arithmetic, floating-point arithmetic

CITATION

Nicolas Brisebarre, Jean-Michel Muller, "Correctly Rounded Multiplication by Arbitrary Precision Constants",

*IEEE Transactions on Computers*, vol. 57, no. , pp. 165-174, February 2008, doi:10.1109/TC.2007.70813