Advertisement

Algorithms for the Basic Operations

  • Jean-Michel Muller
  • Nicolas Brunie
  • Florent de Dinechin
  • Claude-Pierre Jeannerod
  • Mioara Joldes
  • Vincent Lefèvre
  • Guillaume Melquiond
  • Nathalie Revol
  • Serge Torres
Chapter

Abstract

Among the many operations that the IEEE 754 standards specify (see Chapter  3), we will focus here and in the next two chapters on the five basic arithmetic operations: addition, subtraction, multiplication, division, and square root. We will also study the fused multiply-add (FMA) operator. We review here some of the known properties and algorithms used to implement each of those operators. Chapter  8 and Chapter  9 will detail some examples of actual implementations in, respectively, hardware and software.

References

  1. [83]
    N. Brunie, F. de Dinechin, and B. Dupont de Dinechin. A mixed-precision fused multiply and add. In 45th Asilomar Conference on Signals, Systems, and Computers, November 2011.Google Scholar
  2. [84]
    N. Brunie, F. de Dinechin, and B. Dupont de Dinechin. Mixed-precision merged multiplication and addition operator. Patent WO/2012/175828, December 2012.Google Scholar
  3. [116]
    M. Cornea, C. Anderson, J. Harrison, P. T. P. Tang, E. Schneider, and C. Tsen. A software implementation of the IEEE 754R decimal floating-point arithmetic using the binary encoding format. In 18th IEEE Symposium on Computer Arithmetic (ARITH-18), pages 29–37, June 2007.Google Scholar
  4. [117]
    M. Cornea, J. Harrison, C. Anderson, P. T. P. Tang, E. Schneider, and E. Gvozdev. A software implementation of the IEEE 754R decimal floating-point arithmetic using the binary encoding format. IEEE Transactions on Computers, 58(2):148–162, 2009.MathSciNetCrossRefGoogle Scholar
  5. [118]
    M. Cornea, J. Harrison, and P. T. P. Tang. Scientific Computing on Itanium ®; -based Systems. Intel Press, Hillsboro, OR, 2002.Google Scholar
  6. [184]
    L. Eisen, J. W. Ward, H. W. Tast, N. Mäding, J. Leenstra, S. M. Mueller, C. Jacobi, J. Preiss, E. M. Schwarz, and S. R. Carlough. IBM POWER6 accelerators: VMX and DFU. IBM Journal of Research and Development, 51(6):1–21, 2007.CrossRefGoogle Scholar
  7. [186]
    M. D. Ercegovac and T. Lang. Division and Square Root: Digit-Recurrence Algorithms and Implementations. Kluwer Academic Publishers, Boston, MA, 1994.zbMATHGoogle Scholar
  8. [187]
    M. D. Ercegovac and T. Lang. Digital Arithmetic. Morgan Kaufmann Publishers, San Francisco, CA, 2004.Google Scholar
  9. [260]
    E. Hokenek, R. K. Montoye, and P. W. Cook. Second-generation RISC floating point with multiply-add fused. IEEE Journal of Solid-State Circuits, 25(5):1207–1213, 1990.CrossRefGoogle Scholar
  10. [267]
    IEEE Computer Society. IEEE Standard for Floating-Point Arithmetic. IEEE Standard 754-2008, August 2008. Available at http://ieeexplore.ieee.org/servlet/opac?punumber=4610933.
  11. [269]
    IEEE Computer Society. IEEE Standard for Floating-Point Arithmetic (revision of IEEE Std 754-2008). 2017.Google Scholar
  12. [291]
    C.-P. Jeannerod, H. Knochel, C. Monat, and G. Revy. Faster floating-point square root for integer processors. In IEEE Symposium on Industrial Embedded Systems (SIES’07), pages 324–327, 2007.Google Scholar
  13. [292]
    C.-P. Jeannerod, H. Knochel, C. Monat, and G. Revy. Computing floating-point square roots via bivariate polynomial evaluation. IEEE Transactions on Computers, 60(2):214–227, 2011.MathSciNetCrossRefGoogle Scholar
  14. [293]
    C.-P. Jeannerod, H. Knochel, C. Monat, G. Revy, and G. Villard. A new binary floating-point division algorithm and its software implementation on the ST231 processor. In 19th IEEE Symposium on Computer Arithmetic (ARITH-19), June 2009.Google Scholar
  15. [359]
    T. Lang and J. D. Bruguera. Floating-point multiply-add-fused with reduced latency. IEEE Transactions on Computers, 53(8):988–1003, 2004.CrossRefGoogle Scholar
  16. [400]
    D. Lutz and N. Burgess. Overcoming double-rounding errors under IEEE 754-2008 using software. In 44th Asilomar Conference on Signals, Systems, and Computers, pages 1399–1401, November 2010.Google Scholar
  17. [406]
    P. Markstein. IA-64 and Elementary Functions: Speed and Precision. Hewlett-Packard Professional Books. Prentice-Hall, Englewood Cliffs, NJ, 2000.Google Scholar
  18. [424]
    R. K. Montoye, E. Hokonek, and S. L. Runyan. Design of the IBM RISC System/6000 floating-point execution unit. IBM Journal of Research and Development, 34(1):59–70, 1990.CrossRefGoogle Scholar
  19. [425]
    P. Montuschi and P. M. Mezzalama. Survey of square rooting algorithms. Computers and Digital Techniques, IEE Proceedings E., 137(1):31–40, 1990.CrossRefGoogle Scholar
  20. [467]
    S. F. Oberman. Floating point division and square root algorithms and implementation in the AMD-K7 microprocessor. In 14th IEEE Symposium on Computer Arithmetic (ARITH-14), pages 106–115, April 1999.Google Scholar
  21. [492]
    J. A. Pineiro and J. D. Bruguera. High-speed double-precision computation of reciprocal, division, square root, and inverse square root. IEEE Transactions on Computers, 51(12):1377–1388, 2002.MathSciNetCrossRefGoogle Scholar
  22. [501]
    E. Quinnell, E. E. Swartzlander, and C. Lemonds. Floating-point fused multiply-add architectures. In 41st Asilomar Conference on Signals, Systems, and Computers, pages 331–337, November 2007.Google Scholar
  23. [502]
    S.-K. Raina. FLIP: a Floating-point Library for Integer Processors. Ph.D. thesis, École Normale Supérieure de Lyon, September 2006. Available at http://www.ens-lyon.fr/LIP/Pub/PhD2006.php.
  24. [511]
    J. E. Robertson. A new class of digital division methods. IRE Transactions on Electronic Computers, EC-7:218–222, 1958. Reprinted in [583].CrossRefGoogle Scholar
  25. [533]
    S. M. Rump, P. Zimmermann, S. Boldo, and G. Melquiond. Computing predecessor and successor in rounding to nearest. BIT Numerical Mathematics, 49(2):419–431, 2009.MathSciNetCrossRefGoogle Scholar
  26. [550]
    P.-M. Seidel. Multiple path IEEE floating-point fused multiply-add. In 46th International Midwest Symposium on Circuits and Systems, pages 1359–1362, 2003.Google Scholar
  27. [602]
    K. D. Tocher. Techniques of multiplication and division for automatic binary computers. Quarterly Journal of Mechanics and Applied Mathematics, 11(3):364–384, 1958.MathSciNetCrossRefGoogle Scholar
  28. [613]
    A. Vázquez. High-Performance Decimal Floating-Point Units. Ph.D. thesis, Universidade de Santiago de Compostela, 2009.Google Scholar
  29. [629]
    X. Wang, S. Braganza, and M. Leeser. Advanced components in the variable precision floating-point library. In Field-Programmable Custom Computing Machines, pages 249–258, 2006.Google Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  • Jean-Michel Muller
    • 1
  • Nicolas Brunie
    • 2
  • Florent de Dinechin
    • 3
  • Claude-Pierre Jeannerod
    • 4
  • Mioara Joldes
    • 5
  • Vincent Lefèvre
    • 4
  • Guillaume Melquiond
    • 6
  • Nathalie Revol
    • 4
  • Serge Torres
    • 7
  1. 1.CNRS - LIPLyonFrance
  2. 2.KalrayGrenobleFrance
  3. 3.INSA-Lyon - CITIVilleurbanneFrance
  4. 4.Inria - LIPLyonFrance
  5. 5.CNRS - LAASToulouseFrance
  6. 6.Inria - LRIOrsayFrance
  7. 7.ENS-Lyon - LIPLyonFrance

Personalised recommendations