Computes the Bunch-Kaufman factorization of a symmetric matrix using packed storage.
The routine computes the factorization of a real/complex symmetric matrix
Astored in the packed format using the Bunch-Kaufman diagonal pivoting method. The form of the factorization is:
Lare products of permutation and triangular matrices with unit diagonal (upper triangular for
Uand lower triangular for
Dis a symmetric block-diagonal matrix with 1-by-1 and 2-by-2 diagonal blocks.
Lhave 2-by-2 unit diagonal blocks corresponding to the 2-by-2 blocks of
- Must beCHARACTER*1.'U'or'L'.Indicates whether the upper or lower triangular part ofAis packed in the arrayapand howAis factored:If, the arrayuplo='U'apstores the upper triangular part of the matrixA, andAis factored as.U*D*UTIf, the arrayuplo='L'apstores the lower triangular part of the matrixA, andAis factored as.L*D*LT
- The order of matrixINTEGER.A;n≥0.
- The upper or lower triangle ofA(as specified byuplo) is overwritten by details of the block-diagonal matrixDand the multipliers used to obtain the factorU(orL).
- INTEGER.Array, size at leastmax(1,. Contains details of the interchanges and the block structure ofn)D. If, thenipiv(i) =k>0is a 1-by-1 block, and thediii-th row and column ofAwas interchanged with thek-th row and column.Ifuplo='U'andipiv(