#### NAME
zlasyf_rook.f -
#### SYNOPSIS
Functions/Subroutines
subroutine zlasyf_rook (UPLO, N, NB, KB, A, LDA, IPIV, W, LDW, INFO)
ZLASYF_ROOK __computes__ __a__ __partial__ __factorization__ __of__ __a__ __complex__ __symmetric__
__matrix__ __using__ __the__ __bounded__ __Bunch-Kaufman__ __('rook')__ __diagonal__ __pivoting__
__method.__
#### Function/Subroutine Documentation
subroutine zlasyf_rook (characterUPLO, integerN, integerNB, integerKB,
complex*16, dimension( lda, * )A, integerLDA, integer, dimension( *
)IPIV, complex*16, dimension( ldw, * )W, integerLDW, integerINFO)
ZLASYF_ROOK computes a partial factorization of a complex symmetric
matrix using the bounded Bunch-Kaufman ('rook') diagonal pivoting
method.
Purpose:
ZLASYF_ROOK computes a partial factorization of a complex symmetric
matrix A using the bounded Bunch-Kaufman ("rook") diagonal
pivoting method. The partial factorization has the form:
A = ( I U12 ) ( A11 0 ) ( I 0 ) if UPLO = 'U', or:
( 0 U22 ) ( 0 D ) ( U12**T U22**T )
A = ( L11 0 ) ( D 0 ) ( L11**T L21**T ) if UPLO = 'L'
( L21 I ) ( 0 A22 ) ( 0 I )
where the order of D is at most NB. The actual order is returned in
the argument KB, and is either NB or NB-1, or N if N <= NB.
ZLASYF_ROOK is an auxiliary routine called by ZSYTRF_ROOK. It uses
blocked code (calling Level 3 BLAS) to update the submatrix
A11 (if UPLO = 'U') or A22 (if UPLO = 'L').
Parameters:
__UPLO__
UPLO is CHARACTER*1
Specifies whether the upper or lower triangular part of the
symmetric matrix A is stored:
= 'U': Upper triangular
= 'L': Lower triangular
__N__
N is INTEGER
The order of the matrix A. N >= 0.
__NB__
NB is INTEGER
The maximum number of columns of the matrix A that should be
factored. NB should be at least 2 to allow for 2-by-2 pivot
blocks.
__KB__
KB is INTEGER
The number of columns of A that were actually factored.
KB is either NB-1 or NB, or N if N <= NB.
__A__
A is COMPLEX*16 array, dimension (LDA,N)
On entry, the symmetric matrix A. If UPLO = 'U', the leading
n-by-n upper triangular part of A contains the upper
triangular part of the matrix A, and the strictly lower
triangular part of A is not referenced. If UPLO = 'L', the
leading n-by-n lower triangular part of A contains the lower
triangular part of the matrix A, and the strictly upper
triangular part of A is not referenced.
On exit, A contains details of the partial factorization.
__LDA__
LDA is INTEGER
The leading dimension of the array A. LDA >= max(1,N).
__IPIV__
IPIV is INTEGER array, dimension (N)
Details of the interchanges and the block structure of D.
If UPLO = 'U':
Only the last KB elements of IPIV are set.
If IPIV(k) > 0, then rows and columns k and IPIV(k) were
interchanged and D(k,k) is a 1-by-1 diagonal block.
If IPIV(k) < 0 and IPIV(k-1) < 0, then rows and
columns k and -IPIV(k) were interchanged and rows and
columns k-1 and -IPIV(k-1) were inerchaged,
D(k-1:k,k-1:k) is a 2-by-2 diagonal block.
If UPLO = 'L':
Only the first KB elements of IPIV are set.
If IPIV(k) > 0, then rows and columns k and IPIV(k)
were interchanged and D(k,k) is a 1-by-1 diagonal block.
If IPIV(k) < 0 and IPIV(k+1) < 0, then rows and
columns k and -IPIV(k) were interchanged and rows and
columns k+1 and -IPIV(k+1) were inerchaged,
D(k:k+1,k:k+1) is a 2-by-2 diagonal block.
__W__
W is COMPLEX*16 array, dimension (LDW,NB)
__LDW__
LDW is INTEGER
The leading dimension of the array W. LDW >= max(1,N).
__INFO__
INFO is INTEGER
= 0: successful exit
> 0: if INFO = k, D(k,k) is exactly zero. The factorization
has been completed, but the block diagonal matrix D is
exactly singular.
Author:
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
November 2013
Contributors:
November 2013, Igor Kozachenko,
Computer Science Division,
University of California, Berkeley
September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas,
School of Mathematics,
University of Manchester
Definition at line 184 of file zlasyf_rook.f.
#### Author
Generated automatically by Doxygen for LAPACK from the source code.
| |