Annotation of rpl/lapack/lapack/izmax1.f, revision 1.1
1.1 ! bertrand 1: INTEGER FUNCTION IZMAX1( N, CX, INCX )
! 2: *
! 3: * -- LAPACK auxiliary routine (version 3.2) --
! 4: * -- LAPACK is a software package provided by Univ. of Tennessee, --
! 5: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
! 6: * November 2006
! 7: *
! 8: * .. Scalar Arguments ..
! 9: INTEGER INCX, N
! 10: * ..
! 11: * .. Array Arguments ..
! 12: COMPLEX*16 CX( * )
! 13: * ..
! 14: *
! 15: * Purpose
! 16: * =======
! 17: *
! 18: * IZMAX1 finds the index of the element whose real part has maximum
! 19: * absolute value.
! 20: *
! 21: * Based on IZAMAX from Level 1 BLAS.
! 22: * The change is to use the 'genuine' absolute value.
! 23: *
! 24: * Contributed by Nick Higham for use with ZLACON.
! 25: *
! 26: * Arguments
! 27: * =========
! 28: *
! 29: * N (input) INTEGER
! 30: * The number of elements in the vector CX.
! 31: *
! 32: * CX (input) COMPLEX*16 array, dimension (N)
! 33: * The vector whose elements will be summed.
! 34: *
! 35: * INCX (input) INTEGER
! 36: * The spacing between successive values of CX. INCX >= 1.
! 37: *
! 38: * =====================================================================
! 39: *
! 40: * .. Local Scalars ..
! 41: INTEGER I, IX
! 42: DOUBLE PRECISION SMAX
! 43: COMPLEX*16 ZDUM
! 44: * ..
! 45: * .. Intrinsic Functions ..
! 46: INTRINSIC ABS
! 47: * ..
! 48: * .. Statement Functions ..
! 49: DOUBLE PRECISION CABS1
! 50: * ..
! 51: * .. Statement Function definitions ..
! 52: *
! 53: * NEXT LINE IS THE ONLY MODIFICATION.
! 54: CABS1( ZDUM ) = ABS( ZDUM )
! 55: * ..
! 56: * .. Executable Statements ..
! 57: *
! 58: IZMAX1 = 0
! 59: IF( N.LT.1 )
! 60: $ RETURN
! 61: IZMAX1 = 1
! 62: IF( N.EQ.1 )
! 63: $ RETURN
! 64: IF( INCX.EQ.1 )
! 65: $ GO TO 30
! 66: *
! 67: * CODE FOR INCREMENT NOT EQUAL TO 1
! 68: *
! 69: IX = 1
! 70: SMAX = CABS1( CX( 1 ) )
! 71: IX = IX + INCX
! 72: DO 20 I = 2, N
! 73: IF( CABS1( CX( IX ) ).LE.SMAX )
! 74: $ GO TO 10
! 75: IZMAX1 = I
! 76: SMAX = CABS1( CX( IX ) )
! 77: 10 CONTINUE
! 78: IX = IX + INCX
! 79: 20 CONTINUE
! 80: RETURN
! 81: *
! 82: * CODE FOR INCREMENT EQUAL TO 1
! 83: *
! 84: 30 CONTINUE
! 85: SMAX = CABS1( CX( 1 ) )
! 86: DO 40 I = 2, N
! 87: IF( CABS1( CX( I ) ).LE.SMAX )
! 88: $ GO TO 40
! 89: IZMAX1 = I
! 90: SMAX = CABS1( CX( I ) )
! 91: 40 CONTINUE
! 92: RETURN
! 93: *
! 94: * End of IZMAX1
! 95: *
! 96: END
CVSweb interface <joel.bertrand@systella.fr>