nag_zpbstf (f08utc) (PDF version)
f08 Chapter Contents
f08 Chapter Introduction
NAG C Library Manual

NAG Library Function Document

nag_zpbstf (f08utc)

+ Contents

    1  Purpose
    7  Accuracy
    9  Example

1  Purpose

nag_zpbstf (f08utc) computes a split Cholesky factorization of a complex Hermitian positive definite band matrix.

2  Specification

#include <nag.h>
#include <nagf08.h>
void  nag_zpbstf (Nag_OrderType order, Nag_UploType uplo, Integer n, Integer kb, Complex bb[], Integer pdbb, NagError *fail)

3  Description

nag_zpbstf (f08utc) computes a split Cholesky factorization of a complex Hermitian positive definite band matrix B. It is designed to be used in conjunction with nag_zhbgst (f08usc).
The factorization has the form B=SHS, where S is a band matrix of the same bandwidth as B and the following structure: S is upper triangular in the first n+k/2 rows, and transposed — hence, lower triangular — in the remaining rows. For example, if n=9 and k=2, then
S = s11 s12 s13 s22 s23 s24 s33 s34 s35 s44 s45 s55 s64 s65 s66 s75 s76 s77 s86 s87 s88 s97 s98 s99 .

4  References

None.

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 order=Nag_RowMajor. See Section 3.2.1.3 in the Essential Introduction for a more detailed explanation of the use of this argument.
Constraint: order=Nag_RowMajor or Nag_ColMajor.
2:     uploNag_UploTypeInput
On entry: indicates whether the upper or lower triangular part of B is stored.
uplo=Nag_Upper
The upper triangular part of B is stored.
uplo=Nag_Lower
The lower triangular part of B is stored.
Constraint: uplo=Nag_Upper or Nag_Lower.
3:     nIntegerInput
On entry: n, the order of the matrix B.
Constraint: n0.
4:     kbIntegerInput
On entry: if uplo=Nag_Upper, the number of superdiagonals, kb, of the matrix B.
If uplo=Nag_Lower, the number of subdiagonals, kb, of the matrix B.
Constraint: kb0.
5:     bb[dim]ComplexInput/Output
Note: the dimension, dim, of the array bb must be at least max1,pdbb×n.
On entry: the n by n Hermitian positive definite band matrix B.
This is stored as a notional two-dimensional array with row elements or column elements stored contiguously. The storage of elements of Bij, depends on the order and uplo arguments as follows:
  • if order=Nag_ColMajor and uplo=Nag_Upper,
              Bij is stored in bb[kb+i-j+j-1×pdbb], for j=1,,n and i=max1,j-kb,,j;
  • if order=Nag_ColMajor and uplo=Nag_Lower,
              Bij is stored in bb[i-j+j-1×pdbb], for j=1,,n and i=j,,minn,j+kb;
  • if order=Nag_RowMajor and uplo=Nag_Upper,
              Bij is stored in bb[j-i+i-1×pdbb], for i=1,,n and j=i,,minn,i+kb;
  • if order=Nag_RowMajor and uplo=Nag_Lower,
              Bij is stored in bb[kb+j-i+i-1×pdbb], for i=1,,n and j=max1,i-kb,,i.
On exit: B is overwritten by the elements of its split Cholesky factor S.
6:     pdbbIntegerInput
On entry: the stride separating row or column elements (depending on the value of order) of the matrix B in the array bb.
Constraint: pdbbkb+1.
7:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

6  Error Indicators and Warnings

NE_BAD_PARAM
On entry, argument value had an illegal value.
NE_INT
On entry, kb=value.
Constraint: kb0.
On entry, n=value.
Constraint: n0.
On entry, pdbb=value.
Constraint: pdbb>0.
NE_INT_2
On entry, pdbb=value and kb=value.
Constraint: pdbbkb+1.
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_POS_DEF
The factorization could not be completed, because the updated element bvalue,value would be the square root of a negative number. Hence B is not positive definite. This may indicate an error in forming the matrix B.

7  Accuracy

The computed factor S is the exact factor of a perturbed matrix B+E, where
Eck+1εSHS,
ck+1 is a modest linear function of k+1, and ε is the machine precision. It follows that eijck+1εbiibjj.

8  Further Comments

The total number of floating point operations is approximately 4n k+1 2, assuming nk.
A call to nag_zpbstf (f08utc) may be followed by a call to nag_zhbgst (f08usc) to solve the generalized eigenproblem Az=λBz, where A and B are banded and B is positive definite.
The real analogue of this function is nag_dpbstf (f08ufc).

9  Example

See Section 9 in nag_zhbgst (f08usc).

nag_zpbstf (f08utc) (PDF version)
f08 Chapter Contents
f08 Chapter Introduction
NAG C Library Manual

© The Numerical Algorithms Group Ltd, Oxford, UK. 2012