The NAG Parallel Library Manual contains two categories of routines which can be called by users. They are listed separately in the two sections below.

**Fully Documented Routines**

183 routines, for each of which an individual routine document is provided. These are regarded as the primary contents of the NAG Parallel Library.

**Fundamental Support Routines**

15 comparatively simple routines which are documented in compact form in the relevant Chapter Introductions (X01, X02).

**Note:** all the routines in the above categories have either
six-character names ending in 'F' or
seven-character names ending in 'FP'.

A00AAFP |
Prints details of the NAG Parallel Library implementation |

C06FUFP |
Direct or inverse two-dimensional Fourier transform of a complex sequence |

C06GXFP |
Factorizes a positive integer n as n = n1 × n2. This routine may be used in conjunction with C06MCFP |

C06MCFP |
Direct or inverse one-dimensional discrete Fourier transform of a complex sequence |

C06MXFP |
Direct or inverse three-dimensional discrete Fourier transform of a complex sequence |

D01ATFP |
One-dimensional quadrature, adaptive, finite interval, allowing for badly behaved integrands |

D01AUFP |
One-dimensional quadrature, adaptive, finite interval, suitable for oscillating functions |

D01AXFP |
One-dimensional quadrature, adaptive, finite interval, weight functions cos(omega x) or sin(omega x) |

D01DAFP |
Two-dimensional quadrature, finite region |

D01FAFP |
Multi-dimensional quadrature, hyper-rectangle, adaptive |

D01GCFP |
Multi-dimensional quadrature, general product region, number-theoretic method |

E04FDFP |
Unconstrained minimum of a sum of squares, Gauss--Newton algorithm using function values only (easy-to-use) |

E04JBFP |
Minimum of a general nonlinear function with unconstrained, Gauss--Newton algorithm using function values only (easy-to-use) |

F01CPFP |
Element-wise maximum or minimum in absolute value of integer matrices |

F01WAFP |
Gather real matrix, regarded as submatrix of matrix distributed in cyclic two-dimensional block format, used with routines from Chapters F07 and F08 |

F01WBFP |
Gather real matrix distributed in cyclic two-dimensional block format, used with routines from Chapter F04 |

F01WGFP |
Gather complex matrix distributed in cyclic two-dimensional block format, used with routines from Chapters F07 and F08 |

F01WHFP |
Gather complex matrix distributed in cyclic two-dimensional block format, used with routines from Chapter F04 |

F01WNFP |
Scatter real matrix from the root processor to the Library Grid using cyclic two-dimensional block format, used with routines from Chapters F07 and F08 |

F01WPFP |
Scatter real matrix from the root processor to the Library Grid using cyclic two-dimensional block format, used with routines from Chapter F04 |

F01WUFP |
Scatter complex matrix from the root processor to the Library Grid using cyclic two-dimensional block format, used with routines from Chapters F07 and F08 |

F01WVFP |
Scatter complex matrix from the root processor to the Library Grid using cyclic two-dimensional block format, used with routines from Chapter F04 |

F01XAFP |
Scatter real sparse matrix, stored in coordinate storage format, using cyclic row block distribution |

F01XEFP |
Scatter real vector distributed conformally to sparse matrix, used with routines from Chapter F11 |

F01XFFP |
Gather real vector distributed conformally to sparse matrix, used with routines from Chapter F11 |

F01XGFP |
Scatter integer vector distributed conformally to sparse matrix, used with routines from Chapter F11 |

F01XHFP |
Gather integer vector distributed conformally to sparse matrix, used with routines from Chapter F11 |

F01XPFP |
Scatter complex sparse matrix, stored in coordinate storage format, using cyclic row block distribution, used with routines from Chapter F11 |

F01XTFP |
Scatter complex vector distributed conformally to sparse matrix, used with routines from Chapter F11 |

F01XUFP |
Gather complex vector distributed conformally to sparse matrix, used with routines from Chapter F11 |

F01YAFP |
In-place generation of real sparse matrix using cyclic row block distribution |

F01YBFP |
In-place generation of real sparse matrix using cyclic row block distribution (suitable for repeated sparsity pattern), used with routines from Chapter F11 |

F01YEFP |
In-place generation of real dense vector distributed conformally to sparse matrix |

F01YPFP |
In-place generation of complex sparse matrix according to cyclic row block distribution, used with routines from Chapter F11 |

F01YQFP |
In-place generation of complex sparse matrix according to cyclic row block distribution (suitable for repeated sparsity pattern) |

F01YTFP |
In-place generation of complex dense vector distributed conformally to sparse matrix, used with routines from Chapter F11 |

F01YWFP |
In-place generation of complex Hermitian banded matrix in column block fashion, used with routines from Chapter F07 |

F01YXFP |
In-place generation of real symmetric banded matrix in column block fashion, used with routines from Chapter F07 |

F01YYFP |
In-place generation of real matrix in row block fashion on a one-dimensional grid of processors, used with routines from Chapter F07 |

F01YZFP |
In-place generation of complex matrix in row block fashion on a one-dimensional grid of processors, used with routines from Chapter F07 |

F01ZHFP |
Generates an l by m by n three-dimensional array A(i,j,k) on a grid of processors in i-block form |

F01ZMFP |
In-place generation of real matrix in row block fashion, used with routines from Chapters C06 and F04 |

F01ZNFP |
In-place generation of complex matrix in row block fashion, used with routines from Chapter F04 |

F01ZPFP |
Gather real vector distributed conformally to matrix, used with routines from Chapters F07 and F08 |

F01ZQFP |
In-place generation of real matrix in cyclic two-dimensional block fashion, used with routines from Chapters F07 and F08 |

F01ZRFP |
In-place generation of real matrix in column block fashion, used with routines from Chapters F02 and F04 |

F01ZSFP |
In-place generation of real matrix in cyclic two-dimensional block fashion, used with routines from Chapter F04 (Black Box) |

F01ZVFP |
In-place generation of complex matrix in cyclic two-dimensional block fashion, used with routines from Chapters F07 and F08 |

F01ZWFP |
In-place generation of complex matrix in column block fashion, used with routines from Chapters F02 and F04 |

F01ZXFP |
In-place generation of complex matrix in cyclic two-dimensional block fashion, used with routines from Chapter F04 (Black Box) |

F01ZYFP |
In-place generation of complex vector in column block fashion, used with routines from Chapter F07 |

F01ZZFP |
In-place generation of real vector in column block fashion, used with routines from Chapter F07 |

F02FQFP |
Eigenvalues and eigenvectors of real symmetric matrix, one-sided Jacobi method |

F02FRFP |
Eigenvalues and eigenvectors of complex Hermitian matrix, one-sided Jacobi method |

F02WQFP |
Singular Value Decomposition (SVD) of real matrix, one-sided Jacobi method |

F02WRFP |
Singular Value Decomposition (SVD) of complex matrix, one-sided Jacobi method |

F04EBFP |
Solution of real linear system (Black Box) |

F04ECFP |
Solution of complex linear equations (Black Box) |

F04FBFP |
Solution of real symmetric positive-definite linear system (Black Box) |

F04FCFP |
Solution of complex Hermitian positive-definite linear system (Black Box) |

F04GBFP |
Solution of real linear least-squares problem (Black Box) |

F04HBFP |
Solution of real symmetric banded linear system (Black Box) |

F04HZFP |
Solution of complex Hermitian banded linear system (Black Box) |

F04JBFP |
Solution of real symmetric tridiagonal linear system (Black Box) |

F04JZFP |
Solution of complex Hermitian tridiagonal linear system (Black Box) |

F07ADFP |
(PDGETRF) LU factorization of real general matrix |

F07AEFP |
(PDGETRS) Solution of real linear system, matrix already factorized by F07ADFP (PDGETRF) |

F07ARFP |
(PZGETRF) LU factorization of complex general matrix |

F07ASFP |
(PZGETRS) Solution of complex linear system, matrix already factorized by F07ARFP (PZGETRF) |

F07FDFP |
(PDPOTRF) Cholesky factorization of real symmetric positive-definite matrix |

F07FEFP |
(PDPOTRS) Solution of real symmetric positive-definite linear system, matrix already factorized by F07FDFP (PDPOTRF) |

F07FRFP |
(PZPOTRF) Cholesky factorization of complex Hermitian positive-definite matrix |

F07FSFP |
(PZPOTRS) Solution of complex Hermitian positive-definite linear system, matrix already factorized by F07FRFP (PZPOTRF) |

F07HDFP |
(PDPBTRF) Cholesky factorization of real symmetric banded matrix with no pivoting |

F07HEFP |
(PDPBTRS) Solution of real symmetric banded linear system, matrix already factorized by F07HDFP (PDPBTRF) |

F07HRFP |
(PZPBTRF) Cholesky factorization of complex Hermitian banded matrix with no-pivoting |

F07HSFP |
(PZPBTRS) Solution of complex Hermitian banded linear system, matrix already factorized by F07HRFP (PZPBTRF) |

F07JDFP |
(PDPTTRF) Cholesky factorization of real symmetric tridiagonal matrix with no-pivoting |

F07JEFP |
(PDPTTRS) Solution of real symmetric tridiagonal linear system, matrix already factorized by F07JDFP (PDPTTRF) |

F07JRFP |
(PZPTTRF) Factorization of complex Hermitian tridiagonal matrix with no-pivoting |

F07JSFP |
(PZPTTRS) Solution of real symmetric tridiagonal linear system, matrix already factorized by F07JRFP (PZPTTRF) |

F07TGFP |
(PDTRCON) Estimates condition number of real triangular matrix |

F08AEFP |
(PDGEQRF) QR factorization of real general rectangular matrix |

F08AFFP |
(PDORGQR) Form all or part of an orthogonal Q from QR factorization determined by F08AEFP (PDGEQRF) |

F08AGFP |
(PDORMQR) Apply the orthogonal transformation determined by F08AEFP (PDORMQR) |

F08ASFP |
(PZGEQRF) QR factorization of complex general rectangular matrix |

F08ATFP |
(PZUNGQR) Form all or part of a unitary Q from QR factorization determined by F08ASFP (PZGEQRF) |

F08AUFP |
(PZUNMQR) Apply the unitary transformation determined by F08ASFP (PZUNMQR) |

F08FEFP |
(PDSYTRD) Orthogonal reduction of real symmetric matrix to tridiagonal form |

F08FGFP |
(PDORMTR) Apply orthogonal transformation determined by F08FEFP (PDSYTRD) |

F08FSFP |
(PZHETRD) Unitary reduction of complex Hermitian matrix to real symmetric tridiagonal form |

F08FUFP |
(PZUNMTR) Apply unitary transformation matrix determined by F08FSFP (PZHETRD) |

F08JJFP |
(PDSTEBZ) All or selected eigenvalues of real symmetric tridiagonal matrix by bisection |

F08JKFP |
(PDSTEIN) Selected eigenvectors of real symmetric tridiagonal matrix by inverse iteration, storing eigenvectors in real array |

F08JXFP |
(PZSTEIN) Selected eigenvectors of real symmetric tridiagonal matrix by inverse iteration, storing eigenvectors in complex array |

F11BAFP |
Real sparse nonsymmetric linear system, reverse-communication, set-up for F11BBFP |

F11BBFP |
Real sparse nonsymmetric linear system, reverse-communication, solver using preconditioned RGMRES, CGS or Bi-CGSTAB |

F11BCFP |
Real sparse nonsymmetric linear system, reverse-communication, diagnostic for F11BBFP |

F11BRFP |
Complex sparse non-Hermitian linear system, reverse-communication, set-up for F11BSFP |

F11BSFP |
Complex sparse non-Hermitian linear system, reverse-communication, solver using preconditioned GMRES, CGS or Bi-CGSTAB |

F11BTFP |
Complex sparse non-Hermitian linear system, reverse-communication, diagnostic for F11BSFP |

F11DAFP |
Incomplete LU factorization of the local diagonal blocks of a real sparse matrix, represented in coordinate storage format, distributed on a logical grid of processors in cyclic row block form |

F11DBFP |
Solution of real system of linear equations, involving a real block diagonal sparse matrix, represented in coordinate storage format, distributed on a logical grid of processors in cyclic row block form |

F11DCFP |
Black Box routine for sparse system of linear equations |

F11DDFP |
Apply iterations of SOR method to real sparse linear system, used mostly as SOR preconditioner for real sparse matrix |

F11DEFP |
Solution of real sparse nonsymmetric linear system using Jacobi, SOR or no preconditioned RGMRES, CGS or Bi-CGSTAB (Black Box) |

F11DFFP |
Real sparse nonsymmetric linear system, reverse-communication, incomplete LU factorization of local or overlapping diagonal blocks, used mostly as incomplete LU preconditioner for real sparse matrix |

F11DGFP |
Real sparse nonsymmetric linear system, reverse-communication, preconditioner for real sparse matrix |

F11DHFP |
Solution of real sparse nonsymmetric linear system using block-Jacobi preconditioned RGMRES, CGS or Bi-CGSTAB (Black Box) |

F11DKFP |
Apply iterations of relaxed Jacobi iterative method to a real sparse linear system, used mostly as Jacobi preconditioner for real sparse matrix |

F11DRFP |
Apply iterations of SOR method to the complex sparse linear system, used mostly as SOR preconditioner for complex sparse matrix |

F11DSFP |
Solution of complex sparse non-Hermitian linear system using Jacobi, SOR or no preconditioned RGMRES, CGS or Bi-CGSTAB (Black Box) |

F11DTFP |
Computes incomplete LU factorization of local diagonal blocks of complex sparse matrix |

F11DUFP |
Complex sparse non-Hermitian linear system, reverse-communication, block-Jacobi preconditioner generated by F11DTFP |

F11DVFP |
Solution of complex sparse non-Hermitian linear system using block-Jacobi preconditioned RGMRES, CGS or Bi-CGSTAB (Black Box) |

F11DXFP |
Apply iterations of relaxed Jacobi iterative method to complex sparse linear system, used mostly as Jacobi preconditioner for complex sparse matrix |

F11GAFP |
Real sparse symmetric linear system, reverse-communication, set-up for F11GBFP |

F11GBFP |
Real sparse symmetric linear system, reverse-communication, solver using preconditioned CG or SYMMLQ |

F11GCFP |
Real sparse symmetric linear system, reverse-communication, diagnostic for F11GBFP |

F11JEFP |
Solution of real sparse symmetric linear system using Jacobi, SSOR or no preconditioned CG or SYMMLQ (Black Box) |

F11JHFP |
Solution of sparse symmetric linear system using block-Jacobi preconditioned CG or SYMMLQ (Black Box) |

F11XBFP |
Matrix-vector multiplication for real sparse matrix |

F11XPFP |
Matrix-vector multiplication for complex sparse matrix |

F11YAFP |
Permutation of non-zero entries of real sparse matrix with repeated sparsity pattern |

F11YBFP |
Permutation of real vector from distribution based order to local indexing based order |

F11YCFP |
Permutation of real vector from local indexing based order to distribution based order |

F11YNFP |
Permutation of non-zero entries of complex sparse matrix with repeated sparsity pattern |

F11YPFP |
Permutation of complex vector from distribution based order to local indexing based order |

F11YQFP |
Permutation of complex vector from local indexing based order to distribution based order |

F11ZAFP |
General set-up routine for real sparse matrix distributed in cyclic row block form |

F11ZBFP |
General set-up routine for real sparse matrix distributed in cyclic row block form (suitable for repeated sparsity pattern) |

F11ZGFP |
Generates multi-colour ordering for real sparse matrix with symmetric sparsity pattern, distributed in row block form |

F11ZPFP |
General set-up routine for complex sparse matrix, distributed in cyclic row block form (suitable for repeated sparsity pattern) |

F11ZUFP |
Generates multi-colour ordering for complex sparse matrix with symmetric sparsity pattern, distributed in row block form. |

F11ZZFP |
Release of internally allocated memory |

G05AAFP |
Function returning pseudo-random real number from the interval (0,1) |

G05ABFP |
Selects random number generator and initialises seeds to give repeatable sequence |

G05ACFP |
Function returning pseudo-random real number from the interval [a,b), uniform distribution |

G05ADFP |
Function returning pseudo-random real number from the interval [a,b), Normal distribution |

G05AEFP |
Function returning pseudo-random real number from the interval [a,b), exponential distribution |

G05AZFP |
Function returning pseudo-random integer from the interval [ia,ib), uniform distribution |

G05BAFP |
Pseudo-random real numbers from the interval (0,0), uniform distribution |

G05BBFP |
Selects random number generator and initialises seeds to give repeatable sequence |

G05BCFP |
Pseudo-random real numbers from the interval (a,b), uniform distribution |

G05BDFP |
Pseudo-random real numbers from the interval (a,b), Normal distribution |

G05BEFP |
Pseudo-random real numbers from the interval (a,b), exponential distribution |

G05BZFP |
Pseudo-random integers from the interval (ia,ib), uniform distribution |

X01AAF |
pi |

X01ABF |
Euler's constant, gamma |

X02AHF |
Largest permissible argument for sin and cos |

X02AJF |
Machine precision |

X02AKF |
Smallest positive model number |

X02ALF |
Largest positive model number |

X02AMF |
Safe range of real floating-point arithmetic |

X02ANF |
Safe range of complex floating-point arithmetic |

X02BBF |
Largest representable integer |

X02BEF |
Maximum number of decimal digits that can be represented |

X02BHF |
Parameter of floating-point arithmetic model, b |

X02BJF |
Parameter of floating-point arithmetic model, p |

X02BKF |
Parameter of floating-point arithmetic model, e_{min} |

X02BLF |
Parameter of floating-point arithmetic model, e_{max} |

X02DJF |
Parameter of floating-point arithmetic model, ROUNDS |

X04AAF |
Returns or sets unit number for error message |

X04ABF |
Returns or sets unit number for advisory messages |

X04BCFP |
Reads real general matrix, from external file, into array distributed in cyclic two-dimensional form, used with routines from Chapters F07 and F08 |

X04BDFP |
Outputs real general matrix, stored in cyclic two-dimensional block fashion, to an external file, used with routines from Chapters F07 and F08 |

X04BFFP |
Outputs set of real general matrices distributed on a two-dimensional logical processor grid, used with routines from Chapter F02 |

X04BGFP |
Reads general real matrix from external file into array distributed in cyclic two-dimensional block form, used with routines from Chapter F04 (Black Box) |

X04BHFP |
Outputs general real matrix, stored in cyclic two-dimensional block fashion, to external file, used with routines from Chapter F04 (Black Box) |

X04BMFP |
Outputs set of general integer matrices distributed on a two-dimensional logical processor grid |

X04BRFP |
Reads complex general matrix from an external file into array distributed in cyclic two-dimensional block form, used with routines from Chapters F07 and F08 |

X04BSFP |
Outputs complex general matrix, stored in cyclic two-dimensional block fashion to an external file, used with routines from Chapters F07 and F08 |

X04BUFP |
Outputs set of complex general matrices distributed on a two-dimensional logical processor grid, used with routines from Chapter F02 |

X04BVFP |
Reads general complex matrix from an external file into an array distributed in cyclic two-dimensional block form, used with routines from Chapter F04 (Black Box) |

X04BWFP |
Outputs general complex matrix, stored in cyclic two-dimensional block fashion, used with routines from Chapter F04 (Black Box) |

X04BXFP |
Outputs real matrix stored in row block fashion |

X04BZFP |
Outputs complex matrix stored in row block fashion |

X04YAFP |
Outputs real dense vector, distributed conformally to a sparse matrix on a logical grid of processors, to an external file |

X04YPFP |
Outputs complex vector, distributed conformally to sparse matrix to a sequential file |

Z01AAFP |
Defines two-dimensional logical processor grid (Library Grid) and returns the BLACS context |

Z01ABFP |
Undefines logical processor grid and invalidates the BLACS context initialised by Z01AAFP |

Z01ACFP |
Root processor identifier |

Z01AEFP |
Used in creating processes outside the default library mechanism, allows multigridding, used in more advanced applications |

Z01BAFP |
Row and column indices of the root processor within the logical grid |

Z01BBFP |
Identifies logical processors in context in the two-dimensional grid declared by Z01AAFP |

Z01BEFP |
Topology to be used by BLACS for broadcasting and global operations |

Z01BGFP |
Information about MPI tasks |

Z01CAFP |
Number of rows or columns of matrix held locally on a given processor when the matrix is distributed in the cyclic two-dimensional block fashion (NUMROC) |

Z01CBFP |
Length of the workspace for F08AEFP (PDGEQRF) and F08AFFP (PDORGQR) |

Z01CCFP |
Length of the workspace for F08AGFP (PDORMQR) |

Z01CDFP |
Process coordinate which possesses the entry of a distributed matrix specified by a global index (INDXG2P) |

Z01CEFP |
Length of the workspace for F08FEFP (PDSYTRD) |

Z01CFFP |
Computes number of rows of a row block distributed matrix owned by a processor |

Z01ZAFP |
Returns information on coordinates in Library Grid set up by Z01AAFP |

Z01ZBFP |
Creates an MPI communicator from a Library context |

Z02EAFP |
Specification of error checking level, can reduce the amount of checking carried out in subsequent calls to other Library routines |

© The Numerical Algorithms Group Ltd, Oxford UK. 2000