version 1.15, 2018/05/29 07:18:20
|
version 1.17, 2023/08/07 08:39:24
|
Line 46
|
Line 46
|
*> |
*> |
*> ZHESVXX uses the diagonal pivoting factorization to compute the |
*> ZHESVXX uses the diagonal pivoting factorization to compute the |
*> solution to a complex*16 system of linear equations A * X = B, where |
*> solution to a complex*16 system of linear equations A * X = B, where |
*> A is an N-by-N symmetric matrix and X and B are N-by-NRHS |
*> A is an N-by-N Hermitian matrix and X and B are N-by-NRHS |
*> matrices. |
*> matrices. |
*> |
*> |
*> If requested, both normwise and maximum componentwise error bounds |
*> If requested, both normwise and maximum componentwise error bounds |
Line 88
|
Line 88
|
*> A = L * D * L**T, if UPLO = 'L', |
*> A = L * D * L**T, if UPLO = 'L', |
*> |
*> |
*> where U (or L) is a product of permutation and unit upper (lower) |
*> where U (or L) is a product of permutation and unit upper (lower) |
*> triangular matrices, and D is symmetric and block diagonal with |
*> triangular matrices, and D is Hermitian and block diagonal with |
*> 1-by-1 and 2-by-2 diagonal blocks. |
*> 1-by-1 and 2-by-2 diagonal blocks. |
*> |
*> |
*> 3. If some D(i,i)=0, so that D is exactly singular, then the |
*> 3. If some D(i,i)=0, so that D is exactly singular, then the |
Line 161
|
Line 161
|
*> \param[in,out] A |
*> \param[in,out] A |
*> \verbatim |
*> \verbatim |
*> A is COMPLEX*16 array, dimension (LDA,N) |
*> A is COMPLEX*16 array, dimension (LDA,N) |
*> The symmetric matrix A. If UPLO = 'U', the leading N-by-N |
*> The Hermitian matrix A. If UPLO = 'U', the leading N-by-N |
*> upper triangular part of A contains the upper triangular |
*> upper triangular part of A contains the upper triangular |
*> part of the matrix A, and the strictly lower triangular |
*> part of the matrix A, and the strictly lower triangular |
*> part of A is not referenced. If UPLO = 'L', the leading |
*> part of A is not referenced. If UPLO = 'L', the leading |
Line 185
|
Line 185
|
*> If FACT = 'F', then AF is an input argument and on entry |
*> If FACT = 'F', then AF is an input argument and on entry |
*> contains the block diagonal matrix D and the multipliers |
*> contains the block diagonal matrix D and the multipliers |
*> used to obtain the factor U or L from the factorization A = |
*> used to obtain the factor U or L from the factorization A = |
*> U*D*U**T or A = L*D*L**T as computed by DSYTRF. |
*> U*D*U**H or A = L*D*L**H as computed by ZHETRF. |
*> |
*> |
*> If FACT = 'N', then AF is an output argument and on exit |
*> If FACT = 'N', then AF is an output argument and on exit |
*> returns the block diagonal matrix D and the multipliers |
*> returns the block diagonal matrix D and the multipliers |
*> used to obtain the factor U or L from the factorization A = |
*> used to obtain the factor U or L from the factorization A = |
*> U*D*U**T or A = L*D*L**T. |
*> U*D*U**H or A = L*D*L**H. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] LDAF |
*> \param[in] LDAF |
Line 378
|
Line 378
|
*> information as described below. There currently are up to three |
*> information as described below. There currently are up to three |
*> pieces of information returned for each right-hand side. If |
*> pieces of information returned for each right-hand side. If |
*> componentwise accuracy is not requested (PARAMS(3) = 0.0), then |
*> componentwise accuracy is not requested (PARAMS(3) = 0.0), then |
*> ERR_BNDS_COMP is not accessed. If N_ERR_BNDS .LT. 3, then at most |
*> ERR_BNDS_COMP is not accessed. If N_ERR_BNDS < 3, then at most |
*> the first (:,N_ERR_BNDS) entries are returned. |
*> the first (:,N_ERR_BNDS) entries are returned. |
*> |
*> |
*> The first index in ERR_BNDS_COMP(i,:) corresponds to the ith |
*> The first index in ERR_BNDS_COMP(i,:) corresponds to the ith |
Line 414
|
Line 414
|
*> \param[in] NPARAMS |
*> \param[in] NPARAMS |
*> \verbatim |
*> \verbatim |
*> NPARAMS is INTEGER |
*> NPARAMS is INTEGER |
*> Specifies the number of parameters set in PARAMS. If .LE. 0, the |
*> Specifies the number of parameters set in PARAMS. If <= 0, the |
*> PARAMS array is never referenced and default values are used. |
*> PARAMS array is never referenced and default values are used. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in,out] PARAMS |
*> \param[in,out] PARAMS |
*> \verbatim |
*> \verbatim |
*> PARAMS is DOUBLE PRECISION array, dimension NPARAMS |
*> PARAMS is DOUBLE PRECISION array, dimension NPARAMS |
*> Specifies algorithm parameters. If an entry is .LT. 0.0, then |
*> Specifies algorithm parameters. If an entry is < 0.0, then |
*> that entry will be filled with default value used for that |
*> that entry will be filled with default value used for that |
*> parameter. Only positions up to NPARAMS are accessed; defaults |
*> parameter. Only positions up to NPARAMS are accessed; defaults |
*> are used for higher-numbered parameters. |
*> are used for higher-numbered parameters. |
Line 429
|
Line 429
|
*> PARAMS(LA_LINRX_ITREF_I = 1) : Whether to perform iterative |
*> PARAMS(LA_LINRX_ITREF_I = 1) : Whether to perform iterative |
*> refinement or not. |
*> refinement or not. |
*> Default: 1.0D+0 |
*> Default: 1.0D+0 |
*> = 0.0 : No refinement is performed, and no error bounds are |
*> = 0.0: No refinement is performed, and no error bounds are |
*> computed. |
*> computed. |
*> = 1.0 : Use the extra-precise refinement algorithm. |
*> = 1.0: Use the extra-precise refinement algorithm. |
*> (other values are reserved for future use) |
*> (other values are reserved for future use) |
*> |
*> |
*> PARAMS(LA_LINRX_ITHRESH_I = 2) : Maximum number of residual |
*> PARAMS(LA_LINRX_ITHRESH_I = 2) : Maximum number of residual |
Line 496
|
Line 496
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date April 2012 |
|
* |
|
*> \ingroup complex16HEsolve |
*> \ingroup complex16HEsolve |
* |
* |
* ===================================================================== |
* ===================================================================== |
Line 506
|
Line 504
|
$ N_ERR_BNDS, ERR_BNDS_NORM, ERR_BNDS_COMP, |
$ N_ERR_BNDS, ERR_BNDS_NORM, ERR_BNDS_COMP, |
$ NPARAMS, PARAMS, WORK, RWORK, INFO ) |
$ NPARAMS, PARAMS, WORK, RWORK, INFO ) |
* |
* |
* -- LAPACK driver routine (version 3.7.0) -- |
* -- LAPACK driver routine -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* April 2012 |
|
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER EQUED, FACT, UPLO |
CHARACTER EQUED, FACT, UPLO |
Line 646
|
Line 643
|
* |
* |
IF( NOFACT .OR. EQUIL ) THEN |
IF( NOFACT .OR. EQUIL ) THEN |
* |
* |
* Compute the LDL^T or UDU^T factorization of A. |
* Compute the LDL^H or UDU^H factorization of A. |
* |
* |
CALL ZLACPY( UPLO, N, N, A, LDA, AF, LDAF ) |
CALL ZLACPY( UPLO, N, N, A, LDA, AF, LDAF ) |
CALL ZHETRF( UPLO, N, AF, LDAF, IPIV, WORK, 5*MAX(1,N), INFO ) |
CALL ZHETRF( UPLO, N, AF, LDAF, IPIV, WORK, 5*MAX(1,N), INFO ) |