LAPACK  3.10.0
LAPACK: Linear Algebra PACKage

◆ cla_lin_berr()

subroutine cla_lin_berr ( integer  N,
integer  NZ,
integer  NRHS,
complex, dimension( n, nrhs )  RES,
real, dimension( n, nrhs )  AYB,
real, dimension( nrhs )  BERR 
)

CLA_LIN_BERR computes a component-wise relative backward error.

Download CLA_LIN_BERR + dependencies [TGZ] [ZIP] [TXT]

Purpose:
    CLA_LIN_BERR computes componentwise relative backward error from
    the formula
        max(i) ( abs(R(i)) / ( abs(op(A_s))*abs(Y) + abs(B_s) )(i) )
    where abs(Z) is the componentwise absolute value of the matrix
    or vector Z.
Parameters
[in]N
          N is INTEGER
     The number of linear equations, i.e., the order of the
     matrix A.  N >= 0.
[in]NZ
          NZ is INTEGER
     We add (NZ+1)*SLAMCH( 'Safe minimum' ) to R(i) in the numerator to
     guard against spuriously zero residuals. Default value is N.
[in]NRHS
          NRHS is INTEGER
     The number of right hand sides, i.e., the number of columns
     of the matrices AYB, RES, and BERR.  NRHS >= 0.
[in]RES
          RES is COMPLEX array, dimension (N,NRHS)
     The residual matrix, i.e., the matrix R in the relative backward
     error formula above.
[in]AYB
          AYB is REAL array, dimension (N, NRHS)
     The denominator in the relative backward error formula above, i.e.,
     the matrix abs(op(A_s))*abs(Y) + abs(B_s). The matrices A, Y, and B
     are from iterative refinement (see cla_gerfsx_extended.f).
[out]BERR
          BERR is REAL array, dimension (NRHS)
     The componentwise relative backward error from the formula above.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.

Definition at line 100 of file cla_lin_berr.f.

101 *
102 * -- LAPACK computational routine --
103 * -- LAPACK is a software package provided by Univ. of Tennessee, --
104 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
105 *
106 * .. Scalar Arguments ..
107  INTEGER N, NZ, NRHS
108 * ..
109 * .. Array Arguments ..
110  REAL AYB( N, NRHS ), BERR( NRHS )
111  COMPLEX RES( N, NRHS )
112 * ..
113 *
114 * =====================================================================
115 *
116 * .. Local Scalars ..
117  REAL TMP
118  INTEGER I, J
119  COMPLEX CDUM
120 * ..
121 * .. Intrinsic Functions ..
122  INTRINSIC abs, real, aimag, max
123 * ..
124 * .. External Functions ..
125  EXTERNAL slamch
126  REAL SLAMCH
127  REAL SAFE1
128 * ..
129 * .. Statement Functions ..
130  COMPLEX CABS1
131 * ..
132 * .. Statement Function Definitions ..
133  cabs1( cdum ) = abs( real( cdum ) ) + abs( aimag( cdum ) )
134 * ..
135 * .. Executable Statements ..
136 *
137 * Adding SAFE1 to the numerator guards against spuriously zero
138 * residuals. A similar safeguard is in the CLA_yyAMV routine used
139 * to compute AYB.
140 *
141  safe1 = slamch( 'Safe minimum' )
142  safe1 = (nz+1)*safe1
143 
144  DO j = 1, nrhs
145  berr(j) = 0.0
146  DO i = 1, n
147  IF (ayb(i,j) .NE. 0.0) THEN
148  tmp = (safe1 + cabs1(res(i,j)))/ayb(i,j)
149  berr(j) = max( berr(j), tmp )
150  END IF
151 *
152 * If AYB is exactly 0.0 (and if computed by CLA_yyAMV), then we know
153 * the true residual also must be exactly 0.0.
154 *
155  END DO
156  END DO
157 *
158 * End of CLA_LIN_BERR
159 *
real function slamch(CMACH)
SLAMCH
Definition: slamch.f:68
Here is the call graph for this function:
Here is the caller graph for this function: