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

DFPAL Frequently Asked Questions

Q: Are there any success stories with DFPAL?
A: Yes. There are quite a few IBM and non-IBM enterprise class applications and middlewares are using DFPAL today.

Q: What version of decNumber is compatible with DFPAL?
A: DFPAL has been compiled and tested with variety of decNumber versions. It is highly recommended to use decNumber included in the DFPAL package. Please read release notes carefully, many DFPAL versions require some minimum decNumber version.

Q: Is there any special tuning needed for decNumber
A: Yes. Check decNumber release notes. Most of the decNumber defaults are sufficient for the DFPAL, such as DECDPUN and DECBUFFER. However, beginning decNumber version 3.40, the DECLITEND must be set 1, if the target platform is little-endian, or 0, if the target platform is big-endian. Refer to How to compile DFPAL? for more information.

Q: Does DFPAL allocate memory?
A: No. DFPAL does not allocate any memory to retain application memory management integrity. The memory needed by DFPAL is allocated by application on DFPAL's behalf, and passed to DFPAL using dfpalInit().

Q: But I see some memory allocation by decNumber.
A: With DECBUFFER unchanged from its default value, decNumber should not allocate any memory either. Additionally, consider using decFloat based arithmetic, which is much faster and does not allocate any memory. Refer to How to compile DFPAL? for more information.

Q: Is DFPAL thread safe?
A: Yes. However DFPAL must be built with DFPAL_THREAD_SAFE compile time switch. Refer to How to compile DFPAL? for more details.

Q: Are results (numeric value and exception status) the same between hardware and software mode of DFPAL?
A: The results are the same (with very few exceptions).

Q: Can I force DFPAL to use a particular execution method?
A: Yes. Set environment variable DFPAL_EXE_MODE to either DNSW (decNumber software) or PPCHW (PowerPC hardware) to force DFPAL to use particular execution mode. The DNSW mode will work on all cases, however DFPAL initialization will fail when using PPCHW on architecture where it is not possible. Refer to DFPAL management functions for more information.

Q: How does DFPAL performance compare to say binary floating point and compiler native decimal floating point?
A: Performance depends on many factors, and many time it is not even possible to compare due to inherent differences. However, our internal performance exercise revealed following consistent order (fastest to slowest): binary floating point, compiler native decimal floating point, DFPAL hardware, DFPAL software.

Q: Is there Linux on POWER hardware decimal floating point acceleration using DFPAL?
A: Yes. Linux on POWER support is similar to AIX. You can use either IBM XLC or GCC compiler on Linux on Power. Refer to How to compile DFPAL? for more information

Q: Can I integrate DFPAL into my application code?
A: Yes. DFPAL has been designed to compiler as standalone library or integrated into application code.

Q: If I use DFPAL now, then in future how can I migrate my application to use compiler native decimal floating point when it is possible? Will it require a code change?
A: DFPAL provides roadmap to migrate application to use compiler native decimal floating point. Using decNN...() macros in association with DFPAL_USE_COMPILER_DFP compile time switch bypasses DFPAL and uses compiler native decimal floating point. Refer to How to compile DFPAL? for more information.
[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.