The NAG Library for C and C++ programmers receives a major update including new optimizers

12 September 2012 - The Numerical Algorithms Group (NAG) announces new numerical functionality added to its numerical library for C and C++ programmers. The new functionality at Mark 23 of the NAG C Library brings the number of routines to 1452, all of which are expertly documented and includes two entirely new chapters plus extensions in the areas of statistics, nonlinear equations, wavelet transforms, ordinary differential equations, interpolation, surface fitting, optimization, matrix operations, linear algebra, large scale linear systems, and special functions.

Software developers writing in the popular C / C++ language that require accurate and reliable numerical functionality are faced with a dilemma. If they have the expertise they could consider writing and testing their own numerical code but this can be extremely time consuming for any nontrivial component. Alternatively they could be persuaded, primarily on initial financial outlay, to utilize freeware but this software is often unsupported and could therefore be considered a more risky option in the longer term. The most cost effective and safe option is to use a trusted numerical function provided by NAG as they have all been acutely tested and expertly documented; it can be relied upon to do the job.

The inherent flexibility of the mathematical and statistical routines in the NAG C Library enable it to be used across multiple programming languages, environments and operating systems including Excel, Java, Microsoft .NET, Visual Basic and many more.

New NAG C Library mathematical and statistical functionality:

  • Matrix Operations - As a result of a project with Professor Nick Higham at the University of Manchester the following matrix functions are now included in the NAG C Library - matrix exponential and functions of symmetric/Hermitian matrices, matrix logarithm, matrix sine, matrix cosine, hyperbolic matrix sine, and hyperbolic matrix cosine for real and complex matrices.
  • Nearest Correlation Matrix - The Nearest Correlation Matrix functionality has been extended to include functions for k-factor structure and weights and bounds on the matrix elements.
  • Skip ahead for the Mersenne Twister random number generator - The Mersenne Twister is a fast generator with extremely long period. Skipping ahead within the generator is not widely available elsewhere and consequently is a useful enhancement for many NAG C Library users.
  • L'Ecuyer random number generator - Combines two multiple recursive generators to provide a sequence with good statistical properties and a long period.
  • Interpolation - New functions have been added for interpolation of four- and five-dimensional data.
  • Two-dimensional Wavelets - Functions for two dimensional discrete wavelet transforms have been introduced; these are important tools often used for image processing.
  • New Optimization Techniques
    1. Multi-start Optimization - Two new functions further expand NAG's global optimization coverage.
    2. Minimization by Quadratic Approximation (BOBYQA) - of particular use with noisy functions.
    3. Stochastic Global Optimization using Particle Swarm Optimization - Particle Swarm Optimization (PSO) is one of the most well-established of the stochastic approaches applied to this global optimization.
  • Quantile Regression - One advantage of quantile regression versus the more usual least squares regression is that it is more robust if outliers are present in the response measurement.
  • Sparse Nonlinear functions - Can now be solved using a new function in our 'Roots of One or More Transcendental Equations' Chapter.

A Senior Quant from a Tier 1 Investment Bank commenting on Mark 23 releases of the NAG C Library said "We embed the NAG C Library in most of the bank's C++ Libraries. Of the new Mark 23 functionality that I have seen obvious finance highlights for us are the inclusion of matrix functions (especially exponential), the additional nearest correlation matrix functions, the skip ahead for Mersenne Twister (as this is pretty non trivial to implement) and the vectorized simple functions in the Statistics and Special Functions chapters. My colleagues will also be very pleased with the additional root finding algorithms and new local and global optimization functions".

More benefits of the NAG C Library:

  • Highly detailed documentation giving background information and function specification. In addition it guides users to the right function for their problem via decision trees.
  • Expert Support Service direct from NAG's algorithm development team - if users need help, NAG's development team, are on hand to offer assistance with problems.
  • Hands-on Product Training - NAG offers a wide range of tailored training courses either at our offices or in-house, including 'hands-on' practical sessions, helping users to get the most out of their software.

The NAG C Library is available for 32-bit and 64-bit Microsoft Windows and 64-bit Linux systems; it will also be available for 32-bit Linux and Mac OS X. 30 day trials of the full Library are available on request. For more information click here.

This news release was featured in the following publications:

Dr Dobb’s


Tech Online India

SC Online