![]() |
LAPACK 3.12.1
LAPACK: Linear Algebra PACKage
|
subroutine zlavsp | ( | character | uplo, |
character | trans, | ||
character | diag, | ||
integer | n, | ||
integer | nrhs, | ||
complex*16, dimension( * ) | a, | ||
integer, dimension( * ) | ipiv, | ||
complex*16, dimension( ldb, * ) | b, | ||
integer | ldb, | ||
integer | info ) |
ZLAVSP
!> !> ZLAVSP performs one of the matrix-vector operations !> x := A*x or x := A^T*x, !> where x is an N element vector and A is one of the factors !> from the symmetric factorization computed by ZSPTRF. !> ZSPTRF produces a factorization of the form !> U * D * U^T or L * D * L^T, !> where U (or L) is a product of permutation and unit upper (lower) !> triangular matrices, U^T (or L^T) is the transpose of !> U (or L), and D is symmetric and block diagonal with 1 x 1 and !> 2 x 2 diagonal blocks. The multipliers for the transformations !> and the upper or lower triangular parts of the diagonal blocks !> are stored columnwise in packed format in the linear array A. !> !> If TRANS = 'N' or 'n', ZLAVSP multiplies either by U or U * D !> (or L or L * D). !> If TRANS = 'C' or 'c', ZLAVSP multiplies either by U^T or D * U^T !> (or L^T or D * L^T ). !>
!> UPLO - CHARACTER*1 !> On entry, UPLO specifies whether the triangular matrix !> stored in A is upper or lower triangular. !> UPLO = 'U' or 'u' The matrix is upper triangular. !> UPLO = 'L' or 'l' The matrix is lower triangular. !> Unchanged on exit. !> !> TRANS - CHARACTER*1 !> On entry, TRANS specifies the operation to be performed as !> follows: !> TRANS = 'N' or 'n' x := A*x. !> TRANS = 'T' or 't' x := A^T*x. !> Unchanged on exit. !> !> DIAG - CHARACTER*1 !> On entry, DIAG specifies whether the diagonal blocks are !> assumed to be unit matrices, as follows: !> DIAG = 'U' or 'u' Diagonal blocks are unit matrices. !> DIAG = 'N' or 'n' Diagonal blocks are non-unit. !> Unchanged on exit. !> !> N - INTEGER !> On entry, N specifies the order of the matrix A. !> N must be at least zero. !> Unchanged on exit. !> !> NRHS - INTEGER !> On entry, NRHS specifies the number of right hand sides, !> i.e., the number of vectors x to be multiplied by A. !> NRHS must be at least zero. !> Unchanged on exit. !> !> A - COMPLEX*16 array, dimension( N*(N+1)/2 ) !> On entry, A contains a block diagonal matrix and the !> multipliers of the transformations used to obtain it, !> stored as a packed triangular matrix. !> Unchanged on exit. !> !> IPIV - INTEGER array, dimension( N ) !> On entry, IPIV contains the vector of pivot indices as !> determined by ZSPTRF. !> If IPIV( K ) = K, no interchange was done. !> If IPIV( K ) <> K but IPIV( K ) > 0, then row K was inter- !> changed with row IPIV( K ) and a 1 x 1 pivot block was used. !> If IPIV( K ) < 0 and UPLO = 'U', then row K-1 was exchanged !> with row | IPIV( K ) | and a 2 x 2 pivot block was used. !> If IPIV( K ) < 0 and UPLO = 'L', then row K+1 was exchanged !> with row | IPIV( K ) | and a 2 x 2 pivot block was used. !> !> B - COMPLEX*16 array, dimension( LDB, NRHS ) !> On entry, B contains NRHS vectors of length N. !> On exit, B is overwritten with the product A * B. !> !> LDB - INTEGER !> On entry, LDB contains the leading dimension of B as !> declared in the calling program. LDB must be at least !> max( 1, N ). !> Unchanged on exit. !> !> INFO - INTEGER !> INFO is the error flag. !> On exit, a value of 0 indicates a successful exit. !> A negative value, say -K, indicates that the K-th argument !> has an illegal value. !>
Definition at line 129 of file zlavsp.f.