The Numerical Algorithms Group (NAG) has announced a major update to its library of numerical routines for C and C++ programmers, including new optimizers.
The mathematical and statistical routines in the NAG C Library can be used across multiple programming languages, environments and operating systems including Excel, Java and Microsoft .NET.
The new functionality of Mark 23 of the NAG C Library brings the total number of routines to 1452. It also has 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.
The C Library now has several new matrix functions: matrix exponential and functions of symmetric/Hermitian matrices, matrix logarithm, matrix sine, matrix cosine, hyperbolic matrix sine, hyperbolic matrix cosine for real and complex matrices.
Its Nearest Correlation Matrix functionality has been extended to include functions for k-factor structure and weights and bounds on the matrix elements.
One useful enhancement, that is not widely available elsewhere is a skip ahead function for the Mersenne Twister random number generator, a fast generator with extremely long period.
The newly added L’Ecuyer random number generator combines two multiple recursive generators to provide a sequence with good statistical properties and a long period.
New functions have been added for interpolation of four- and five-dimensional data. Also functions for two dimensional discrete wavelet transforms have been introduced; these are important tools often used for image processing.
Two new s linear quantile regression functions supplement the wide variety of regression techniques already available in the NAG libraries.
There are four new optimization techniques: Two new multi-start optimization functions further expand NAG’s global optimization coverage; minimization by quadratic approximation (BOBYQA) is of particular use with noisy functions and stochastic global optimization using Particle Swarm Optimization (PSO) is one of the most well-established of the stochastic approaches applied to this global optimization.