|
|
◆ zpbtrf()
| void zpbtrf |
( |
char |
uplo, |
|
|
int |
n, |
|
|
int |
kd, |
|
|
int |
ldab, |
|
|
doublecomplex |
ab[], |
|
|
int * |
info |
|
) |
| |
Cholesky factorization of a Hermitian positive definite band matrix
- Purpose
- This routine computes the Cholesky factorization of a Hermitian positive definite band matrix A. The factorization has the form
A = U^H * U, if uplo = 'U', or
A = L * L^H, if uplo = 'L',
where U is an upper triangular matrix and L is a lower triangular matrix.
- Parameters
-
| [in] | uplo | = 'U': Upper triangle of A is stored.
= 'L': Lower triangle of A is stored. |
| [in] | n | Order of the matrix A. (n >= 0) (if n = 0, returns without computation) |
| [in] | kd | Number of super-diagonals of the matrix A if uplo = 'U', or number of sub-diagonals if uplo = 'L'. (kd >= 0) |
| [in] | ldab | Leading dimension of the two dimensional array ab[][]. (ldab >= kd + 1) |
| [in,out] | ab[][] | Array ab[lab][ldab] (lab >= n)
[in] n x n Hermitian positive definite band matrix A in kd+1 x n symmetric band matrix form. Upper or lower part is to be stored in accordance with uplo. See below for further details.
[out] If info = 0, the triangular factor U or L from the Cholesky factorization A = U^H*U or A = L*L^H of the band matrix A, in the same storage format as A. |
| [out] | info | = 0: Successful exit
= -1: The argument uplo had an illegal value (uplo != 'U' nor 'L')
= -2: The argument n had an illegal value (n < 0)
= -3: The argument kd had an illegal value (kd < 0)
= -4: The argument ldab had an illegal value (ldab < kd+1)
= i > 0: The leading minor of order i is not positive definite, and the factorization could not be completed. |
- Further Details
- The symmetric band matrix form is illustrated by the following example, when n = 6, kd = 2, and uplo = "U":
On entry:
* * a13 a24 a35 a46
* a12 a23 a34 a45 a56
a11 a22 a33 a44 a55 a66
On exit:
* * u13 u24 u35 u46
* u12 u23 u34 u45 u56
u11 u22 u33 u44 u55 u66
Similarly, if uplo = "L" the format of A is as follows: On entry:
a11 a22 a33 a44 a55 a66
a21 a32 a43 a54 a65 *
a31 a42 a53 a64 * *
On exit:
l11 l22 l33 l44 l55 l66
l21 l32 l43 l54 l65 *
l31 l42 l53 l64 * *
Array elements marked * are not used by the routine.
- Reference
- LAPACK
|