Libraries

XL C/C++ includes a runtime environment containing a number of libraries.

Standard C++ library

XL C/C++ ships a modified version of the Dinkum C++ Library, a conforming implementation of the Standard C++ Library. The Standard C++ Library consists of 51 headers, including 13 headers which constitute the Standard Template Library (STL). In addition, the Standard C++ Library works in conjunction with the 18 headers from the Standard C Library. The functions in these headers perform essential services such as input and output. They also provide efficient implementations of frequently used operations.

For more information, see the Standard C++ Library Reference.

C++ library extensions

In addition to the Standard C++ Library, XL C/C++ V13.1 supports many extensions to the C++ language as defined by the Draft Technical Report on C++ Library Extensions (TR1).

For more information on these language extensions, see Draft Technical Report on C++ Library Extensions (TR1).

Mathematical Acceleration Subsystem library

The Mathematical Acceleration Subsystem (MASS) library consists of scalar and vector mathematical built-in functions tuned specifically for optimum performance on supported processor architectures. You can choose a MASS library to support high-performance computing on a broad range of processors, or you can select a library tuned to support a specific processor family.

The MASS library functions support both 32-bit and 64-bit compilation modes and offer improved performance over the default libm math library routines. These libraries are threadsafe, and are called automatically when you request specific levels of optimization for your application. You can also make explicit calls to MASS library functions, regardless of whether optimization options are in effect or not.

For more information, see Using the Mathematical Acceleration Subsystem.

Basic Linear Algebra Subprograms

The Basic Linear Algebra Subprograms (BLAS) set of high-performance algebraic functions are shipped in the libxlopt library. You can use these functions to:
  • Compute the matrix-vector product for a general matrix or its transpose.
  • Perform combined matrix multiplication and addition for general matrices or their transposes.

For more information about using the BLAS functions, see Using the Basic Linear Algebra Subprograms.

Other libraries

The following libraries are also shipped with XL C/C++:
  • SMP Runtime Library supports both explicit and automated parallel processing.
  • The memory debug runtime library is used for diagnosing memory leaks. See Using memory heaps.
  • XL C++ Runtime Library contains support routines needed by the compiler.
  • UNIX System Laboratories (USL) I/O Stream Class Library contains stream classes for input and output capabilities for C++. This library is provided for use by old applications. For new applications, use the Standard C++ Library for portability.
  • USL Complex Mathematics Class Library contains classes for manipulating complex numbers. This library is provided for use by old applications. For new applications, use the Standard C++ Library for portability.
  • C++ Only The demangler library provides routines and classes for demangling linkage names created by the C++ compiler.

Support for Boost libraries

IBM® XL C/C++ for AIX®, V13.1 provides partial support for the Boost V1.55.0 libraries. A patch file is available that modifies the Boost V1.55.0 libraries so that they can be built and used with XL C/C++ applications. The patch or modification file does not extend nor provide additional functionality to the Boost libraries.

To access the patch file for building the Boost libraries, go to Boost Library Regression Test Summaries and select download required Boost modification file for your compiler release and platform.

You can download the latest Boost libraries at http://www.boost.org/.

For more information on support for libraries, search on the XL C/C++ Compiler support page at http://www.ibm.com/support/entry/portal/Overview/Software/Rational/XL_C~C++_for_AIX.