Diff for /rpl/lapack/blas/izamax.f between versions 1.1 and 1.18

version 1.1, 2010/01/26 15:22:45 version 1.18, 2023/08/07 08:38:44
Line 1 Line 1
   *> \brief \b IZAMAX
   *
   *  =========== DOCUMENTATION ===========
   *
   * Online html documentation available at
   *            http://www.netlib.org/lapack/explore-html/
   *
   *  Definition:
   *  ===========
   *
   *       INTEGER FUNCTION IZAMAX(N,ZX,INCX)
   *
   *       .. Scalar Arguments ..
   *       INTEGER INCX,N
   *       ..
   *       .. Array Arguments ..
   *       COMPLEX*16 ZX(*)
   *       ..
   *
   *
   *> \par Purpose:
   *  =============
   *>
   *> \verbatim
   *>
   *>    IZAMAX finds the index of the first element having maximum |Re(.)| + |Im(.)|
   *> \endverbatim
   *
   *  Arguments:
   *  ==========
   *
   *> \param[in] N
   *> \verbatim
   *>          N is INTEGER
   *>         number of elements in input vector(s)
   *> \endverbatim
   *>
   *> \param[in] ZX
   *> \verbatim
   *>          ZX is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
   *> \endverbatim
   *>
   *> \param[in] INCX
   *> \verbatim
   *>          INCX is INTEGER
   *>         storage spacing between elements of ZX
   *> \endverbatim
   *
   *  Authors:
   *  ========
   *
   *> \author Univ. of Tennessee
   *> \author Univ. of California Berkeley
   *> \author Univ. of Colorado Denver
   *> \author NAG Ltd.
   *
   *> \ingroup aux_blas
   *
   *> \par Further Details:
   *  =====================
   *>
   *> \verbatim
   *>
   *>     jack dongarra, 1/15/85.
   *>     modified 3/93 to return if incx .le. 0.
   *>     modified 12/3/93, array(1) declarations changed to array(*)
   *> \endverbatim
   *>
   *  =====================================================================
       INTEGER FUNCTION IZAMAX(N,ZX,INCX)        INTEGER FUNCTION IZAMAX(N,ZX,INCX)
   *
   *  -- Reference BLAS level1 routine --
   *  -- Reference BLAS is a software package provided by Univ. of Tennessee,    --
   *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
   *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       INTEGER INCX,N        INTEGER INCX,N
 *     ..  *     ..
 *     .. Array Arguments ..  *     .. Array Arguments ..
       DOUBLE COMPLEX ZX(*)        COMPLEX*16 ZX(*)
 *     ..  *     ..
 *  *
 *  Purpose  
 *  =======  
 *  
 *     IZAMAX finds the index of element having max. absolute value.  
 *  
 *  Further Details  
 *  ===============  
 *  
 *     jack dongarra, 1/15/85.  
 *     modified 3/93 to return if incx .le. 0.  
 *     modified 12/3/93, array(1) declarations changed to array(*)  
 *  
 *  =====================================================================  *  =====================================================================
 *  *
 *     .. Local Scalars ..  *     .. Local Scalars ..
       DOUBLE PRECISION SMAX        DOUBLE PRECISION DMAX
       INTEGER I,IX        INTEGER I,IX
 *     ..  *     ..
 *     .. External Functions ..  *     .. External Functions ..
Line 32 Line 94
       IF (N.LT.1 .OR. INCX.LE.0) RETURN        IF (N.LT.1 .OR. INCX.LE.0) RETURN
       IZAMAX = 1        IZAMAX = 1
       IF (N.EQ.1) RETURN        IF (N.EQ.1) RETURN
       IF (INCX.EQ.1) GO TO 20        IF (INCX.EQ.1) THEN
   *
   *        code for increment equal to 1
   *
            DMAX = DCABS1(ZX(1))
            DO I = 2,N
               IF (DCABS1(ZX(I)).GT.DMAX) THEN
                  IZAMAX = I
                  DMAX = DCABS1(ZX(I))
               END IF
            END DO
         ELSE
 *  *
 *        code for increment not equal to 1  *        code for increment not equal to 1
 *  *
       IX = 1           IX = 1
       SMAX = DCABS1(ZX(1))           DMAX = DCABS1(ZX(1))
       IX = IX + INCX           IX = IX + INCX
       DO 10 I = 2,N           DO I = 2,N
           IF (DCABS1(ZX(IX)).LE.SMAX) GO TO 5              IF (DCABS1(ZX(IX)).GT.DMAX) THEN
           IZAMAX = I                 IZAMAX = I
           SMAX = DCABS1(ZX(IX))                 DMAX = DCABS1(ZX(IX))
     5     IX = IX + INCX              END IF
    10 CONTINUE              IX = IX + INCX
            END DO
         END IF
       RETURN        RETURN
 *  *
 *        code for increment equal to 1  *     End of IZAMAX
 *  *
    20 SMAX = DCABS1(ZX(1))  
       DO 30 I = 2,N  
           IF (DCABS1(ZX(I)).LE.SMAX) GO TO 30  
           IZAMAX = I  
           SMAX = DCABS1(ZX(I))  
    30 CONTINUE  
       RETURN  
       END        END

Removed from v.1.1  
changed lines
  Added in v.1.18


CVSweb interface <joel.bertrand@systella.fr>