12.12. Numerical Libraries
Tiger ships with an impressive array of resources used for numerical computing. In addition to support for 64-bit computing, including 64-bit pointers for passing large arrays, and the optimized and extended mathematical libraries, libm and libmx, many numerical libraries are packaged within the Accelerate umbrella framework. The Accelerate umbrella framework includes libraries shipped with Mac OS X that have been optimized for high performance computing, including a several subframeworks, listed below. The Accelerate framework is located in /System/Library/Frameworks/Accelerate.framework, and its libraries have been optimized to take advantage of the G5 and the Velocity engine.
Subframework of the Accelerate framework. Includes BLAS, LAPACK, vDSP, vMathLib, vBasicOps, vBigNum, and vForce. It is located in /System/Library/Frameworks/vecLib.framework (see http://developer.apple.com/hardware/ve).
Complete and optimized set (levels 1, 2, and 3) of the basic linear algebra subprograms. (See http://www.netlib.org/blas/faq.html.)
Linear algebra package, written on top of the BLAS library. (See http://www.netlib.org/lapack/index.html.) Lapack is designed to run efficiently having most of the actual computations performed by optimized BLAS routines.
Digital signal processing. (See http://developer.apple.com/hardware/ve/downloads/vDSP.sit.hqx.)
A set of basic arithmetic operations. (See /System/Library/Frameworks/vecLib.framework/Versions/Current/Headers/vBasicOps.h.)
A set of basic arithmetic operations on large (128-bit) integers. (See /System/Library/Frameworks/vecLib.framework/Versions/Current/Headers/vBigNum.h.)
A set of basic vectorized transcendental functions, optimized for the Velocity engine. (See http://developer.apple.com/hardware/ve.)
A set of highly optimized elementary functions on many operands. (See /System/Library/Frameworks/vecLib.framework/Versions/Current/Headers/vForce.h.)
Subframework of the Accelerate framework. A set of highly optimized image processing filters. (See /System/Library/Frameworks/vImage.framework/Versions/Current/Headers/vImage.h.)
To compile code using a subframework of Accelerate you must include the header file with the following line of code.
For example, you can compile a program named prog.c, which makes use of the vecLib framework, as follows.
$ gcc -faltivec -framework Accelerate prog.c