--- rpl/lapack/lapack/dla_syrfsx_extended.f 2016/08/27 15:34:25 1.12 +++ rpl/lapack/lapack/dla_syrfsx_extended.f 2023/08/07 08:38:52 1.18 @@ -2,18 +2,18 @@ * * =========== 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 September 2012 +*> \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.2) -- +* -- LAPACK computational routine -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* September 2012 * * .. 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