NAG Fortran Library

Mark 20 News

1   Introduction

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.

2   New Routines

The 95 new user-callable routines included in the NAG Fortran Library at Mark 20 are as follows.

2.1   Routines with New Functionality

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

2.2   Thread Safe Equivalents of Existing Routines

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

3   Withdrawn Routines

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

4   Routines Scheduled for Withdrawal

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.

Superseded Routine Replacement Routine(s)
E04UNF  E04USF
F11GAF  F11GDF
F11GBF  F11GEF
F11GCF  F11GFF
G05CAF  G05KAF
G05CBF  G05KBF
G05CCF  G05KCF
G05CFF  F06DFF
G05CGF  F06DFF
G05DAF  G05LGF
G05DBF  G05LJF
G05DCF  G05LNF
G05DDF  G05LAF
G05DEF  G05LKF
G05DFF  G05LLF
G05DHF  G05LCF
G05DJF  G05LBF
G05DKF  G05LDF
G05DPF  G05LMF
G05DRF  G05MEF
G05DYF  G05MAF
G05DZF  G05KEF
G05EAF  G05LZF
G05EBF  G05MAF
G05ECF  G05MKF
G05EDF  G05MJF
G05EEF  G05MCF
G05EFF  G05MLF
G05EGF  G05PAF
G05EHF  G05NAF
G05EJF  G05NBF
G05EWF  G05PAF
G05EXF  G05MZF
G05EYF  G05MZF
G05EZF  G05LZF
G05FAF  G05LGF
G05FBF  G05LJF
G05FDF  G05LAF
G05FEF  G05LEF
G05FFF  G05LFF
G05FSF  G05LPF
G05GAF  G05QAF
G05GBF  G05QBF
G05HDF  G05PCF

© The Numerical Algorithms Group Ltd, Oxford UK. 2001