An Implementation of the IEEE 754R Decimal Floating-Point Arithmetic Using the Binary Encoding Format

Marius Cornea, Cristina Anderson, John Harrison, Ping Tak Peter Tang, Eric Schneider, Charles Tsen. Proceedings of the 18th IEEE Symposium on Computer Arithmetic, Montpellier, France 2007, IEEE Computer Society Press, pp. 148-157 2003.


The IEEE Standard 754-1985 for Binary Floating-Point Arithmetic was revised, and an important addition is the definition of decimal floating-point arithmetic. This is aimed mainly to provide a robust, reliable framework for financial applications that are often subject to legal requirements concerning rounding and precision of the results, because the binary floating-point arithmetic may introduce small but unacceptable errors. Using binary floating-point calculations to emulate decimal calculations in order to correct the issue has led to the existence of numerous proprietary software packages, each with its own characteristics and capabilities. IEEE 754R decimal arithmetic should unify the ways decimal floating-point calculations are carried out on various platforms. New algorithms and properties are presented in this paper which were used in what is likely the first complete implementation in software of the IEEE 754R decimal floating-point arithmetic, with emphasis on using efficiently binary operations. Performance results are included, showing promise that our approach is viable for applications that require decimal floating-point calculations.


Bibtex entry:

        author          = "Marius Cornea and Cristina Anderson and
                           John Harrison and Ping Tak Peter Tang and
                           Eric Schneider and Charles Tsen",
        title           = "An Implementation of the {IEEE} {754R} Decimal
                           Floating-Point Arithmetic Using the Binary Encoding
        booktitle       = "Proceedings, 18th {IEEE} Symposium
                           on Computer Arithmetic",
        address         = "Montpellier, France",
        publisher       = "IEEE Computer Society",
        year            = 2007,
        pages           = "29--37"}