# Technical Report Archive - Pre 2009

- A Web Services Architecture for Visualization
- Introduction to Bayesian Analysis Using the NAG Library
- Using the NAG Fortran Library with Excel 2003
- Calling the NAG Fortran Library from Python using F2PY
- The use of NAG mesh generation and sparse solver routines for solving partial differential equations
- Software implementation and testing of GARCH models
- Calling the NAG C Library from Java
- Practical Portfolio Optimization
- Numeric ActiveX Components
- NAG Financial Routines in C
- Parallel Sparse Matrix Computations Using the PINEAPL Library: A Performance Study
- Calling 32-bit NAG C DLL functions from Visual Basic
- Experiences in Developing Numerical Subprograms on a Parallel, Shared Memory Computer
- Accurately Counting Singular Values of Bidiagonal Matrices
- Speed-up Results for NAG Numerical PVM Library Routines on an IBM SP-2 (part a)
- An Evaluation of New NAG Library Solvers for Large Sparse Unsymmetric Linear Systems
- Accurate BABE Factorisation of Tri-diagonal Matricies for Eigenproblems
- On Computing an Eigenvector of a Tridiagonal Matrix
- On a Classical Method for Computing Eigenvectors
- Migrating from Fortran 77 to Fortran 90 with the NAGWare f77 and f90 Tools
- An Evaluation of New NAG Library Solvers for Large Sparse Symmetric Linear Systems
- RKSUITE_90: Software for ODE IVPs
- The NAG Product Information Database
- Level 2 and 3 BLAS in the NAG C Library

Please note: Only the abstract for the following reports is available from our web site. Contact us regarding the availabilty of the full report as a NAG publication.

- The K system for GLMs in Genstat
- Accurate Singular Values and Differential qd Algorithms
- File Forms for Computer Graphics Unraveling the Confusion
- Rationale for the Proposed Standard for Packages of Real and Complex Type Declarations and Basic Operations for Ada (including Vector and Matrix Types)
- Proposed Standard for Packages of Real and Complex Type Declarations and Basic Operations for Ada (including Vector and Matrix Types)
- The IBM RISC System/6000 and Linear Algebra Operations
- A Proposed Specification of BLAS Routines in C
- Parallelism and the NAG Library
- SLICOT Library, Release 1
- The TIE2 System
- ESPRIT II Project : 2620
- NAG Fortran Library Vectorization Review
- Stable Column-Oriented Algorithms for the SVD and Spectral Factorizations
- Computing Accurate Eigenvalues of a Hermitian Matrix
- Validation of Numerical Computations in Ada
- Codes for Almost Block Diagonal Systems
- On Ultimate Quadratic Convergence of Jacobi Methods
- A Set of Level 3 Basic Linear Algebra Subprograms: Model Implementation and Test Programs
- A Set of Level 3 Basic Linear Algebra Subprograms
- The GLIMPSE System
- Working with GLIMPSE - Modelling the Formation of Calcium Oxalate Crystals in Urine
- Working with GLIMPSE - Modelling the Cost of Construction of Nuclear Power Plants
- Working with GLIMPSE - Estimated Determination of the Composition of a Chemical Specimen (activation analysis)
- Working with GLIMPSE - Modelling the Survival of Breast Cancer Patients - Following Radical Mastectomy
- Linear Convergence of the Row Cyclic Jacobi and Kogbetliantz Methods
- Block Factorisation Algorithms on the IBM 3090/VF
- Parallel Eigenvalue and Singular Value Algorithms for Signal Processing
- Stability of 2D State-Space Systems
- Unified Mesh-connected Architecture for Eigenvalue, Singular Value and QR decompositions
- On Block Kogbetliantz Methods for Computation of the SVD
- Portable Graphical Software Design, Implementation and Use
- On Equivalence and Convergence of Jacobi and Kogbetliantz Methods with Odd-even Orderings
- Design of the Stiff Integrators in the NAG Library
- A Runge-Kutta-Nystrom Code
- The Kalman Reachability/Observability Canonical Form and the SV
- A Product Induced Singular Value Decomposition (PISVD) for Two Matrices and Balanced Realisation
- Using Shape Preserving Local Interpolation for Plotting Solutions of Ordinary Differential Equations
- An Extended Set of Basic Linear Algebra Subprograms: Model Implementation and Test Programs
- An Extended Set of Fortran Basic Linear Algebra Subprograms
- Quadratic Convergence of the Cyclic Kogbetliantz Method for Triangular Matrices
- Kogbetliantz Methods for Parallel SVD Computation: Architecture, Algorithms and Convergence
- Vectorisation of One-Dimensional Quadrature Codes
- Systolic Array Computation of the SVD of Complex Matrices
- VLSI Computation of the SVD of Real Matrices via the Method of Kogbetliantz
- Computation of the Singular Value Decomposition Using Systolic Arrays
- The Numerical Solution of the Kalman Filtering Problem
- The Numerical Solution of the General Gauss-Markov Linear Model
- Conditions for Internal Stability of 2D Systems

TR3/08 NP3367 PDF Format

*Introduction to Bayesian Analysis Using the NAG Library*

This report illustrates how to implement a selection of methods for drawing inferences from posterior and predictive distributions using (Mark 21 and Mark 22) of the NAG Fortran library. Examples of using the Laplace approximation, the Normal approximation, a simple Metropolis-Hastings sampler and an importance sampler are given.

- Accompanying materials:

tr0308.zip

*Using the NAG Fortran Library with Excel 2003
Dr Michael Croucher, University of Manchester*

The (Mark 21) NAG Fortran Library can be called from Microsoft Excel 2003. This report contains a step by step guide in using the Fortran Library in Excel.

- Accompanying materials:

tr0208.zip

TR1/08 (NP3665) PDF Format

*Calling the NAG Fortran Library from Python using F2PY
Mat Cross, NAG Ltd, Oxford*

The (Mark 21) NAG Fortran Library can be called from Python using Pearu Peterson's F2PY tool, which is part of the NumPy package. This report contains examples showing how to interface with the Library on Linux and Windows.

- Accompanying materials:

tr0108.zip

TR1/04 (NP3658) HTML Format

*Calling NAG Library Routines from Java
Mick Pont, NAG Ltd, Oxford*

This report gives detailed instructions on how to call routines in the NAG C and Fortran Libraries from the Java programming language. We show examples using Java running on both UNIX and Microsoft Windows platforms.

*This report is superseded by NAG Technical Report TR2/09 (NP3671)*

TR1/01 (NP3615) PDF Format

*The use of NAG mesh generation and sparse solver routines for solving partial differential equations
Nadir Bouhamou, NAG Ltd, Oxford*

This report demonstrates the use of routines from the NAG Fortran Library D06 Chapter, combined with sparse solver routines from the F11 Chapter to solve a partial differential equation using the finite element method.

- Keywords: Finite Element Method, Numerical Simulations, Triangular Mesh, Linear Approximation.
- The source, data, and result files:

d06tute.f

d06tute.d

d06tute.r

TR4/00 (NP3533) PDF Format

*Software implementation and testing of GARCH routines in Fortran 77
George Levy, Nag Ltd, Oxford*

This paper describes the software implementation of GARCH routines in Fortran 77. The routines considered here cover both symmetric and asymmetric GARCH and also shocks having Gaussian and non-Gaussian distributions. Extensive examples of using the software are provided and the test results from Monte Carlo simulations are presented.

- Keywords: GARCH, ARCH, maximum likelihood estimation, volatility, generalised autoregressive heteroskedasticity, asymmetry, Fortran 77

TR3/00 (NP3489) HTML Format

*Calling the NAG C Library from Java
Mick Pont, Nag Inc, Downers Grove, Illinois, USA*

This report gives detailed instructions on how to call routines in the NAG C Library from the Java programming language. We show examples using Java running on both UNIX and Microsoft Windows platforms. The techniques described are also applicable to other libraries, such as the NAG Fortran Library.

*This report is superseded by NAG Technical Report TR1/04 (NP3658)*

TR2/00 (NP3484) PDF Format

*Practical Portfolio Optimization
K V Fernando, NAG Ltd, Oxford, UK.*

NAG Libraries have many powerful and reliable optimizers which can be used to solve large portfolio optimization and selection problems in the financial industry. These versatile routines are also suitable for academic research and teaching.

- Keywords: Markowitz, mean-variance analysis, optimal portfolios, minimum variance portfolio, portfolio selection, portfolio allocation, portfolio diversification, portfolio optimization, efficient frontier, mean-variance frontier, MV efficiency

TR1/00 (NP3480) PDF Format

*Numeric ActiveX Components
George Levy, NAG Ltd, Oxford, UK.*

This paper is concerned with the use of ActiveX components for numerical computations from within the Microsoft Windows environment. Detailed information is provided concerning the use of these components from Microsoft Excel, Microsoft Visual Basic, Microsoft Web browsers and Inprise Delphi. The examples in the paper are based on the following ActiveX components: a fast Fourier transform ActiveX control, a financial derivative pricing ActiveX control, and a numerical optimisation ActiveX control.

- Keywords: ActiveX Components, Microsoft Office, Microsoft Windows, Internet, Numerical Computation, Numerical Optimisation.

TR3/98 (NP3365) Postscript PDF

*NAG Financial Routines in C
George Levy, NAG Ltd, Oxford, UK.*

This report describes a set of financial routines and example programs in C that have been developed at NAG.

{C}

{C}

TR1/98 (NP3256) Postscript PDF

*Parallel Sparse Matrix Computations Using the PINEAPL Library: A Performance Study
Arnold Krommer, NAG Ltd, Oxford*

The Numerical Algorithms Group Ltd is currently participating in the European HPCN Fourth Framework project on Parallel Industrial NumErical Applications and Portable Libraries (PINEAPL). One of the main goals of the project is to increase the suitability of the existing NAG Parallel Library for dealing with computationally intensive industrial applications by appropriately extending the range of library routines. Additionally, several industrial applications are being ported onto parallel computers within the PINEAPL project by replacing sequential code sections with calls to appropriate parallel library routines.

A substantial part of the library material being developed is concerned with the solution of PDE problems using parallel sparse linear algebra modules. These modules provide support for crucial computational tasks such as graph partitioning, preconditioning and iterative solution of linear systems. Additional support routines assist users in distributing and assembling the data structures used and/or generated by the sparse linear algebra modules.

This paper provides a number of performance results which demonstrate the efficiency and scalability of core computational routines - in particular, the iterative solver, the preconditioner and the matrix-vector multiplication routines. Most of the software described in this paper has been incorporated into the recently launched Release 1 of the PINEAPL Library.

{C}

TR11/96 (NP3087) Postscript PDF

Calling 32-bit NAG C DLL functions from Visual BasicGeorge Levy, NAG Ltd, Oxford.

Calling NAG routines from Visual Basic (or Excel) can provide a convenient way quickly to develop graphical user interfaces and packages that use mathematical routines. The aim of this report is to show how the complete range of NAG C DLL routines can be called directly from Visual Basic, and thus allow programmers/package builders maximum flexibility when incorporating calls to NAG routines into their Visual Basic code.

Keywords: DLLs Visual Basic Excel Visual C++

{C}

TR5/96 (NP3010) Postscript PDF

Experiences in Developing Numerical Subprograms on a Parallel, Shared Memory ComputerStefano Salvini, Numerical Algorithms Group Ltd.

and

Jerzy Wasniewski, Danish Computing Centre for Research and Education

This Technical Report describes work carried out on the parallel, shared memory SGI Power Challenge system with MIPS R8000 (75 MHz) processors under OS IRIX 6.1 at UNI'C, Denmark.

The main thrust of this work was an investigation of the scalability and efficiency of a range of numerical routines. The routines studied were grouped according to the mode of parallelism they employed.

Simple parallelism: concurrent execution of sections of DO loops. The Level-3 BLAS DGEMM and DTRSM were chosen for this group. Automatic parallelization tools could be, and were, employed for these.

Lower level parallelism: concurrent execution within lower level routines. The LAPACK routines DGETRF, DPOTRF, DGEQRF, DGETRS and DPOTRS were studied for this group: they rely on calls to parallel Level-3 BLAS.

Explicit parallelism: customized code is required to achieve high efficiency and scalability. The quadrature routines D01DAF and D01AUF from the NAG Fortran 77 Library were selected for this group: their parallelism is further complicated by their use of globally shared data structures.

Issues of portability were paramount in the development of code: all software was written in Fortran 77 and parallelism was defined by using PCF directives.

The results obtained show that this class of systems holds great promise for the development of efficient numerical codes, portable across a range of shared-memory as well as serial systems.

Finally, future avenues of enquiry are suggested.

TR4/96 (NP3007) Postscript PDF

Accurately Counting Singular Values of Bidiagonal MatricesK V Fernando, Numerical Algorithms Group Ltd.

We have developed algorithms to count singular values of a bidiagonal matrix which are greater than a specified value. This requires the transformation of the singular value problem to an equivalent symmetric eigenvalue problem. The counting of singular values is paramount in the design of bisection and multisection type algorithms for computing singular values on serial and parallel machines.

The algorithms are based on the eigenvalues of BB', B'B and the associated 2n by 2n zero-diagonal tridiagonal matrix (which is permutationally equivalent to the Jordan-Wielandt form), where B is an n by n bidiagonal matrix. The two product matrices, which do not have to be formed explicitly, lead to the progressive and stationary qd algorithms of Rutishauser. The algorithm based on the zero-diagonal matrix, which we have named the Golub-Kahan form, may be considered as a combination of both the progressive and stationary qd algorithms.

We study important properties such as the backward error analysis, the monotonicity of the inertia count and the scaling of data which guarantee the accuracy and the integrity of these algorithms. For high relative accuracy of tiny singular values, the algorithm based on the Golub-Kahan form is the best choice. However, if such accuracy is not required or requested, the differential progressive and differential stationary qd algorithms with certain modifications are adequate and more efficient.

Keywords: bisection, multisection, singular values, eigenvalues, monotonicity, error analysis, parallel algorithms, qd algorithms, bidiagonal matrices, symmetric tridiagonal matrices, skew-symmetric tridiagonal matrices

Partially supported by NSF grant ASC-9005933 and ONR contract N000014-90-J-1372.

TR3/96 (NP3005) - Postscript files Part a Part b Part c

Speed-up Results for NAG Numerical PVM Library Routines on an IBM SP-2Mir S Derakhshan, Numerical Algorithms Group Ltd., Oxford, UK.

and

Lon Waters, Maui High Performance Computing Centre, Kihei, HI.

In this report we analyse the performance of some routines in the NAG Numerical PVM Library on an IBM SP-2. Three chapters of the Library are extensively covered and the report includes performance results in the areas of quadrature, linear equations and eigenproblems.

TR2/96 (NP2996) Postscript PDF

An Evaluation of New NAG Library Solvers for Large Sparse Unsymmetric Linear SystemsStefano Salvini and Gareth Shaw

This report presents an experimental comparison of NAG Fortran Library software for the solution of large sparse unsymmetric linear systems of algebraic equations. Preconditioned RGMRES, CGS and Bi-CGSTAB methods to be introduced at Mark 18 are compared against one another, and against direct methods. Test problems include discrete approximations to 2-D elliptic partial differential equations, random-valued randomly structured unsymmetric systems, and matrices from the Harwell--Boeing collection.

TR5/95 (NP2960) Postscript PDF

Accurate BABE Factorisation of Tridiagonal Matrices for EigenproblemsK V Fernando, NAG Ltd

Recently, Fernando successfully resurrected a classical method for computing eigen'vectors which goes back to the times of Cauchy. This algorithm has been in the doldrums for nearly fifty years because of a fundamental difficulty highlighted by Wilkinson. The algorithm is based on the solution of a nearly homogeneous system of equations (*J - rI*)*z=k ' _{k}*(

*r*)

*e*= 1 for the approximate eigenvector

_{k}, z_{k}*z*where

*r*is an eigenvalue shift,

*'*(

_{k}*r*) is a scalar and

*(e)*is a unit vector. ....

_{k}TR4/95 (NP2953) Postscript PDF

On Computing an Eigenvector of a Tridiagonal MatrixK V Fernando, NAG Ltd

We consider the solution of the homogeneous equation J-lambda I{x}=0 where J is a tridiagonal matrix, lambda is a known eigenvalue, and {x} is the unknown eigenvector corresponding to lambda. Since the system is under-determined, {x} could be obtained by setting x_k=1 and solving for the rest of the elements of {x}. This method is not entirely new and it can be traced back to the times of Cauchy (1829). In 1958, Wilkinson demonstrated that, in finite-precision arithmetic, the computed {x} is highly sensitive to the choice of k; the traditional practice of setting k=1 or k=n can lead to disastrous results. We develop algorithms to find optimal k which require a LDU and a UDL factorisation of J-lambda I and are based on the theory developed by Fernando for general matrices. We have also discovered new formulae (valid also for more general Hessenberg matrices) for the determinant of J-tau I, which give better numerical results when the shifted matrix is nearly singular. These formulae could be used to compute eigenvalues (or to improve the accuracy of known estimates) based on standard zero finders such as Newton and Laguerre methods. The accuracy of the computed eigenvalues is crucial for obtaining small residuals for the computed eigenvectors. The algorithms for solving eigenproblems are embarrassingly parallel and hence suitable for modern architectures.

TR3/95 (NP2929) Postscript PDF

On a Classical Method for Computing EigenvectorsK V Fernando

One of the oldest methods for computing an eigenvector of a matrix F is based on the solution of a set of homogeneous equations which can be traced back to the times of Cauchy (1829). The principal difficulty of this approach was identified by Wilkinson (1958). We remove this obstacle and analyse the viability of this classical method. The key to the analysis is provided by the reciprocals of the diagonal elements of the inverse of the matrix F-tau I, where tau is a shift, approximating an eigenvalue.

The final missing link is a perturbation result due to Sherman and Morrison. We extend this result to the block case. Finally, we give a new impetus for Rayleigh quotient and Laguerre iterations.

TR2/95 (NP2895) Postscript PDF

Migrating from Fortran 77 to Fortran 90 with the NAGWare f77 and f90 ToolsIan Hounam and Stuart Hemstock

The investment in code written in the Fortran language over the last four decades means that there is a vast amount of legacy code written to various standards and incorporating numerous vendor extensions to the language. Meanwhile, the new Fortran 90 standard adds many attractive new features to the language while retaining compatibility with Fortran 77. This paper shows how the NAGWare f77 Tools may be used to standardise Fortran code to a form suitable for porting to standard conforming Fortran 90 compilers. Then the paper goes on to discuss how the NAGWare f90 Tools can be used to convert this code to free format Fortran 90 with standardised precision.

TR1/95 (NP2870) Postscript PDF

An Evaluation of New NAG Library Solvers for Large Sparse Symmetric Linear SystemsStefano Salvini and Gareth Shaw

This report presents experimental results for new NAG Fortran 77 Library software for the solution of large sparse symmetric linear systems of algebraic equations. Preconditioned conjugate gradient methods introduced at Mark 17 are compared against iterative and direct methods previously available in the library. Test problems include discrete approximations to 2-d elliptic partial differential equations, random-valued randomly-structured symmetric positive-definite systems, and some symmetric systems from the Harwell-Boeing collection.

TR6/94 (NP2774) Postscript PDF

RKSUITE_90: Software for ODE IVPsBrankin, R.W. and Gladwell, I.

NAG Ltd, Oxford, October 1994

Announcement of public availability of Fortran 90 software for the initial value problem in ordinary differential equations.

TR5/94 (NP2773) Postscript PDF

The NAG Product Information DatabaseChelsom, J. and Pengelly, M.

NAG Ltd, Oxford, October 1994

Description of the NAG Product Information Database (NPID) system which manages the production and maintenance of documentation for NAG library products.

TR4/94 (NP2716) Postscript PDF

Level 2 and 3 BLAS in the NAG C LibraryDatardina, S. P., Du Croz, J. J. and Levy, G.

NAG Ltd, Oxford, September 1994

This report describes a set of matrix-vector routines (Level-2 BLAS) and matrix-matrix routines (Level-3 BLAS) written in C.