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++ V11.1 supports extensive 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 intrinsic 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, are thread-safe, and offer improved performance over the default libm math library routines. They 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.

See "Using the Mathematical Acceleration Subsystem" for more information.

Basic Linear Algebra Subprograms

The Basic Linear Algebra Subprograms (BLAS) set of high-performance algebraic functions are shipped in the libxlopt library. These functions let you:
  • 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 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, you should use the Standard C++ Library.
  • USL Complex Mathematics Class Library contains classes for manipulating complex numbers. This library is provided for use by old applications. For new applications, you should use the Standard C++ Library.
  • C++ Only The demangler library provides routines and classes for demangling linkage names created by the C++ compiler.

Support for Boost libraries

XL C/C++ for AIX®, V11.1 partially supports the Boost V1.40.0 libraries. A patch file is available that modifies the Boost 1.40.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.

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++ Compilers support page at http://www.ibm.com/software/awdtools/xlcpp/aix/support/.