http://www.ccl.net/cca/software/SOURCES/C/kinetics1/idamax.shtml
CCL idamax
```int idamax( n, dx, incx )

double *dx;
int n, incx;

/* Purpose : Find largest component of double vector dx

--- Input ---

n    : number of elements in input vector
dx   : double vector with n+1 elements, dx[0] is not used
incx : storage spacing between elements of dx

--- Output ---

idamax : smallest index, 0 if n <= 0

Find smallest index of maximum magnitude of dx.
idamax = first i, i=1 to n, to minimize fabs( dx[1-incx+i*incx] ).

*/

{
double dmax, xmag;
int i, ii, xindex;

xindex = 0;
if ( n <= 0 )
return xindex;
xindex = 1;
if ( n <= 1 || incx <= 0 )
return xindex;

/* Code for increments not equal to 1.   */

if ( incx != 1 ) {
dmax = fabs( dx[1] );
ii = 2;
for ( i = 1 + incx ; i <= n * incx ; i = i + incx ) {
xmag = fabs( dx[i] );
if ( xmag > dmax ) {
xindex = ii;
dmax = xmag;
}
ii++;
}
return xindex;
}

/* Code for increments equal to 1.  */

dmax = fabs( dx[1] );
for ( i = 2 ; i <= n ; i++ ) {
xmag = fabs( dx[i] );
if ( xmag > dmax ) {
xindex = i;
dmax = xmag;
}
}
return xindex;

}

```
 Modified: Mon May 13 16:00:00 1991 GMT Page accessed 5123 times since Sat Apr 17 21:32:46 1999 GMT