NAG Numerical Library

Users of the NAG Library call its routines from within their applications in order to incorporate its mathematical or statistical functionality and to solve numerical problems - for example, finding the minimum or maximum of a function, fitting a curve or surface to data, or solving a differential equation.

The NAG Library [1] can be accessed from a variety of languages and environments such as C/C++,[2] Fortran,[3] Python,[4] AD,[5] MATLAB,[6] Java [7] and .NET.

The first partially vectorized implementation of the NAG Fortran Library for the Cray-1 was released in 1983, while the first release of the NAG Parallel Library (which was specially designed for distributed memory parallel computer architectures) was in the early 1990s.

The first release of the NAG Library for SMP & Multicore,[10] which takes advantage of the shared memory parallelism of Symmetric Multi-Processors (SMP) and multicore processors, appeared in 1997 for multiprocessor machines built using the Dec Alpha and SPARC architectures.

Mark 29 of the NAG Library includes mathematical and statistical algorithms organised into chapters.