home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / octave-1.1.1p1-src.tgz / tar.out / fsf / octave / libcruft / blas / idamax.f < prev    next >
Text File  |  1996-09-28  |  805b  |  38 lines

  1.       INTEGER FUNCTION IDAMAX(N,DX,INCX)
  2. C
  3. C     FINDS THE INDEX OF ELEMENT HAVING MAX. ABSOLUTE VALUE.
  4. C     JACK DONGARRA, LINPACK, 3/11/78.
  5. C
  6.       DOUBLE PRECISION DX(1),DMAX
  7.       INTEGER I,INCX,IX,N
  8. C
  9.       IDAMAX = 0
  10.       IF( N .LT. 1 ) RETURN
  11.       IDAMAX = 1
  12.       IF(N.EQ.1)RETURN
  13.       IF(INCX.EQ.1)GO TO 20
  14. C
  15. C        CODE FOR INCREMENT NOT EQUAL TO 1
  16. C
  17.       IX = 1
  18.       DMAX = DABS(DX(1))
  19.       IX = IX + INCX
  20.       DO 10 I = 2,N
  21.          IF(DABS(DX(IX)).LE.DMAX) GO TO 5
  22.          IDAMAX = I
  23.          DMAX = DABS(DX(IX))
  24.     5    IX = IX + INCX
  25.    10 CONTINUE
  26.       RETURN
  27. C
  28. C        CODE FOR INCREMENT EQUAL TO 1
  29. C
  30.    20 DMAX = DABS(DX(1))
  31.       DO 30 I = 2,N
  32.          IF(DABS(DX(I)).LE.DMAX) GO TO 30
  33.          IDAMAX = I
  34.          DMAX = DABS(DX(I))
  35.    30 CONTINUE
  36.       RETURN
  37.       END
  38.