The DFPAL Library, version 2.20
© Copyright IBM Corporation, 2007. All rights reserved.
[previous | contents | next] [printer friendly]


Most processors support binary floating point in hardware. However, binary floating point is not suitable for financial or human-centric applications. An alternative to binary floating point is decimal floating point arithmetic. Unlike binary floating point arithmetic, the decimal floating point performs arithmetic in base 10 to provide better accuracy. Further details about decimal arithmetic can be found at General Decimal Arithmetic. The IBM POWER6 processor implements decimal floating point arithmetic in hardware. Programming language decimal floating point support is enabled by IBM XLC C/C++ compiler version 9 release.

It will not be possible for many software vendors to migrate their build environment to the new compiler version required to utilize hardware decimal floating point. Typically, the compiler migration is not a trivial task due to regression, incompatibility and other concerns, furthermore it requires significant amount of resources and efforts. Additionally, such application will not be compatible and portable across platforms or compilers who do not support the decimal floating point feature. An application compiled with POWER6 as a target platform will not function on pre-POWER6 architectures (e.g. POWER5 family of processors) due to newer decimal floating point instructions available only with the POWER6 processor.

Decimal Floating Point Abstraction Layer (DFPAL) addresses these issues. DFPAL allows applications to run virtually on any platform and still provides hardware acceleration on the POWER6 processor. DFPAL provides the following features:

[previous | contents | next]

DFPAL is authored by Punit Shah (
Please send any corrections, comments or questions to
This page was updated on 21 Dec 2007.