LAPACK  3.8.0
LAPACK: Linear Algebra PACKage

◆ sla_lin_berr()

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

SLA_LIN_BERR computes a component-wise relative backward error.

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

Purpose:
    SLA_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 REAL 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 sla_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.
Date
December 2016

Definition at line 103 of file sla_lin_berr.f.

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