Mark 24 NAG Library for SMP & Multicore News (PDF version)
NAG Library Manual

NAG Library

Mark 24 NAG Library for SMP & Multicore News

+ Contents

1  Introduction

1.1  New Functionality

At Mark 24 of the NAG Library for SMP & Multicore new functionality has been introduced in addition to improvements in existing areas. The Library now contains 1784 user-callable routines of which 139 are new at this mark.
New Chapter X07 (IEEE Arithmetic) has been introduced, providing routines relating to IEEE arithmetic such as determining or creating an infinite value or a NaN (Not a Number). There have also been extensions in functionality included in the areas of statistics, wavelets, ordinary differential equations, interpolation, surface fitting, optimization, matrix operations, linear algebra, operations research, and special functions.
Chapter C06 (Summation of Series) has Fast Fourier Transforms (FFTs) for two-dimensional and three-dimensional real data.
Chapter C09 (Wavelet Transforms) has three-dimensional discrete wavelet transforms.
Chapter D01 (Quadrature) has a comprehensive one-dimensional adaptive quadrature routine and a variant for badly behaved integrands.
Chapter D02 (Ordinary Differential Equations) has threadsafe versions of the suite implementing Runge–Kutta methods.
Chapter E01 (Interpolation) has the modified Shepard's method for interpolating in dimensions greater than 5.
Chapter E02 (Curve and Surface Fitting) has a two-stage approximation method for two-dimensional scattered data.
Chapter E04 (Minimizing or Maximizing a Function) has non-negative least squares and an improved MPS data reader.
Chapter E05 (Global Optimization of a Function) has multi-start versions of general nonlinear programming and least squares routines.
Chapter F01 (Matrix Operations, Including Inversion) has greatly extended its range of matrix function routines including the calculation of condition numbers and the action on another matrix.
Chapter F02 (Eigenvalues and Eigenvectors) has a driver routine for calculating selected eigenvalues/vectors of real sparse general matrices.
Chapter F04 (Simultaneous Linear Equations) has norm estimators for rectangular matrices.
Chapter F11 (Large Scale Linear Systems) has a block diagonal (possibly overlapping) preconditioner and associated solver for real and complex nonsymmetric sparse matrices.
Chapter F12 (Large Scale Eigenproblems) has a driver for selected eigenvalues/vectors of general banded complex eigenproblems.
Chapter F16 (Further Linear Algebra Support Routines) has two additions from the BLAST set of routines.
Chapter G01 (Simple Calculations on Statistical Data) has routines for combining summary statistics from blocks of data, probabilities from a multivariate Student's t-distribution, and a large set of vectorized versions of routines for probabilities and density functions.
Chapter G02 (Correlation and Regression Analysis) has routines for weighted nearest correlation matrix and combining two sums of squares.
Chapter G03 (Multivariate Methods) has a Gaussian mixture model routine.
Chapter G05 (Random Number Generators) has Brownian bridge and random field routines.
Chapter G13 (Time Series Analysis) has moving averages for inhomogeneous time series.
Chapter H (Operations Research) has routines for computing best subsets.
Chapter S (Approximations of Special Functions) has added special functions: confluent hypergeometric, log beta and incomplete beta; additionally a large set of vectorized versions of existing special functions.
Chapter X07 (IEEE Arithmetic) has a set of IEEE routines including testing and setting Infs and NaNs.

1.2  New SMP parallelism and other optimizations

SMP parallelism has been added to new routines introduced at Mark 24 in the areas of discrete Fourier transforms, 3-D wavelets, multi-dimensional interpolation, cubic splines, global optimization, matrix functions, the mean and standard deviation of an arbitrary-sized data stream using a rolling window, Gaussian mixture model, Brownian bridge and univariate inhomogenous time series. An existing routine for Heston's model option pricing formula with Greeks has also been parallelized.

2  New Routines

The 139 new user-callable routines included in the NAG Library at Mark 24 are as follows.
Routine
Name

Purpose
C06PVFTwo-dimensional real-to-complex discrete Fourier transform
C06PWFTwo-dimensional complex-to-real discrete Fourier transform
C06PYFThree-dimensional real-to-complex discrete Fourier transform
C06PZFThree-dimensional complex-to-real discrete Fourier transform
C09ACFThree-dimensional wavelet filter initialization
C09FAFThree-dimensional discrete wavelet transform
C09FBFThree-dimensional inverse discrete wavelet transform
C09FCFThree-dimensional multi-level discrete wavelet transform
C09FDFThree-dimensional inverse multi-level discrete wavelet transform
D01RAFOne-dimensional quadrature, adaptive, finite interval, multiple integrands, vectorized abscissae, reverse communication
D01RBFDiagnostic routine for D01RAF
D01RCFDetermine required array dimensions for D01RAF
D01RGFOne-dimensional quadrature, adaptive, finite interval, strategy due to Gonnet, allowing for badly behaved integrands
D01TBFPre-computed weights and abscissae for Gaussian quadrature rules, restricted choice of rule
D01UAFOne-dimensional Gaussian quadrature, choice of weight functions
D01ZKFOption setting routine
D01ZLFOption getting routine
D02PEFOrdinary differential equations, initial value problem, Runge–Kutta method, integration over range with output
D02PFFOrdinary differential equations, initial value problem, Runge–Kutta method, integration over one step
D02PQFOrdinary differential equations, initial value problem, setup for D02PEF and D02PFF
D02PRFOrdinary differential equations, initial value problem, resets end of range for D02PFF
D02PSFOrdinary differential equations, initial value problem, interpolation for D02PFF
D02PTFOrdinary differential equations, initial value problem, integration diagnostics for D02PEF and D02PFF
D02PUFOrdinary differential equations, initial value problem, error assessment diagnostics for D02PEF and D02PFF
E01ZMFInterpolating function, modified Shepard's method, d dimensions
E01ZNFInterpolated values, evaluate interpolant computed by E01ZMF, function and first derivatives, d dimensions
E02BFFEvaluation of fitted cubic spline, function and optionally derivatives at a vector of points
E02JDFSpline approximation to a set of scattered data using a two-stage approximation method
E02JEFEvaluation at a vector of points of a spline computed by E02JDF
E02JFFEvaluation at a mesh of points of a spline computed by E02JDF
E02ZKFOption setting routine
E02ZLFOption getting routine
E04MXFReads MPS data file defining LP, QP, MILP or MIQP problem
E04PCFComputes the least squares solution to a set of linear equations subject to fixed upper and lower bounds on the variables. An option is provided to return a minimal length solution if a solution is not unique
E05UCFGlobal optimization using multi-start, nonlinear constraints
E05USFGlobal optimization of a sum of squares problem using multi-start, nonlinear constraints
F01EJFReal matrix logarithm
F01EKFExponential, sine, cosine, sinh or cosh of a real matrix (Schur–Parlett algorithm)
F01ELFFunction of a real matrix (using numerical differentiation)
F01EMFFunction of a real matrix (using user-supplied derivatives)
F01FJFComplex matrix logarithm
F01FKFExponential, sine, cosine, sinh or cosh of a complex matrix (Schur–Parlett algorithm)
F01FLFFunction of a complex matrix (using numerical differentiation)
F01FMFFunction of a complex matrix (using user-supplied derivatives)
F01GAFAction of a real matrix exponential on a real matrix
F01GBFAction of a real matrix exponential on a real matrix (reverse communication)
F01HAFAction of a complex matrix exponential on a complex matrix
F01HBFAction of a complex matrix exponential on a complex matrix (reverse communication)
F01JAFCondition number for the exponential, logarithm, sine, cosine, sinh or cosh of a real matrix
F01JBFCondition number for a function of a real matrix (using numerical differentiation)
F01JCFCondition number for a function of a real matrix (using user-supplied derivatives)
F01KAFCondition number for the exponential, logarithm, sine, cosine, sinh or cosh of a complex matrix
F01KBFCondition number for a function of a complex matrix (using numerical differentiation)
F01KCFCondition number for a function of a complex matrix (using user-supplied derivatives)
F02EKFSelected eigenvalues and eigenvectors of a real sparse general matrix
F04YDFNorm estimation (for use in condition estimation), real rectangular matrix
F04ZDFNorm estimation (for use in condition estimation), complex rectangular matrix
F11DFFReal sparse nonsymmetric linear system, incomplete LU factorization of local or overlapping diagonal blocks
F11DGFSolution of real sparse nonsymmetric linear system, RGMRES, CGS, Bi-CGSTAB or TFQMR method, incomplete LU block diagonal preconditioner computed by F11DFF
F11DTFComplex sparse nonsymmetric linear system, incomplete LU factorization of local or overlapping diagonal blocks
F11DUFSolution of complex sparse nonsymmetric linear system, RGMRES, CGS, Bi-CGSTAB or TFQMR method, incomplete LU block diagonal preconditioner computed by F11DTF
F12ATFInitialization routine for (F12AUF) computing selected eigenvalues and, optionally, eigenvectors of a complex banded (standard or generalized) eigenproblem.
F12AUFSelected eigenvalues and, optionally, eigenvectors of complex non-Hermitian banded eigenproblem, driver
F16ECFReal scaled vector accumulation
F16GCFComplex scaled vector accumulation
G01ATFComputes univariate summary information: mean, variance, skewness, kurtosis
G01AUFCombines multiple sets of summary information, for use after G01ATF
G01HDFComputes the probability for the multivariate Student's t-distribution
G01KKFComputes a vector of values for the probability density function of the gamma distribution
G01KQFComputes a vector of values for the probability density function of the Normal distribution
G01LBFComputes a vector of values for the probability density function of the multivariate Normal distribution
G01SAFComputes a vector of probabilities for the standard Normal distribution
G01SBFComputes a vector of probabilities for the Student's t-distribution
G01SCFComputes a vector of probabilities for χ2 distribution
G01SDFComputes a vector of probabilities for F-distribution
G01SEFComputes a vector of probabilities for the beta distribution
G01SFFComputes a vector of probabilities for the gamma distribution
G01SJFComputes a vector of probabilities for the binomial distribution
G01SKFComputes a vector of probabilities for the Poisson distribution
G01SLFComputes a vector of probabilities for the hypergeometric distribution
G01TAFComputes a vector of deviates for the standard Normal distribution
G01TBFComputes a vector of deviates for Student's t-distribution
G01TCFComputes a vector of deviates for χ2 distribution
G01TDFComputes a vector of deviates for F-distribution
G01TEFComputes a vector of deviates for the beta distribution
G01TFFComputes a vector of deviates for the gamma distribution
G01WAFComputes the mean and standard deviation using a rolling window
G02AJFComputes the nearest correlation matrix to a real square matrix, using element-wise weighting
G02BZFCombines two sums of squares matrices, for use after G02BUF
G03GAFFits a Gaussian mixture model
G05XAFInitializes the Brownian bridge generator
G05XBFGenerate paths for a free or non-free Wiener process using the Brownian bridge algorithm
G05XCFInitializes the generator which backs out the increments of sample paths generated by a Brownian bridge algorithm
G05XDFBacks out the increments from sample paths generated by a Brownian bridge algorithm
G05XEFCreates a Brownian bridge construction order out of a set of input times
G05ZMFSetup for simulating one-dimensional random fields, user-defined variogram
G05ZNFSetup for simulating one-dimensional random fields
G05ZPFGenerates realisations of a one-dimensional random field
G05ZQFSetup for simulating two-dimensional random fields, user-defined variogram
G05ZRFSetup for simulating two-dimensional random fields, preset variogram
G05ZSFGenerates realisations of a two-dimensional random field
G05ZTFGenerates realisations of fractional Brownian motion
G13MEFComputes the iterated exponential moving average for a univariate inhomogeneous time series
G13MFFComputes the iterated exponential moving average for a univariate inhomogeneous time series, intermediate results are also returned
G13MGFComputes the exponential moving average for a univariate inhomogeneous time series
H05AAFBest m subsets of size p (reverse communication)
H05ABFBest m subsets of size p (direct communication)
S14CBFLogarithm of the beta function lnB,a,b
S14CCFIncomplete beta function Ixa,b and its complement 1-Ix
S17AQFBessel function vectorized Y0x
S17ARFBessel function vectorized Y1x
S17ASFBessel function vectorized J0x
S17ATFBessel function vectorized J1x
S17AUFAiry function vectorized Aix
S17AVFAiry function vectorized Bix
S17AWFAiry function vectorized Aix
S17AXFAiry function vectorized Bix
S18AQFModified Bessel function vectorized K0x
S18ARFModified Bessel function vectorized K1x
S18ASFModified Bessel function vectorized I0x
S18ATFModified Bessel function vectorized I1x
S18CQFScaled modified Bessel function vectorized exK0x
S18CRFScaled modified Bessel function vectorized exK1x
S18CSFScaled modified Bessel function vectorized e-xI0x
S18CTFScaled modified Bessel function vectorized e-xI1x
S19ANFKelvin function vectorized berx
S19APFKelvin function vectorized beix
S19AQFKelvin function vectorized kerx
S19ARFKelvin function vectorized keix
S20AQFFresnel integral vectorized Sx
S20ARFFresnel integral vectorized Cx
S22BAFReal confluent hypergeometric function F 1 1 a;b;x
S22BBFReal confluent hypergeometric function F 1 1 a;b;x  in scaled form
X07AAFDetermines whether its argument has a finite value
X07ABFDetermines whether its argument is a NaN (Not A Number)
X07BAFCreates a signed infinite value.
X07BBFCreates a NaN (Not A Number)
X07CAFGets current behaviour of floating point exceptions
X07CBFSets behaviour of floating point exceptions

3  Tuned Routines

The following is a list of user-callable routines that have been parallelized, or otherwise optimized, since the last release. There are 28 of these routines at this release in the areas of Fourier and wavelet transforms, interpolation, cubic splines, global optimization, matrix functions, simple and multivariate statistics, random number generators (RNGs), time series analysis and option pricing. See the document ‘Tuned and Enhanced Routines in the NAG Library for SMP & Multicore’ for a full list of tuned routines.
Note: on some implementations, the equivalent vendor library routines may be substituted for some of the following list – consult the Users' Note for your implementation for further information.
Routine
Name

Purpose
C06PVFTwo-dimensional real-to-complex discrete Fourier transform
C06PWFTwo-dimensional complex-to-real discrete Fourier transform
C06PYFThree-dimensional real-to-complex discrete Fourier transform
C06PZFThree-dimensional complex-to-real discrete Fourier transform
C09FAFThree-dimensional discrete wavelet transform
C09FBFThree-dimensional inverse discrete wavelet transform
C09FCFThree-dimensional multi-level discrete wavelet transform
C09FDFThree-dimensional inverse multi-level discrete wavelet transform
E01ZMFInterpolating function, modified Shepard's method, d dimensions
E01ZNFInterpolated values, evaluate interpolant computed by E01ZMF, function and first derivatives, d dimensions
E02BFFEvaluation of fitted cubic spline, function and optionally derivatives at a vector of points
E05UCFGlobal optimization using multi-start, nonlinear constraints
E05USFGlobal optimization of a sum of squares problem using multi-start, nonlinear constraints
F01EJFReal matrix logarithm
F01EKFExponential, sine, cosine, sinh or cosh of a real matrix (Schur–Parlett algorithm)
F01EMFFunction of a real matrix (using user-supplied derivatives)
F01FJFComplex matrix logarithm
F01FKFExponential, sine, cosine, sinh or cosh of a complex matrix (Schur–Parlett algorithm)
F01FMFFunction of a complex matrix (using user-supplied derivatives)
G01ATFComputes univariate summary information: mean, variance, skewness, kurtosis
G01WAFComputes the mean and standard deviation using a rolling window
G03GAFFits a Gaussian mixture model
G05XBFGenerate paths for a free or non-free Wiener process using the Brownian bridge algorithm
G05XDFBacks out the increments from sample paths generated by a Brownian bridge algorithm
G13MEFComputes the iterated exponential moving average for a univariate inhomogeneous time series
G13MFFComputes the iterated exponential moving average for a univariate inhomogeneous time series, intermediate results are also returned
G13MGFComputes the exponential moving average for a univariate inhomogeneous time series
S30NBFHeston's model option pricing formula with Greeks

4  Enhanced Routines

These routines call one or more of the tuned routines as part of their core operations and may thereby exhibit improved performance and scalability. There are 24 newly enhanced routines at this Mark; these include the areas of curve and surface fitting, matrix functions, sparse linear algebra, correlation and regression analysis and random number generators (RNGs). See the document ‘Tuned and Enhanced Routines in the NAG Library for SMP & Multicore’ for a full list of enhanced routines.
Routine
Name

Purpose
E02JDFSpline approximation to a set of scattered data using a two-stage approximation method
F01ELFFunction of a real matrix (using numerical differentiation)
F01FLFFunction of a complex matrix (using numerical differentiation)
F01GAFAction of a real matrix exponential on a real matrix
F01GBFAction of a real matrix exponential on a real matrix (reverse communication)
F01HAFAction of a complex matrix exponential on a complex matrix
F01HBFAction of a complex matrix exponential on a complex matrix (reverse communication)
F01JAFCondition number for the exponential, logarithm, sine, cosine, sinh or cosh of a real matrix
F01JBFCondition number for a function of a real matrix (using numerical differentiation)
F01JCFCondition number for a function of a real matrix (using user-supplied derivatives)
F01KAFCondition number for the exponential, logarithm, sine, cosine, sinh or cosh of a complex matrix
F01KBFCondition number for a function of a complex matrix (using numerical differentiation)
F01KCFCondition number for a function of a complex matrix (using user-supplied derivatives)
F02EKFSelected eigenvalues and eigenvectors of a real sparse general matrix
F11DGFSolution of real sparse nonsymmetric linear system, RGMRES, CGS, Bi-CGSTAB or TFQMR method, incomplete LU block diagonal preconditioner computed by F11DFF
F11DUFSolution of complex sparse nonsymmetric linear system, RGMRES, CGS, Bi-CGSTAB or TFQMR method, incomplete LU block diagonal preconditioner computed by F11DTF
F12AUFSelected eigenvalues and, optionally, eigenvectors of complex non-Hermitian banded eigenproblem, driver
G01LBFComputes a vector of values for the probability density function of the multivariate Normal distribution
G02AJFComputes the nearest correlation matrix to a real square matrix, using element-wise weighting
G05ZPFGenerates realisations of a one-dimensional random field
G05ZQFSetup for simulating two-dimensional random fields, user-defined variogram
G05ZRFSetup for simulating two-dimensional random fields, preset variogram
G05ZSFGenerates realisations of a two-dimensional random field
G05ZTFGenerates realisations of fractional Brownian motion

5  Withdrawn Routines

The following routines have been withdrawn from the NAG Library at Mark 24. Warning of their withdrawal was included in the NAG Library Manual at Mark 23, 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)
E04CCFE04CBF
E04ZCFNo longer required
G05HKFG05PDF
G05HLFG05PEF
G05HMFG05PFF
G05HNFG05PGF
G05KAFG05SAF
G05KBFG05KFF
G05KCFG05KGF
G05KEFG05TBF
G05LAFG05SKF
G05LBFG05SNF
G05LCFG05SDF
G05LDFG05SHF
G05LEFG05SBF
G05LFFG05SJF
G05LGFG05SQF
G05LHFG05SPF
G05LJFG05SFF
G05LKFG05SMF
G05LLFG05SJF
G05LMFG05SSF
G05LNFG05SLF
G05LPFG05SRF
G05LQFG05SGF
G05LXFG05RYF
G05LYFG05RZF
G05LZFG05RZF
G05MAFG05TLF
G05MBFG05TCF
G05MCFG05THF
G05MDFG05TFF
G05MEFG05TKF
G05MJFG05TAF
G05MKFG05TJF
G05MLFG05TEF
G05MRFG05TGF
G05MZFG05TDF
G05NAFG05NCF
G05NBFG05NDF
G05PAFG05PHF
G05PCFG05PJF
G05QAFG05PXF
G05QBFG05PYF
G05QDFG05PZF
G05RAFG05RDF
G05RBFG05RCF
G05YCFG05YLF
G05YDFG05YMF
G05YEFG05YLF
G05YFFG05YMF
G05YGFG05YLF
G05YHFG05YMF
G13DCFG13DDF
P01ABFNo longer required
X02DAFNo longer required
X02DJFNo longer required

6  Routines Scheduled for Withdrawal

The routines listed below are scheduled for withdrawal from the NAG Library, because improved routines have now been included in the Library. You 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 25.
Routines Scheduled
for Withdrawal

Replacement Routine(s)
C05ADFC05AYF
C05AGFC05AUF
C05AJFC05AWF
C05NBFC05QBF
C05NCFC05QCF
C05NDFC05QDF
C05PBFC05RBF
C05PCFC05RCF
C05PDFC05RDF
C05ZAFC05ZDF
C06DBFC06DCF
F03AAFF07ADF (DGETRF) and F03BAF
F03ABFF07FDF (DPOTRF) and F03BFF
F03ACFF07HDF (DPBTRF) and F03BHF
F03ADFF07ARF (ZGETRF) and F03BNF
F03AEFF07FDF (DPOTRF) and F03BFF
F03AFFF07ADF (DGETRF) and F03BAF
F04AFFNo replacement routine required
F04AGFNo replacement routine required
F04AHFNo replacement routine required
F04AJFNo replacement routine required
The following routines have been superseded, but will not be withdrawn from the Library until Mark 26 at the earliest.
Superseded
Routine

Replacement Routine(s)
C06EAFC06PAF
C06EBFC06PAF
C06ECFC06PCF
C06EKFC06FKF
C06FRFC06PSF
C06FUFC06PUF
C06GBFNo replacement required
C06GCFNo replacement required
C06GQFNo replacement required
C06GSFNo replacement required
C06HAFC06RAF
C06HBFC06RAF
C06HCFC06RCF
C06HDFC06RDF
D01BAFD01UAF
D01BBFD01TBF
D02PCFD02PEF and associated D02P routines
D02PDFD02PFF and associated D02P routines
D02PVFD02PQF
D02PWFD02PRF
D02PXFD02PSF
D02PYFD02PTF
D02PZFD02PUF
E04MZFE04MXF
F04YCFF04YDF
F04ZCFF04ZDF
G01AAFG01ATF

Mark 24 NAG Library for SMP & Multicore News (PDF version)
NAG Library Manual

© The Numerical Algorithms Group Ltd, Oxford, UK. 2012