NAG Library Routine Document
F07BRF (ZGBTRF)
1 Purpose
F07BRF (ZGBTRF) computes the factorization of a complex by band matrix.
2 Specification
INTEGER |
M, N, KL, KU, LDAB, IPIV(min(M,N)), INFO |
COMPLEX (KIND=nag_wp) |
AB(LDAB,*) |
|
The routine may be called by its
LAPACK
name zgbtrf.
3 Description
F07BRF (ZGBTRF) forms the factorization of a complex by band matrix using partial pivoting, with row interchanges. Usually , and then, if has nonzero subdiagonals and nonzero superdiagonals, the factorization has the form , where is a permutation matrix, is a lower triangular matrix with unit diagonal elements and at most nonzero elements in each column, and is an upper triangular band matrix with superdiagonals.
Note that is not a band matrix, but the nonzero elements of can be stored in the same space as the subdiagonal elements of . is a band matrix but with additional superdiagonals compared with . These additional superdiagonals are created by the row interchanges.
4 References
Golub G H and Van Loan C F (1996) Matrix Computations (3rd Edition) Johns Hopkins University Press, Baltimore
5 Parameters
- 1: M – INTEGERInput
On entry: , the number of rows of the matrix .
Constraint:
.
- 2: N – INTEGERInput
On entry: , the number of columns of the matrix .
Constraint:
.
- 3: KL – INTEGERInput
On entry: , the number of subdiagonals within the band of the matrix .
Constraint:
.
- 4: KU – INTEGERInput
On entry: , the number of superdiagonals within the band of the matrix .
Constraint:
.
- 5: AB(LDAB,) – COMPLEX (KIND=nag_wp) arrayInput/Output
Note: the second dimension of the array
AB
must be at least
.
On entry: the
by
matrix
.
The matrix is stored in rows
to
; the first
rows need not be set, more precisely, the element
must be stored in
See
Section 8 in F07BNF (ZGBSV) for further details.
On exit: if
,
AB is overwritten by details of the factorization.
The upper triangular band matrix , with superdiagonals, is stored in rows to of the array, and the multipliers used to form the matrix are stored in rows to .
- 6: LDAB – INTEGERInput
On entry: the first dimension of the array
AB as declared in the (sub)program from which F07BRF (ZGBTRF) is called.
Constraint:
.
- 7: IPIV() – INTEGER arrayOutput
On exit: the pivot indices that define the permutation matrix. At the
th step, if then row of the matrix was interchanged with row , for . indicates that, at the th step, a row interchange was not required.
- 8: INFO – INTEGEROutput
On exit:
unless the routine detects an error (see
Section 6).
6 Error Indicators and Warnings
Errors or warnings detected by the routine:
If , the th parameter had an illegal value. An explanatory message is output, and execution of the program is terminated.
If , is exactly zero. The factorization has been completed, but the factor is exactly singular, and division by zero will occur if it is used to solve a system of equations.
7 Accuracy
The computed factors
and
are the exact factors of a perturbed matrix
, where
is a modest linear function of
, and
is the
machine precision. This assumes
.
The total number of real floating point operations varies between approximately and , depending on the interchanges, assuming and .
A call to F07BRF (ZGBTRF) may be followed by calls to the routines:
The real analogue of this routine is
F07BDF (DGBTRF).
9 Example
This example computes the
factorization of the matrix
, where
Here
is treated as a band matrix with one subdiagonal and two superdiagonals.
9.1 Program Text
Program Text (f07brfe.f90)
9.2 Program Data
Program Data (f07brfe.d)
9.3 Program Results
Program Results (f07brfe.r)