NAG Library Manual

NAG LibraryMark 24 NAG Library for SMP & Multicore News

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 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.
 RoutineName Purpose C06PVF Two-dimensional real-to-complex discrete Fourier transform C06PWF Two-dimensional complex-to-real discrete Fourier transform C06PYF Three-dimensional real-to-complex discrete Fourier transform C06PZF Three-dimensional complex-to-real discrete Fourier transform C09ACF Three-dimensional wavelet filter initialization C09FAF Three-dimensional discrete wavelet transform C09FBF Three-dimensional inverse discrete wavelet transform C09FCF Three-dimensional multi-level discrete wavelet transform C09FDF Three-dimensional inverse multi-level discrete wavelet transform D01RAF One-dimensional quadrature, adaptive, finite interval, multiple integrands, vectorized abscissae, reverse communication D01RBF Diagnostic routine for D01RAF D01RCF Determine required array dimensions for D01RAF D01RGF One-dimensional quadrature, adaptive, finite interval, strategy due to Gonnet, allowing for badly behaved integrands D01TBF Pre-computed weights and abscissae for Gaussian quadrature rules, restricted choice of rule D01UAF One-dimensional Gaussian quadrature, choice of weight functions D01ZKF Option setting routine D01ZLF Option getting routine D02PEF Ordinary differential equations, initial value problem, Runge–Kutta method, integration over range with output D02PFF Ordinary differential equations, initial value problem, Runge–Kutta method, integration over one step D02PQF Ordinary differential equations, initial value problem, setup for D02PEF and D02PFF D02PRF Ordinary differential equations, initial value problem, resets end of range for D02PFF D02PSF Ordinary differential equations, initial value problem, interpolation for D02PFF D02PTF Ordinary differential equations, initial value problem, integration diagnostics for D02PEF and D02PFF D02PUF Ordinary differential equations, initial value problem, error assessment diagnostics for D02PEF and D02PFF E01ZMF Interpolating function, modified Shepard's method, $d$ dimensions E01ZNF Interpolated values, evaluate interpolant computed by E01ZMF, function and first derivatives, $d$ dimensions E02BFF Evaluation of fitted cubic spline, function and optionally derivatives at a vector of points E02JDF Spline approximation to a set of scattered data using a two-stage approximation method E02JEF Evaluation at a vector of points of a spline computed by E02JDF E02JFF Evaluation at a mesh of points of a spline computed by E02JDF E02ZKF Option setting routine E02ZLF Option getting routine E04MXF Reads MPS data file defining LP, QP, MILP or MIQP problem E04PCF Computes 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 E05UCF Global optimization using multi-start, nonlinear constraints E05USF Global optimization of a sum of squares problem using multi-start, nonlinear constraints F01EJF Real matrix logarithm F01EKF Exponential, sine, cosine, sinh or cosh of a real matrix (Schur–Parlett algorithm) F01ELF Function of a real matrix (using numerical differentiation) F01EMF Function of a real matrix (using user-supplied derivatives) F01FJF Complex matrix logarithm F01FKF Exponential, sine, cosine, sinh or cosh of a complex matrix (Schur–Parlett algorithm) F01FLF Function of a complex matrix (using numerical differentiation) F01FMF Function of a complex matrix (using user-supplied derivatives) F01GAF Action of a real matrix exponential on a real matrix F01GBF Action of a real matrix exponential on a real matrix (reverse communication) F01HAF Action of a complex matrix exponential on a complex matrix F01HBF Action of a complex matrix exponential on a complex matrix (reverse communication) F01JAF Condition number for the exponential, logarithm, sine, cosine, sinh or cosh of a real matrix F01JBF Condition number for a function of a real matrix (using numerical differentiation) F01JCF Condition number for a function of a real matrix (using user-supplied derivatives) F01KAF Condition number for the exponential, logarithm, sine, cosine, sinh or cosh of a complex matrix F01KBF Condition number for a function of a complex matrix (using numerical differentiation) F01KCF Condition number for a function of a complex matrix (using user-supplied derivatives) F02EKF Selected eigenvalues and eigenvectors of a real sparse general matrix F04YDF Norm estimation (for use in condition estimation), real rectangular matrix F04ZDF Norm estimation (for use in condition estimation), complex rectangular matrix F11DFF Real sparse nonsymmetric linear system, incomplete $LU$ factorization of local or overlapping diagonal blocks F11DGF Solution of real sparse nonsymmetric linear system, RGMRES, CGS, Bi-CGSTAB or TFQMR method, incomplete $LU$ block diagonal preconditioner computed by F11DFF F11DTF Complex sparse nonsymmetric linear system, incomplete $LU$ factorization of local or overlapping diagonal blocks F11DUF Solution of complex sparse nonsymmetric linear system, RGMRES, CGS, Bi-CGSTAB or TFQMR method, incomplete $LU$ block diagonal preconditioner computed by F11DTF F12ATF Initialization routine for (F12AUF) computing selected eigenvalues and, optionally, eigenvectors of a complex banded (standard or generalized) eigenproblem. F12AUF Selected eigenvalues and, optionally, eigenvectors of complex non-Hermitian banded eigenproblem, driver F16ECF Real scaled vector accumulation F16GCF Complex scaled vector accumulation G01ATF Computes univariate summary information: mean, variance, skewness, kurtosis G01AUF Combines multiple sets of summary information, for use after G01ATF G01HDF Computes the probability for the multivariate Student's $t$-distribution G01KKF Computes a vector of values for the probability density function of the gamma distribution G01KQF Computes a vector of values for the probability density function of the Normal distribution G01LBF Computes a vector of values for the probability density function of the multivariate Normal distribution G01SAF Computes a vector of probabilities for the standard Normal distribution G01SBF Computes a vector of probabilities for the Student's $t$-distribution G01SCF Computes a vector of probabilities for ${\chi }^{2}$ distribution G01SDF Computes a vector of probabilities for $F$-distribution G01SEF Computes a vector of probabilities for the beta distribution G01SFF Computes a vector of probabilities for the gamma distribution G01SJF Computes a vector of probabilities for the binomial distribution G01SKF Computes a vector of probabilities for the Poisson distribution G01SLF Computes a vector of probabilities for the hypergeometric distribution G01TAF Computes a vector of deviates for the standard Normal distribution G01TBF Computes a vector of deviates for Student's $t$-distribution G01TCF Computes a vector of deviates for ${\chi }^{2}$ distribution G01TDF Computes a vector of deviates for $F$-distribution G01TEF Computes a vector of deviates for the beta distribution G01TFF Computes a vector of deviates for the gamma distribution G01WAF Computes the mean and standard deviation using a rolling window G02AJF Computes the nearest correlation matrix to a real square matrix, using element-wise weighting G02BZF Combines two sums of squares matrices, for use after G02BUF G03GAF Fits a Gaussian mixture model G05XAF Initializes the Brownian bridge generator G05XBF Generate paths for a free or non-free Wiener process using the Brownian bridge algorithm G05XCF Initializes the generator which backs out the increments of sample paths generated by a Brownian bridge algorithm G05XDF Backs out the increments from sample paths generated by a Brownian bridge algorithm G05XEF Creates a Brownian bridge construction order out of a set of input times G05ZMF Setup for simulating one-dimensional random fields, user-defined variogram G05ZNF Setup for simulating one-dimensional random fields G05ZPF Generates realisations of a one-dimensional random field G05ZQF Setup for simulating two-dimensional random fields, user-defined variogram G05ZRF Setup for simulating two-dimensional random fields, preset variogram G05ZSF Generates realisations of a two-dimensional random field G05ZTF Generates realisations of fractional Brownian motion G13MEF Computes the iterated exponential moving average for a univariate inhomogeneous time series G13MFF Computes the iterated exponential moving average for a univariate inhomogeneous time series, intermediate results are also returned G13MGF Computes the exponential moving average for a univariate inhomogeneous time series H05AAF Best $m$ subsets of size $p$ (reverse communication) H05ABF Best $m$ subsets of size $p$ (direct communication) S14CBF Logarithm of the beta function $\mathrm{ln}\left(B,a,b\right)$ S14CCF Incomplete beta function ${I}_{x}\left(a,b\right)$ and its complement $1-{I}_{x}$ S17AQF Bessel function vectorized ${Y}_{0}\left(x\right)$ S17ARF Bessel function vectorized ${Y}_{1}\left(x\right)$ S17ASF Bessel function vectorized ${J}_{0}\left(x\right)$ S17ATF Bessel function vectorized ${J}_{1}\left(x\right)$ S17AUF Airy function vectorized $\mathrm{Ai}\left(x\right)$ S17AVF Airy function vectorized $\mathrm{Bi}\left(x\right)$ S17AWF Airy function vectorized ${\mathrm{Ai}}^{\prime }\left(x\right)$ S17AXF Airy function vectorized ${\mathrm{Bi}}^{\prime }\left(x\right)$ S18AQF Modified Bessel function vectorized ${K}_{0}\left(x\right)$ S18ARF Modified Bessel function vectorized ${K}_{1}\left(x\right)$ S18ASF Modified Bessel function vectorized ${I}_{0}\left(x\right)$ S18ATF Modified Bessel function vectorized ${I}_{1}\left(x\right)$ S18CQF Scaled modified Bessel function vectorized ${e}^{x}{K}_{0}\left(x\right)$ S18CRF Scaled modified Bessel function vectorized ${e}^{x}{K}_{1}\left(x\right)$ S18CSF Scaled modified Bessel function vectorized ${e}^{-\left|x\right|}{I}_{0}\left(x\right)$ S18CTF Scaled modified Bessel function vectorized ${e}^{-\left|x\right|}{I}_{1}\left(x\right)$ S19ANF Kelvin function vectorized $\mathrm{ber}x$ S19APF Kelvin function vectorized $\mathrm{bei}x$ S19AQF Kelvin function vectorized $\mathrm{ker}x$ S19ARF Kelvin function vectorized $\mathrm{kei}x$ S20AQF Fresnel integral vectorized $S\left(x\right)$ S20ARF Fresnel integral vectorized $C\left(x\right)$ S22BAF Real confluent hypergeometric function ${}_{1}F_{1}\left(a;b;x\right)$ S22BBF Real confluent hypergeometric function ${}_{1}F_{1}\left(a;b;x\right)$ in scaled form X07AAF Determines whether its argument has a finite value X07ABF Determines whether its argument is a NaN (Not A Number) X07BAF Creates a signed infinite value. X07BBF Creates a NaN (Not A Number) X07CAF Gets current behaviour of floating point exceptions X07CBF Sets 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.
 RoutineName Purpose C06PVF Two-dimensional real-to-complex discrete Fourier transform C06PWF Two-dimensional complex-to-real discrete Fourier transform C06PYF Three-dimensional real-to-complex discrete Fourier transform C06PZF Three-dimensional complex-to-real discrete Fourier transform C09FAF Three-dimensional discrete wavelet transform C09FBF Three-dimensional inverse discrete wavelet transform C09FCF Three-dimensional multi-level discrete wavelet transform C09FDF Three-dimensional inverse multi-level discrete wavelet transform E01ZMF Interpolating function, modified Shepard's method, $d$ dimensions E01ZNF Interpolated values, evaluate interpolant computed by E01ZMF, function and first derivatives, $d$ dimensions E02BFF Evaluation of fitted cubic spline, function and optionally derivatives at a vector of points E05UCF Global optimization using multi-start, nonlinear constraints E05USF Global optimization of a sum of squares problem using multi-start, nonlinear constraints F01EJF Real matrix logarithm F01EKF Exponential, sine, cosine, sinh or cosh of a real matrix (Schur–Parlett algorithm) F01EMF Function of a real matrix (using user-supplied derivatives) F01FJF Complex matrix logarithm F01FKF Exponential, sine, cosine, sinh or cosh of a complex matrix (Schur–Parlett algorithm) F01FMF Function of a complex matrix (using user-supplied derivatives) G01ATF Computes univariate summary information: mean, variance, skewness, kurtosis G01WAF Computes the mean and standard deviation using a rolling window G03GAF Fits a Gaussian mixture model G05XBF Generate paths for a free or non-free Wiener process using the Brownian bridge algorithm G05XDF Backs out the increments from sample paths generated by a Brownian bridge algorithm G13MEF Computes the iterated exponential moving average for a univariate inhomogeneous time series G13MFF Computes the iterated exponential moving average for a univariate inhomogeneous time series, intermediate results are also returned G13MGF Computes the exponential moving average for a univariate inhomogeneous time series S30NBF Heston'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.
 RoutineName Purpose E02JDF Spline approximation to a set of scattered data using a two-stage approximation method F01ELF Function of a real matrix (using numerical differentiation) F01FLF Function of a complex matrix (using numerical differentiation) F01GAF Action of a real matrix exponential on a real matrix F01GBF Action of a real matrix exponential on a real matrix (reverse communication) F01HAF Action of a complex matrix exponential on a complex matrix F01HBF Action of a complex matrix exponential on a complex matrix (reverse communication) F01JAF Condition number for the exponential, logarithm, sine, cosine, sinh or cosh of a real matrix F01JBF Condition number for a function of a real matrix (using numerical differentiation) F01JCF Condition number for a function of a real matrix (using user-supplied derivatives) F01KAF Condition number for the exponential, logarithm, sine, cosine, sinh or cosh of a complex matrix F01KBF Condition number for a function of a complex matrix (using numerical differentiation) F01KCF Condition number for a function of a complex matrix (using user-supplied derivatives) F02EKF Selected eigenvalues and eigenvectors of a real sparse general matrix F11DGF Solution of real sparse nonsymmetric linear system, RGMRES, CGS, Bi-CGSTAB or TFQMR method, incomplete $LU$ block diagonal preconditioner computed by F11DFF F11DUF Solution of complex sparse nonsymmetric linear system, RGMRES, CGS, Bi-CGSTAB or TFQMR method, incomplete $LU$ block diagonal preconditioner computed by F11DTF F12AUF Selected eigenvalues and, optionally, eigenvectors of complex non-Hermitian banded eigenproblem, driver G01LBF Computes a vector of values for the probability density function of the multivariate Normal distribution G02AJF Computes the nearest correlation matrix to a real square matrix, using element-wise weighting G05ZPF Generates realisations of a one-dimensional random field G05ZQF Setup for simulating two-dimensional random fields, user-defined variogram G05ZRF Setup for simulating two-dimensional random fields, preset variogram G05ZSF Generates realisations of a two-dimensional random field G05ZTF Generates 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.
 WithdrawnRoutine Replacement Routine(s) E04CCF E04CBF E04ZCF No longer required G05HKF G05PDF G05HLF G05PEF G05HMF G05PFF G05HNF G05PGF G05KAF G05SAF G05KBF G05KFF G05KCF G05KGF G05KEF G05TBF G05LAF G05SKF G05LBF G05SNF G05LCF G05SDF G05LDF G05SHF G05LEF G05SBF G05LFF G05SJF G05LGF G05SQF G05LHF G05SPF G05LJF G05SFF G05LKF G05SMF G05LLF G05SJF G05LMF G05SSF G05LNF G05SLF G05LPF G05SRF G05LQF G05SGF G05LXF G05RYF G05LYF G05RZF G05LZF G05RZF G05MAF G05TLF G05MBF G05TCF G05MCF G05THF G05MDF G05TFF G05MEF G05TKF G05MJF G05TAF G05MKF G05TJF G05MLF G05TEF G05MRF G05TGF G05MZF G05TDF G05NAF G05NCF G05NBF G05NDF G05PAF G05PHF G05PCF G05PJF G05QAF G05PXF G05QBF G05PYF G05QDF G05PZF G05RAF G05RDF G05RBF G05RCF G05YCF G05YLF G05YDF G05YMF G05YEF G05YLF G05YFF G05YMF G05YGF G05YLF G05YHF G05YMF G13DCF G13DDF P01ABF No longer required X02DAF No longer required X02DJF No 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 Scheduledfor Withdrawal Replacement Routine(s) C05ADF C05AYF C05AGF C05AUF C05AJF C05AWF C05NBF C05QBF C05NCF C05QCF C05NDF C05QDF C05PBF C05RBF C05PCF C05RCF C05PDF C05RDF C05ZAF C05ZDF C06DBF C06DCF F03AAF F07ADF (DGETRF) and F03BAF F03ABF F07FDF (DPOTRF) and F03BFF F03ACF F07HDF (DPBTRF) and F03BHF F03ADF F07ARF (ZGETRF) and F03BNF F03AEF F07FDF (DPOTRF) and F03BFF F03AFF F07ADF (DGETRF) and F03BAF F04AFF No replacement routine required F04AGF No replacement routine required F04AHF No replacement routine required F04AJF No replacement routine required
The following routines have been superseded, but will not be withdrawn from the Library until Mark 26 at the earliest.
 SupersededRoutine Replacement Routine(s) C06EAF C06PAF C06EBF C06PAF C06ECF C06PCF C06EKF C06FKF C06FRF C06PSF C06FUF C06PUF C06GBF No replacement required C06GCF No replacement required C06GQF No replacement required C06GSF No replacement required C06HAF C06RAF C06HBF C06RAF C06HCF C06RCF C06HDF C06RDF D01BAF D01UAF D01BBF D01TBF D02PCF D02PEF and associated D02P routines D02PDF D02PFF and associated D02P routines D02PVF D02PQF D02PWF D02PRF D02PXF D02PSF D02PYF D02PTF D02PZF D02PUF E04MZF E04MXF F04YCF F04YDF F04ZCF F04ZDF G01AAF G01ATF