Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

idamax.c

Go to the documentation of this file.
00001 /* IDAMAX.F -- translated by f2c (version 19941215).
00002    You must link the resulting object file with the libraries:
00003         -lf2c -lm   (in that order)
00004 */
00005 
00006 #include "f2c.h"
00007 
00008 integer idamax_(n, dx, incx)
00009 integer *n;
00010 doublereal *dx;
00011 integer *incx;
00012 {
00013     /* System generated locals */
00014     integer ret_val, i__1;
00015     doublereal d__1;
00016 
00017     /* Local variables */
00018     static doublereal dmax__;
00019     static integer i, ix;
00020 
00021 
00022 /*     finds the index of element having max. absolute value. */
00023 /*     jack dongarra, linpack, 3/11/78. */
00024 /*     modified 3/93 to return if incx .le. 0. */
00025 
00026 
00027     /* Parameter adjustments */
00028     --dx;
00029 
00030     /* Function Body */
00031     ret_val = 0;
00032     if (*n < 1 || *incx <= 0) {
00033         return ret_val;
00034     }
00035     ret_val = 1;
00036     if (*n == 1) {
00037         return ret_val;
00038     }
00039     if (*incx == 1) {
00040         goto L20;
00041     }
00042 
00043 /*        code for increment not equal to 1 */
00044 
00045     ix = 1;
00046     dmax__ = abs(dx[1]);
00047     ix += *incx;
00048     i__1 = *n;
00049     for (i = 2; i <= i__1; ++i) {
00050         if ((d__1 = dx[ix], abs(d__1)) <= dmax__) {
00051             goto L5;
00052         }
00053         ret_val = i;
00054         dmax__ = (d__1 = dx[ix], abs(d__1));
00055 L5:
00056         ix += *incx;
00057 /* L10: */
00058     }
00059     return ret_val;
00060 
00061 /*        code for increment equal to 1 */
00062 
00063 L20:
00064     dmax__ = abs(dx[1]);
00065     i__1 = *n;
00066     for (i = 2; i <= i__1; ++i) {
00067         if ((d__1 = dx[i], abs(d__1)) <= dmax__) {
00068             goto L30;
00069         }
00070         ret_val = i;
00071         dmax__ = (d__1 = dx[i], abs(d__1));
00072 L30:
00073         ;
00074     }
00075     return ret_val;
00076 } /* idamax_ */
00077 

Generated on Wed Sep 5 12:54:21 2007 for DSACSS Operational Code by  doxygen 1.3.9.1