This Article 
 Bibliographic References 
 Add to: 
Accelerating Correctly Rounded Floating-Point Division when the Divisor Is Known in Advance
August 2004 (vol. 53 no. 8)
pp. 1069-1072

Abstract—We present techniques for accelerating the floating-point computation of x/y when y is known before x. The proposed algorithms are oriented toward architectures with available fused-mac operations. The goal is to get exactly the same result as with usual division with rounding to nearest. It is known that the advanced computation of 1/y allows performing correctly rounded division in one multiplication plus two fused-macs. We show algorithms that reduce this latency to one multiplication and one fused-mac. This is achieved if a precision of at least n+1 bits is available, where n is the number of mantissa bits in the target format, or if y satisfies some properties that can be easily checked at compile-time. This requires a double-word approximation of 1/y (we also show how to get it). These techniques can be used by compilers to accelerate some numerical programs without loss of accuracy.

[1] ANSI/IEEE Std. 754-1985, Binary Floating-Point Arithmetic, IEEE Press, Piscataway, N.J., 1985 (also called ISO/IEC 559).
[2] N. Brisebarre, J.-M. Muller, and S.K. Raina, Supplementary Material to 'Accelerating Correctly Rounded Floating-Point Division when the Divisor Is Known in Advance' fpdiv.html, 2004.
[3] M. Cornea-Hasegan and B. Norin, IA-64 Floating-Point Operations and the IEEE Standard for Binary Floating-Point Arithmetic Intel Technology J., Q4, 1999.
[4] M.D. Ercegovac and T. Lang, Division and Square Root: Digit-Recurrence Algorithms and Implementations. Boston: Kluwer Academic, 1994.
[5] A. Feldstein and R. Goodman, Convergence Estimates for the Distribution of Trailing Digits J. ACM, vol. 23, pp. 287-297, 1976.
[6] D. Goldberg, What Every Computer Scientist Should Know about Floating-Point Arithmetic ACM Computing Surveys. vol. 23, no. 1, pp. 5-47, Mar. 1991.
[7] W. Kahan, Lecture Notes on the Status of IEEE-754 http://http.cs., 1996.
[8] D. Knuth, The Art of Computer Programming, vol. 2. Reading, Mass.: Addison Wesley, 1973.
[9] I. Koren, Computer Arithmetic Algorithms, Englewood Cliffs, N.J.: Prentice Hall, 1993.
[10] P.W. Markstein, IA-64 and Elementary Functions: Speed and Precision. Hewlett-Packard Professional Books, Prentice Hall, 2000.
[11] P.W. Markstein, Computation of Elementary Functions on the IBM Risc System/6000 Processor IBM J. Research and Development, vol. 34, no. 1, pp. 111-119, Jan. 1990.
[12] S.F. Oberman and M.J. Flynn, “Division Algorithms and Implementations,” IEEE Trans. Computers, vol. 46, no. 8, pp. 833-854, Aug. 1997.

Index Terms:
Computer arithmetic, floating-point arithmetic, division by software, division with fused-mac, compilation optimization.
Nicolas Brisebarre, Jean-Michel Muller, Saurabh Kumar Raina, "Accelerating Correctly Rounded Floating-Point Division when the Divisor Is Known in Advance," IEEE Transactions on Computers, vol. 53, no. 8, pp. 1069-1072, Aug. 2004, doi:10.1109/TC.2004.37
Usage of this product signifies your acceptance of the Terms of Use.