The Community for Technology Leaders
Green Image
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
102 ms
(Ver )