diff options
author | julie <julielangou@users.noreply.github.com> | 2011-10-06 06:53:11 +0000 |
---|---|---|
committer | julie <julielangou@users.noreply.github.com> | 2011-10-06 06:53:11 +0000 |
commit | e1d39294aee16fa6db9ba079b14442358217db71 (patch) | |
tree | 30e5aa04c1f6596991fda5334f63dfb9b8027849 /SRC/zhpsv.f | |
parent | 5fe0466a14e395641f4f8a300ecc9dcb8058081b (diff) | |
download | lapack-e1d39294aee16fa6db9ba079b14442358217db71.tar.gz lapack-e1d39294aee16fa6db9ba079b14442358217db71.tar.bz2 lapack-e1d39294aee16fa6db9ba079b14442358217db71.zip |
Integrating Doxygen in comments
Diffstat (limited to 'SRC/zhpsv.f')
-rw-r--r-- | SRC/zhpsv.f | 248 |
1 files changed, 159 insertions, 89 deletions
diff --git a/SRC/zhpsv.f b/SRC/zhpsv.f index 7cc19a2d..6da7d22e 100644 --- a/SRC/zhpsv.f +++ b/SRC/zhpsv.f @@ -1,105 +1,175 @@ - SUBROUTINE ZHPSV( UPLO, N, NRHS, AP, IPIV, B, LDB, INFO ) -* -* -- LAPACK driver routine (version 3.3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* -- April 2011 -- -* -* .. Scalar Arguments .. - CHARACTER UPLO - INTEGER INFO, LDB, N, NRHS -* .. -* .. Array Arguments .. - INTEGER IPIV( * ) - COMPLEX*16 AP( * ), B( LDB, * ) -* .. -* +*> \brief <b> ZHPSV computes the solution to system of linear equations A * X = B for OTHER matrices</b> +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +* Definition +* ========== +* +* SUBROUTINE ZHPSV( UPLO, N, NRHS, AP, IPIV, B, LDB, INFO ) +* +* .. Scalar Arguments .. +* CHARACTER UPLO +* INTEGER INFO, LDB, N, NRHS +* .. +* .. Array Arguments .. +* INTEGER IPIV( * ) +* COMPLEX*16 AP( * ), B( LDB, * ) +* .. +* * Purpose * ======= * -* ZHPSV computes the solution to a complex system of linear equations -* A * X = B, -* where A is an N-by-N Hermitian matrix stored in packed format and X -* and B are N-by-NRHS matrices. -* -* The diagonal pivoting method is used to factor A as -* A = U * D * U**H, if UPLO = 'U', or -* A = L * D * L**H, if UPLO = 'L', -* where U (or L) is a product of permutation and unit upper (lower) -* triangular matrices, D is Hermitian and block diagonal with 1-by-1 -* and 2-by-2 diagonal blocks. The factored form of A is then used to -* solve the system of equations A * X = B. +*>\details \b Purpose: +*>\verbatim +*> +*> ZHPSV computes the solution to a complex system of linear equations +*> A * X = B, +*> where A is an N-by-N Hermitian matrix stored in packed format and X +*> and B are N-by-NRHS matrices. +*> +*> The diagonal pivoting method is used to factor A as +*> A = U * D * U**H, if UPLO = 'U', or +*> A = L * D * L**H, if UPLO = 'L', +*> where U (or L) is a product of permutation and unit upper (lower) +*> triangular matrices, D is Hermitian and block diagonal with 1-by-1 +*> and 2-by-2 diagonal blocks. The factored form of A is then used to +*> solve the system of equations A * X = B. +*> +*>\endverbatim * * Arguments * ========= * -* UPLO (input) CHARACTER*1 -* = 'U': Upper triangle of A is stored; -* = 'L': Lower triangle of A is stored. -* -* N (input) INTEGER -* The number of linear equations, i.e., the order of the -* matrix A. N >= 0. -* -* NRHS (input) INTEGER -* The number of right hand sides, i.e., the number of columns -* of the matrix B. NRHS >= 0. -* -* AP (input/output) COMPLEX*16 array, dimension (N*(N+1)/2) -* On entry, the upper or lower triangle of the Hermitian matrix -* A, packed columnwise in a linear array. The j-th column of A -* is stored in the array AP as follows: -* if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; -* if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n. -* See below for further details. -* -* On exit, the block diagonal matrix D and the multipliers used -* to obtain the factor U or L from the factorization -* A = U*D*U**H or A = L*D*L**H as computed by ZHPTRF, stored as -* a packed triangular matrix in the same storage format as A. -* -* IPIV (output) INTEGER array, dimension (N) -* Details of the interchanges and the block structure of D, as -* determined by ZHPTRF. 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 UPLO = 'U' and IPIV(k) = IPIV(k-1) < 0, -* then rows and columns k-1 and -IPIV(k) were interchanged and -* D(k-1:k,k-1:k) is a 2-by-2 diagonal block. If UPLO = 'L' and -* IPIV(k) = IPIV(k+1) < 0, then rows and columns k+1 and -* -IPIV(k) were interchanged and D(k:k+1,k:k+1) is a 2-by-2 -* diagonal block. -* -* B (input/output) COMPLEX*16 array, dimension (LDB,NRHS) -* On entry, the N-by-NRHS right hand side matrix B. -* On exit, if INFO = 0, the N-by-NRHS solution matrix X. -* -* LDB (input) INTEGER -* The leading dimension of the array B. LDB >= max(1,N). -* -* INFO (output) INTEGER -* = 0: successful exit -* < 0: if INFO = -i, the i-th argument had an illegal value -* > 0: if INFO = i, D(i,i) is exactly zero. The factorization -* has been completed, but the block diagonal matrix D is -* exactly singular, so the solution could not be -* computed. +*> \param[in] UPLO +*> \verbatim +*> UPLO is CHARACTER*1 +*> = 'U': Upper triangle of A is stored; +*> = 'L': Lower triangle of A is stored. +*> \endverbatim +*> +*> \param[in] N +*> \verbatim +*> N is INTEGER +*> The number of linear equations, i.e., the order of the +*> matrix A. N >= 0. +*> \endverbatim +*> +*> \param[in] NRHS +*> \verbatim +*> NRHS is INTEGER +*> The number of right hand sides, i.e., the number of columns +*> of the matrix B. NRHS >= 0. +*> \endverbatim +*> +*> \param[in,out] AP +*> \verbatim +*> AP is COMPLEX*16 array, dimension (N*(N+1)/2) +*> On entry, the upper or lower triangle of the Hermitian matrix +*> A, packed columnwise in a linear array. The j-th column of A +*> is stored in the array AP as follows: +*> if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; +*> if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n. +*> See below for further details. +*> \endverbatim +*> \verbatim +*> On exit, the block diagonal matrix D and the multipliers used +*> to obtain the factor U or L from the factorization +*> A = U*D*U**H or A = L*D*L**H as computed by ZHPTRF, stored as +*> a packed triangular matrix in the same storage format as A. +*> \endverbatim +*> +*> \param[out] IPIV +*> \verbatim +*> IPIV is INTEGER array, dimension (N) +*> Details of the interchanges and the block structure of D, as +*> determined by ZHPTRF. 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 UPLO = 'U' and IPIV(k) = IPIV(k-1) < 0, +*> then rows and columns k-1 and -IPIV(k) were interchanged and +*> D(k-1:k,k-1:k) is a 2-by-2 diagonal block. If UPLO = 'L' and +*> IPIV(k) = IPIV(k+1) < 0, then rows and columns k+1 and +*> -IPIV(k) were interchanged and D(k:k+1,k:k+1) is a 2-by-2 +*> diagonal block. +*> \endverbatim +*> +*> \param[in,out] B +*> \verbatim +*> B is COMPLEX*16 array, dimension (LDB,NRHS) +*> On entry, the N-by-NRHS right hand side matrix B. +*> On exit, if INFO = 0, the N-by-NRHS solution matrix X. +*> \endverbatim +*> +*> \param[in] LDB +*> \verbatim +*> LDB is INTEGER +*> The leading dimension of the array B. LDB >= max(1,N). +*> \endverbatim +*> +*> \param[out] INFO +*> \verbatim +*> INFO is INTEGER +*> = 0: successful exit +*> < 0: if INFO = -i, the i-th argument had an illegal value +*> > 0: if INFO = i, D(i,i) is exactly zero. The factorization +*> has been completed, but the block diagonal matrix D is +*> exactly singular, so the solution could not be +*> computed. +*> \endverbatim +*> +* +* Authors +* ======= * -* Further Details -* =============== +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. +* +*> \date November 2011 * -* The packed storage scheme is illustrated by the following example -* when N = 4, UPLO = 'U': +*> \ingroup complex16OTHERsolve * -* Two-dimensional storage of the Hermitian matrix A: * -* a11 a12 a13 a14 -* a22 a23 a24 -* a33 a34 (aij = conjg(aji)) -* a44 +* Further Details +* =============== +*>\details \b Further \b Details +*> \verbatim +*> +*> The packed storage scheme is illustrated by the following example +*> when N = 4, UPLO = 'U': +*> +*> Two-dimensional storage of the Hermitian matrix A: +*> +*> a11 a12 a13 a14 +*> a22 a23 a24 +*> a33 a34 (aij = conjg(aji)) +*> a44 +*> +*> Packed storage of the upper triangle of A: +*> +*> AP = [ a11, a12, a22, a13, a23, a33, a14, a24, a34, a44 ] +*> +*> \endverbatim +*> +* ===================================================================== + SUBROUTINE ZHPSV( UPLO, N, NRHS, AP, IPIV, B, LDB, INFO ) * -* Packed storage of the upper triangle of A: +* -- LAPACK solve routine (version 3.3.1) -- +* -- LAPACK is a software package provided by Univ. of Tennessee, -- +* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +* November 2011 * -* AP = [ a11, a12, a22, a13, a23, a33, a14, a24, a34, a44 ] +* .. Scalar Arguments .. + CHARACTER UPLO + INTEGER INFO, LDB, N, NRHS +* .. +* .. Array Arguments .. + INTEGER IPIV( * ) + COMPLEX*16 AP( * ), B( LDB, * ) +* .. * * ===================================================================== * |