Intel® Decimal Floating-Point Math Library



Product Overview

Software implementation of the IEEE 754-2008 Decimal Floating-Point Arithmetic specification, aimed at financial applications, especially in cases where legal requirements make it necessary to use decimal, and not binary floating-point arithmetic (as computation performed with binary floating-point operations may introduce small, but unacceptable errors).

Note: the same package is available for download from

Features and Benefits

Ensures conformance with the IEEE Standard 754-2008 for Floating-Point Arithmetic, for decimal floating-point computations. The library implements all the mandatory functions defined for decimal floating-point arithmetic operations in IEEE Standard 754-2008, which is a replacement for the IEEE Standard 754-1985 for Binary Floating-Point Arithmetic.

The current release is 2.0 Update 2, which extends the previous release, 2.0 Update 1. Release 2.0 Update 1 of the library implemented all the decimal floating-point operations mandated by the IEEE Standard 754-2008 for Floating-Point Arithmetic, plus a set of transcendental functions (supported in 128-bit, 64-bit, and 32-bit decimal formats), including the ones specified in the technical report on decimal arithmetic ISO/IEC TR 24732 (available from For operations involving integer operands or results, the library supports signed and unsigned 8-, 16-, 32-, and 64-bit integers.

The library package contains: (1) a copy of the end user license agreement, eula.txt; (2) a README file; (3) a LIBRARY subdirectory with all the source files necessary to build the library in Linux*, HP-UX, Windows*, and other operating systems; (4) a TESTS subdirectory with source and input files necessary to build and run a reduced set of tests for the library and a README file which specifies how to build and run these tests; (5) an EXAMPLES subdirectory containing eight examples of calls to library functions with various combinations of build options.

Technical Requirements

This generic package should run on any platform in Linux*, Windows*, HP-UX*, Solaris*, or macOS*.

Primary Technology Contact

To report any issues, please send email to

Marius Cornea is a senior principal engineer at Intel, and is the principal maintainer of the Open Source version of the Intel® Decimal Floating-Point Math Library. He holds a master's degree in Electrical Engineering from the Polytechnic Institute of Cluj in Romania, and a Ph.D. degree in Computer Science from Purdue University in West Lafayette, IN. Since joining Intel in 1994, his work was related to scientific computation, design and development of numerical algorithms, floating-point emulation, exception handling, mathematical libraries, and new floating-point instruction definition and analysis. His e-mail is

For more complete information about compiler optimizations, see our Optimization Notice.




I submitted a question to the given email adress about an error in the bid64_pow function but did not get an answer yet, is the adress still valid?


Hello Keith,

There is no discussion forum, but you can send any related questions or observations to

Thank you


I am sorry you could not download it (sometimes trying again helps, but there might be a real problem indeed). We will check and will fix the issue, if there is one. In the meantime please download the same package from the alternate location indicated on this page (​ I checked that it works.

Thank you




Hello, Where is the discussion forum for this library? Thx, Keith :^)'s picture

Thank you! This is what I was looking for...

Please note that the library is also available on netlib (

There are 3 CPU designs that presently implement IEEE 754-2008. The first was the IBM System z9, in microcode. That was a prudent design approach since the z9 started shipping in 2005 (with the DFP-capable microcode somewhat later), well before the standard was officially finalized. A microcode (or what IBM more correctly calls millicode) implementation allowed any post-shipment correction if the draft standard shifted while still providing an orders-of-magnitude performance boost versus a software implementation.

IBM's POWER6 (2007) and System z10 (2008) processors both implement IEEE 754-2008 fully in hardware and in every core. By the time they shipped there was much less uncertainty about the final standard.

If you're a "CPU geek," there's a technical paper describing the z10 hardware implementation here:

The z10 DFP implementation is very similar to POWER6. There are 54 DFP instructions implemented in hardware, and they are common to the POWER6 and z10 CPUs (and z9, for that matter). The z10 decimal floating point unit adds support for 13 decimal fixed-point instructions, but these are simply preexisting instructions traditionally important to the z CPU family that were relocated and reimplemented for z10, to improve their performance.

The Intel® 8087 implemented everything that was important in the old IEEE standard 754 (even before it became a standard), but left certain operations to software. This will most likely be the case with the new standard too and any future hardware implementations of it (or rather of a subset; as the standard states, it is acceptable to implement it in a combination of HW and SW - no one can realistically expect a hardware-only implementation)

Weren't similar things said in 85. I mean if anyone (like a scientist or engineer) need that kind of fp performance they could buy a 8087 ;-)

I would think that decimal and long double (128 bit) would benefit considerably from direct hardware support. Still it would not surprise me if a full hardware implementation would take a couple of years (assuming the changes have been anticipated and are already 'in the pipe').

Actually, in my personal opinion there will not be a complete hardware implementation of the IEEE Standard 754-2008 any time soon (i.e. for many years to come). The reason is that there are many features in the standard - take correctly rounded transcendentals for example - that are extremely costly to implement in hardware, while very good software solutions exist, or can be found. There is no good justification to have a hardware-only implementation.
Marius Cornea


Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.