Annotation of rpl/lapack/blas/izamax.f, revision 1.7
1.1 bertrand 1: INTEGER FUNCTION IZAMAX(N,ZX,INCX)
2: * .. Scalar Arguments ..
3: INTEGER INCX,N
4: * ..
5: * .. Array Arguments ..
6: DOUBLE COMPLEX ZX(*)
7: * ..
8: *
9: * Purpose
10: * =======
11: *
12: * IZAMAX finds the index of element having max. absolute value.
13: *
14: * Further Details
15: * ===============
16: *
17: * jack dongarra, 1/15/85.
18: * modified 3/93 to return if incx .le. 0.
19: * modified 12/3/93, array(1) declarations changed to array(*)
20: *
21: * =====================================================================
22: *
23: * .. Local Scalars ..
1.7 ! bertrand 24: DOUBLE PRECISION DMAX
1.1 bertrand 25: INTEGER I,IX
26: * ..
27: * .. External Functions ..
28: DOUBLE PRECISION DCABS1
29: EXTERNAL DCABS1
30: * ..
31: IZAMAX = 0
32: IF (N.LT.1 .OR. INCX.LE.0) RETURN
33: IZAMAX = 1
34: IF (N.EQ.1) RETURN
1.7 ! bertrand 35: IF (INCX.EQ.1) THEN
1.1 bertrand 36: *
1.7 ! bertrand 37: * code for increment equal to 1
1.1 bertrand 38: *
1.7 ! bertrand 39: DMAX = DCABS1(ZX(1))
! 40: DO I = 2,N
! 41: IF (DCABS1(ZX(I)).GT.DMAX) THEN
! 42: IZAMAX = I
! 43: DMAX = DCABS1(ZX(I))
! 44: END IF
! 45: END DO
! 46: ELSE
1.1 bertrand 47: *
1.7 ! bertrand 48: * code for increment not equal to 1
1.1 bertrand 49: *
1.7 ! bertrand 50: IX = 1
! 51: DMAX = DCABS1(ZX(1))
! 52: IX = IX + INCX
! 53: DO I = 2,N
! 54: IF (DCABS1(ZX(IX)).GT.DMAX) THEN
! 55: IZAMAX = I
! 56: DMAX = DCABS1(ZX(IX))
! 57: END IF
! 58: IX = IX + INCX
! 59: END DO
! 60: END IF
1.1 bertrand 61: RETURN
62: END
CVSweb interface <joel.bertrand@systella.fr>