# NAG Library News, Mark 27.1

Settings help

FL Name Style:

## 1Introduction

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 1933 user-callable routines while the NAG CL Interface now consists of 1643. All of these routines are fully documented and 87 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 guage 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 145 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 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 method. 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 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 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 the Chapter G22 chapter.
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.

## 2Experimental Routines

At Mark 27 there are a number of routines which 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:
1. (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.
2. (b)the complexity of the routine, or suite of routines it is part of, are 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.

## 3New Unified Library

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.

## 4Changes to NAG Documentation

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 which 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.

## 5New Routines since Mark 26

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.

### 5.1New Routines at Mark 27.1

The NAG Library at Mark 27.1 included 88 new first order adjoint (a1w) routines:
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.

#### 5.1.2FL Interface

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
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

### 5.2New Routines at Mark 27

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

#### 5.2.2FL Interface

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\left(a,x\right)$ and $Q\left(a,x\right)$
s14cpf Logarithm of the beta function, vectorized $\mathrm{ln}B\left(a,b\right)$
s14cqf Regularized incomplete beta function, vectorized ${I}_{x}\left(a,b\right)$ 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}\left(-{z}^{2}\right)\mathrm{erfc}\left(-iz\right)$
s22caf Calculates values of real periodic angular Mathieu functions

### 5.3New Routines at Mark 26.2

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

### 5.4New Routines at Mark 26.1

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

## 6Internal Changes Affecting the User and Other Known Issues

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 which 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.

### 6.1Changes at Mark 27.1.1

Routine Summary of the changes
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.

### 6.2Changes at Mark 27.1

Routine Summary of the changes
e04rbc Limitations on overlapping cones have been lifted.
e04rbf Limitations on overlapping cones have been lifted.

### 6.3Changes at Mark 27

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 The algorithm underlying this routine has been altered to improve efficiency for large problem sizes on a multi-threaded system.
g02bef The algorithm underlying this routine has been altered to improve efficiency for large problem sizes on a multi-threaded system.
g02bff The algorithm underlying this routine has been altered to improve efficiency for large problem sizes on a multi-threaded system.
g02bgf The algorithm underlying this routine has been altered to improve efficiency for large problem sizes on a multi-threaded system.
g02bhf The algorithm underlying this routine has been altered to improve efficiency for large problem sizes on a multi-threaded system.
g02bjf The algorithm underlying this routine has been altered to improve efficiency for large problem sizes on a multi-threaded system.
g02bkf The algorithm underlying this routine has been altered to improve efficiency for large problem sizes on a multi-threaded system.
g02blf The algorithm underlying this routine has been altered to improve efficiency for large problem sizes on a multi-threaded system.
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.

### 6.4Changes at Mark 26.2

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.

### 6.5Changes at Mark 26.1

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.

### 6.6Changes at Mark 26

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 The algorithm used by this routine has been changed to produce more reliable results and work better on certain data sets.
e01tkf The algorithm used by this routine has been changed to produce more reliable results and work better on certain data sets.
e01tlf The algorithm used by this routine has been changed to produce more reliable results and work better on certain data sets.
e01tmf The algorithm used by this routine has been changed to produce more reliable results and work better on certain data sets.
e01tnf The algorithm used by this routine has been changed to produce more reliable results and work better on certain data sets.
e01zmf The algorithm used by this routine has been changed to produce more reliable results and work better on certain data sets.
e01znf The algorithm used by this routine has been changed to produce more reliable results and work better on certain data sets.
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.

## 7Withdrawn or Deprecated Routines

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