At Mark 20 of the Fortran Library new functionality has been introduced in addition to improvements in existing areas. The Library now contains 1248 documented routines, of which 95 are new at this Mark. A completely new chapter on mesh generation has been introduced, and extensions have been included in the areas of zeros of polynomials, partial differential equations, eigenvalue problems (LAPACK), sparse linear algebra, random number generation, time series analysis and approximations of special functions.
In addition the provision of thread safe versions of existing routines has been significantly extended in Chapter C05 (Roots of One or More Transcendental Equations), Chapter D03 (Partial Differential Equations), Chapter E04 (Optimization) and Chapter G05 (Random Number Generators) to aid users developing multithreaded applications. Moreover, at this Mark we have produced fully thread safe libraries for several platforms.
The new chapter on Mesh Generation (Chapter D06) has routines for generating 2-D meshes together with a number of associated utility routines.
Routines for finding the roots of real and complex cubic and quartic equations have been added to Chapter C02 (Zeros of a Polynomial).
Chapter D03 (Partial Differential Equations) now includes routines for solving Black–Scholes equations.
Chapter F08 (Least-squares and Eigenvalue Problems (LAPACK)) has been extended to include routines for the solution of the generalized nonsymmetric eigenvalue problem, including the computation of the generalized Schur form.
Real and complex Jacobi preconditioners have been added to Chapter F11 (Sparse Linear Algebra).
The additions to Chapter G05 (Random Number Generation) include:
Chapter G13 (Time Series Analysis) has been extended with routines for parameter estimation and forecasting for univariate regression GARCH, asymmetric GARCH and EGARCH processes.
Chapter S (Approximations of Special Functions) has new routines for polygamma functions, zeros of Bessel functions, Jacobian functions, elliptic integrals and Legendre and associated Legendre functions.
The 95 new user-callable routines included in the NAG Fortran Library at Mark 20 are as follows.
C02AKF | All zeros of real cubic equation |
C02ALF | All zeros of real quartic equation |
C02AMF | All zeros of complex cubic equation |
C02ANF | All zeros of complex quartic equation |
D03NCF | Finite difference solution of the Black–Scholes equations |
D03NDF | Analytic solution of the Black–Scholes equations |
D03NEF | Compute average values for D03NDF |
D06AAF | Generates a two-dimensional mesh using a simple incremental method |
D06ABF | Generates a two-dimensional mesh using a Delaunay–Voronoi process |
D06ACF | Generates a two-dimensional mesh using an Advancing-front method |
D06BAF | Generates a boundary mesh |
D06CAF | Uses a barycentering technique to smooth a given mesh |
D06CBF | Generates a sparsity pattern of a Finite Element matrix associated with a given mesh |
D06CCF | Renumbers a given mesh using Gibbs method |
D06DAF | Generates a mesh resulting from an affine transformation of a given mesh |
D06DBF | Joins together two given adjacent (possibly overlapping) meshes |
E04USF | Minimum of a sum of squares, nonlinear constraints, sequential QP method, using function values and optionally first derivatives (comprehensive) |
E04WBF | Initialization routine for E04DGA, E04MFA, E04NCA, E04NFA, E04NKA, E04UCA, E04UFA, E04UGA and E04USA |
F08WEF | Orthogonal reduction of a pair of real general matrices to generalized upper Hessenberg form |
F08WHF | Balance a pair of real general matrices |
F08WJF | Transform eigenvectors of a pair of real balanced matrices to those of original matrix pair supplied to F08WHF (SGGBAL/DGGBAL) |
F08WSF | Unitary reduction of a pair of complex general matrices to generalized upper Hessenberg form |
F08WVF | Balance a pair of complex general matrices |
F08WWF | Transform eigenvectors of a pair of complex balanced matrices to those of original matrix pair supplied to F08WVF (CGGBAL/ZGGBAL) |
F08XEF | Eigenvalues and generalized Schur factorization of real generalized upper Hessenberg matrix reduced from a pair of real general matrices |
F08XSF | Eigenvalues and generalized Schur factorization of complex generalized upper Hessenberg matrix reduced from a pair of complex general matrices |
F08YKF | Left and right eigenvectors of a pair of real upper quasi-triangular matrices |
F08YXF | Left and right eigenvectors of a pair of complex upper triangular matrices |
F11DKF | Real sparse nonsymmetric linear systems, line Jacobi preconditioner |
F11DXF | Complex sparse nonsymmetric linear systems, line Jacobi preconditioner |
F11GDF | Real sparse symmetric linear systems, setup for F11GEF |
F11GEF | Real sparse symmetric linear systems, preconditioned conjugate gradient or Lanczos |
F11GFF | Real sparse symmetric linear systems, diagnostic for F11GEF |
F11GRF | Complex sparse symmetric linear systems, setup for F11GEF |
F11GSF | Complex sparse symmetric linear systems, preconditioned conjugate gradient or Lanczos |
F11GTF | Complex sparse symmetric linear systems, diagnostic for F11GEF |
G05HKF | Univariate time series, generate n terms of either a symmetric GARCH process or a GARCH process with asymmetry of the form (εt-1 + γ)2 |
G05HLF | Univariate time series, generate n terms of a GARCH process with asymmetry of the form (|εt-1| + γ εt-1)2 |
G05HMF | Univariate time series, generate n terms of an asymmetric Glosten, Jagannathan and Runkle (GJR) GARCH process |
G05HNF | Univariate time series, generate n terms of an exponential GARCH (EGARCH) process |
G05KAF | Pseudo-random real numbers, uniform distribution over (0,1), seeds and generator number passed explicitly |
G05KBF | Initialise seeds of a given generator for random number generating routines (that pass seeds expicitly) to give a repeatable sequence |
G05KCF | Initialise seeds of a given generator for random number generating routines (that pass seeds expicitly) to give non-repeatable sequence |
G05KEF | Pseudo-random logical (boolean) value, seeds and generator number passed explicitly |
G05LAF | Generates a vector of random numbers from a Normal distribution, seeds and generator number passed explicitly |
G05LBF | Generates a vector of random numbers from a Student's t-distribution, seeds and generator number passed explicitly |
G05LCF | Generates a vector of random numbers from a χ2 distribution, seeds and generator number passed explicitly |
G05LDF | Generates a vector of random numbers from an F-distribution, seeds and generator number passed explicitly |
G05LEF | Generates a vector of random numbers from a beta distribution, seeds and generator number passed explicitly |
G05LFF | Generates a vector of random numbers from a γ distribution, seeds and generator number passed explicitly |
G05LGF | Generates a vector of random numbers from a uniform distribution, seeds and generator number passed explicitly |
G05LHF | Generates a vector of random numbers from a triangular distribution, seeds and generator number passed explicitly |
G05LJF | Generates a vector of random numbers from an exponential distribution, seeds and generator number passed explicitly |
G05LKF | Generates a vector of random numbers from a lognormal distribution, seeds and generator number passed explicitly |
G05LLF | Generates a vector of random numbers from a Cauchy distribution, seeds and generator number passed explicitly |
G05LMF | Generates a vector of random numbers from a Weibull distribution, seeds and generator number passed explicitly |
G05LNF | Generates a vector of random numbers from a logistic distribution, seeds and generator number passed explicitly |
G05LPF | Generates a vector of random numbers from a Von Mises distribution, seeds and generator number passed explicitly |
G05LQF | Generates a vector of random numbers from an exponential mixture distribution, seeds and generator number passed explicitly |
G05LZF | Generates a vector of random numbers from a multivariate Normal distribution, seeds and generator number passed explicitly |
G05MAF | Generates a vector of random integers from a uniform distribution, seeds and generator number passed explicitly |
G05MBF | Generates a vector of random integers from a geometric distribution, seeds and generator number passed explicitly |
G05MCF | Generates a vector of random integers from a negative binomial distribution, seeds and generator number passed explicitly |
G05MDF | Generates a vector of random integers from a logarithmic distribution, seeds and generator number passed explicitly |
G05MEF | Generates a vector of random integers from a Poisson distribution with varying mean, seeds and generator number passed explicitly |
G05MJF | Generates a vector of random integers from a binomial distribution, seeds and generator number passed explicitly |
G05MKF | Generates a vector of random integers from a Poisson distribution, seeds and generator number passed explicitly |
G05MLF | Generates a vector of random integers from a hypergeometric distribution, seeds and generator number passed explicitly |
G05MRF | Generates a vector of random integers from a multinomial distribution, seeds and generator number passed explicitly |
G05MZF | Generates a vector of random integers from a general discrete distribution, seeds and generator number passed explicitly |
G05NAF | Pseudo-random permutation of an integer vector |
G05NBF | Pseudo-random sample from an integer vector |
G05PAF | Generates a realisation of a time series from an ARMA model |
G05PCF | Generates a realisation of a multivariate time series from a VARMA model |
G05QAF | Computes a random orthogonal matrix |
G05QBF | Computes a random correlation matrix |
G05QDF | Generates a random table matrix |
G05YAF | Multi-dimensional quasi-random number generator with a uniform probability distribution |
G05YBF | Multi-dimensional quasi-random number generator with a Gaussian or log-normal probability distribution |
G05ZAF | Selects either the basic generator or the Wichmann–Hill generator for those routines using internal communication |
G13FAF | Univariate time series, parameter estimation for either a symmetric GARCH process or a GARCH process with asymmetry of the form (εt-1 + γ)2 |
G13FBF | Univariate time series, forecast function for either a symmetric GARCH process or a GARCH process with asymmetry of the form (εt-1 + γ)2 |
G13FCF | Univariate time series, parameter estimation for a GARCH process with asymmetry of the form (|εt-1| + γ εt-1)2 |
G13FDF | Univariate time series, forecast function for a GARCH process with asymmetry of the form (|εt-1| + γ εt-1)2 |
G13FEF | Univariate time series, parameter estimation for an asymmetric Glosten, Jagannathan and Runkle (GJR) GARCH process |
G13FFF | Univariate time series, forecast function for an asymmetric Glosten, Jagannathan and Runkle (GJR) GARCH process |
G13FGF | Univariate time series, forecast function for an exponential GARCH (EGARCH) process |
G13FHF | Univariate time series, forecast function for an exponential GARCH (EGARCH) process |
S14AEF | Polygamma function ψ(n)(x) for real x |
S14AFF | Polygamma function ψ(n)(z) for complex z |
S17ALF | Zeros of Bessel functions Jα(x), J'α(x), Yα(x) or Y'α(x) |
S21CBF | Jacobian elliptic functions sn, cn and dn of complex argument |
S21CCF | Jacobian theta functions θk (x,q) of real argument |
S21DAF | General elliptic integral of 2nd kind F(z,k',a,b) of complex argument |
S22AAF | Legendre functions of 1st kind Pnm (x) or overline(Pnm(x)) |
The thread safe versions of existing routines included in the NAG Fortran Library at Mark 20 are as follows.
C05PDA | Solution of system of nonlinear equations using first derivatives (reverse communication) |
D03PCA | General system of parabolic PDEs, method of lines, finite differences, one space variable |
D03PDA | General system of parabolic PDEs, method of lines, Chebyshev C0 collocation, one space variable |
D03PHA | General system of parabolic PDEs, coupled DAEs, method of lines, finite differences, one space variable |
D03PJA | General system of parabolic PDEs, coupled DAEs, method of lines, Chebyshev C0 collocation, one space variable |
D03PPA | General system of parabolic PDEs, coupled DAEs, method of lines, finite differences, remeshing, one space variable |
E04ABA | Minimum, function of one variable using function values only |
E04BBA | Minimum, function of one variable, using first derivative |
E04CCA | Unconstrained minimum, simplex algorithm, function of several variables using function values only (comprehensive) |
E04DGA | Unconstrained minimum, preconditioned conjugate gradient algorithm, function of several variables using first derivatives (comprehensive) |
E04DJA | Read optional parameter values for E04DGF/E04DGA from external file |
E04DKA | Supply optional parameter values to E04DGF/E04DGA |
E04MFA | LP problem (dense) |
E04MGA | Read optional parameter values for E04MFF/E04MFA from external file |
E04MHA | Supply optional parameter values to E04MFF/E04MFA |
E04NCA | Convex QP problem or linearly-constrained linear least-squares problem (dense) |
E04NDA | Read optional parameter values for E04NCF/E04NCA from external file |
E04NEA | Supply optional parameter values to E04NCF/E04NCA |
E04NFA | QP problem (dense) |
E04NGA | Read optional parameter values for E04NFF/E04NFA from external file |
E04NHA | Supply optional parameter values to E04NFF/E04NFA |
E04NKA | LP or QP problem (sparse) |
E04NLA | Read optional parameter values for E04NKF/E04NKA from external file |
E04NMA | Supply optional parameter values to E04NKF/E04NKA |
E04UCA | Minimum, function of several variables, sequential QP method, nonlinear constraints, using function values and optionally first derivatives (forward communication, comprehensive) |
E04UDA | Read optional parameter values for E04UCF/E04UCA or E04UFF/E04UFA from external file |
E04UEA | Supply optional parameter values to E04UCF/E04UCA or E04UFF/E04UFA |
E04UFA | Minimum, function of several variables, sequential QP method, nonlinear constraints, using function values and optionally first derivatives (reverse communication, comprehensive) |
E04UGA | NLP problem (sparse) |
E04UHA | Read optional parameter values for E04UGF/E04UGA from external file |
E04UJA | Supply optional parameter values to E04UGF/E04UGA |
E04UQA | Read optional parameter values for E04USF/E04USA from external file |
E04URA | Supply optional parameter values to E04USF/E04USA |
E04USA | Minimum of a sum of squares, nonlinear constraints, sequential QP method, using function values and optionally first derivatives (comprehensive) |
E04XAA | Estimate (using numerical differentiation) gradient and/or Hessian of a function |
E04ZCA | Check user's routines for calculating first derivatives of function and constraints |
The following routines have been withdrawn from the NAG Fortran Library at Mark 20. Warning of their withdrawal was included in the Mark 19 Library Manual, together with advice on which routines to use instead. See the document 'Advice on Replacement Calls for Withdrawn/Superseded Routines' for more detailed guidance.
Withdrawn Routine | Replacement Routine(s) |
---|---|
E01SEF | E01SGF |
E01SFF | E01SHF |
The routines listed below are scheduled for withdrawal from the NAG Fortran Library, because improved routines have now been included in the Library. Users are advised to stop using routines which are scheduled for withdrawal immediately and to use recommended replacement routines instead. See the document 'Advice on Replacement Calls for Withdrawn/Superseded Routines' for more detailed guidance, including advice on how to change a call to the old routine into a call to its recommended replacement.
The following routines will be withdrawn at Mark 21.
Routine Scheduled for Withdrawal | Replacement Routine(s) |
---|---|
F11BAF | F11BDF |
F11BBF | F11BEF |
F11BCF | F11BFF |
The following routines have been superseded, but will not be withdrawn from the Library until Mark 22 at the earliest.