Diff for /rpl/lapack/lapack/zlangb.f between versions 1.1.1.1 and 1.16

version 1.1.1.1, 2010/01/26 15:22:46 version 1.16, 2017/06/17 11:06:54
Line 1 Line 1
   *> \brief \b ZLANGB returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value of any element of general band matrix.
   *
   *  =========== DOCUMENTATION ===========
   *
   * Online html documentation available at
   *            http://www.netlib.org/lapack/explore-html/
   *
   *> \htmlonly
   *> Download ZLANGB + dependencies
   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zlangb.f">
   *> [TGZ]</a>
   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zlangb.f">
   *> [ZIP]</a>
   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlangb.f">
   *> [TXT]</a>
   *> \endhtmlonly
   *
   *  Definition:
   *  ===========
   *
   *       DOUBLE PRECISION FUNCTION ZLANGB( NORM, N, KL, KU, AB, LDAB,
   *                        WORK )
   *
   *       .. Scalar Arguments ..
   *       CHARACTER          NORM
   *       INTEGER            KL, KU, LDAB, N
   *       ..
   *       .. Array Arguments ..
   *       DOUBLE PRECISION   WORK( * )
   *       COMPLEX*16         AB( LDAB, * )
   *       ..
   *
   *
   *> \par Purpose:
   *  =============
   *>
   *> \verbatim
   *>
   *> ZLANGB  returns the value of the one norm,  or the Frobenius norm, or
   *> the  infinity norm,  or the element of  largest absolute value  of an
   *> n by n band matrix  A,  with kl sub-diagonals and ku super-diagonals.
   *> \endverbatim
   *>
   *> \return ZLANGB
   *> \verbatim
   *>
   *>    ZLANGB = ( max(abs(A(i,j))), NORM = 'M' or 'm'
   *>             (
   *>             ( norm1(A),         NORM = '1', 'O' or 'o'
   *>             (
   *>             ( normI(A),         NORM = 'I' or 'i'
   *>             (
   *>             ( normF(A),         NORM = 'F', 'f', 'E' or 'e'
   *>
   *> where  norm1  denotes the  one norm of a matrix (maximum column sum),
   *> normI  denotes the  infinity norm  of a matrix  (maximum row sum) and
   *> normF  denotes the  Frobenius norm of a matrix (square root of sum of
   *> squares).  Note that  max(abs(A(i,j)))  is not a consistent matrix norm.
   *> \endverbatim
   *
   *  Arguments:
   *  ==========
   *
   *> \param[in] NORM
   *> \verbatim
   *>          NORM is CHARACTER*1
   *>          Specifies the value to be returned in ZLANGB as described
   *>          above.
   *> \endverbatim
   *>
   *> \param[in] N
   *> \verbatim
   *>          N is INTEGER
   *>          The order of the matrix A.  N >= 0.  When N = 0, ZLANGB is
   *>          set to zero.
   *> \endverbatim
   *>
   *> \param[in] KL
   *> \verbatim
   *>          KL is INTEGER
   *>          The number of sub-diagonals of the matrix A.  KL >= 0.
   *> \endverbatim
   *>
   *> \param[in] KU
   *> \verbatim
   *>          KU is INTEGER
   *>          The number of super-diagonals of the matrix A.  KU >= 0.
   *> \endverbatim
   *>
   *> \param[in] AB
   *> \verbatim
   *>          AB is COMPLEX*16 array, dimension (LDAB,N)
   *>          The band matrix A, stored in rows 1 to KL+KU+1.  The j-th
   *>          column of A is stored in the j-th column of the array AB as
   *>          follows:
   *>          AB(ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(n,j+kl).
   *> \endverbatim
   *>
   *> \param[in] LDAB
   *> \verbatim
   *>          LDAB is INTEGER
   *>          The leading dimension of the array AB.  LDAB >= KL+KU+1.
   *> \endverbatim
   *>
   *> \param[out] WORK
   *> \verbatim
   *>          WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)),
   *>          where LWORK >= N when NORM = 'I'; otherwise, WORK is not
   *>          referenced.
   *> \endverbatim
   *
   *  Authors:
   *  ========
   *
   *> \author Univ. of Tennessee
   *> \author Univ. of California Berkeley
   *> \author Univ. of Colorado Denver
   *> \author NAG Ltd.
   *
   *> \date December 2016
   *
   *> \ingroup complex16GBauxiliary
   *
   *  =====================================================================
       DOUBLE PRECISION FUNCTION ZLANGB( NORM, N, KL, KU, AB, LDAB,        DOUBLE PRECISION FUNCTION ZLANGB( NORM, N, KL, KU, AB, LDAB,
      $                 WORK )       $                 WORK )
 *  *
 *  -- LAPACK auxiliary routine (version 3.2) --  *  -- LAPACK auxiliary routine (version 3.7.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --  *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--  *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
 *     November 2006  *     December 2016
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       CHARACTER          NORM        CHARACTER          NORM
Line 15 Line 139
       COMPLEX*16         AB( LDAB, * )        COMPLEX*16         AB( LDAB, * )
 *     ..  *     ..
 *  *
 *  Purpose  
 *  =======  
 *  
 *  ZLANGB  returns the value of the one norm,  or the Frobenius norm, or  
 *  the  infinity norm,  or the element of  largest absolute value  of an  
 *  n by n band matrix  A,  with kl sub-diagonals and ku super-diagonals.  
 *  
 *  Description  
 *  ===========  
 *  
 *  ZLANGB returns the value  
 *  
 *     ZLANGB = ( max(abs(A(i,j))), NORM = 'M' or 'm'  
 *              (  
 *              ( norm1(A),         NORM = '1', 'O' or 'o'  
 *              (  
 *              ( normI(A),         NORM = 'I' or 'i'  
 *              (  
 *              ( normF(A),         NORM = 'F', 'f', 'E' or 'e'  
 *  
 *  where  norm1  denotes the  one norm of a matrix (maximum column sum),  
 *  normI  denotes the  infinity norm  of a matrix  (maximum row sum) and  
 *  normF  denotes the  Frobenius norm of a matrix (square root of sum of  
 *  squares).  Note that  max(abs(A(i,j)))  is not a consistent matrix norm.  
 *  
 *  Arguments  
 *  =========  
 *  
 *  NORM    (input) CHARACTER*1  
 *          Specifies the value to be returned in ZLANGB as described  
 *          above.  
 *  
 *  N       (input) INTEGER  
 *          The order of the matrix A.  N >= 0.  When N = 0, ZLANGB is  
 *          set to zero.  
 *  
 *  KL      (input) INTEGER  
 *          The number of sub-diagonals of the matrix A.  KL >= 0.  
 *  
 *  KU      (input) INTEGER  
 *          The number of super-diagonals of the matrix A.  KU >= 0.  
 *  
 *  AB      (input) COMPLEX*16 array, dimension (LDAB,N)  
 *          The band matrix A, stored in rows 1 to KL+KU+1.  The j-th  
 *          column of A is stored in the j-th column of the array AB as  
 *          follows:  
 *          AB(ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(n,j+kl).  
 *  
 *  LDAB    (input) INTEGER  
 *          The leading dimension of the array AB.  LDAB >= KL+KU+1.  
 *  
 *  WORK    (workspace) DOUBLE PRECISION array, dimension (MAX(1,LWORK)),  
 *          where LWORK >= N when NORM = 'I'; otherwise, WORK is not  
 *          referenced.  
 *  
 * =====================================================================  * =====================================================================
 *  *
 *     .. Parameters ..  *     .. Parameters ..
Line 78 Line 147
 *     ..  *     ..
 *     .. Local Scalars ..  *     .. Local Scalars ..
       INTEGER            I, J, K, L        INTEGER            I, J, K, L
       DOUBLE PRECISION   SCALE, SUM, VALUE        DOUBLE PRECISION   SCALE, SUM, VALUE, TEMP
 *     ..  *     ..
 *     .. External Functions ..  *     .. External Functions ..
       LOGICAL            LSAME        LOGICAL            LSAME, DISNAN
       EXTERNAL           LSAME        EXTERNAL           LSAME, DISNAN
 *     ..  *     ..
 *     .. External Subroutines ..  *     .. External Subroutines ..
       EXTERNAL           ZLASSQ        EXTERNAL           ZLASSQ
Line 101 Line 170
          VALUE = ZERO           VALUE = ZERO
          DO 20 J = 1, N           DO 20 J = 1, N
             DO 10 I = MAX( KU+2-J, 1 ), MIN( N+KU+1-J, KL+KU+1 )              DO 10 I = MAX( KU+2-J, 1 ), MIN( N+KU+1-J, KL+KU+1 )
                VALUE = MAX( VALUE, ABS( AB( I, J ) ) )                 TEMP = ABS( AB( I, J ) )
                  IF( VALUE.LT.TEMP .OR. DISNAN( TEMP ) ) VALUE = TEMP
    10       CONTINUE     10       CONTINUE
    20    CONTINUE     20    CONTINUE
       ELSE IF( ( LSAME( NORM, 'O' ) ) .OR. ( NORM.EQ.'1' ) ) THEN        ELSE IF( ( LSAME( NORM, 'O' ) ) .OR. ( NORM.EQ.'1' ) ) THEN
Line 114 Line 184
             DO 30 I = MAX( KU+2-J, 1 ), MIN( N+KU+1-J, KL+KU+1 )              DO 30 I = MAX( KU+2-J, 1 ), MIN( N+KU+1-J, KL+KU+1 )
                SUM = SUM + ABS( AB( I, J ) )                 SUM = SUM + ABS( AB( I, J ) )
    30       CONTINUE     30       CONTINUE
             VALUE = MAX( VALUE, SUM )              IF( VALUE.LT.SUM .OR. DISNAN( SUM ) ) VALUE = SUM
    40    CONTINUE     40    CONTINUE
       ELSE IF( LSAME( NORM, 'I' ) ) THEN        ELSE IF( LSAME( NORM, 'I' ) ) THEN
 *  *
Line 131 Line 201
    70    CONTINUE     70    CONTINUE
          VALUE = ZERO           VALUE = ZERO
          DO 80 I = 1, N           DO 80 I = 1, N
             VALUE = MAX( VALUE, WORK( I ) )              TEMP = WORK( I )
               IF( VALUE.LT.TEMP .OR. DISNAN( TEMP ) ) VALUE = TEMP
    80    CONTINUE     80    CONTINUE
       ELSE IF( ( LSAME( NORM, 'F' ) ) .OR. ( LSAME( NORM, 'E' ) ) ) THEN        ELSE IF( ( LSAME( NORM, 'F' ) ) .OR. ( LSAME( NORM, 'E' ) ) ) THEN
 *  *

Removed from v.1.1.1.1  
changed lines
  Added in v.1.16


CVSweb interface <joel.bertrand@systella.fr>