LAPACK 3.12.0 LAPACK: Linear Algebra PACKage
Searching...
No Matches
icmax1.f
Go to the documentation of this file.
1*> \brief \b ICMAX1 finds the index of the first vector element of maximum absolute value.
2*
3* =========== DOCUMENTATION ===========
4*
5* Online html documentation available at
6* http://www.netlib.org/lapack/explore-html/
7*
8*> \htmlonly
10*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/icmax1.f">
11*> [TGZ]</a>
12*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/icmax1.f">
13*> [ZIP]</a>
14*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/icmax1.f">
15*> [TXT]</a>
16*> \endhtmlonly
17*
18* Definition:
19* ===========
20*
21* INTEGER FUNCTION ICMAX1( N, CX, INCX )
22*
23* .. Scalar Arguments ..
24* INTEGER INCX, N
25* ..
26* .. Array Arguments ..
27* COMPLEX CX( * )
28* ..
29*
30*
31*> \par Purpose:
32* =============
33*>
34*> \verbatim
35*>
36*> ICMAX1 finds the index of the first vector element of maximum absolute value.
37*>
38*> Based on ICAMAX from Level 1 BLAS.
39*> The change is to use the 'genuine' absolute value.
40*> \endverbatim
41*
42* Arguments:
43* ==========
44*
45*> \param[in] N
46*> \verbatim
47*> N is INTEGER
48*> The number of elements in the vector CX.
49*> \endverbatim
50*>
51*> \param[in] CX
52*> \verbatim
53*> CX is COMPLEX array, dimension (N)
54*> The vector CX. The ICMAX1 function returns the index of its first
55*> element of maximum absolute value.
56*> \endverbatim
57*>
58*> \param[in] INCX
59*> \verbatim
60*> INCX is INTEGER
61*> The spacing between successive values of CX. INCX >= 1.
62*> \endverbatim
63*
64* Authors:
65* ========
66*
67*> \author Univ. of Tennessee
68*> \author Univ. of California Berkeley
69*> \author Univ. of Colorado Denver
70*> \author NAG Ltd.
71*
72*> \ingroup imax1
73*
74*> \par Contributors:
75* ==================
76*>
77*> Nick Higham for use with CLACON.
78*
79* =====================================================================
80 INTEGER FUNCTION icmax1( N, CX, INCX )
81*
82* -- LAPACK auxiliary routine --
83* -- LAPACK is a software package provided by Univ. of Tennessee, --
84* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
85*
86* .. Scalar Arguments ..
87 INTEGER incx, n
88* ..
89* .. Array Arguments ..
90 COMPLEX cx(*)
91* ..
92*
93* =====================================================================
94*
95* .. Local Scalars ..
96 REAL smax
97 INTEGER i, ix
98* ..
99* .. Intrinsic Functions ..
100 INTRINSIC abs
101* ..
102* .. Executable Statements ..
103*
104 icmax1 = 0
105 IF (n.LT.1 .OR. incx.LE.0) RETURN
106 icmax1 = 1
107 IF (n.EQ.1) RETURN
108 IF (incx.EQ.1) THEN
109*
110* code for increment equal to 1
111*
112 smax = abs(cx(1))
113 DO i = 2,n
114 IF (abs(cx(i)).GT.smax) THEN
115 icmax1 = i
116 smax = abs(cx(i))
117 END IF
118 END DO
119 ELSE
120*
121* code for increment not equal to 1
122*
123 ix = 1
124 smax = abs(cx(1))
125 ix = ix + incx
126 DO i = 2,n
127 IF (abs(cx(ix)).GT.smax) THEN
128 icmax1 = i
129 smax = abs(cx(ix))
130 END IF
131 ix = ix + incx
132 END DO
133 END IF
134 RETURN
135*
136* End of ICMAX1
137*
138 END
integer function icmax1(n, cx, incx)
ICMAX1 finds the index of the first vector element of maximum absolute value.
Definition icmax1.f:81