NAG CL Interface
f07wwc (zpftri)
1
Purpose
f07wwc computes the inverse of a complex Hermitian positive definite matrix using the Cholesky factorization computed by
f07wrc stored in Rectangular Full Packed (RFP) format.
2
Specification
void 
f07wwc (Nag_OrderType order,
Nag_RFP_Store transr,
Nag_UploType uplo,
Integer n,
Complex ar[],
NagError *fail) 

The function may be called by the names: f07wwc, nag_lapacklin_zpftri or nag_zpftri.
3
Description
f07wwc is used to compute the inverse of a complex Hermitian positive definite matrix
$A$, stored in RFP format.
The RFP storage format is described in
Section 3.4.3 in the
F07 Chapter Introduction.
The function must be preceded by a call to
f07wrc, which computes the Cholesky factorization of
$A$.
If ${\mathbf{uplo}}=\mathrm{Nag\_Upper}$, $A={U}^{\mathrm{H}}U$ and ${A}^{1}$ is computed by first inverting $U$ and then forming $\left({U}^{1}\right){U}^{\mathrm{H}}$.
If ${\mathbf{uplo}}=\mathrm{Nag\_Lower}$, $A=L{L}^{\mathrm{H}}$ and ${A}^{1}$ is computed by first inverting $L$ and then forming ${L}^{\mathrm{H}}\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
Gustavson F G, Waśniewski J, Dongarra J J and Langou J (2010) Rectangular full packed format for Cholesky's algorithm: factorization, solution, and inversion ACM Trans. Math. Software 37, 2
5
Arguments

1:
$\mathbf{order}$ – Nag_OrderType
Input

On entry: the
order argument specifies the twodimensional storage scheme being used, i.e., rowmajor ordering or columnmajor ordering. C language defined storage is specified by
${\mathbf{order}}=\mathrm{Nag\_RowMajor}$. See
Section 3.1.3 in the Introduction to the NAG Library CL Interface for a more detailed explanation of the use of this argument.
Constraint:
${\mathbf{order}}=\mathrm{Nag\_RowMajor}$ or $\mathrm{Nag\_ColMajor}$.

2:
$\mathbf{transr}$ – Nag_RFP_Store
Input

On entry: specifies whether the normal RFP representation of
$A$ or its conjugate transpose is stored.
 ${\mathbf{transr}}=\mathrm{Nag\_RFP\_Normal}$
 The matrix $A$ is stored in normal RFP format.
 ${\mathbf{transr}}=\mathrm{Nag\_RFP\_ConjTrans}$
 The conjugate transpose of the RFP representation of the matrix $A$ is stored.
Constraint:
${\mathbf{transr}}=\mathrm{Nag\_RFP\_Normal}$ or $\mathrm{Nag\_RFP\_ConjTrans}$.

3:
$\mathbf{uplo}$ – Nag_UploType
Input

On entry: specifies how
$A$ has been factorized.
 ${\mathbf{uplo}}=\mathrm{Nag\_Upper}$
 $A={U}^{\mathrm{H}}U$, where $U$ is upper triangular.
 ${\mathbf{uplo}}=\mathrm{Nag\_Lower}$
 $A=L{L}^{\mathrm{H}}$, where $L$ is lower triangular.
Constraint:
${\mathbf{uplo}}=\mathrm{Nag\_Upper}$ or $\mathrm{Nag\_Lower}$.

4:
$\mathbf{n}$ – Integer
Input

On entry: $n$, the order of the matrix $A$.
Constraint:
${\mathbf{n}}\ge 0$.

5:
$\mathbf{ar}\left[{\mathbf{n}}\times \left({\mathbf{n}}+1\right)/2\right]$ – Complex
Input/Output

On entry: the Cholesky factorization of
$A$ stored in RFP format, as returned by
f07wrc.
On exit: the factorization is overwritten by the $n$ by $n$ matrix ${A}^{1}$ stored in RFP format.

6:
$\mathbf{fail}$ – NagError *
Input/Output

The NAG error argument (see
Section 7 in the Introduction to the NAG Library CL Interface).
6
Error Indicators and Warnings
 NE_ALLOC_FAIL

Dynamic memory allocation failed.
See
Section 3.1.2 in the Introduction to the NAG Library CL Interface for further information.
 NE_BAD_PARAM

On entry, argument $\u2329\mathit{\text{value}}\u232a$ had an illegal value.
 NE_INT

On entry, ${\mathbf{n}}=\u2329\mathit{\text{value}}\u232a$.
Constraint: ${\mathbf{n}}\ge 0$.
 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.
See
Section 7.5 in the Introduction to the NAG Library CL Interface for further information.
 NE_MAT_NOT_POS_DEF

The leading minor of order
$\u2329\mathit{\text{value}}\u232a$ is not positive definite and the factorization could not be completed. Hence
$A$ itself is not positive definite. This may indicate an error in forming the matrix
$A$. There is no function specifically designed to invert a Hermitian matrix stored in RFP format which is not positive definite; the matrix must be treated as a full Hermitian matrix, by calling
f07mwc.
 NE_NO_LICENCE

Your licence key may have expired or may not have been installed correctly.
See
Section 8 in the Introduction to the NAG Library CL Interface for further information.
7
Accuracy
The computed inverse
$X$ satisfies
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
8
Parallelism and Performance
f07wwc makes calls to BLAS and/or LAPACK routines, which may be threaded within the vendor library used by this implementation. Consult the documentation for the vendor library for further information.
Please consult the
X06 Chapter Introduction for information on how to control and interrogate the OpenMP environment used within this function. Please also consult the
Users' Note for your implementation for any additional implementationspecific information.
The total number of real floatingpoint operations is approximately $\frac{8}{3}{n}^{3}$.
The real analogue of this function is
f07wjc.
10
Example
This example computes the inverse of the matrix
$A$, where
Here
$A$ is Hermitian positive definite, stored in RFP format, and must first be factorized by
f07wrc.
10.1
Program Text
10.2
Program Data
10.3
Program Results