--- rpl/lapack/lapack/dla_syrfsx_extended.f 2012/08/22 09:48:16 1.8
+++ rpl/lapack/lapack/dla_syrfsx_extended.f 2023/08/07 08:38:52 1.18
@@ -1,19 +1,19 @@
-*> \brief \b DLA_SYRFSX_EXTENDED
+*> \brief \b DLA_SYRFSX_EXTENDED improves the computed solution to a system of linear equations for symmetric indefinite matrices by performing extra-precise iterative refinement and provides error bounds and backward error estimates for the solution.
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
*> \htmlonly
-*> Download DLA_SYRFSX_EXTENDED + dependencies
-*>
-*> [TGZ]
-*>
-*> [ZIP]
-*>
+*> Download DLA_SYRFSX_EXTENDED + dependencies
+*>
+*> [TGZ]
+*>
+*> [ZIP]
+*>
*> [TXT]
-*> \endhtmlonly
+*> \endhtmlonly
*
* Definition:
* ===========
@@ -25,7 +25,7 @@
* AYB, DY, Y_TAIL, RCOND, ITHRESH,
* RTHRESH, DZ_UB, IGNORE_CWISE,
* INFO )
-*
+*
* .. Scalar Arguments ..
* INTEGER INFO, LDA, LDAF, LDB, LDY, N, NRHS, PREC_TYPE,
* $ N_NORMS, ITHRESH
@@ -41,14 +41,14 @@
* $ ERR_BNDS_NORM( NRHS, * ),
* $ ERR_BNDS_COMP( NRHS, * )
* ..
-*
+*
*
*> \par Purpose:
* =============
*>
*> \verbatim
*>
-*>
+*>
*> DLA_SYRFSX_EXTENDED improves the computed solution to a system of
*> linear equations by performing extra-precise iterative refinement
*> and provides error bounds and backward error estimates for the solution.
@@ -56,7 +56,7 @@
*> In addition to normwise error bound, the code provides maximum
*> componentwise error bound if possible. See comments for ERR_BNDS_NORM
*> and ERR_BNDS_COMP for details of the error bounds. Note that this
-*> subroutine is only resonsible for setting the second fields of
+*> subroutine is only responsible for setting the second fields of
*> ERR_BNDS_NORM and ERR_BNDS_COMP.
*> \endverbatim
*
@@ -67,11 +67,11 @@
*> \verbatim
*> PREC_TYPE is INTEGER
*> Specifies the intermediate precision to be used in refinement.
-*> The value is defined by ILAPREC(P) where P is a CHARACTER and
-*> P = 'S': Single
+*> The value is defined by ILAPREC(P) where P is a CHARACTER and P
+*> = 'S': Single
*> = 'D': Double
*> = 'I': Indigenous
-*> = 'X', 'E': Extra
+*> = 'X' or 'E': Extra
*> \endverbatim
*>
*> \param[in] UPLO
@@ -162,8 +162,7 @@
*>
*> \param[in,out] Y
*> \verbatim
-*> Y is DOUBLE PRECISION array, dimension
-*> (LDY,NRHS)
+*> Y is DOUBLE PRECISION array, dimension (LDY,NRHS)
*> On entry, the solution matrix X, as computed by DSYTRS.
*> On exit, the improved solution matrix Y.
*> \endverbatim
@@ -195,8 +194,7 @@
*>
*> \param[in,out] ERR_BNDS_NORM
*> \verbatim
-*> ERR_BNDS_NORM is DOUBLE PRECISION array, dimension
-*> (NRHS, N_ERR_BNDS)
+*> ERR_BNDS_NORM is DOUBLE PRECISION array, dimension (NRHS, N_ERR_BNDS)
*> For each right-hand side, this array contains information about
*> various error bounds and condition numbers corresponding to the
*> normwise relative error, which is defined as follows:
@@ -242,8 +240,7 @@
*>
*> \param[in,out] ERR_BNDS_COMP
*> \verbatim
-*> ERR_BNDS_COMP is DOUBLE PRECISION array, dimension
-*> (NRHS, N_ERR_BNDS)
+*> ERR_BNDS_COMP is DOUBLE PRECISION array, dimension (NRHS, N_ERR_BNDS)
*> For each right-hand side, this array contains information about
*> various error bounds and condition numbers corresponding to the
*> componentwise relative error, which is defined as follows:
@@ -258,7 +255,7 @@
*> information as described below. There currently are up to three
*> pieces of information returned for each right-hand side. If
*> 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 index in ERR_BNDS_COMP(i,:) corresponds to the ith
@@ -357,7 +354,7 @@
*> DZ_UB is DOUBLE PRECISION
*> Determines when to start considering componentwise convergence.
*> Componentwise convergence is only considered after each component
-*> of the solution Y is stable, which we definte as the relative
+*> of the solution Y is stable, which we define as the relative
*> change in each component being less than DZ_UB. The default value
*> is 0.25, requiring the first bit to be stable. See LAWN 165 for
*> more details.
@@ -381,12 +378,10 @@
* Authors:
* ========
*
-*> \author Univ. of Tennessee
-*> \author Univ. of California Berkeley
-*> \author Univ. of Colorado Denver
-*> \author NAG Ltd.
-*
-*> \date November 2011
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \ingroup doubleSYcomputational
*
@@ -399,10 +394,9 @@
$ RTHRESH, DZ_UB, IGNORE_CWISE,
$ INFO )
*
-* -- LAPACK computational routine (version 3.4.0) --
+* -- LAPACK computational routine --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* November 2011
*
* .. Scalar Arguments ..
INTEGER INFO, LDA, LDAF, LDB, LDY, N, NRHS, PREC_TYPE,
@@ -545,7 +539,7 @@
CALL BLAS_DSYMV2_X(UPLO2, N, -1.0D+0, A, LDA,
$ Y(1, J), Y_TAIL, 1, 1.0D+0, RES, 1, PREC_TYPE)
END IF
-
+
! XXX: RES is no longer needed.
CALL DCOPY( N, RES, 1, DY, 1 )
CALL DSYTRS( UPLO, N, 1, AF, LDAF, IPIV, DY, N, INFO )
@@ -557,11 +551,11 @@
NORMDX = 0.0D+0
DZ_Z = 0.0D+0
YMIN = HUGEVAL
-
+
DO I = 1, N
YK = ABS( Y( I, J ) )
DYK = ABS( DY( I ) )
-
+
IF ( YK .NE. 0.0D+0 ) THEN
DZ_Z = MAX( DZ_Z, DYK / YK )
ELSE IF ( DYK .NE. 0.0D+0 ) THEN
@@ -660,7 +654,7 @@
ELSE
CALL DLA_WWADDW( N, Y(1,J), Y_TAIL, DY )
END IF
-
+
END DO
* Target of "IF (Z_STOP .AND. X_STOP)". Sun's f77 won't EXIT.
666 CONTINUE
@@ -689,9 +683,9 @@
* Compute residual RES = B_s - op(A_s) * Y,
* op(A) = A, A**T, or A**H depending on TRANS (and type).
CALL DCOPY( N, B( 1, J ), 1, RES, 1 )
- CALL DSYMV( UPLO, N, -1.0D+0, A, LDA, Y(1,J), 1, 1.0D+0, RES,
+ CALL DSYMV( UPLO, N, -1.0D+0, A, LDA, Y(1,J), 1, 1.0D+0, RES,
$ 1 )
-
+
DO I = 1, N
AYB( I ) = ABS( B( I, J ) )
END DO
@@ -700,7 +694,7 @@
*
CALL DLA_SYAMV( UPLO2, N, 1.0D+0,
$ A, LDA, Y(1, J), 1, 1.0D+0, AYB, 1 )
-
+
CALL DLA_LIN_BERR( N, N, 1, RES, AYB, BERR_OUT( J ) )
*
* End of loop for each RHS.
@@ -708,4 +702,7 @@
END DO
*
RETURN
+*
+* End of DLA_SYRFSX_EXTENDED
+*
END