f07 Chapter Contents
f07 Chapter Introduction
NAG C Library Manual

# NAG Library Function Documentnag_dpotri (f07fjc)

## 1  Purpose

nag_dpotri (f07fjc) computes the inverse of a real symmetric positive definite matrix $A$, where $A$ has been factorized by nag_dpotrf (f07fdc).

## 2  Specification

 #include #include
 void nag_dpotri (Nag_OrderType order, Nag_UploType uplo, Integer n, double a[], Integer pda, NagError *fail)

## 3  Description

nag_dpotri (f07fjc) is used to compute the inverse of a real symmetric positive definite matrix $A$, the function must be preceded by a call to nag_dpotrf (f07fdc), which computes the Cholesky factorization of $A$.
If ${\mathbf{uplo}}=\mathrm{Nag_Upper}$, $A={U}^{\mathrm{T}}U$ and ${A}^{-1}$ is computed by first inverting $U$ and then forming $\left({U}^{-1}\right){U}^{-\mathrm{T}}$.
If ${\mathbf{uplo}}=\mathrm{Nag_Lower}$, $A=L{L}^{\mathrm{T}}$ and ${A}^{-1}$ is computed by first inverting $L$ and then forming ${L}^{-\mathrm{T}}\left({L}^{-1}\right)$.

## 4  References

Du Croz J J and Higham N J (1992) Stability of methods for matrix inversion IMA J. Numer. Anal. 12 1–19

## 5  Arguments

1:     orderNag_OrderTypeInput
On entry: the order argument specifies the two-dimensional storage scheme being used, i.e., row-major ordering or column-major ordering. C language defined storage is specified by ${\mathbf{order}}=\mathrm{Nag_RowMajor}$. See Section 3.2.1.3 in the Essential Introduction for a more detailed explanation of the use of this argument.
Constraint: ${\mathbf{order}}=\mathrm{Nag_RowMajor}$ or Nag_ColMajor.
2:     uploNag_UploTypeInput
On entry: specifies how $A$ has been factorized.
${\mathbf{uplo}}=\mathrm{Nag_Upper}$
$A={U}^{\mathrm{T}}U$, where $U$ is upper triangular.
${\mathbf{uplo}}=\mathrm{Nag_Lower}$
$A=L{L}^{\mathrm{T}}$, where $L$ is lower triangular.
Constraint: ${\mathbf{uplo}}=\mathrm{Nag_Upper}$ or $\mathrm{Nag_Lower}$.
3:     nIntegerInput
On entry: $n$, the order of the matrix $A$.
Constraint: ${\mathbf{n}}\ge 0$.
4:     a[$\mathit{dim}$]doubleInput/Output
Note: the dimension, dim, of the array a must be at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{pda}}×{\mathbf{n}}\right)$.
On entry: the upper triangular matrix $U$ if ${\mathbf{uplo}}=\mathrm{Nag_Upper}$ or the lower triangular matrix $L$ if ${\mathbf{uplo}}=\mathrm{Nag_Lower}$, as returned by nag_dpotrf (f07fdc).
On exit: $U$ is overwritten by the upper triangle of ${A}^{-1}$ if ${\mathbf{uplo}}=\mathrm{Nag_Upper}$; $L$ is overwritten by the lower triangle of ${A}^{-1}$ if ${\mathbf{uplo}}=\mathrm{Nag_Lower}$.
5:     pdaIntegerInput
On entry: the stride separating row or column elements (depending on the value of order) of the matrix in the array a.
Constraint: ${\mathbf{pda}}\ge \mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{n}}\right)$.
6:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

## 6  Error Indicators and Warnings

On entry, argument $〈\mathit{\text{value}}〉$ had an illegal value.
NE_INT
On entry, ${\mathbf{n}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{n}}\ge 0$.
On entry, ${\mathbf{pda}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{pda}}>0$.
NE_INT_2
On entry, ${\mathbf{pda}}=〈\mathit{\text{value}}〉$ and ${\mathbf{n}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{pda}}\ge \mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{n}}\right)$.
NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.
NE_SINGULAR
Diagonal element $〈\mathit{\text{value}}〉$ of the Cholesky factor is zero; the Cholesky factor is singular and the inverse of $A$ cannot be computed.

## 7  Accuracy

The computed inverse $X$ satisfies
 $XA-I2≤cnεκ2A and AX-I2≤cnεκ2A ,$
where $c\left(n\right)$ is a modest function of $n$, $\epsilon$ is the machine precision and ${\kappa }_{2}\left(A\right)$ is the condition number of $A$ defined by
 $κ2A=A2A-12 .$

The total number of floating point operations is approximately $\frac{2}{3}{n}^{3}$.
The complex analogue of this function is nag_zpotri (f07fwc).

## 9  Example

This example computes the inverse of the matrix $A$, where
 $A= 4.16 -3.12 0.56 -0.10 -3.12 5.03 -0.83 1.18 0.56 -0.83 0.76 0.34 -0.10 1.18 0.34 1.18 .$
Here $A$ is symmetric positive definite and must first be factorized by nag_dpotrf (f07fdc).

### 9.1  Program Text

Program Text (f07fjce.c)

### 9.2  Program Data

Program Data (f07fjce.d)

### 9.3  Program Results

Program Results (f07fjce.r)