LAPACK  3.8.0
LAPACK: Linear Algebra PACKage

◆ icmax1()

integer function icmax1 ( integer  N,
complex, dimension(*)  CX,
integer  INCX 
)

ICMAX1 finds the index of the first vector element of maximum absolute value.

Download ICMAX1 + dependencies [TGZ] [ZIP] [TXT]

Purpose:
 ICMAX1 finds the index of the first vector element of maximum absolute value.

 Based on ICAMAX from Level 1 BLAS.
 The change is to use the 'genuine' absolute value.
Parameters
[in]N
          N is INTEGER
          The number of elements in the vector CX.
[in]CX
          CX is COMPLEX array, dimension (N)
          The vector CX. The ICMAX1 function returns the index of its first
          element of maximum absolute value.
[in]INCX
          INCX is INTEGER
          The spacing between successive values of CX.  INCX >= 1.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
February 2014
Contributors:
Nick Higham for use with CLACON.

Definition at line 83 of file icmax1.f.

83 *
84 * -- LAPACK auxiliary routine (version 3.7.0) --
85 * -- LAPACK is a software package provided by Univ. of Tennessee, --
86 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
87 * February 2014
88 *
89 * .. Scalar Arguments ..
90  INTEGER incx, n
91 * ..
92 * .. Array Arguments ..
93  COMPLEX cx(*)
94 * ..
95 *
96 * =====================================================================
97 *
98 * .. Local Scalars ..
99  REAL smax
100  INTEGER i, ix
101 * ..
102 * .. Intrinsic Functions ..
103  INTRINSIC abs
104 * ..
105 * .. Executable Statements ..
106 *
107  icmax1 = 0
108  IF (n.LT.1 .OR. incx.LE.0) RETURN
109  icmax1 = 1
110  IF (n.EQ.1) RETURN
111  IF (incx.EQ.1) THEN
112 *
113 * code for increment equal to 1
114 *
115  smax = abs(cx(1))
116  DO i = 2,n
117  IF (abs(cx(i)).GT.smax) THEN
118  icmax1 = i
119  smax = abs(cx(i))
120  END IF
121  END DO
122  ELSE
123 *
124 * code for increment not equal to 1
125 *
126  ix = 1
127  smax = abs(cx(1))
128  ix = ix + incx
129  DO i = 2,n
130  IF (abs(cx(ix)).GT.smax) THEN
131  icmax1 = i
132  smax = abs(cx(ix))
133  END IF
134  ix = ix + incx
135  END DO
136  END IF
137  RETURN
138 *
139 * End of ICMAX1
140 *
integer function icmax1(N, CX, INCX)
ICMAX1 finds the index of the first vector element of maximum absolute value.
Definition: icmax1.f:83