# Advice on Replacement Calls¶

The following list gives replacement advice for routines that have either been withdrawn or superseded.

Please contact NAG if you have any questions about how to make appropriate replacements in your code.

## correg - Correlation and Regression Analysis¶

### mixeff_hier_init¶

Hierarchical mixed effects regression, initialization function for correg.mixeff_hier_reml and correg.mixeff_hier_ml.

Deprecated.

Replaced by correg.lmm_init.

### mixeff_hier_ml¶

Hierarchical mixed effects regression using Maximum Likelihood (ML).

Deprecated.

Replaced by correg.lmm_fit.

### mixeff_hier_reml¶

Hierarchical mixed effects regression using Restricted Maximum Likelihood (REML).

Deprecated.

Replaced by correg.lmm_fit.

### mixeff_ml¶

Linear mixed effects regression using Maximum Likelihood (ML).

Deprecated.

Replaced by correg.lmm_init followed by correg.lmm_fit.

### mixeff_reml¶

Linear mixed effects regression using Restricted Maximum Likelihood (REML).

Deprecated.

Replaced by correg.lmm_init followed by correg.lmm_fit.

None given.

## eigen - Eigenvalues and Eigenvectors¶

### withdraw_real_band_geneig¶

Eigenvector of generalized real banded eigenproblem by inverse iteration.

Withdrawn at Mark 27.

#### Reason for Replacement¶

The replacement functions sparseig.real_symm_band_solve (symmetric case) and sparseig.real_band_solve (nonsymmetric case) are threaded for parallel execution in multithreaded implementations. These functions are based on the ARPACK package and make calls to BLAS/LAPACK functions. These may be threaded within the vendor library used by the implementation, which provides an additional opportunity for multithreaded performance.

### withdraw_real_gen_qu_svd¶

Returns the Householder factorization of a real rectangular matrix. Part or all of the singular value decomposition may also be returned.

Withdrawn at Mark 27.

Replaced by lapackeig.dgeqrf and eigen.real_triang_svd.

#### Reason for Replacement¶

This function is replaced for multithreaded performance and the ability to benefit from vendor library performance (BLAS/LAPACK).

## fit - Curve and Surface Fitting¶

### withdraw_1dmmax¶

Minimax curve fit by polynomials.

Withdrawn at Mark 27.

Replaced by fit.dim1_minimax_polynomial.

None given.

## glopt - Global Optimization of a Function¶

### bnd_mcs_init¶

Initialization function for glopt.bnd_mcs_solve.

Deprecated.

There is no replacement for this function.

### bnd_mcs_optget_char¶

Get the setting of an ‘ON’/’OFF’-valued character option of glopt.bnd_mcs_solve.

Deprecated.

There is no replacement for this function.

### bnd_mcs_optget_int¶

Get the setting of an integer valued option of glopt.bnd_mcs_solve.

Deprecated.

There is no replacement for this function.

### bnd_mcs_optget_real¶

Get the setting of a real valued option of glopt.bnd_mcs_solve.

Deprecated.

There is no replacement for this function.

### bnd_mcs_option_check¶

Determine whether an option for glopt.bnd_mcs_solve has been set by you or not.

Deprecated.

There is no replacement for this function.

### bnd_mcs_optset_char¶

Set a single option for glopt.bnd_mcs_solve from an ‘ON’/’OFF’-valued character argument.

Deprecated.

There is no replacement for this function.

### bnd_mcs_optset_file¶

Supply option values for glopt.bnd_mcs_solve from external file.

Deprecated.

There is no replacement for this function.

### bnd_mcs_optset_int¶

Set a single option for glopt.bnd_mcs_solve from an integer argument.

Deprecated.

There is no replacement for this function.

### bnd_mcs_optset_real¶

Set a single option for glopt.bnd_mcs_solve from a real argument.

Deprecated.

There is no replacement for this function.

### bnd_mcs_optset_string¶

Set a single option for glopt.bnd_mcs_solve from a character string.

Deprecated.

There is no replacement for this function.

### bnd_mcs_solve¶

Global optimization by multi-level coordinate search, simple bounds, using function values only.

Deprecated.

Replaced by glopt.handle_solve_mcs.

#### Reason for Replacement¶

A new interface to the Multi-level Coordinate Search (MCS) algorithm to integrate it to the NAG optimization modelling suite has been introduced. This new function gives access to all of the suite facilities and uses the same interface as all compatible solvers, simplifying experimentation significantly.

## lapackeig - Least Squares and Eigenvalue Problems (LAPACK)¶

### dgeqpf¶

factorization, with column pivoting, of real general rectangular matrix.

Deprecated.

Replaced by lapackeig.dgeqp3.

### dgges¶

Computes, for a real nonsymmetric matrix pair, the generalized eigenvalues, the generalized real Schur form and, optionally, the left and/or right matrices of Schur vectors.

Deprecated.

Replaced by lapackeig.dgges3.

### dggev¶

Computes, for a real nonsymmetric matrix pair, the generalized eigenvalues, and optionally, the left and/or right generalized eigenvectors.

Deprecated.

Replaced by lapackeig.dggev3.

### dgghrd¶

Performs an orthogonal reduction of a pair of real general matrices to generalized upper Hessenberg form.

Deprecated.

Replaced by lapackeig.dgghd3.

### dggsvd¶

Computes the generalized singular value decomposition of a real matrix pair.

Deprecated.

Replaced by lapackeig.dggsvd3.

### dggsvp¶

Produces orthogonal matrices that simultaneously reduce the matrix and the matrix to upper triangular form.

Deprecated.

Replaced by lapackeig.dggsvp3.

### zgeqpf¶

factorization, with column pivoting, of complex general rectangular matrix.

Deprecated.

Replaced by lapackeig.zgeqp3.

### zgges¶

Computes, for a complex nonsymmetric matrix pair, the generalized eigenvalues, the generalized complex Schur form and, optionally, the left and/or right matrices of Schur vectors.

Deprecated.

Replaced by lapackeig.zgges3.

### zggev¶

Computes, for a complex nonsymmetric matrix pair, the generalized eigenvalues, and optionally, the left and/or right generalized eigenvectors.

Deprecated.

Replaced by lapackeig.zggev3.

### zgghrd¶

Performs a unitary reduction of a pair of complex general matrices to generalized upper Hessenberg form.

Deprecated.

Replaced by lapackeig.zgghd3.

### zggsvd¶

Computes the generalized singular value decomposition of a complex matrix pair.

Deprecated.

Replaced by lapackeig.zggsvd3.

### zggsvp¶

Produces unitary matrices that simultaneously reduce the complex, , matrix and the complex, , matrix to upper triangular form.

Deprecated.

Replaced by lapackeig.zggsvp3.

## linsys - Simultaneous Linear Equations¶

### withdraw_real_posdef_solve_1rhs¶

Solution of real symmetric positive definite simultaneous linear equations, one right-hand side using iterative refinement (Black Box).

Withdrawn at Mark 28.3.

Replaced by lapacklin.dposvx.

#### Reason for Replacement¶

This function has been replaced by lapacklin.dposvx for performance. The replacement function is threaded by NAG and may also be threaded in the vendor library (BLAS/LAPACK).

### withdraw_real_posdef_solve_ref¶

Solution of real symmetric positive definite simultaneous linear equations with multiple right-hand sides using iterative refinement (Black Box).

Withdrawn at Mark 28.3.

Replaced by lapacklin.dposvx.

#### Reason for Replacement¶

This function has been replaced by lapacklin.dposvx for performance. The replacement function is threaded by NAG and may also be threaded in the vendor library (BLAS/LAPACK).

### withdraw_real_square_solve_1rhs¶

Solution of real simultaneous linear equations, one right-hand side using iterative refinement (Black Box).

Withdrawn at Mark 28.3.

Replaced by lapacklin.dgesvx.

#### Reason for Replacement¶

This function has been replaced by lapacklin.dgesvx for performance. The replacement function is threaded by NAG and may also be threaded in the vendor library (BLAS/LAPACK).

### withdraw_real_square_solve_ref¶

Solution of real simultaneous linear equations with multiple right-hand sides using iterative refinement (Black Box).

Withdrawn at Mark 28.3.

Replaced by lapacklin.dgesvx.

#### Reason for Replacement¶

This function has been replaced by lapacklin.dgesvx for performance. The replacement function is threaded by NAG and may also be threaded in the vendor library (BLAS/LAPACK).

## ode - Ordinary Differential Equations¶

### withdraw_bvp_coll_nlin¶

Ordinary differential equations, general nonlinear boundary value problem, collocation technique.

Withdrawn at Mark 27.

Replaced by ode.bvp_coll_nlin_solve.

#### Reason for Replacement¶

This replacement was made primarily for reasons of threadsafety.

## omp - OpenMP Utilities¶

### get_nested¶

Tests the status of nested OpenMP parallelism.

Scheduled for withdrawal at Mark 31.3.

Replaced by omp.get_max_active_levels.

None given.

### set_nested¶

Enables or disables nested OpenMP parallelism.

Scheduled for withdrawal at Mark 31.3.

Replaced by omp.set_max_active_levels.

None given.

## opt - Minimizing or Maximizing a Function¶

### bounds_bobyqa_func¶

Bound constrained minimum, model-based algorithm, using function values only.

Deprecated.

#### Reason for Replacement¶

opt.handle_solve_dfno and opt.handle_solve_dfno_rcomm are a part of the new NAG optimization modelling suite (see the E04 Introduction) which allows you to define and solve various problems in a uniform manner. They also offer various algorithmic additions, such as a performance improvement on noisy problems, a possibility to progress towards the solution earlier than after initial function evaluations, heuristic stopping criteria, recovery from unavailable function evaluations, and various other algorithmic updates and tuning. In addition, opt.handle_solve_dfno_rcomm offers a reverse communication interface (see the E04 Introduction) which might be useful in some environments or if you can parallelize your function evaluations.

### lsq_uncon_quasi_deriv_comp¶

Unconstrained minimum of a sum of squares, combined Gauss–Newton and quasi-Newton algorithm, using first derivatives (comprehensive).

Deprecated.

Replaced by opt.handle_solve_bxnl.

#### Reason for Replacement¶

opt.handle_solve_bxnl is part of the new NAG optimization modelling suite (see the E04 Introduction), therefore the definition of the nonlinear residual function values and gradients need to be split into two separate subroutines. opt.handle_solve_bxnl offers a significant improvement in performance over opt.lsq_uncon_quasi_deriv_comp as well as additional functionality, such as the addition of variable bounds and user-evaluation recovery, amongst many others.

### lsq_uncon_quasi_deriv_easy¶

Unconstrained minimum of a sum of squares, combined Gauss–Newton and quasi-Newton algorithm, using first derivatives (easy-to-use).

Deprecated.

Replaced by opt.handle_solve_bxnl.

#### Reason for Replacement¶

opt.handle_solve_bxnl is part of the new NAG optimization modelling suite (see the E04 Introduction), therefore the definition of the nonlinear residual function values and gradients need to be split into two separate subroutines. opt.handle_solve_bxnl is a modern replacement for opt.lsq_uncon_quasi_deriv_easy and offers additional functionality, such as the addition of variable bounds and user-evaluation recovery, amongst many others.

### nlp1_sparse_option_file¶

Supply option values for opt.nlp1_sparse_solve from external file.

Deprecated.

Replaced by opt.handle_solve_ssqp.

#### Reason for Replacement¶

This was an option setting function for opt.nlp1_sparse_solve which has been superseded by opt.handle_solve_ssqp. opt.handle_solve_ssqp is part of the NAG optimization modelling suite (see the E04 Introduction) which uses the option setting facilities common to that suite.

### nlp1_sparse_option_string¶

Supply option values to opt.nlp1_sparse_solve from a character string.

Deprecated.

Replaced by opt.handle_solve_ssqp.

#### Reason for Replacement¶

This was an option setting function for opt.nlp1_sparse_solve which has been superseded by opt.handle_solve_ssqp. opt.handle_solve_ssqp is part of the NAG optimization modelling suite (see the E04 Introduction) which uses the option setting facilities common to that suite.

### nlp1_sparse_solve¶

Nonlinear programming (NLP), sparse, active-set SQP method, using function values and optionally first derivatives.

Deprecated.

Replaced by opt.handle_solve_ssqp.

#### Reason for Replacement¶

A modern Sequential Quadratic Programming (SQP) algorithm that uses the NAG optimization modelling suite (see the E04 Introduction) has been introduced. This new function opt.handle_solve_ssqp has access to all of the suite facilities and uses the same interface as all compatible solvers.

### nlp2_sparse_init¶

Initialization function for opt.nlp2_sparse_solve.

Deprecated.

Replaced by opt.handle_solve_ssqp.

#### Reason for Replacement¶

This was an initialization function for opt.nlp2_sparse_solve which has been superseded by opt.handle_solve_ssqp. opt.handle_solve_ssqp is part of the NAG optimization modelling suite (see the E04 Introduction) which uses the initialization facilities common to that suite.

### nlp2_sparse_jacobian¶

Determine the pattern of nonzeros in the Jacobian matrix for opt.nlp2_sparse_solve.

Deprecated.

Replaced by opt.handle_solve_ssqp.

#### Reason for Replacement¶

This was a sparsity structure defining function for opt.nlp2_sparse_solve which has been superseded by opt.handle_solve_ssqp. opt.handle_solve_ssqp is part of the NAG optimization modelling suite (see the E04 Introduction) which uses the problem defining facilities common to that suite.

### nlp2_sparse_option_double_get¶

Get the setting of a real valued option of opt.nlp2_sparse_solve.

Deprecated.

Replaced by opt.handle_solve_ssqp.

#### Reason for Replacement¶

This was an option getting function for opt.nlp2_sparse_solve which has been superseded by opt.handle_solve_ssqp. opt.handle_solve_ssqp is part of the NAG optimization modelling suite (see the E04 Introduction) which uses the option getting facilities common to that suite.

### nlp2_sparse_option_double_set¶

Set a single option for opt.nlp2_sparse_solve from a real argument.

Deprecated.

Replaced by opt.handle_solve_ssqp.

#### Reason for Replacement¶

This was an option setting function for opt.nlp2_sparse_solve which has been superseded by opt.handle_solve_ssqp. opt.handle_solve_ssqp is part of the NAG optimization modelling suite (see the E04 Introduction) which uses the option setting facilities common to that suite.

### nlp2_sparse_option_file¶

Supply option values for opt.nlp2_sparse_solve from external file.

Deprecated.

Replaced by opt.handle_solve_ssqp.

#### Reason for Replacement¶

This was an option setting function for opt.nlp2_sparse_solve which has been superseded by opt.handle_solve_ssqp. opt.handle_solve_ssqp is part of the NAG optimization modelling suite (see the E04 Introduction) which uses the option setting facilities common to that suite.

### nlp2_sparse_option_integer_get¶

Get the setting of an integer valued option of opt.nlp2_sparse_solve.

Deprecated.

Replaced by opt.handle_solve_ssqp.

#### Reason for Replacement¶

This was an option getting function for opt.nlp2_sparse_solve which has been superseded by opt.handle_solve_ssqp. opt.handle_solve_ssqp is part of the NAG optimization modelling suite (see the E04 Introduction) which uses the option getting facilities common to that suite.

### nlp2_sparse_option_integer_set¶

Set a single option for opt.nlp2_sparse_solve from an integer argument.

Deprecated.

Replaced by opt.handle_solve_ssqp.

#### Reason for Replacement¶

This was an option setting function for opt.nlp2_sparse_solve which has been superseded by opt.handle_solve_ssqp. opt.handle_solve_ssqp is part of the NAG optimization modelling suite (see the E04 Introduction) which uses the option setting facilities common to that suite.

### nlp2_sparse_option_string¶

Set a single option for opt.nlp2_sparse_solve from a character string.

Deprecated.

Replaced by opt.handle_solve_ssqp.

#### Reason for Replacement¶

This was an option setting function for opt.nlp2_sparse_solve which has been superseded by opt.handle_solve_ssqp. opt.handle_solve_ssqp is part of the NAG optimization modelling suite (see the E04 Introduction) which uses the option setting facilities common to that suite.

### nlp2_sparse_solve¶

Nonlinear programming (NLP), sparse, active-set SQP method, using function values and optionally first derivatives, recommended.

Deprecated.

Replaced by opt.handle_solve_ssqp.

#### Reason for Replacement¶

A modern Sequential Quadratic Programming (SQP) algorithm that uses the NAG optimization modelling suite (see the E04 Introduction) has been introduced. This new function opt.handle_solve_ssqp has access to all of the suite facilities and uses the same interface as all compatible solvers.

### qpconvex1_sparse_mps¶

Read MPS data file defining LP or QP problem, deprecated.

Deprecated.

Replaced by opt.miqp_mps_read.

None given.

### uncon_conjgrd_comp¶

Unconstrained minimum, preconditioned conjugate gradient algorithm, using first derivatives (comprehensive).

Deprecated.

Replaced by opt.handle_solve_bounds_foas.

#### Reason for Replacement¶

The new solver opt.handle_solve_bounds_foas is part of the NAG optimization modelling suite(see the E04 Introduction), therefore the definition of the objective function values and gradients need to be split into two separate subroutines. opt.handle_solve_bounds_foas offers a significant improvement in performance over opt.uncon_conjgrd_comp as well as additional functionality, such as the addition of variable bounds and monitoring.

### uncon_conjgrd_option_file¶

Supply option values for opt.uncon_conjgrd_comp from external file.

Deprecated.

There is no replacement for this function.

### uncon_conjgrd_option_string¶

Supply option values to opt.uncon_conjgrd_comp from a character string.

Deprecated.

There is no replacement for this function.

## pde - Partial Differential Equations¶

### withdraw_2d_gen_order2_checkgrid¶

Check initial grid data in pde.dim2_gen_order2_rectilinear.

Withdrawn at Mark 27.

There is no replacement for this function.

## quad - Quadrature¶

One-dimensional quadrature, adaptive, finite interval, strategy due to Piessens and de Doncker, allowing for badly behaved integrands (single abscissa interface).

Scheduled for withdrawal at Mark 31.3.

Replaced by quad.dim1_fin_general.

#### Reason for Replacement¶

quad.dim1_fin_general provides thread safety in passing of data to user-supplied function. quad.dim1_fin_general also requires the user-supplied function to calculate a vector of abscissae at once for greater efficiency and returns additional information on the computation (in the arrays and .

One-dimensional quadrature, adaptive, finite interval, variant of quad.dim1_fin_bad efficient on vector machines.

Scheduled for withdrawal at Mark 31.3.

Replaced by quad.dim1_fin_general.

#### Reason for Replacement¶

quad.dim1_fin_general provides thread safety in passing of data to user-supplied function. quad.dim1_fin_general also returns additional information on the computation (in the arrays and .

### dim1_fin_osc¶

One-dimensional quadrature, adaptive, finite interval, method suitable for oscillating functions (single abscissa interface).

Scheduled for withdrawal at Mark 31.3.

Replaced by quad.dim1_fin_osc_fn.

#### Reason for Replacement¶

quad.dim1_fin_osc_fn provides thread safety in passing of data to user-supplied function. quad.dim1_fin_osc_fn also requires the user-supplied function to calculate a vector of abscissae at once for greater efficiency and returns additional information on the computation (in the arrays and .

### dim1_fin_osc_vec¶

One-dimensional quadrature, adaptive, finite interval, variant of quad.dim1_fin_osc efficient on vector machines.

Scheduled for withdrawal at Mark 31.3.

Replaced by quad.dim1_fin_osc_fn.

#### Reason for Replacement¶

quad.dim1_fin_osc_fn provides thread safety in passing of data to user-supplied function. quad.dim1_fin_osc_fn also returns additional information on the computation (in the arrays and .

### dim1_fin_sing¶

One-dimensional quadrature, adaptive, finite interval, allowing for singularities at user-specified break-points (single abscissa interface).

Scheduled for withdrawal at Mark 31.3.

Replaced by quad.dim1_fin_brkpts.

#### Reason for Replacement¶

quad.dim1_fin_brkpts provides thread safety in passing of data to user-supplied function. quad.dim1_fin_brkpts also requires the user-supplied function to calculate a vector of abscissae at once for greater efficiency and returns additional information on the computation (in the arrays and .

### dim1_inf¶

One-dimensional quadrature, adaptive, infinite or semi-infinite interval.

Scheduled for withdrawal at Mark 31.3.

Replaced by quad.dim1_inf_general.

#### Reason for Replacement¶

quad.dim1_inf_general provides thread safety in passing of data to user-supplied function. quad.dim1_inf_general also requires the user-supplied function to calculate a vector of abscissae at once for greater efficiency and returns additional information on the computation (in the arrays and .

### withdraw_1d_gen_vec_multi_diagnostic¶

Diagnostic function for quad.dim1_gen_vec_multi_rcomm.

Withdrawn at Mark 28.3.

There is no replacement for this function.

#### Reason for Replacement¶

This function has been withdrawn as a separate diagnostic function is not required.

### withdraw_dim1_gauss_wgen¶

Old function for calculating weights and abscissae for Gaussian quadrature rules, replaced by quad.dim1_gauss_wgen.

Scheduled for withdrawal at Mark 31.3.

Replaced by quad.dim1_gauss_wgen.

None given.

## smooth - Smoothing in Statistics¶

### withdraw_kerndens_gauss¶

Kernel density estimate using Gaussian kernel.

Withdrawn at Mark 27.

Replaced by smooth.kerndens_gauss.

#### Reason for Replacement¶

The replacement routine introduces new functionality with respect to the automatic selection of a suitable window width.

#### Replacement Pseudocode¶

Old code:

# First call:
usefft = False
comm = {}
ns = ...
fft = np.empty(ns)
kg = withdraw_kerndens_gauss(
x, window, slo, shi, usefft, fft, comm,
)
# Subsequent call(s):
usefft = True
kg = withdraw_kerndens_gauss(
x, window, slo, shi, usefft, kg.fft, comm,
)


New code:

# First call:
comm = {}
ns = ...
kg = kerndens_gauss(
x, comm, wtype=1, window=window, slo=slo, shi=shi, ns=ns,
)
# Subsequent call(s):
kg = kerndens_gauss(
x, comm, wtype=1, window=window, ns=ns,
)


## stat - Simple Calculations on Statistical Data¶

### withdraw_plot_histogram¶

Lineprinter histogram of one variable.

Withdrawn at Mark 27.

There is no replacement for this function.

#### Reason for Replacement¶

Frequency tables generated by stat.frequency_table provide equivalent information.

### withdraw_plot_scatter_2var¶

Lineprinter scatterplot of two variables.

Withdrawn at Mark 27.

There is no replacement for this function.

### withdraw_plot_scatter_normal¶

Lineprinter scatterplot of one variable against Normal scores.

Withdrawn at Mark 27.

There is no replacement for this function.

## sum - Summation of Series¶

### withdraw_fft_hermitian_1d_multi_rfmt¶

Multiple one-dimensional Hermitian discrete Fourier transforms.

Scheduled for withdrawal at Mark 30.2.

#### Reason for Replacement¶

sum.fft_realherm_1d_multi_col provides a simpler interface for both forward and backward transforms. sum.fft_realherm_1d_multi_row returns real sequences in row order at the expense of efficiency.

### withdraw_fft_real_1d_multi_rfmt¶

Multiple one-dimensional real discrete Fourier transforms.

Scheduled for withdrawal at Mark 30.2.

#### Reason for Replacement¶

sum.fft_realherm_1d_multi_col provides a simpler interface for both forward and backward transforms. sum.fft_realherm_1d_multi_row retains original input ordering at the expense of efficiency.

## zeros - Zeros of Polynomials¶

### poly_complex¶

All zeros of complex polynomial, modified Laguerre’s method.

Deprecated.

Replaced by zeros.poly_complex_fpml.

None given.

### poly_real¶

All zeros of real polynomial, modified Laguerre’s method.

Deprecated.

Replaced by zeros.poly_real_fpml.

None given.