The

**Numerical Algorithms Group** (

**NAG**) is a software company which provides methods for the solution of mathematical and statistical problems, and offers services to users of

HPCHPC may refer to:* Handheld PC* Hasty Pudding cipher* Health Professions Council* Hemangiopericytoma* Hematopoietic progenitor cell* High-performance computing** Windows HPC Server 2008, an operating system for high-performance computing by Microsoft...

systems. Its products and services are employed by tens of thousands of users from

Global 500The FT Global 500 is an annual snapshot of the world’s largest companies to show how corporate fortunes have changed in the past year, highlighting relative performance of countries and sectors.-Ranking and methodology:...

companies, universities, supercomputing sites and numerous independent software vendors. As a not-for-profit organization, NAG reinvests its surpluses into the research and development of its products and services, and the fostering of new numerical and scientific talent. NAG serves its customers from offices in

OxfordThe city of Oxford is the county town of Oxfordshire, England. The city, made prominent by its medieval university, has a population of just under 165,000, with 153,900 living within the district boundary. It lies about 50 miles north-west of London. The rivers Cherwell and Thames run through...

,

ManchesterManchester is a city and metropolitan borough in Greater Manchester, England. According to the Office for National Statistics, the 2010 mid-year population estimate for Manchester was 498,800. Manchester lies within one of the UK's largest metropolitan areas, the metropolitan county of Greater...

, Chicago,

Tokyo, ; officially , is one of the 47 prefectures of Japan. Tokyo is the capital of Japan, the center of the Greater Tokyo Area, and the largest metropolitan area of Japan. It is the seat of the Japanese government and the Imperial Palace, and the home of the Japanese Imperial Family...

and

TaipeiTaipei City is the capital of the Republic of China and the central city of the largest metropolitan area of Taiwan. Situated at the northern tip of the island, Taipei is located on the Tamsui River, and is about 25 km southwest of Keelung, its port on the Pacific Ocean...

, through field sales staff in France and Germany, and via a global network of distributors.

## Origins

NAG was founded by

Brian FordBrian Ford, OBE is a British Mathematician who founded, and until his retirement in 2004, was director of the Numerical Algorithms Group . Ford gained a Ph.D. in Applied Mathematics from Nottingham University...

and others in 1970 as the

NottinghamNottingham is a city and unitary authority in the East Midlands of England. It is located in the ceremonial county of Nottinghamshire and represents one of eight members of the English Core Cities Group...

Algorithms Group, a collaborative venture between the universities of Birmingham, Leeds, Manchester, Nottingham and Oxford, and the

Atlas Computer LaboratoryThe Atlas Computer Laboratory on the Chilton, Oxfordshire campus shared by the Harwell Laboratory was one of the major computer laboratories in the world, which operated between 1961 and 1975 to provide a service to British scientists at a time when powerful computers were not usually available...

(now part of the

Rutherford Appleton LaboratoryThe Rutherford Appleton Laboratory is one of the national scientific research laboratories in the UK operated by the Science and Technology Facilities Council . It is located on the Harwell Science and Innovation Campus at Chilton near Didcot in Oxfordshire, United Kingdom...

). The original aim of the project was the development of a library of numerical and statistical subroutines for the

ICL-Companies and organizations:* ICL, the ICAO airline code for CAL Cargo Air Lines* International Computers Limited, a British computer hardware and services company, now known as Fujitsu Services...

1906A and 1906S machines which were in use at each of these sites. Code and algorithms for the library were contributed to the project by experts in the project, and elsewhere (for example, some of the

linear algebraLinear algebra is a branch of mathematics that studies vector spaces, also called linear spaces, along with linear functions that input one vector and output another. Such functions are called linear maps and can be represented by matrices if a basis is given. Thus matrix theory is often...

code was written by

Jim WilkinsonJames Hardy Wilkinson was a prominent figure in the field of numerical analysis, a field at the boundary of applied mathematics and computer science particularly useful to physics and engineering.-Early life:...

, who was an early supporter of the NAG project).

The project attracted the attention of universities with other types of computers and the second release of the library was implemented on new platforms. The project moved from Nottingham to Oxford University in 1973, when its name was changed to The Numerical Algorithms Group. NAG Ltd was founded as a not-for-profit company in 1976.

### The NAG Library

The

NAG LibraryNAG Numerical Libraries is a software product sold by The Numerical Algorithms Group Ltd . The product is a software library of numerical analysis routines. It comprises a collection of 1500 mathematical and statistical algorithms. Areas covered include linear algebra, optimization, quadrature,...

is the oldest and best-known product of NAG. Originally produced in 1971, the current version contains more than 1,700 routines and is used by developers to add mathematical and statistical functionality to their applications, or to solve complicated mathematical problems. The library includes routines for

- Local and global optimization
In mathematics and computer science, an optimization problem is the problem of finding the best solution from all feasible solutions. Optimization problems can be divided into two categories depending on whether the variables are continuous or discrete. An optimization problem with discrete...

of multivariate functions
- Solution of dense, banded and sparse linear equations; eigenvalue problems
- Curve & surface fitting
Curve fitting is the process of constructing a curve, or mathematical function, that has the best fit to a series of data points, possibly subject to constraints. Curve fitting can involve either interpolation, where an exact fit to the data is required, or smoothing, in which a "smooth" function...

; interpolationIn the mathematical field of numerical analysis, interpolation is a method of constructing new data points within the range of a discrete set of known data points....

- Solution of ordinary
In mathematics, an ordinary differential equation is a relation that contains functions of only one independent variable, and one or more of their derivatives with respect to that variable....

and partial differential equations; mesh generationMesh generation is the practice of generating a polygonal or polyhedral mesh that approximates a geometric domain. The term "grid generation" is often used interchangeably. Typical uses are for rendering to a computer screen or for physical simulation such as finite element analysis or...

- Numerical integration
Quadrature may refer to:In signal processing:*Quadrature amplitude modulation , a modulation method of using both an carrier wave and a 'quadrature' carrier wave that is 90° out of phase with the main, or in-phase, carrier...

; integral equations
- Solution of linear
In statistics, ordinary least squares or linear least squares is a method for estimating the unknown parameters in a linear regression model. This method minimizes the sum of squared vertical distances between the observed responses in the dataset and the responses predicted by the linear...

and nonlinearNon-linear least squares is the form of least squares analysis which is used to fit a set of m observations with a model that is non-linear in n unknown parameters . It is used in some forms of non-linear regression. The basis of the method is to approximate the model by a linear one and to...

least squares problemsThe method of least squares is a standard approach to the approximate solution of overdetermined systems, i.e., sets of equations in which there are more equations than unknowns. "Least squares" means that the overall solution minimizes the sum of the squares of the errors made in solving every...

- Finding the roots
A root-finding algorithm is a numerical method, or algorithm, for finding a value x such that f = 0, for a given function f. Such an x is called a root of the function f....

of nonlinear equations (including polynomials)
- Random number
Random number may refer to:* A number generated for or part of a set exhibiting statistical randomness.* A random sequence obtained from a stochastic process.* An algorithmically random sequence in algorithmic information theory....

generation
- Time series analysis
- Correlation
In statistics, dependence refers to any statistical relationship between two random variables or two sets of data. Correlation refers to any of a broad class of statistical relationships involving dependence....

and regressionIn statistics, regression analysis includes many techniques for modeling and analyzing several variables, when the focus is on the relationship between a dependent variable and one or more independent variables...

methods
- Multivariate
Multivariate statistics is a form of statistics encompassing the simultaneous observation and analysis of more than one statistical variable. The application of multivariate statistics is multivariate analysis...

methods

The original version of the NAG Library was written in

FortranFortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

and

Algol 60ALGOL 60 is a member of the ALGOL family of computer programming languages. It gave rise to many other programming languages, including BCPL, B, Pascal, Simula, C, and many others. ALGOL 58 introduced code blocks and the begin and end pairs for delimiting them...

; the Fortran implementation is still available today, along with the NAG C Library and the NAG Library for .NET . The Library is accessible from several computing environments, including standard languages such as

CC is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

,

C++C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

,

FortranFortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

,

Visual BasicVisual Basic is the third-generation event-driven programming language and integrated development environment from Microsoft for its COM programming model...

,

JavaJava is an island of Indonesia. With a population of 135 million , it is the world's most populous island, and one of the most densely populated regions in the world. It is home to 60% of Indonesia's population. The Indonesian capital city, Jakarta, is in west Java...

and C#, as well as packages such as

MATLABMATLAB is a numerical computing environment and fourth-generation programming language. Developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages,...

,

RR is a programming language and software environment for statistical computing and graphics. The R language is widely used among statisticians for developing statistical software, and R is widely used for statistical software development and data analysis....

,

LabVIEWLabVIEW is a system design platform and development environment for a visual programming language from National Instruments. LabVIEW provides engineers and scientists with the tools needed to create and deploy measurement and control systems.The graphical language is named "G"...

and

ExcelExcel may refer to:* Microsoft Excel, a spreadsheet application by Microsoft Corporation* Excel , a brand of chewing gum produced by Wrigley's* Excel , a crossover thrash/punk band from Venice, California...

.

Two further versions of the NAG Library are aimed at

multiprocessor machinesMultiprocessing is the use of two or more central processing units within a single computer system. The term also refers to the ability of a system to support more than one processor and/or the ability to allocate tasks between them...

: the NAG Library for SMP & multicore , which takes advantage of the

shared memoryIn computing, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies. Depending on context, programs may run on a single processor or on multiple separate processors...

parallelism of

Symmetric Multi-ProcessorsMultiprocessor system with centralized Shared-Memory called Main Memory operating under a single OS with two or more homogeneous processors....

(SMP) and multicore processors, and the NAG Parallel Library , which is designed for

distributed memoryIn computer science, distributed memory refers to a multiple-processor computer system in which each processor has its own private memory. Computational tasks can only operate on local data, and if remote data is required, the computational task must communicate with one or more remote processors...

parallel computers.

### NAG Fortran Compiler

The NAG Fortran Compiler is available on all major

UnixUnix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

platforms as well as

Microsoft WindowsMicrosoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

. Based on the world's first Fortran 90 compiler (which was developed by NAG), it currently includes support for the full Fortran 95 language, as well as many Fortran 2003 features.

## Management

The current

Chief Executive OfficerA chief executive officer , managing director , Executive Director for non-profit organizations, or chief executive is the highest-ranking corporate officer or administrator in charge of total management of an organization...

of NAG is Robert W. Meyer. A former engineering student at

Washington University in St. LouisWashington University in St. Louis is a private research university located in suburban St. Louis, Missouri. Founded in 1853, and named for George Washington, the university has students and faculty from all fifty U.S. states and more than 110 nations...

, he was the Executive Vice President of U.S. operations for NAG before being promoted to his current post. Dr. Meyer divides his time among NAG's Chicago,

OxfordThe city of Oxford is the county town of Oxfordshire, England. The city, made prominent by its medieval university, has a population of just under 165,000, with 153,900 living within the district boundary. It lies about 50 miles north-west of London. The rivers Cherwell and Thames run through...

and

Tokyo, ; officially , is one of the 47 prefectures of Japan. Tokyo is the capital of Japan, the center of the Greater Tokyo Area, and the largest metropolitan area of Japan. It is the seat of the Japanese government and the Imperial Palace, and the home of the Japanese Imperial Family...

offices and is a resident of

Wheaton, IllinoisWheaton is an affluent community located in DuPage County, Illinois, approximately west of Chicago and Lake Michigan. Wheaton is the county seat of DuPage County...

.

## External links