Mark 25 NAG Fortran Library News (PDF version)
NAG Library Manual

NAG Library

Mark 25 NAG Fortran Library News

 Contents

1  Introduction

At Mark 25 of the NAG Library new functionality has been introduced in addition to improvements in existing areas. The Library now contains 1844 user-callable routines, all of which are documented, of which 81 are new at this mark.
Chapter C06 (Summation of Series) has replacement routines for real symmetric discrete Fourier transforms with simplified interface.
Chapter C09 (Wavelet Transforms) has new routines for inserting coefficients into and extracting coefficients from the compact form used in the multilevel two-dimensional routines and all three-dimensional routines, which make working with the DWT functions easier as demonstrated in the examples. There are also routines for the maximal overlap discrete wavelet transform (MODWT) and its inverse in one dimension, which are useful in time series analysis.
Chapter D01 (Quadrature) has a routine for high dimensional quadrature using sparse grids.
Chapter D02 (Ordinary Differential Equations) has a threadsafe replacement for the the general nonlinear boundary value problem solver using collocation.
Chapter E01 (Interpolation) has a routine for the triangulation of a two-dimensional scattered grid, and a routine for the barycentric interpolation on function values on a triangulated scattered grid.
Chapter E02 (Curve and Surface Fitting) has a replacement routine for minimax polynomial fitting of a set of data points.
Chapter F01 (Matrix Operations, Including Inversion) has greatly extended its range of matrix routines. New and improved algorithms are available for the matrix logarithm, the matrix square root, the matrix exponential and general matrix powers. We also now have routines for computing Fréchet derivatives.
Chapter F02 (Eigenvalues and Eigenvectors) has routines for the solution of the real and complex quadratic eigenvalue problem, and a driver routine for calculating selected eigenvalues/vectors of symmetric sparse matrices.
Chapter F08 (Least Squares and Eigenvalue Problems (LAPACK)) has routines for recursive, explicitly blocked QR factorization and applying Q for general matrices and for triangular-pentagonal matrices, and has routines for the complete CS decomposition of an orthogonal or unitary matrix.
Chapter F11 (Large Scale Linear Systems) has a routine for the bandwidth reduction of a sparse symmetric matrix by reverse Cuthill–McKee reordering.
Chapter F16 (Further Linear Algebra Support Routines) has a routine for scaled accumulated dot product (BLAS_DDOT).
Chapter G01 (Simple Calculations on Statistical Data) has a routine for computing probabilities for the Dickey–Fuller unit root test.
Chapter G02 (Correlation and Regression Analysis) has routines for performing Least Angle Regression (LARS), Least Absolute Shrinkage and Selection Operator (LASSO) and forward stagewise regression. There is also an additional nearest correlation matrix routine that allows the leading principal submatrix to be preserved.
Chapter G05 (Random Number Generators) has routines for generating training and validation datasets suitable for use in cross-validation.
Chapter G10 (Smoothing in Statistics) has a thread safe replacement for kernel density estimation using a Gaussian kernel.
Chapter G13 (Time Series Analysis) has routines for computing: the Dickey–Fuller unit root test statistic; applying the unscented Kalman filter to a nonlinear state-space model with additive noise; and change point analysis using the PELT algorithm or using binary segmentation.
Chapter H (Operations Research) has a routine for solving mixed integer nonlinear programming problems; optional settings for this are supplied and interrogated via two new option routines. Additionally, there is a routine for approximating solutions to the classical travelling salesman problem.
Chapter S (Approximations of Special Functions) has routines for evaluating the Gauss hypergeometric function for real arguments and for computing the European option price from Heston's stochastic volatility model with term structure.
Chapter X06 (OpenMP Utilities) is a new chapter of routines that provide utilities for controlling the OpenMP environment for your program.
It should also be noted that we have made changes to the Essential Introduction at this mark. We have provided clarification of the term 'Direct and Reverse Communication Routines', see Section 3.2.3 in the Essential Introduction, and also taken the decision to document a number of error conditions, i.e., Dynamic Memory Allocation (see Section 3.6 in the Essential Introduction), License Management (see Section 3.7 in the Essential Introduction) and Unexpected Errors (see Section 3.8 in the Essential Introduction). The Essential Introduction is a useful document providing information advice on how to use the Library and its Documentation and how to get support from NAG.

2  New Routines

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

Purpose
C06REFMultiple discrete sine transforms, simple
C06RFFMultiple discrete cosine transforms, simple
C06RGFMultiple discrete quarter-wave sine transforms, simple
C06RHFMultiple discrete quarter-wave cosine transforms, simple
C09DAFOne-dimensional maximal overlap discrete wavelet transform (MODWT)
C09DBFOne-dimensional inverse maximal overlap discrete wavelet transform (IMODWT)
C09DCFOne-dimensional multi-level maximal overlap discrete wavelet transform (MODWT)
C09DDFOne-dimensional inverse multi-level maximal overlap discrete wavelet transform (IMODWT)
C09EYFTwo-dimensional discrete wavelet transform coefficient extraction
C09EZFTwo-dimensional discrete wavelet transform coefficient insertion
C09FYFThree-dimensional discrete wavelet transform coefficient extraction
C09FZFThree-dimensional discrete wavelet transform coefficient insertion
D01ESFMulti-dimensional quadrature using sparse grids
D02TLFOrdinary differential equations, general nonlinear boundary value problem, collocation technique (thread safe)
E01EAFTriangulation of two-dimensional scattered grid, method of Renka and Cline
E01EBFBarycentric interpolation on function values provided on a two-dimensional scattered grid
E02ALFMinimax curve fit by polynomials
F01ENFReal matrix square root
F01EPFReal upper quasi-triangular matrix square root
F01EQFGeneral power of a real matrix
F01FNFComplex matrix square root
F01FPFComplex upper triangular matrix square root
F01FQFGeneral power of a complex matrix
F01JDFCondition number for square root of real matrix
F01JEFCondition number for real matrix power
F01JFFFréchet derivative of real matrix power
F01JGFCondition number for real matrix exponential
F01JHFFréchet derivative of real matrix exponential
F01JJFCondition number for real matrix logarithm
F01JKFFréchet derivative of real matrix logarithm
F01KDFCondition number for square root of complex matrix
F01KEFCondition number for complex matrix power
F01KFFFréchet derivative of complex matrix power
F01KGFCondition number for complex matrix exponential
F01KHFFréchet derivative of complex matrix exponential
F01KJFCondition number for complex matrix logarithm
F01KKFFréchet derivative of complex matrix logarithm
F02FKFSelected eigenvalues and eigenvectors of a real symmetric sparse matrix
F02JCFSolves the quadratic eigenvalue problem for real matrices
F02JQFSolves the quadratic eigenvalue problem for complex matrices
F08ABFPerforms a QR factorization of real general rectangular matrix, with explicit blocking
F08ACFApplies the orthogonal transformation determined by F08ABF (DGEQRT)
F08APFPerforms a QR factorization of complex general rectangular matrix using recursive algorithm
F08AQFApplies the unitary transformation determined by F08APF (ZGEQRT)
F08BBFQR factorization of real general triangular-pentagonal matrix
F08BCFApplies the orthogonal transformation determined by F08BBF (DTPQRT)
F08BPFQR factorization of complex triangular-pentagonal matrix
F08BQFApplies the unitary transformation determined by F08BPF (ZTPQRT)
F08RAFComputes the CS decomposition of an orthogonal matrix partitioned into four real submatrices
F08RNFComputes the CS decomposition of a unitary matrix partitioned into four complex submatrices
F11YEFReverse Cuthill–McKee reordering of a sparse symmetric matrix in CCS format
F16EAFDot product of two vectors, allows scaling and accumulation.
G01EWFComputes probabilities for the Dickey–Fuller unit root test
G02ANFComputes a correlation matrix from an approximate matrix with fixed submatrix
G02MAFLeast angle regression (LARS), least absolute shrinkage and selection operator (LASSO) and forward stagewise regression
G02MBFLeast Angle Regression (LARS), Least Absolute Shrinkage and Selection Operator (LASSO) and forward stagewise regression using the cross-products matrix
G02MCFAdditional parameter calculate following Least Angle Regression (LARS), Least Absolute Shrinkage and Selection Operator (LASSO) or forward stagewise regression
G05PVFPermutes a matrix, vector, vector triplet into a form suitable for K-fold cross validation
G05PWFPermutes a matrix, vector, vector triplet into a form suitable for random sub-sampling validation
G10BBFKernel density estimate using Gaussian kernel (thread safe)
G13AWFComputes (augmented) Dickey–Fuller unit root test statistic
G13EJFCombined time and measurement update, one iteration of the Unscented Kalman Filter for a nonlinear state space model, with additive noise (reverse communication)
G13EKFCombined time and measurement update, one iteration of the Unscented Kalman Filter for a nonlinear state space model, with additive noise
G13NAFChange point detection, using the PELT algorithm
G13NBFChange points detection using the PELT algorithm, user supplied cost function
G13NDFChange point detection, using binary segmentation
G13NEFChange point detection, using binary segmentation, user supplied cost function
H02DAFMixed integer nonlinear programming
H02ZKFOption setting routine for H02DAF
H02ZLFOption getting routine for H02DAF
H03BBFTravelling Salesman Problem, simulated annealing
S22BEFReal Gauss hypergeometric function F1 2 a,b;c;x
S22BFFReal Gauss hypergeometric function F 1 2 a,b; c;x  in scaled form.
S30NCFHeston's model option pricing with term structure
X06AAFSets the number of threads for OpenMP parallel regions
X06ABFThe number of OpenMP threads in the current team
X06ACFAn upper bound on the number of threads in the next parallel region
X06ADFThe OpenMP thread number of the calling thread
X06AFFTests for an active OpenMP parallel region
X06AGFEnables or disables nested OpenMP parallelism
X06AHFTests the status of nested OpenMP parallelism

3  Internal Changes Affecting Users

There have been no internal changes at this mark.

4  Withdrawn Routines

The following routines have been withdrawn from the NAG Library at Mark 25. Warning of their withdrawal was included in the NAG Library Manual at Mark 24, 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)
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

5  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 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 26.
Routines Scheduled
for Withdrawal

Replacement Routine(s)
C06EAFC06PAF
C06EBFC06PAF
C06ECFC06PCF
C06EKFC06FKF
C06FRFC06PSF
C06FUFC06PUF
C06GBFNo replacement required
C06GCFNo replacement required
C06GQFNo replacement required
C06GSFNo replacement required
C06HAFC06REF
C06HBFC06RFF
C06HCFC06RGF
C06HDFC06RHF
D01BAFD01UAF
D01BBFD01TBF
D02PCFD02PEF and associated D02P routines
D02PDFD02PFF and associated D02P routines
D02PVFD02PQF
D02PWFD02PRF
D02PXFD02PSF
D02PYFD02PTF
D02PZFD02PUF
F04YCFF04YDF
F04ZCFF04ZDF
G01AAFG01ATF
The following routines have been superseded, but will not be withdrawn from the Library until Mark 27 at the earliest.
Superseded
Routine

Replacement Routine(s)
D01RBFNo replacement required
D02TKFD02TLF
E02ACFE02ALF
F02SDFF12AGF and F12FGF
F02WDFF02WUF and F08AEF (DGEQRF)
G10BAFG10BBF

Mark 25 NAG Fortran Library News (PDF version)
NAG Library Manual

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