The NAG Numerical Library is a software product developed and sold by The Numerical Algorithms Group. It is a
software library In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of ...
numerical analysis Numerical analysis is the study of algorithms that use numerical approximation (as opposed to symbolic computation, symbolic manipulations) for the problems of mathematical analysis (as distinguished from discrete mathematics). Numerical analysis ...
routines, containing more than 1,900 mathematical and statistical algorithms. Areas covered by the library include
linear algebra Linear algebra is the branch of mathematics concerning linear equations such as: :a_1x_1+\cdots +a_nx_n=b, linear maps such as: :(x_1, \ldots, x_n) \mapsto a_1x_1+\cdots +a_nx_n, and their representations in vector spaces and through matrix (mat ...
optimization Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criterion, from some set of available alternatives. Optimization problems of sorts arise i ...
, quadrature, the solution of
ordinary Ordinary or The Ordinary often refer to: Music * Ordinary (EP), ''Ordinary'' (EP) (2015), by South Korean group Beast * Ordinary (Every Little Thing album), ''Ordinary'' (Every Little Thing album) (2011) * Ordinary (Two Door Cinema Club song), "O ...
partial differential equations In mathematics Mathematics (from Greek: ) includes the study of such topics as numbers (arithmetic and number theory), formulas and related structures (algebra), shapes and spaces in which they are contained (geometry), and quantities and ...
regression analysis In statistical model A statistical model is a mathematical model A mathematical model is a description of a system A system is a group of Interaction, interacting or interrelated elements that act according to a set of rules to form a u ...
, and time series analysis. 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, Optimization problem, finding the minimum or maximum of a function, Curve fitting, fitting a curve or surface to data, or ordinary differential equation, solving a differential equation. The Library is available in the many forms, but namely the NAG C Library, the NAG Fortran Library, and the NAG Library for .NET. Its contents are accessible from several computing environments, including standard languages such as C (programming language), C, C++, Fortran, Visual Basic, Java (programming language), Java, Python and C Sharp (programming language), C#, as well as packages such as MATLAB, R (programming language), R, LabVIEW, Microsoft Excel, Excel, Origin (data analysis software), Origin and Ch (computer programming), Ch. Supported operating systems include the 32 bit and 64 bit versions of Windows (operating system), Windows, Linux and macOS, as well as Solaris (operating system), Solaris, AIX (operating system), AIX and HP-UX.


The original version of the NAG Library was written in Algol 60 and Fortran. It contained 98 user-callable routines, and was released for the International Computers Limited, ICL ICT 1900 series#1900 A series, 1906A and ICT 1900 series#The 1900 S series, 1906S machines on October 1, 1971. Three further Marks of the library appeared in the following five years; during this time the Algol version was ported to Algol 68, with the following platforms being supported: CDC 7600/CDC Cyber, CYBER (Control Data Corporation, CDC ALGOL 68), IBM 360/370/AMDAHL (FLACC ALGOL 68), ICT 1900 series, ICL 1900 (ALGOL 68R), ICL 1906A/S (ALGOL 68R), ICL 2900 (ALGOL 68RS) and Telefunken TR440 (ALGOL 68C). The first partially Vector processor, 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 is specially designed for distributed memory parallel computer architectures) was in the early 1990s. Mark 1 of the NAG C Library was released in 1990. In 1992, the Library incorporated LAPACK routines for the first time; NAG had been a collaborator in the LAPACK project since 1987. The first release of the NAG Library for SMP & multicore,NAG Library for SMP & multicore
/ref> which takes advantage of the Shared memory architecture, shared memory parallelism of SMP - Symmetric Multiprocessor System, Symmetric Multi-Processors (SMP) and Multi-core processor, multicore processors, appeared in 1997 for multiprocessor machines built using the DEC Alpha, Dec Alpha and SPARC architectures. The NAG Library for .NET, which is a Assembly (CLI), CLI DLL assembly containing methods and objects that give Common Language Infrastructure (CLI) users access to NAG algorithms, was first released in 2010.

Current version

Mark 27 of the NAG Library houses over 1,900 mathematical and statistical algorithms organised into chapters.

See also

*List of numerical-analysis software *List of numerical libraries



External links

NAG Numerical Libraries
History of computing in the United Kingdom Numerical libraries Science and technology in Oxfordshire