File:  [local] / rpl / lapack / lapack / dla_gerpvgrw.f
Revision 1.10: download - view: text, annotated - select for diffs - revision graph
Mon Aug 7 08:38:52 2023 UTC (8 months, 3 weeks ago) by bertrand
Branches: MAIN
CVS tags: rpl-4_1_35, rpl-4_1_34, HEAD
Première mise à jour de lapack et blas.

    1: *> \brief \b DLA_GERPVGRW
    2: *
    3: *  =========== DOCUMENTATION ===========
    4: *
    5: * Online html documentation available at
    6: *            http://www.netlib.org/lapack/explore-html/
    7: *
    8: *> \htmlonly
    9: *> Download DLA_GERPVGRW + dependencies
   10: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dla_gerpvgrw.f">
   11: *> [TGZ]</a>
   12: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dla_gerpvgrw.f">
   13: *> [ZIP]</a>
   14: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dla_gerpvgrw.f">
   15: *> [TXT]</a>
   16: *> \endhtmlonly
   17: *
   18: *  Definition:
   19: *  ===========
   20: *
   21: *       DOUBLE PRECISION FUNCTION DLA_GERPVGRW( N, NCOLS, A, LDA, AF,
   22: *                                               LDAF )
   23: *
   24: *       .. Scalar Arguments ..
   25: *       INTEGER            N, NCOLS, LDA, LDAF
   26: *       ..
   27: *       .. Array Arguments ..
   28: *       DOUBLE PRECISION   A( LDA, * ), AF( LDAF, * )
   29: *       ..
   30: *
   31: *
   32: *> \par Purpose:
   33: *  =============
   34: *>
   35: *> \verbatim
   36: *>
   37: *>
   38: *> DLA_GERPVGRW computes the reciprocal pivot growth factor
   39: *> norm(A)/norm(U). The "max absolute element" norm is used. If this is
   40: *> much less than 1, the stability of the LU factorization of the
   41: *> (equilibrated) matrix A could be poor. This also means that the
   42: *> solution X, estimated condition numbers, and error bounds could be
   43: *> unreliable.
   44: *> \endverbatim
   45: *
   46: *  Arguments:
   47: *  ==========
   48: *
   49: *> \param[in] N
   50: *> \verbatim
   51: *>          N is INTEGER
   52: *>     The number of linear equations, i.e., the order of the
   53: *>     matrix A.  N >= 0.
   54: *> \endverbatim
   55: *>
   56: *> \param[in] NCOLS
   57: *> \verbatim
   58: *>          NCOLS is INTEGER
   59: *>     The number of columns of the matrix A. NCOLS >= 0.
   60: *> \endverbatim
   61: *>
   62: *> \param[in] A
   63: *> \verbatim
   64: *>          A is DOUBLE PRECISION array, dimension (LDA,N)
   65: *>     On entry, the N-by-N matrix A.
   66: *> \endverbatim
   67: *>
   68: *> \param[in] LDA
   69: *> \verbatim
   70: *>          LDA is INTEGER
   71: *>     The leading dimension of the array A.  LDA >= max(1,N).
   72: *> \endverbatim
   73: *>
   74: *> \param[in] AF
   75: *> \verbatim
   76: *>          AF is DOUBLE PRECISION array, dimension (LDAF,N)
   77: *>     The factors L and U from the factorization
   78: *>     A = P*L*U as computed by DGETRF.
   79: *> \endverbatim
   80: *>
   81: *> \param[in] LDAF
   82: *> \verbatim
   83: *>          LDAF is INTEGER
   84: *>     The leading dimension of the array AF.  LDAF >= max(1,N).
   85: *> \endverbatim
   86: *
   87: *  Authors:
   88: *  ========
   89: *
   90: *> \author Univ. of Tennessee
   91: *> \author Univ. of California Berkeley
   92: *> \author Univ. of Colorado Denver
   93: *> \author NAG Ltd.
   94: *
   95: *> \ingroup doubleGEcomputational
   96: *
   97: *  =====================================================================
   98:       DOUBLE PRECISION FUNCTION DLA_GERPVGRW( N, NCOLS, A, LDA, AF,
   99:      $         LDAF )
  100: *
  101: *  -- LAPACK computational routine --
  102: *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
  103: *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
  104: *
  105: *     .. Scalar Arguments ..
  106:       INTEGER            N, NCOLS, LDA, LDAF
  107: *     ..
  108: *     .. Array Arguments ..
  109:       DOUBLE PRECISION   A( LDA, * ), AF( LDAF, * )
  110: *     ..
  111: *
  112: *  =====================================================================
  113: *
  114: *     .. Local Scalars ..
  115:       INTEGER            I, J
  116:       DOUBLE PRECISION   AMAX, UMAX, RPVGRW
  117: *     ..
  118: *     .. Intrinsic Functions ..
  119:       INTRINSIC          ABS, MAX, MIN
  120: *     ..
  121: *     .. Executable Statements ..
  122: *
  123:       RPVGRW = 1.0D+0
  124: 
  125:       DO J = 1, NCOLS
  126:          AMAX = 0.0D+0
  127:          UMAX = 0.0D+0
  128:          DO I = 1, N
  129:             AMAX = MAX( ABS( A( I, J ) ), AMAX )
  130:          END DO
  131:          DO I = 1, J
  132:             UMAX = MAX( ABS( AF( I, J ) ), UMAX )
  133:          END DO
  134:          IF ( UMAX /= 0.0D+0 ) THEN
  135:             RPVGRW = MIN( AMAX / UMAX, RPVGRW )
  136:          END IF
  137:       END DO
  138:       DLA_GERPVGRW = RPVGRW
  139: *
  140: *     End of DLA_GERPVGRW
  141: *
  142:       END

CVSweb interface <joel.bertrand@systella.fr>