Computes the factorization of a complex Hermitian matrix, using the bounded Bunch-Kaufman diagonal pivoting method (unblocked algorithm).
The routine computes the factorization of a complex Hermitian matrix
Ausing the bounded Bunch-Kaufman ("rook") diagonal pivoting method:
L) is a product of permutation and unit upper (lower) triangular matrices,
is the conjugate transpose of
Dis Hermitian and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.
This is the unblocked version of the algorithm, calling BLAS Level 2 Routines .
- CHARACTER*1.Specifies whether the upper or lower triangular part of the Hermitian matrixAis stored:='U': Upper triangular='L': Lower triangular
- INTEGER. The order of the matrixA..n≥0
- COMPLEXforchetf2_rookDOUBLE COMPLEXforzhetf2_rook.Array,DIMENSION(lda,n).On entry, the Hermitian matrixA.If, the leadinguplo='U'n-by-nupper triangular part ofAcontains the upper triangular part of the matrixA, and the strictly lower triangular part ofAis not referenced.If, the leadinguplo='L'n-by-nlower triangular part ofAcontains the lower triangular part of the matrixA, and the strictly upper triangular part ofAis not referenced.
- INTEGER. The leading dimension of the arraya..lda≥max(1,n)
- On exit, the block diagonal matrixDand the multipliers used to obtain the factorUorL.
- INTEGER. Array,DIMENSION(n).Details of the interchanges and the block structure ofD.If, then rows and columnsipiv(k) > 0kandipiv(k) were interchanged andD(k,k)is a 1-by-1 diagonal block.Ifanduplo='U'andipiv(k) < 0, then rows and columnsipiv(k- 1) < 0kand -ipiv(k) were interchanged, rows and columnsk- 1 and -ipiv(k- 1) were interchanged, andis a 2-by-2 diagonal block.Dk-1:k,k-1:kIfanduplo='L'andipiv(k) < 0, then rows and columnsipiv(k+ 1) < 0