# NAG CL InterfaceF01 (Matop)Matrix Operations, Including Inversion

Settings help

CL Name Style:

## 1Scope of the Chapter

This chapter provides facilities for four types of problem:
1. (i)matrix inversion;
2. (ii)matrix factorizations;
3. (iii)matrix arithmetic and manipulation;
4. (iv)matrix functions.
See Sections 2.1, 2.2, 2.3 and 2.4 where these problems are discussed.

## 2Background to the Problems

### 2.1Matrix Inversion

1. (i)Nonsingular square matrices of order $n$.
If $A$, a square matrix of order $n$, is nonsingular (has rank $n$), then its inverse $X$ exists and satisfies the equations $AX=XA=I$ (the identity or unit matrix).
It is worth noting that if $AX-I=R$, so that $R$ is the ‘residual’ matrix, then a bound on the relative error is given by $‖R‖$, i.e.,
 $‖X-A-1‖ ‖A-1‖ ≤‖R‖.$
2. (ii)General real rectangular matrices.
A real matrix $A$ has no inverse if it is square ($n×n$) and singular (has rank $\text{}), or if it is of shape ($m×n$) with $m\ne n$, but there is a Generalized or Pseudo-inverse ${A}^{+}$ which satisfies the equations
 $AA+A=A, A+AA+=A+, (AA+)T=AA+, (A+A)T=A+A$
(which of course are also satisfied by the inverse $X$ of $A$ if $A$ is square and nonsingular).
1. (a)if $m\ge n$ and $\mathrm{rank}\left(A\right)=n$ then $A$ can be factorized using a $\mathbit{Q}\mathbit{R}$ factorization, given by
 $A=Q ( R 0 ) ,$
where $Q$ is an $m×m$ orthogonal matrix and $R$ is an $n×n$, nonsingular, upper triangular matrix. The pseudo-inverse of $A$ is then given by
 $A+=R-1Q~T,$
where $\stackrel{~}{Q}$ consists of the first $n$ columns of $Q$.
2. (b)if $m\le n$ and $\mathrm{rank}\left(A\right)=m$ then $A$ can be factorized using an RQ factorization, given by
 $A=(R 0)QT$
where $Q$ is an $n×n$ orthogonal matrix and $R$ is an $m×m$, nonsingular, upper triangular matrix. The pseudo-inverse of $A$ is then given by
 $A+ = Q~R-1 ,$
where $\stackrel{~}{Q}$ consists of the first $m$ columns of $Q$.
3. (c)if $m\ge n$ and $\mathrm{rank}\left(A\right)=r\le n$ then $A$ can be factorized using a $QR$ factorization, with column interchanges, as
 $A=Q ( R 0 ) PT,$
where $Q$ is an $m×m$ orthogonal matrix, $R$ is an $r×n$ upper trapezoidal matrix and $P$ is an $n×n$ permutation matrix. The pseudo-inverse of $A$ is then given by
 $A+=PRT(RRT)−1Q~T,$
where $\stackrel{~}{Q}$ consists of the first $r$ columns of $Q$.
4. (d)if $\mathrm{rank}\left(A\right)=r\le k=\mathrm{min}\phantom{\rule{0.125em}{0ex}}\left(m,n\right)$ then $A$ can be factorized as the singular value decomposition
 $A=UΣVT,$
where $U$ is an $m×m$ orthogonal matrix, $V$ is an $n×n$ orthogonal matrix and $\Sigma$ is an $m×n$ diagonal matrix with non-negative diagonal elements $\sigma$. The first $k$ columns of $U$ and $V$ are the left- and right-hand singular vectors of $A$ respectively and the $k$ diagonal elements of $\Sigma$ are the singular values of $A$. $\Sigma$ may be chosen so that
 $σ1≥σ2≥⋯≥σk≥0$
and in this case, if $\mathrm{rank}\left(A\right)=r$ then
 $σ1≥σ2≥⋯≥σr>0, σr+1=⋯=σk=0.$
If $\stackrel{~}{U}$ and $\stackrel{~}{V}$ consist of the first $r$ columns of $U$ and $V$ respectively and $\stackrel{~}{\Sigma }$ is an $r×r$ diagonal matrix with diagonal elements ${\sigma }_{1},{\sigma }_{2},\dots ,{\sigma }_{r}$ then $A$ is given by
 $A=U~Σ~V~T$
and the pseudo-inverse of $A$ is given by
 $A+=V~Σ~-1U~T.$
Notice that
 $ATA=V(ΣTΣ)VT$
which is the classical eigenvalue (spectral) factorization of ${A}^{\mathrm{T}}A$.
5. (e)if $A$ is complex then the above relationships are still true if we use ‘unitary’ in place of ‘orthogonal’ and conjugate transpose in place of transpose. For example, the singular value decomposition of $A$ is
 $A=UΣVH,$
where $U$ and $V$ are unitary, ${V}^{\mathrm{H}}$ the conjugate transpose of $V$ and $\Sigma$ is as in (ii)(d) above.

### 2.2Matrix Factorizations

The functions in this section perform matrix factorizations which are required for the solution of systems of linear equations with various special structures. A few functions which perform associated computations are also included.
Other functions for matrix factorizations are to be found in Chapters F07, F08 and F11.
This section also contains a few functions associated with eigenvalue problems (see Chapter F02). (Historical note: this section used to contain many more such functions, but they have now been superseded by functions in Chapter F08.)
Finally, this section contains functions for computing non-negative matrix factorizations, which are used for dimensional reduction and classification in data analysis. Given a rectangular $m×n$ matrix, $A$, with non-negative elements, a non-negative matrix factorization of $A$ is an approximate factorization of $A$ into the product of an $m×k$ non-negative matrix $W$ and a $k×n$ non-negative matrix $H$, so that $A\approx WH$. Typically $k$ is chosen so that $k\ll \mathrm{min}\phantom{\rule{0.125em}{0ex}}\left(m,n\right)$. The matrices $W$ and $H$ are then computed to minimize ${|A-WH|}_{F}$. The factorization is not unique.

### 2.3Matrix Arithmetic and Manipulation

The intention of functions in this section (f01d and f01v) is to cater for some of the commonly occurring operations in matrix manipulation, i.e., conversion between different storage formats,such as conversion between rectangular band matrix storage and packed band matrix storage. For vector or matrix-vector or matrix-matrix operations refer to Chapters F06 and F16.

### 2.4Matrix Functions

Given a square matrix $A$, the matrix function $f\left(A\right)$ is a matrix with the same dimensions as $A$ which provides a generalization of the scalar function $f$.
If $A$ has a full set of eigenvectors $V$ then $A$ can be factorized as
 $A = V D V-1 ,$
where $D$ is the diagonal matrix whose diagonal elements, ${d}_{i}$, are the eigenvalues of $A$. $f\left(A\right)$ is given by
 $f(A) = V f(D) V-1 ,$
where $f\left(D\right)$ is the diagonal matrix whose $i$th diagonal element is $f\left({d}_{i}\right)$.
In general, $A$ may not have a full set of eigenvectors. The matrix function can then be defined via a Cauchy integral. For $A\in {ℂ}^{n×n}$,
 $f(A) = 1 2π i ∫ Γ f(z) (zI-A)-1 dz ,$
where $\Gamma$ is a closed contour surrounding the eigenvalues of $A$, and $f$ is analytic within $\Gamma$.
Some matrix functions are defined implicitly. A matrix logarithm is a solution $X$ to the equation
 $eX=A .$
In general, $X$ is not unique, but if $A$ has no eigenvalues on the closed negative real line then a unique principal logarithm exists whose eigenvalues have imaginary part between $\pi$ and $-\pi$. Similarly, a matrix square root is a solution $X$ to the equation
 $X2=A .$
If $A$ has no eigenvalues on the closed negative real line then a unique principal square root exists with eigenvalues in the right half-plane. If $A$ has a vanishing eigenvalue then $\mathrm{log}\left(A\right)$ cannot be computed. If the vanishing eigenvalue is defective (its algebraic multiplicity exceeds its geometric multiplicity, or equivalently it occurs in a Jordan block of size greater than $1$) then the square root cannot be computed. If the vanishing eigenvalue is semisimple (its algebraic and geometric multiplicities are equal, or equivalently it occurs only in Jordan blocks of size $1$) then a square root can be computed.
Algorithms for computing matrix functions are usually tailored to a specific function. Currently, Chapter F01 contains routines for calculating the exponential, logarithm, sine, cosine, sinh, cosh, square root and the general real power of both real and complex matrices. In addition, there are routines to compute a general function of real symmetric and complex Hermitian matrices and a general function of general real and complex matrices.
The Fréchet derivative of a matrix function $f\left(A\right)$ in the direction of the matrix $E$ is the linear function mapping $E$ to ${L}_{f}\left(A,E\right)$ such that
 $f(A+E) - f(A) - Lf(A,E) = O(‖E‖) .$
The Fréchet derivative measures the first-order effect on $f\left(A\right)$ of perturbations in $A$. Chapter F01 contains functions for calculating the Fréchet derivative of the exponential, logarithm and real powers of both real and complex matrices.
The condition number of a matrix function is a measure of its sensitivity to perturbations in the data. The absolute condition number measures these perturbations in an absolute sense and is defined by
 $condabs (f,A) ≔ lim ε→0 sup {‖E‖→0} ‖f(A+E)-f(A)‖ ε .$
The relative condition number, which is usually of more interest, measures these perturbations in a relative sense and is defined by
 $condrel (f,A) = condabs (f,A) ‖A‖ ‖f(A)‖ .$
The absolute and relative condition numbers can be expressed in terms of the norm of the Fréchet derivative by
 $condabs (f,A) = max E≠0 ‖L(A,E)‖ ‖E‖ ,$
 $condrel (f,A) = ‖A‖ ‖f(A)‖ max E≠0 ‖L(A,E)‖ ‖E‖ .$
Chapter F01 contains routines for calculating the condition number of the matrix exponential, logarithm, sine, cosine, sinh, cosh, square root and the general real power of both real and complex matrices. It also contains routines for estimating the condition number of a general function of a real or complex matrix.

## 3Recommendations on Choice and Use of Available Functions

### 3.1Matrix Inversion

Note:  before using any function for matrix inversion, consider carefully whether it is needed.
Although the solution of a set of linear equations $Ax=b$ can be written as $x={A}^{-1}b$, the solution should never be computed by first inverting $A$ and then computing ${A}^{-1}b$; the functions in Chapters F04 or F07 should always be used to solve such sets of equations directly; they are faster in execution, and numerically more stable and accurate. Similar remarks apply to the solution of least squares problems which again should be solved by using the functions in Chapters F04 and F08 rather than by computing a pseudo-inverse.
1. (a)Nonsingular square matrices of order $n$
This chapter describes techniques for inverting a general real matrix $A$ and matrices which are positive definite (have all eigenvalues positive) and are either real and symmetric or complex and Hermitian. It is wasteful and uneconomical not to use the appropriate function when a matrix is known to have one of these special forms. A general function must be used when the matrix is not known to be positive definite. In most functions, the inverse is computed by solving the linear equations $A{x}_{\mathit{i}}={e}_{\mathit{i}}$, for $\mathit{i}=1,2,\dots ,n$, where ${e}_{i}$ is the $i$th column of the identity matrix.
The residual matrix $R=AX-I$, where $X$ is a computed inverse of $A$, conveys useful information. Firstly $‖R‖$ is a bound on the relative error in $X$ and secondly $‖R‖<\frac{1}{2}$ guarantees the convergence of the iterative process in the ‘corrected’ inverse functions.
The decision trees for inversion show which functions in Chapter F07 should be used for the inversion of other special types of matrices not treated in the chapter.
2. (b)General real rectangular matrices
For real matrices f08aec returns the $QR$ factorization of the matrix and f08bfc returns the $QR$ factorization with column interchanges. The corresponding complex functions are f08asc and f08btc respectively. Functions are also provided to form the orthogonal matrices and transform by the orthogonal matrices following the use of the above functions.
f08kbc and f08kpc compute the singular value decomposition as described in Section 2 for real and complex matrices respectively. If $A$ has rank $r\le k=\mathrm{min}\phantom{\rule{0.125em}{0ex}}\left(m,n\right)$ then the $k-r$ smallest singular values will be negligible and the pseudo-inverse of $A$ can be obtained as ${A}^{+}=V{\Sigma }^{-1}{U}^{\mathrm{T}}$ as described in Section 2. If the rank of $A$ is not known in advance it can be estimated from the singular values (see Section 2.4 in the F04 Chapter Introduction). For large sparse matrices, leading terms in the singular value decomposition can be computed using functions from Chapter F12.

### 3.2Matrix Factorizations

Most of these functions serve a special purpose required for the solution of sets of simultaneous linear equations or the eigenvalue problem. For further details, you should consult Sections 3 or 4 in the F02 Chapter Introduction or Sections 3 or 4 in the F04 Chapter Introduction.
f11dac is provided for factorizing general real sparse matrices. A more recent algorithm for the same problem is available through f11mec. For factorizing real symmetric positive definite sparse matrices, see f11jac. These functions should only be used when $A$ is not banded and when the total number of nonzero elements is less than 10% of the total number of elements. In all other cases, either the band functions or the general functions should be used.
f01mdc and f01mec compute the Cheng–Higham modified Cholesky factorization of a real symmetric matrix and the positive definite perturbed input matrix from the factors.
The functions f01sac (for dense matrices) and f01sbc (sparse matrices, using a reverse communication interface) are provided for computing non-negative matrix factorizations.

### 3.3Matrix Arithmetic and Manipulation

The functions in the f01d section perform arithmetic operations on triangular matrices.
The functions in the f01v (LAPACK) section are designed to allow conversion between full storage format and one of the packed storage schemes required by some of the functions in Chapters F02, F04, F06, F07 and F08.

#### 3.3.1NAG Names and LAPACK Names

Functions with NAG short name beginning f01v may be called either by their NAG short names or by their NAG long names. The NAG long names for a function is simply the LAPACK name (in lower case) prepended by nag_, for example, nag_matop_dtrttf is the long name for f01vec.
When using the NAG Library, the double precision form of the LAPACK name must be used (beginning with d- or z-).
References to Chapter F01 functions in the manual normally include the LAPACK double precision names, for example, f01vec.
The LAPACK function names follow a simple scheme (which is similar to that used for the BLAS in Chapter F16). Most names have the structure nag_xyytzz, where the components have the following meanings:
– the initial letter, x, indicates the data type (real or complex) and precision:
• d – real, double precision
• z – complex, double precision
– the fourth letter, t, indicates that the function is performing a storage scheme transformation (conversion)
– the letters yy indicate the original storage scheme used to store a triangular part of the matrix $A$, while the letters zz indicate the target storage scheme of the conversion (yy cannot equal zz since this would do nothing):
• tf – Rectangular Full Packed Format (RFP)
• tp – Packed Format
• tr – Full Format

### 3.4Matrix Functions

f01ecc and f01fcc compute the matrix exponential, ${e}^{A}$, of a real and complex square matrix $A$ respectively. If estimates of the condition number of the matrix exponential are required then f01jgc and f01kgc should be used. If Fréchet derivatives are required then f01jhc and f01khc should be used.
f01edc and f01fdc compute the matrix exponential, ${e}^{A}$, of a real symmetric and complex Hermitian matrix respectively. If the matrix is real symmetric, or complex Hermitian then it is recommended that f01edc, or f01fdc be used as they are more efficient and, in general, more accurate than f01ecc and f01fcc.
f01ejc and f01fjc compute the principal matrix logarithm, $\mathrm{log}\left(A\right)$, of a real and complex square matrix $A$ respectively. If estimates of the condition number of the matrix logarithm are required then f01jjc and f01kjc should be used. If Fréchet derivatives are required then f01jkc and f01kkc should be used.
f01ekc and f01fkc compute the matrix exponential, sine, cosine, sinh or cosh of a real and complex square matrix $A$ respectively. If the matrix exponential is required then it is recommended that f01ecc or f01fcc be used as they are, in general, more accurate than f01ekc and f01fkc. If estimates of the condition number of the matrix function are required then f01jac and f01kac should be used.
f01elc and f01emc compute the matrix function, $f\left(A\right)$, of a real square matrix. f01flc and f01fmc compute the matrix function of a complex square matrix. The derivatives of $f$ are required for these computations. f01elc and f01flc use numerical differentiation to obtain the derivatives of $f$. f01emc and f01fmc use derivatives you have supplied. If estimates of the condition number are required but you are not supplying derivatives then f01jbc and f01kbc should be used. If estimates of the condition number of the matrix function are required and you are supplying derivatives of $f$ then f01jcc and f01kcc should be used.
If the matrix $A$ is real symmetric or complex Hermitian then it is recommended that to compute the matrix function, $f\left(A\right)$, f01efc and f01ffc are used respectively as they are more efficient and, in general, more accurate than f01elc, f01emc, f01flc and f01fmc.
f01gac and f01hac compute the matrix function ${e}^{tA}B$ for explicitly stored dense real and complex matrices $A$ and $B$ respectively while f01gbc and f01hbc compute the same using reverse communication. In the latter case, control is returned to you. You should calculate any required matrix-matrix products and then call the function again. See Section 7 in How to Use the NAG Library for further information.
f01enc and f01fnc compute the principal square root ${A}^{1/2}$ of a real and complex square matrix $A$ respectively. If $A$ is complex and upper triangular then f01fpc should be used. If $A$ is real and upper quasi-triangular then f01epc should be used. If estimates of the condition number of the matrix square root are required then f01jdc and f01kdc should be used.
f01eqc and f01fqc compute the matrix power ${A}^{p}$, where $p\in ℝ$, of real and complex matrices respectively. If estimates of the condition number of the matrix power are required then f01jec and f01kec should be used. If Fréchet derivatives are required then f01jfc and f01kfc should be used.

## 4Decision Trees

The decision trees show the functions in this chapter and in Chapter F07 and Chapter F08 that should be used for inverting matrices of various types. They also show which function should be used to calculate various matrix functions.
(i) Matrix Inversion:

### Tree 1

 Is $A$ an $n×n$ matrix of rank $n$? Is $A$ a real matrix? see Tree 2 yes yes no no see Tree 3 see Tree 4

### Tree 2: Inverse of a real n by n matrix of full rank

 Is $A$ a band matrix? See Note 1. yes no Is $A$ symmetric? Is $A$ positive definite? Is one triangle of $A$ stored as a linear array? f07gdc and f07gjc yes yes yes no no no f07fdc and f07fjc Is one triangle of $A$ stored as a linear array? f07pdc and f07pjc yes no f07mdc and f07mjc Is $A$ triangular? Is $A$ stored as a linear array? f07ujc yes yes no no f07tjc f07adc and f07ajc

### Tree 3: Inverse of a complex n by n matrix of full rank

 Is $A$ a band matrix? See Note 1. yes no Is $A$ Hermitian? Is $A$ positive definite? Is one triangle of $A$ stored as a linear array? f07grc and f07gwc yes yes yes no no no f07frc and f07fwc Is one triangle $A$ stored as a linear array? f07prc and f07pwc yes no f07mrc and f07mwc Is $A$ symmetric? Is one triangle of $A$ stored as a linear array? f07qrc and f07qwc yes yes no no f07nrc and f07nwc Is $A$ triangular? Is $A$ stored as a linear array? f07uwc yes yes no no f07twc f07anc or f07arc and f07awc

### Tree 4: Pseudo-inverses

 Is $A$ a complex matrix? Is $A$ of full rank? Is $A$ an $m×n$ matrix with $m? f08avc and f08awc or f08axc yes yes yes no no no f08asc and f08auc or f08atc f08kpc Is $A$ of full rank? Is $A$ an $m×n$ matrix with $m? f08ahc and f08ajc or f08akc yes yes no no f08aec and f08agc or f08afc f08kbc
Note 1: the inverse of a band matrix $A$ does not, in general, have the same shape as $A$, and no functions are provided specifically for finding such an inverse. The matrix must either be treated as a full matrix or the equations $AX=B$ must be solved, where $B$ has been initialized to the identity matrix $I$. In the latter case, see the decision trees in Section 4 in the F04 Chapter Introduction.
Note 2: by ‘guaranteed accuracy’ we mean that the accuracy of the inverse is improved by the use of the iterative refinement technique using additional precision.
(ii) Matrix Factorizations: see the decision trees in Section 4 in the F02 and F04 Chapter Introductions.
(iii) Matrix Arithmetic and Manipulation: not appropriate.
(iv) Matrix Functions:

### Tree 5: Matrix functions $f\left(A\right)$ of an n by n real matrix $A$

 Is ${e}^{tA}B$ required? Is $A$ stored in dense format? f01gac yes yes no no f01gbc Is $A$ real symmetric? Is ${e}^{A}$ required? f01edc yes yes no no f01efc Is $\mathrm{cos}\left(A\right)$ or $\mathrm{cosh}\left(A\right)$ or $\mathrm{sin}\left(A\right)$ or $\mathrm{sinh}\left(A\right)$ required? Is the condition number of the matrix function required? f01jac yes yes no no f01ekc Is $\mathrm{log}\left(A\right)$ required? Is the condition number of the matrix logarithm required? f01jjc yes yes no no Is the Fréchet derivative of the matrix logarithm required? f01jkc yes no f01ejc Is $\mathrm{exp}\left(A\right)$ required? Is the condition number of the matrix exponential required? f01jgc yes yes no no Is the Fréchet derivative of the matrix exponential required? f01jhc yes no f01ecc Is ${A}^{1/2}$ required? Is the condition number of the matrix square root required? f01jdc yes yes no no Is the matrix upper quasi-triangular? f01epc yes no f01enc Is ${A}^{p}$ required? Is the condition number of the matrix power required? f01jec yes yes no no Is the Fréchet derivative of the matrix power required? f01jfc yes no f01eqc $f\left(A\right)$ will be computed. Will derivatives of $f$ be supplied by the user? Is the condition number of the matrix function required? f01jcc yes yes no no f01emc Is the condition number of the matrix function required? f01jbc yes no f01elc

### Tree 6: Matrix functions $f\left(A\right)$ of an n by n complex matrix $A$

 Is ${e}^{tA}B$ required? Is $A$ stored in dense format? f01hac yes yes no no f01hbc Is $A$ complex Hermitian? Is ${e}^{A}$ required? f01fdc yes yes no no f01ffc Is $\mathrm{cos}\left(A\right)$ or $\mathrm{cosh}\left(A\right)$ or $\mathrm{sin}\left(A\right)$ or $\mathrm{sinh}\left(A\right)$ required? Is the condition number of the matrix function required? f01kac yes yes no no f01fkc Is $\mathrm{log}\left(A\right)$ required? Is the condition number of the matrix logarithm required? f01kjc yes yes no no Is the Fréchet derivative of the matrix logarithm required? f01kkc yes no f01fjc Is $\mathrm{exp}\left(A\right)$ required? Is the condition number of the matrix exponential required? f01kgc yes yes no no Is the Fréchet derivative of the matrix exponential required? f01khc yes no f01fcc Is ${A}^{1/2}$ required? Is the condition number of the matrix square root required? f01kdc yes yes no no Is the matrix upper triangular? f01fpc yes no f01fnc Is ${A}^{p}$ required? Is the condition number of the matrix power required? f01kec yes yes no no Is the Fréchet derivative of the matrix power required? f01kfc yes no f01fqc $f\left(A\right)$ will be computed. Will derivatives of $f$ be supplied by the user? Is the condition number of the matrix function required? f01kcc yes yes no no f01fmc Is the condition number of the matrix function required? f01kbc yes no f01flc

## 5Functionality Index

 Action of the matrix exponential on a complex matrix f01hac
 Action of the matrix exponential on a complex matrix (reverse communication) f01hbc
 Action of the matrix exponential on a real matrix f01gac
 Action of the matrix exponential on a real matrix (reverse communication) f01gbc
 Matrix Arithmetic and Manipulation,
 matrix multiplication,
 triangular matrices,
 in-place,
 complex matrices f01duc
 real matrices f01dgc
 update,
 complex matrices f01dtc
 real matrices f01dfc
 matrix storage conversion,
 full to packed triangular storage,
 complex matrices f01vbc
 real matrices f01vac
 full to Rectangular Full Packed storage,
 complex matrix f01vfc
 real matrix f01vec
 packed triangular to full storage,
 complex matrices f01vdc
 real matrices f01vcc
 packed triangular to Rectangular Full Packed storage,
 complex matrices f01vkc
 real matrices f01vjc
 Rectangular Full Packed to full storage,
 complex matrices f01vhc
 real matrices f01vgc
 Rectangular Full Packed to packed triangular storage,
 complex matrices f01vmc
 real matrices f01vlc
 Matrix function,
 complex Hermitian $n×n$ matrix,
 matrix exponential f01fdc
 matrix function f01ffc
 complex $n×n$ matrix,
 condition number for a matrix exponential f01kgc
 condition number for a matrix exponential, logarithm, sine, cosine, sinh or cosh f01kac
 condition number for a matrix function, using numerical differentiation f01kbc
 condition number for a matrix function, using user-supplied derivatives f01kcc
 condition number for a matrix logarithm f01kjc
 condition number for a matrix power f01kec
 condition number for the matrix square root, logarithm, sine, cosine, sinh or cosh f01kdc
 Fréchet derivative
 matrix exponential f01khc
 matrix logarithm f01kkc
 matrix power f01kfc
 general power
 matrix f01fqc
 matrix exponential f01fcc
 matrix exponential, sine, cosine, sinh or cosh f01fkc
 matrix function, using numerical differentiation f01flc
 matrix function, using user-supplied derivatives f01fmc
 matrix logarithm f01fjc
 matrix square root f01fnc
 upper triangular
 matrix square root f01fpc
 real $n×n$ matrix,
 condition number for a matrix exponential f01jgc
 condition number for a matrix function, using numerical differentiation f01jbc
 condition number for a matrix function, using user-supplied derivatives f01jcc
 condition number for a matrix logarithm f01jjc
 condition number for a matrix power f01jec
 condition number for the matrix exponential, logarithm, sine, cosine, sinh or cosh f01jac
 condition number for the matrix square root, logarithm, sine, cosine, sinh or cosh f01jdc
 Fréchet derivative
 matrix exponential f01jhc
 matrix logarithm f01jkc
 matrix power f01jfc
 general power
 matrix exponential f01eqc
 matrix exponential f01ecc
 matrix exponential, sine, cosine, sinh or cosh f01ekc
 matrix function, using numerical differentiation f01elc
 matrix function, using user-supplied derivatives f01emc
 matrix logarithm f01ejc
 matrix square root f01enc
 upper quasi-triangular
 matrix square root f01epc
 real symmetric $n×n$ matrix,
 matrix exponential f01edc
 matrix function f01efc
 Matrix Transformations,
 modified Cholesky factorization, form positive definite perturbed input matrix f01mec
 modified Cholesky factorization of a real symmetric matrix f01mdc
 non-negative matrix factorization f01sac
 non-negative matrix factorization, reverse communication f01sbc
 real band symmetric positive definite matrix,
 variable bandwidth, $LD{L}^{\mathrm{T}}$ factorization f01mcc

None.

## 7 Withdrawn or Deprecated Functions

The following lists all those functions that have been withdrawn since Mark 24 of the Library or are in the Library, but deprecated.
Function Status Replacement Function(s)
f01bnc Withdrawn at Mark 25 f07frc
f01qcc Withdrawn at Mark 25 f08aec
f01qdc Withdrawn at Mark 25 f08agc
f01qec Withdrawn at Mark 25 f08afc
f01rcc Withdrawn at Mark 25 f08asc
f01rdc Withdrawn at Mark 25 f08auc
f01rec Withdrawn at Mark 25 f08atc

## 8References

Golub G H and Van Loan C F (1996) Matrix Computations (3rd Edition) Johns Hopkins University Press, Baltimore
Higham N J (2008) Functions of Matrices: Theory and Computation SIAM, Philadelphia, PA, USA
Wilkinson J H (1965) The Algebraic Eigenvalue Problem Oxford University Press, Oxford
Wilkinson J H (1977) Some recent advances in numerical linear algebra The State of the Art in Numerical Analysis (ed D A H Jacobs) Academic Press
Wilkinson J H and Reinsch C (1971) Handbook for Automatic Computation II, Linear Algebra Springer–Verlag