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 / izamax.f < prev    next >
Text File  |  1996-09-28  |  963b  |  42 lines

  1.       integer function izamax(n,zx,incx)
  2. c
  3. c     finds the index of element having max. absolute value.
  4. c     jack dongarra, 1/15/85.
  5. c     modified to correct problem with negative increment, 8/21/90.
  6. c
  7.       double complex zx(1)
  8.       double precision smax
  9.       integer i,incx,ix,n
  10.       double precision dcabs1
  11. c
  12.       izamax = 0
  13.       if(n.lt.1)return
  14.       izamax = 1
  15.       if(n.eq.1)return
  16.       if(incx.eq.1)go to 20
  17. c
  18. c        code for increment not equal to 1
  19. c
  20.       ix = 1
  21.       if(incx.lt.0)ix = (-n+1)*incx + 1
  22.       smax = dcabs1(zx(ix))
  23.       ix = ix + incx
  24.       do 10 i = 2,n
  25.          if(dcabs1(zx(ix)).le.smax) go to 5
  26.          izamax = i
  27.          smax = dcabs1(zx(ix))
  28.     5    ix = ix + incx
  29.    10 continue
  30.       return
  31. c
  32. c        code for increment equal to 1
  33. c
  34.    20 smax = dcabs1(zx(1))
  35.       do 30 i = 2,n
  36.          if(dcabs1(zx(i)).le.smax) go to 30
  37.          izamax = i
  38.          smax = dcabs1(zx(i))
  39.    30 continue
  40.       return
  41.       end
  42.