At Mark 23 of the NAG Toolbox new algorithmic functionality has been introduced in addition to improvements in existing areas.
The Toolbox now contains 1535 user-callable functions, all of which are documented, of which 149 are new at this mark. A
number of routines have had their interfaces improved, typically to make parameters optional or to remove them altogether.
Details of the changes are listed in the individual routine documents, or can be found in Interface Changes.

At this release we have also introduced a number of changes to the way that the toolbox can be used as follows:
**Function Handles** In previous versions of the toolbox, users had to provide some parameters as m-files. While this functionality is still
supported, users may also provide parameters as function handles. For more details see Using Function Handles instead of M-Files.
**Exceptions** In previous versions of the toolbox we issued warnings when problems arose. Many MATLAB users like to use try ... catch ... end blocks to handle exceptions. By default, we now only use warnings in cases where the output values may be of use (for example
in determining the cause of the problem, or as a ‘warm start’ in subsequent calls to the routine), or where the routine has
found a solution but there are caveats, for example as to its accuracy. In all other cases we now throw an exception. This
functionality can be turned off if the user prefers the old-style system, for more details see nag_issue_warnings.
**Integer Types** We have introduced some Integer Utility functions to help write programs that are portable between 32 and 64-bit platforms.
**New format for examples** All examples are now provided as single functions, rather than a collection of M-Files. Many examples have been updated.
**Long names** We have introduced long names for all NAG Toolbox routines. By default the documentation will show both the long and short
forms, but users can toggle between them using the links at the top left of the page.

Chapter C05 (Roots of One or More Transcendental Equations) has a new function for solving sparse nonlinear systems and a new function for determining values of the complex Lambert–W
function. Additionally, some functions have been added to replace existing functions, making it easier to pass information
through to user-supplied functions.

Chapter C06 (Summation of Series) has a function for summing a Chebyshev series at a vector of points.

Chapter C09 (Wavelet Transforms) has added one-dimensional continuous and two-dimensional discrete wavelet transform functions.

Chapter D02 (Ordinary Differential Equations) has a new suite of functions for solving boundary-value problems by an implementation of the Chebyshev pseudospectral method.

Chapter D04 (Numerical Differentiation) has added an alternative interface to its numerical differentiation function.

Chapter E01 (Interpolation) has added functions for interpolation of four- and five-dimensional data.

Chapter E02 (Curve and Surface Fitting) has an additional function for evaluating derivatives of a bicubic spline fit.

Chapter E04 (Minimizing or Maximizing a Function) has a new minimization by quadratic approximation function.

Chapter E05 (Global Optimization of a Function) has new functions implementing Particle Swarm Optimization. The existing function for multi-level coordinate search now
allows equality bound constraints.

Chapter F01 (Matrix Operations, Including Inversion) has new functions for matrix exponentials and functions of symmetric/Hermitian matrices; there is also a suite of functions
for converting storage formats of triangular and symmetric matrices.

Chapter F03 (Determinants) has new functions to evaluate the determinant of matrices factorized by functions from Chapter F07.

Chapter F07 (Linear Equations (LAPACK)) has LAPACK 3.2 mixed-precision Cholesky solvers, pivoted Cholesky factorizations, and functions that perform operations
on matrices in Rectangular Full Packed format.

Chapter F08 (Least Squares and Eigenvalue Problems (LAPACK)) has LAPACK 3.2 functions for computing the singular value decomposition by the fast Jacobi method.

Chapter F16 (Further Linear Algebra Support Routines) has new functions for evaluating norms of banded matrices.

Chapter G01 (Simple Calculations on Statistical Data) has new functions for quantiles of streamed data, bivariate Student's t-distribution and two probability density functions.

Chapter G02 (Correlation and Regression Analysis) has new functions for nearest correlation matrices, hierarchical mixed effects regression, and quantile regression.

Chapter G05 (Random Number Generators) has a new function for skip-ahead by powers of 2 and weighted sampling without replacement. In addition, the suite of base generators has been extended to include the L'Ecuyer
MRG32k3a generator. Skip-ahead for the Mersenne Twister base generator is also now available.

Chapter G07 (Univariate Estimation) has new functions for Pareto distribution parameter estimation and outlier detection by the method of Peirce.

Chapter G08 (Nonparametric Statistics) has routines for the Anderson–Darling goodness-of-fit test.

Chapter G12 (Survival Analysis) has a new function for computing rank statistics when comparing survival curves.

Chapter S (Approximations of Special Functions) has new beta and incomplete beta functions and the S30 sub-chapter has a new function for computing Greeks for Heston's
model option pricing formula.

© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2011