The NAG Numerical Library is a
commercial software
Commercial software,
or, seldom, payware, is a computer software that is produced for sale or that serves commercial purposes. Commercial software can be proprietary software or free and open-source software.
Background and challenge
While ...
product developed and sold by The Numerical Algorithms Group Ltd. It is a
software library
In computing, a library is a collection of resources that can be leveraged during software development to implement a computer program. Commonly, a library consists of executable code such as compiled functions and classes, or a library can ...
of
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 (mathemat ...
,
optimization
Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criteria, from some set of available alternatives. It is generally divided into two subfiel ...
,
quadrature, the solution of
ordinary and
partial differential equations
In mathematics, a partial differential equation (PDE) is an equation which involves a multivariable function and one or more of its partial derivatives.
The function is often thought of as an "unknown" that solves the equation, similar to how ...
,
regression analysis, and
time series analysis
In mathematics, a time series is a series of data points indexed (or listed or graphed) in time order. Most commonly, a time series is a sequence taken at successive equally spaced points in time. Thus it is a sequence of discrete-time data. ...
.
Users of the NAG Library call its routines from within their applications 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 can be accessed from a variety of
programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s and environments such as
C/
C++,
Fortran,
Python,
Active Directory
Active Directory (AD) is a directory service developed by Microsoft for Windows domain networks. Windows Server operating systems include it as a set of processes and services. Originally, only centralized domain management used Active Direct ...
(AD),
MATLAB
MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementat ...
,
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, and
.NET
The .NET platform (pronounced as "''dot net"'') is a free and open-source, managed code, managed computer software framework for Microsoft Windows, Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft emplo ...
. The main supported systems are currently
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
and
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
running on x86-64 architectures;
32-bit
In computer architecture, 32-bit computing refers to computer systems with a processor, memory, and other major system components that operate on data in a maximum of 32- bit units. Compared to smaller bit widths, 32-bit computers can perform la ...
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
support is being phased out. Some NAG mathematical optimization solvers are accessible via the optimization modelling suite.
History
The original version of the NAG Library was written in
ALGOL 60
ALGOL 60 (short for ''Algorithmic Language 1960'') is a member of the ALGOL family of computer programming languages. It followed on from ALGOL 58 which had introduced code blocks and the begin and end pairs for delimiting them, representing a ...
and
Fortran. It contained 98 user-callable routines, and was released for the
International Computers Limited
International Computers Limited (ICL) was a British computer hardware, computer software and computer services company that operated from 1968 until 2002. It was formed through a merger of International Computers and Tabulators (ICT), English Ele ...
(ICL)
1906A and
1906S machines on October 1, 1971. Three further Marks of the library appeared in the following five years; during this time the
ALGOL
ALGOL (; short for "Algorithmic Language") is a family of imperative computer programming languages originally developed in 1958. ALGOL heavily influenced many other languages and was the standard method for algorithm description used by the ...
version was ported to ALGOL 68, with the following platforms being supported:
CDC 7600/
CYBER (
CDC
The Centers for Disease Control and Prevention (CDC) is the national public health agency of the United States. It is a United States federal agency under the Department of Health and Human Services (HHS), and is headquartered in Atlanta, ...
ALGOL 68
ALGOL 68 (short for ''Algorithmic Language 1968'') is an imperative programming language member of the ALGOL family that was conceived as a successor to the ALGOL 60 language, designed with the goal of a much wider scope of application and ...
),
IBM 360/370/AMDAHL (
FLACC ALGOL 68
ALGOL 68 (short for ''Algorithmic Language 1968'') is an imperative programming language member of the ALGOL family that was conceived as a successor to the ALGOL 60 language, designed with the goal of a much wider scope of application and ...
),
ICL 1900
ICT 1900 was a family of mainframe computers released by International Computers and Tabulators (ICT) and later International Computers Limited (ICL) during the 1960s and 1970s. The 1900 series was notable for being one of the few non-American ...
(
ALGOL 68R
ALGOL 68-R was the first implementation of the Algorithmic Language ALGOL 68.
In December 1968, the report on the Algorithmic Language ALGOL 68 was published. On 20–24 July 1970 a working conference was arranged by the International Federation ...
), ICL 1906A/S (
ALGOL 68R
ALGOL 68-R was the first implementation of the Algorithmic Language ALGOL 68.
In December 1968, the report on the Algorithmic Language ALGOL 68 was published. On 20–24 July 1970 a working conference was arranged by the International Federation ...
), ICL 2900 (
ALGOL 68RS) and
Telefunken
Telefunken was a German radio and television producer, founded in Berlin in 1903 as a joint venture between Siemens & Halske and the ''AEG (German company), Allgemeine Elektrizitäts-Gesellschaft'' (AEG) ("General electricity company").
Prior to ...
TR440 (
ALGOL 68C).
The first partially
vectorized implementation of the NAG Fortran Library for the
Cray-1
The Cray-1 was a supercomputer designed, manufactured and marketed by Cray Research. Announced in 1975, the first Cray-1 system was installed at Los Alamos National Laboratory in 1976. Eventually, eighty Cray-1s were sold, making it one of the ...
was released in 1983, while the first release of the NAG Parallel Library (which was specially designed for
distributed memory
In computer science, distributed memory refers to a Multiprocessing, multiprocessor computer system in which each Central processing unit, processor has its own private Computer memory, memory. Computational tasks can only operate on local data ...
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, 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
Alpha (original name Alpha AXP) is a 64-bit reduced instruction set computer (RISC) instruction set architecture (ISA) developed by Digital Equipment Corporation (DEC). Alpha was designed to replace 32-bit VAX complex instruction set computers ( ...
and
SPARC architectures. The NAG Library for .NET, which is a
CLI DLL assembly containing methods and objects that give
Common Language Infrastructure
The Common Language Infrastructure (CLI) is an open specification and technical standard originally developed by Microsoft and standardized by International Organization for Standardization, ISO/International Electrotechnical Commission, IEC (ISO/ ...
(CLI) users access to NAG algorithms, was first released in 2010.
Current version
Mark 29 of the NAG Library includes mathematical and statistical algorithms organised into chapters.
See also
*
List of numerical-analysis software
Listed here are notable end-user computer applications intended for use with numerical or data analysis:
Numerical-software packages
* Analytica is a widely used proprietary software tool for building and analyzing numerical models. It is a de ...
*
List of numerical libraries
References
{{Reflist
External links
The NAG Library
History of computing in the United Kingdom
Numerical libraries
Science and technology in Oxfordshire