At Mark 27, the NAG Library consists of four main interface sets: the NAG FL Interface, the NAG CL Interface, NAG CPP Interface and the NAG AD Library Interfaces (see Section 3). The NAG FL Interface now consists of 1946 user-callable routines while the NAG CL Interface now consists of 1656. All of these routines are fully documented and 100 are new since Mark 26. See Section 5 for the full list of new routines which includes new routines introduced at Mark 26 point releases.

Please note that the NAG CPP Interface is a set of C++ interfaces for the NAG Library supplied as a series of header files. A subset of the NAG Library has been provided to gauge customer interest. The Frequently Asked Questions provides details on where to download the NAG CPP Interface and how to give feedback.

In collaboration with the group Informatik 12: Software and Tools for Computational Engineering from RWTH Aachen University, the Library now includes the NAG AD Library, including the Introduction to the NAG AD Library and 151 user-callable routine documents listed in the AD Library Contents.

In addition to the new NAG AD Library, the following summarises additional content and changes to the NAG Library.

Chapter C02 (Zeros of Polynomials) has two new routines to find all the
zeros of a polynomial, with real or complex coefficients. The new
routines use a polishing technique to improve the accuracy of
roots and complement other root finders in Chapter C02.

Chapter C05 (Roots of One or More Transcendental Equations) has two new routines that find a solution of a system of nonlinear equations using Anderson acceleration.

Chapter C06 (Summation of Series) has a new routine that calculates the fast Gauss transform approximation to the discrete Gauss transform.

Chapter D01 (Quadrature) has replacements for four QUADPACK routines. The algorithm is the same, but the new interfaces provide a thread-safe means of passing data from your program to the user-supplied function. An additional routine in the NAG FL Interface has been renamed to match the equivalent in the NAG CL Interface.

Chapter E01 (Interpolation) has two new routines to compute a monotone convex interpolation function and to evaluate this function at a set of points. Also, a new routine is provided for efficient interpolation of data supplied on a rectangular grid, in any number of dimensions; this routine should be used for gridded data in preference to older routines which are primarily designed for interpolation of scattered data sets.

Chapter E04 (Minimizing or Maximizing a Function) has several significant additions to the NAG optimization modelling suite:

A new set of Derivative-free Optimization (DFO) solvers for general nonlinear objective with bound constraints and for least squares (data fitting, calibration) problems with bound constraints, available with both direct and reverse communication interfaces. These solvers should show an improved convergence rate compared to the existing DFO solutions in the NAG Library. They also have features designed to specifically handle noisy or expensive problems.

A new Second-order Cone Programming (SOCP) solver based on interior point methods. This is particularly useful for many convex optimization problems, such as convex quadratically constrained quadratic programming (QCQP), which can be reformulated as SOCP.

A new First-order Active-set (FOAS) method for bound-constrained large-scale nonlinear programming problems. The new solver is based on the nonlinear conjugate gradient method, it only requires first derivatives and has low memory requirements thus is suitable for very large scale problems. It is a modern replacement for the routine e04dgf/e04dga and shows significant improvement over it. This modern solver has robust features to deal with missing objective values, to handle missing derivative entries, and to detect slow progress.

A new trust-region solver (BXNL) aimed for small to medium-scale nonlinear least squares problems with bound constraints. It is ideal for data fitting and calibration, and serves as a modern replacement for the routine e04gbf. This solver handles bound constraints meaning that it finds solutions to problems where calibration parameters must stay within a given range. It supports a variety of features that make it a robust solver, such as recovery heuristics to handle missing values and using regularization techniques to provide a robust solution. The solver can also incorporate and use second-order derivative information when available.

Two routines for quadratic objective and constraint formulation. These are particularly useful to model and solve a quadratically constrained quadratic programming (QCQP) problem without extra effort for factorization and reformulation. Thus, the modelling process is greatly simplified. If the input formulation is convex, a direct call to the Second-order Cone Programming (SOCP) solver will automatically transform the problem into SOCP standard form and solve. Otherwise, a general nonlinear programming solver can be called to solve the model instead.

Several new routines were added and existing routines were extended to greatly enhance the freedom for the problem formulation and following modifications. You may now add new variables to the problem, disable (temporarily remove) and enable (bring back) a subset of existing variables or constraints, modify bounds of a variable or constraint, including fixing a variable, add blocks of linear constraints, redefine the objective function or constraints, modify individual coefficients of the linear objective and the linear constraints or set a given property to a subset of the decision variables.

Chapter F01 (Matrix Operations, Including Inversion) has two new routines for computing non-negative matrix factorizations; new routines for computing the product of two (real and complex) triangular matrices, performed in-place or as triangular update; and, two new routines for computing the Cheng–Higham modified Cholesky factorization of a real symmetric matrix and the positive definite perturbed input matrix from the factors.

Chapter F08 (Least Squares and Eigenvalue Problems (LAPACK)) has two (real and complex) new expert driver routines for computing the singular value decomposition (SVD) of general matrices; complex versions of the one-sided Jacobi SVD and its expert driver; and, an expert driver for the SVD of a real bidiagonal matrix.

Chapter F10 (Randomized Numerical Linear Algebra) is a new chapter containing randomized linear algebra routines including a fast random projection and a randomized SVD algorithm. Randomized linear algebra routines are expected to outperform their deterministic counterparts in terms of computational efficiency, particularly on rank-deficient problems. In many cases, randomized linear algebra routines can achieve the same level of accuracy as deterministic algorithms.

Chapter F12 (Large Scale Eigenproblems) contains a new suite of routines implementing the FEAST algorithm. FEAST is a general-purpose eigensolver for standard, generalized and polynomial eigenvalue problems. It is suitable for both sparse and dense matrices, and routines are available for real, complex, symmetric, Hermitian and non-Hermitian eigenproblems.

What sets FEAST apart from other eigensolvers in the NAG Library is that it allows the user to specify a particular region in the complex plane within which eigenvalues will be found.

Chapter G02 (Correlation and Regression Analysis) has two new nearest correlation matrix routines, one for calculating a rank-constrained nearest correlation matrix and one that allows arbitrary elements of the input matrix to be fixed; a new routine that combines communication arrays from calls to either g02jcf or g02jff allowing for the pre-processing of data in parallel; and a new suite of routines that offer an alternative method of specifying linear mixed effects regression models. The model is specified using the modelling language implemented in Chapter G22.

The implementation of the suite of routines for calculating the Pearson product-moment correlation coefficients and correlation-like coefficients has undergone some changes. The algorithm used has not changed and the results obtained from these routines should be comparable to the results obtained from previous releases of the NAG Library. Some of the routines in the suite have been threaded by NAG and details are given in Section 8 of the individual routine documents.

Chapter G04 (Analysis of Variance) has a new routine for calculating the intraclass correlation (ICC) for a number of different rater reliability study designs.

Chapter G22 (Linear Model Specification) contains utility routines for aiding in the construction of design matrices for use when fitting linear regression models.

Chapter M01 (Sorting and Searching) has a new routine for searching a strictly ordered vector of real numbers for the elements of an unordered array of real numbers.

Chapter S (Approximations of Special Functions) contains a new routine for calculating a real-valued periodic angular Mathieu function and/or its derivative and a new set of routines to evaluate Struve functions ${H}_{0}$, ${H}_{1}$, ${L}_{0}$ and ${L}_{1}$. There are also 12 vectorized versions of existing special functions which evaluate at multiple points. Finally, the chapter contains a new routine for computing the implied volatility in a Black–Scholes option pricing model.

Chapter X06 (OpenMP Utilities) contains two new routines which set and return the maximum number of nested active parallel regions allowed.

At Mark 27 there are a number of routines that have been marked as ‘Experimental’. These routines have been flagged by a note at the top of the documentation.

Routines may be classified as experimental if:

- (a)the interface and / or functionality of the routine may change between marks of the Library. The routine will have been designed in such a way as to minimize the number of such changes.
- (b)the complexity of the routine, or suite of routines it is part of, is such that comprehensive testing is not practical. Routines classified as experimental have gone through the same testing and review processes as a normal Library routine, however, it is recommended that additional care is taken when using the routine.

A routine classified as experimental may be reclassified as no longer being experimental, at which point the interface will become fixed as per a normal Library routine.

At Mark 26 the NAG Fortran Library and the NAG C Library were considered as separate entities despite the fact that they shared, in large part, a common set of core algorithms.

At Mark 27 the NAG Library is a unification of these libraries, and additionally the NAG AD Library, into a single entity that can be called from many languages and environments, including C and Fortran. The NAG Library is now conceived and documented as having distinct interface sets: the NAG FL Interface, the NAG CL Interface and the NAG AD Library Interface.

At Mark 26 and at point release Mark 26.2 we made a number of changes to the documentation. This has been further developed to give you full access to a Library Manual that supports all the NAG interfaces available as part of the NAG Library.

The document "How to Use the NAG Library and its Documentation" has been replaced by two new documents, How to Use the NAG Library and the Guide to the NAG Library Documentation, providing general advice on how to use the Library and its documentation respectively. Interface specific information can be found in the Introduction to the NAG Library FL Interface, the Introduction to the NAG Library CL Interface and the Introduction to the NAG AD Library.

On the left of each HTML page, (when in full-screen view, otherwise at the head and foot of each page) you will find navigational links to each NAG interface which will provide you with all the supporting documentation you need to use a particular interface in addition to the Keyword Search box. See Section 7 in the Guide to the NAG Library Documentation.

Also, on the left or at the top of the page, you will find a Show Settings button which has been provided so that you can personalise your documentation to your preferred name style and specification language. See Section 5 in the Guide to the NAG Library Documentation.

Please note that PDF is no longer provided, but most browsers provide a print-to-PDF feature. See Section 10 in the Guide to the NAG Library Documentation

Finally, the specification of routines in routine documents (see for example Section 2 in **d03pdf/d03pda**) now includes the C++ Header interface which can be used to call a NAG Library routine from C or C++; the name used for this interface is the Fortran Interface short name appended by an underscore (e.g., d03faf_ corresponds to d03faf). For routines with ‘a’ and ‘f’ versions, the same approach also applies to the ‘a’ version (e.g., d03pda_ corresponds to d03pda). See Section 5.2 in the Guide to the NAG Library Documentation.

The lists in this section refer and link to the NAG FL Interface. In these lists there is a one-to-one correspondence between the NAG FL Interface and the NAG CL Interface; and, there is a direct hyperlink from the NAG FL Interface routine document to its corresponding NAG CL Interface routine document.

The new NAG AD Library routine documents currently available are listed in the AD Library Contents and there is a direct hyperlink from the NAG FL Interface routine document to its corresponding NAG AD Library routine document, and visa versa.

Since Mark 27.1, all NAG AD Library numerical routines have variants for computing adjoints, tangent linear derivatives or the purely primal computation using consistent interfaces.

Since Mark 27.1, C++ interfaces for a subset of NAG Library are also provided in the NAG CPP Interface. The currently available interfaces are listed in the CPP Interface Contents.

The C++ interfaces to the NAG AD Library have been updated
to make it easier to access dco/c++ types
and to use lambdas and other C++ callable as callback parameters.

In addition to
the variants previously available, second order variants
are now available for some routines in the AD library,
**a1t1w** and **t2w**, corresponding
to **dco/c++** types
dco::ga1s<dco::gt1s<double>::type>::type
and
dco::gt1s<dco::gt1s<double>::type>::type.

g02aa now supports the
symbolic strategy.

Routine | Purpose |
---|---|

f12jaf | Initialization routine for (f12jjf, f12jkf, f12jrf, f12jsf, f12jtf, f12juf and f12jvf) computing eigenvalues within a selected region of the complex plane, and eigenvectors, of a standard, generalized or polynomial eigenproblem |

f12jbf | Set a single option from a string (f12jjf, f12jkf, f12jrf, f12jsf, f12jtf, f12juf and f12jvf) |

f12jef | Setup routine for f12jjf and f12jrf. Computes nodes and weights for an elliptical contour, symmetric about the real line |

f12jff | Setup routine for f12jkf, f12jsf, f12jtf, f12juf and f12jvf. Computes nodes and weights for an elliptical contour in the complex plane |

f12jgf | Setup routine for f12jkf, f12jsf, f12jtf, f12juf and f12jvf. Creates nodes and weights for a custom contour in the complex plane |

f12jjf | Selected eigenvalues and eigenvectors of a real symmetric eigenproblem, reverse communication driver |

f12jkf | Selected eigenvalues and eigenvectors of a real nonsymmetric eigenproblem, reverse communication driver |

f12jrf | Selected eigenvalues and eigenvectors of a complex Hermitian eigenproblem, reverse communication driver |

f12jsf | Selected eigenvalues and eigenvectors of a complex symmetric eigenproblem, reverse communication driver |

f12jtf | Selected eigenvalues and eigenvectors of a complex non-Hermitian eigenproblem, reverse communication driver |

f12juf | Selected eigenvalues and eigenvectors of a symmetric polynomial eigenproblem, reverse communication driver |

f12jvf | Selected eigenvalues and eigenvectors of a nonsymmetric polynomial eigenproblem, reverse communication driver |

f12jzf | Destroy the data handle initialized by f12jaf and deallocate all the memory used |

In addition to the variants previously available, second order variants are now available for some routines in the AD library, **a1t1w** and **t2w**, corresponding to **dco/c++** types dco::ga1s<dco::gt1s<double>::type>::type and dco::gt1s<dco::gt1s<double>::type>::type.

The NAG Library at Mark 27.1 included
90 new first order adjoint (**a1w**) routines:

a00aa, c05qb, c05qc, c05qd, c05qs, c05rc, c05rd, d01rj, d01rk, d01rl, d01rm, d01tb, d01tc, d02bj, d02pe, d02pf, d02pq, d02pr, d02ps, d02pt, d02pu, d03pp, d03ra, e01bf, e04kf, e04nc, e04nd, e04ne, e04ra, e04ta, e04tb, e04tc, e04td, e04te, e04tj, e04uc, e04ud, e04ue, e04wb, e05ja, e05jb, e05jc, e05jd, e05je, e05jf, e05jg, e05jh, e05jj, e05jk, e05jl, e05uc, e05zk, f01ec, f01ef, f01ej, f01fc, f01fj, f03ba, f03bf, f03bn, f06pa, f06ya, f07aa, f07ae, f07ar, f07aw, f07fj, f07ue, f08fa, f08kb, f08ke, f08kp, f08me, f11bf, f11da, f11db, f11ja, f11jb, f11jc, f11xe, f11za, f11zb, g01ec, g01fb, g01fc, g01fe, g01ha, s15ab, s15ad, s18de

In addition, tangent linear derivatives (**t1w**) and purely primal computation using consistent interfaces (**p0w**) have been added for all routines in the NAG AD Library.

In a NAG AD Library distribution Mark 27.1.2 or later, you can now
programmatically select use of the ‘chunk’ tape memory
model by setting environment variable DCO_CHUNK_TAPE=1
before executing the included example program scripts or
batch files.

Routine | Purpose |
---|---|

c02aaf | Finds all the zeros of complex polynomial, fast modified Laguerre's method |

c02abf | Finds all the zeros of real polynomial, fast modified Laguerre's method |

d01rjf | One-dimensional quadrature, adaptive, finite interval, strategy due to Piessens and de Doncker, allowing for badly behaved integrands |

d01rkf | One-dimensional quadrature, adaptive, finite interval, method suitable for oscillating functions |

d01rlf | One-dimensional quadrature, adaptive, finite interval, allowing for singularities at user-specified break-points |

d01rmf | One-dimensional quadrature, adaptive, infinite or semi-infinite interval, strategy due to Piessens and de Doncker |

d01tcf | Calculation of weights and abscissae for Gaussian quadrature rules, general choice of rule |

e04ggf | Bound constrained nonlinear least squares, comprehensive trust-region algorithm using first (and second) derivatives |

e04rcf | Set a property for a set of variables, such as integrality |

e04rsf | Add quadratic objective function or constraint using full quadratic coefficient matrix to a problem initialized by e04raf |

e04rtf | Add quadratic objective function or constraint using factor of quadratic coefficient matrix to a problem initialized by e04raf |

e04rwf | Retrieve or write a piece of integer information in a problem handle initialized by e04raf |

e04taf | Add new variables to a problem initialized by e04raf |

e04tbf | Enable components of the model which were previously disabled by e04tcf |

e04tcf | Disable components in the problem initialized by e04raf |

e04tdf | Set or modify a bound for an existing constraint (a simple bound, a linear or nonlinear constraint) of a problem initialized by e04raf |

e04tef | Set or modify a single coefficient in the linear objective function of a problem initialized by e04raf |

e04tjf | Set or modify a single coefficient in a linear constraint of a problem initialized by e04raf |

f01dff | Matrix-matrix product, two real triangular matrices, update third matrix |

f01dtf | Matrix-matrix product, two complex triangular matrices, update third matrix |

f01mdf | Computes the modified Cholesky factorization of a real symmetric matrix |

f01mef | Computes the positive definite perturbed matrix $A+E$ from the factors of a modified Cholesky factorization of a real symmetric matrix |

s30acf | Black–Scholes–Merton implied volatility |

x06ajf | Limit the number of active nested parallel regions |

x06akf | Returns the maximum number of active nested parallel regions allowed |

The NAG Library at Mark 27 included
25 new first order adjoint (**a1w**) routines:

c05au, c05rb, d01bd, d01fc, d01ga, d01ua, e01aa, e01da, e02bc, e02de, e04ab, e04us, f07ad, f07aj, f07cd, f08ae, f08ah, f08ga, f11bd, f11be, g01ea, g01gc, g02aa, g02ab, g02da

Routine | Purpose |
---|---|

c05mbf | Solution of a system of nonlinear equations using Anderson acceleration |

e01cef | Interpolating variables, monotone convex Hagan–West procedure, one variable |

e01cff | Interpolated values, variables computed by e01cef, monotone convex Hagan–West procedure, one variable |

e01zaf | Interpolates an $n$-dimensional point on grid data using either linear, cubic or modified Shepard's method |

e04fgf | Reverse communication derivative-free (DFO) solver for a nonlinear least squares objective function with bounded variables |

e04jdf | Direct communication derivative-free (DFO) solver for a nonlinear objective function with bounded variables |

e04jef | Reverse communication derivative-free (DFO) solver for a nonlinear objective function with bounded variables |

e04kff | First-order active-set method for box constrained nonlinear optimization with low memory requirements |

e04ptf | Solve Second-order Cone Programming (SOCP) and other convex related problems, such as, quadratically constrained quadratic programming (QCQP), quadratic programming (QP), sparse, interior point method (IPM) |

e04rbf | Define a set of variables which form a second-order cone to a problem initialized by e04raf |

e04saf | Load a problem from a file to a new handle for the NAG optimization modelling suite; supported formats: extended MPS, SDPA |

f01dgf | Matrix-matrix product, two real lower or upper triangular matrices |

f01duf | Matrix-matrix product, two complex lower or upper triangular matrices |

f01saf | Non-negative matrix factorization of real non-negative matrix |

f01sbf | Non-negative matrix factorization of real non-negative matrix (reverse communication) |

f08kmf | Computes all or selected singular values of the singular value decomposition of a real general matrix, optionally computing the corresponding left and right singular vectors |

f08kvf | Computes the singular value decomposition of a complex matrix, optionally computing the left and/or right singular vectors (preconditioned Jacobi) |

f08kwf | Computes the singular value decomposition of a complex matrix, optionally computing the left and/or right singular vectors (fast Jacobi) |

f08kzf | Computes all or selected singular values of the singular value decomposition of a complex general matrix, optionally computing the corresponding left and right singular vectors |

f08mbf | Computes all or selected singular values of the singular value decomposition of a real square bidiagonal matrix, optionally computing the corresponding left and right singular vectors |

f10caf | Computes the singular value decomposition of a real matrix, optionally computing the left and/or right singular vectors |

f10daf | Computes a fast random projection of a real matrix using a discrete cosine transform |

f11zcf | Sorts and merges elements of a real sparse rectangular matrix, represented in coordinate storage format, and provides the compressed column storage format of the result |

g02akf | Computes the rank-constrained nearest correlation matrix to a real square matrix, using the method of Qi and Sun |

g02asf | Computes the nearest correlation matrix to a real square matrix, with fixed elements |

g02jff | Linear mixed effects regression, initialization routine for g02jhf |

g02jgf | Linear mixed effects regression, initialization routine for g02jgf and g02jhf |

g02jhf | Linear mixed effects regression using either Restricted Maximum Likelihood (REML) or Maximum Likelihood (ML) |

m01ndf | Searches an ordered set of real numbers using an $\mathit{O}\left(1\right)$ method |

s14anf | Gamma function, vectorized $\Gamma \left(x\right)$ |

s14apf | Log gamma function, vectorized $\mathrm{ln}\left(\Gamma \left(x\right)\right)$ |

s14bnf | Incomplete gamma functions, vectorized $P(a,x)$ and $Q(a,x)$ |

s14cpf | Logarithm of the beta function, vectorized $\mathrm{ln}B(a,b)$ |

s14cqf | Regularized incomplete beta function, vectorized ${I}_{x}(a,b)$ and its complement $1-{I}_{x}$ |

s15apf | Cumulative Normal distribution function, vectorized $P\left(x\right)$ |

s15aqf | Complement of cumulative Normal distribution function, vectorized $Q\left(x\right)$ |

s15arf | Complement of error function, vectorized $\mathrm{erfc}\left(x\right)$ |

s15asf | Error function, vectorized $\mathrm{erf}\left(x\right)$ |

s15atf | Dawson's integral, vectorized |

s15auf | Scaled complement of error function, vectorized $\mathrm{erfcx}\left(x\right)$ |

s15drf | Scaled complex complement of error function, vectorized $\mathrm{exp}(-{z}^{2})\mathrm{erfc}(-iz)$ |

s22caf | Calculates values of real periodic angular Mathieu functions |

The NAG Library at Mark 26.2 includes the first release of the NAG AD Library,
consisting of 19 First Order Adjoint (**a1w**) routines:

c05ay, d01fb, d01pa, d01rg, e01ba, e01be, e01bg, e01ea, e01eb, e02bb, e04dg, e04fc, e04gb, f07ca, f07ce, f07fd, f07fe, f08kd, s01ba.

Routine | Purpose |
---|---|

c05mdf | Solution of a system of nonlinear equations using Anderson acceleration (reverse communication) |

c06saf | Multidimensional fast Gauss transform |

e04fff | Derivative-free (DFO) solver for a nonlinear least squares objective function with bounded variables |

e04mtf | Linear programming (LP), sparse, interior point method (IPM) |

e04rmf | Define a nonlinear least squares objective function for a problem initialized by e04raf |

e04rxf | Retrieve or write a piece of real information in a problem handle initialized by e04raf |

g04gaf | Intraclass correlation (ICC) for assessing rater reliability |

g22yaf | Specify a linear model via a formula string |

g22ybf | Describe a dataset |

g22ycf | Construct a design matrix from a linear model specified using g22yaf |

g22ydf | Construct a vector indicating which columns of a design matrix to include in a submodel specified using g22yaf |

g22zaf | Destroy a G22 handle and deallocate all the memory used |

g22zmf | Option setting routine for Chapter G22 |

g22znf | Option getting routine for Chapter G22 |

s17gaf | Struve function of order $0$, ${H}_{0}\left(x\right)$ |

s17gbf | Struve function of order $1$, ${H}_{1}\left(x\right)$ |

s18gaf | Modified Struve function of order $0$, ${L}_{0}\left(x\right)$ |

s18gbf | Modified Struve function of order $1$, ${L}_{1}\left(x\right)$ |

s18gcf | The function ${I}_{0}\left(x\right)-{L}_{0}\left(x\right)$, where ${I}_{0}\left(x\right)$ is a modified Bessel function and ${L}_{0}\left(x\right)$ is a Struve function |

s18gdf | The function ${I}_{1}\left(x\right)-{L}_{1}\left(x\right)$, where ${I}_{1}\left(x\right)$ is a modified Bessel function and ${L}_{1}\left(x\right)$ is a Struve function |

The argument names of some routines have changed to be more consistent, particularly with regard to the names of user-supplied routine arguments. This will only affect those program units that use the FL Interface and also use the Fortran argument keyword facility to call routines that have new argument names. For example,

Call d01fcf(... , functn=myfun, ...)becomes, at Mark 27,

Call d01fcf(..., f=myfun, ...)where myfun is the user-supplied function argument.

The following routines have been significantly updated or enhanced since Mark 26 and details are available in each routine document.

Routine | Summary of the changes |
---|---|

e04ggc | Added support for underdetermined problems. Solver can export covariance matrix at a solution point. |

e04ggf | Added support for underdetermined problems. Solver can export covariance matrix at a solution point. |

e04rbc | Limitations on overlapping cones have been lifted. |

e04rbf | Limitations on overlapping cones have been lifted. |

e04sac | Functionality to read and store integer variables has been added. |

e04saf | Functionality to read and store integer variables has been added. |

s15adc | Modified to use a compiler-supplied erfc function, when available. |

s15adf | Modified to use a compiler-supplied erfc function, when available. |

s15aec | Modified to use a compiler-supplied erf function, when available. |

s15aef | Modified to use a compiler-supplied erf function, when available. |

Routine | Summary of the changes |
---|---|

f11zaf | The example for this routine has been extended to show how the routine can be used to add sparse matrices, and to demonstrate conversion of sparse matrices between Coordinate Storage and Compressed Column Storage formats. |

g01fbc | The algorithm underlying this routine has been altered to improve the accuracy in cases where ${\mathbf{df}}<3$. |

g01fbf | The algorithm underlying this routine has been altered to improve the accuracy in cases where ${\mathbf{df}}<3$. |

g02baf | The algorithm underlying this routine has been altered to improve efficiency for large problem sizes on a multi-threaded system. |

g02bbf | The algorithm underlying this routine has been altered to improve efficiency for large problem sizes on a multi-threaded system. |

g02bcf | The algorithm underlying this routine has been altered to improve efficiency for large problem sizes on a multi-threaded system. |

g02bdf | |

g02bef | |

g02bff | |

g02bgf | |

g02bhf | |

g02bjf | |

g02bkf | |

g02blf | |

g02jdc | The algorithm underlying this routine has been altered to improve efficiency. |

g02jdf | The algorithm underlying this routine has been altered to improve efficiency. |

g02jec | The algorithm underlying this routine has been altered to improve efficiency. |

g02jef | The algorithm underlying this routine has been altered to improve efficiency. |

g22ybc | Functionality has been expanded, an additional argument has been added to the interface and some of the error exits have been renumbered. |

g22ybf | Functionality has been expanded, an additional argument has been added to the interface and some of the error exits have been renumbered. |

Routine | Summary of the changes |
---|---|

e04ffc | The underlying algorithm has been improved, improving performance, and new options have been provided. |

e04fff | The underlying algorithm has been improved, improving performance, and new options have been provided. |

Routine | Summary of the changes |
---|---|

e04rec | Limitations on editing the model have been lifted. |

e04ref | Limitations on editing the model have been lifted. |

e04rfc | Limitations on editing the model have been lifted. |

e04rff | Limitations on editing the model have been lifted. |

e04rgc | Limitations on editing the model have been lifted. |

e04rgf | Limitations on editing the model have been lifted. |

e04rhc | Limitations on editing the model have been lifted. |

e04rhf | Limitations on editing the model have been lifted. |

e04rjc | Limitations on editing the model have been lifted. |

e04rjf | Limitations on editing the model have been lifted. |

e04rkc | Limitations on editing the model have been lifted. |

e04rkf | Limitations on editing the model have been lifted. |

e04rlc | Limitations on editing the model have been lifted. |

e04rlf | Limitations on editing the model have been lifted. |

e04rmc | Limitations on editing the model have been lifted. |

e04rmf | Limitations on editing the model have been lifted. |

e04stc | The name of the monitoring argument has been changed to monit, and there have been changes to the optional parameters. |

e04stf | The name of the monitoring argument has been changed to monit, and there have been changes to the optional parameters. |

e04svc | Limitations on model with fixed variables have been lifted. |

e04svf | Limitations on model with fixed variables have been lifted. |

g02dac | Corrections made to the documented array sizes and improvements made to the example program. |

g02dgc | Corrections made to the documented array sizes and improvements made to the example program. |

Routine | Summary of the changes |
---|---|

e01sgf | The algorithm used by this routine has been changed to produce more reliable results and work better on certain data sets. |

e01shf | The algorithm used by this routine has been changed to produce more reliable results and work better on certain data sets. |

e01tgf | The algorithm used by this routine has been changed to produce more reliable results and work better on certain data sets. |

e01thf | |

e01tkf | |

e01tlf | |

e01tmf | |

e01tnf | |

e01zmf | |

e01znf |

For details of all known issues which have been reported for the NAG Library please refer to the Known Issues lists for the Library FL Interface and CL Interface.

Since Mark 26, the following routines have been withdrawn or scheduled for withdrawal from the NAG FL Interface, or have been deprecated. For withdrawn routines, warning of their withdrawal has been included in the NAG Library Manual since Mark 25, together with advice on which routines to use instead.

Please note that unless a Mark of Withdrawal is shown below, the routine will continue to form part of the Library but you are advised to stop using the deprecated routines and to use the recommended replacement routines instead.

Please see the chapter introduction documents and the ‘FL Interface Replacement Calls Advice’ (or the CL version ‘CL Interface Replacement Calls Advice’) for more detailed guidance, including advice on how to change a call to the deprecated routine into a call to its recommended replacement, or use the links provided in the following table.

Routine | Status | Replacement Routine(s) |
---|---|---|

c02aff | Deprecated | c02aaf |

c02agf | Deprecated | c02abf |

c06fpf | To be withdrawn at Mark 28 | c06ppf or c06pqf |

c06fqf | To be withdrawn at Mark 28 | c06ppf or c06pqf |

c06gqc | To be withdrawn at Mark 29 | No replacement required |

c06gsc | To be withdrawn at Mark 29 | No replacement required |

c06gzc | To be withdrawn at Mark 29 | No replacement required |

d01ajf | Deprecated | d01rjf |

d01akf | Deprecated | d01rkf |

d01alf | Deprecated | d01rlf |

d01amf | Deprecated | d01rmf |

d01atf | Deprecated | d01rjf |

d01auf | Deprecated | d01rkf |

d01bcf | Deprecated | d01tcf |

d01rbf | To be withdrawn at Mark 28 | No replacement required |

d01sjc | Deprecated | d01rjc |

d01skc | Deprecated | d01rkc |

d01slc | Deprecated | d01rlc |

d01smc | Deprecated | d01rmc |

d01tac | To be withdrawn at Mark 28 | d01uac |

d02tkf | Withdrawn at Mark 27 |
d02tlf |

d03ryf | Withdrawn at Mark 27 |
No replacement required |

e02acf | Withdrawn at Mark 27 |
e02alf |

e04dgf | Deprecated | e04kff |

e04djf | Deprecated | No replacement routine required |

e04dkf | Deprecated | No replacement routine required |

e04jcf | Deprecated | e04jdf and e04jef |

f02sdf | Withdrawn at Mark 27 |
f12agf and f12fgf |

f02wdf | Withdrawn at Mark 27 |
f08aef and f02wuf |

f04abf | To be withdrawn at Mark 28 | f07fbf |

f04aef | To be withdrawn at Mark 28 | f07abf |

f04asf | To be withdrawn at Mark 28 | f07fbf |

f04atf | To be withdrawn at Mark 28 | f07abf |

f08bef | Deprecated | f08bff |

f08bsf | Deprecated | f08btf |

f08vaf | Deprecated | f08vcf |

f08vef | Deprecated | f08vgf |

f08vnf | Deprecated | f08vqf |

f08vsf | Deprecated | f08vuf |

f08waf | Deprecated | f08wcf |

f08wef | Deprecated | f08wff |

f08wnf | Deprecated | f08wqf |

f08wsf | Deprecated | f08wtf |

f08xaf | Deprecated | f08xcf |

f08xnf | Deprecated | f08xqf |

g01agf | Withdrawn at Mark 27 |
No replacement required |

g01ahf | Withdrawn at Mark 27 |
No replacement required |

g01ajf | Withdrawn at Mark 27 |
No replacement required |

g02jaf | Deprecated | g02jff followed by g02jhf |

g02jbf | Deprecated | g02jff followed by g02jhf |

g02jcf | Deprecated | g02jff |

g02jdf | Deprecated | g02jhf |

g02jef | Deprecated | g02jhf |

g10baf | Withdrawn at Mark 27 |
g10bbf |