izmax1 function

int izmax1(
  1. int N,
  2. Array<Complex> ZX_,
  3. int INCX
)

Implementation

int izmax1(
  final int N,
  final Array<Complex> ZX_,
  final int INCX,
) {
  final ZX = ZX_.having();
  double DMAX;
  int I, IX;

  if (N < 1 || INCX <= 0) return 0;

  if (N == 1) return 1;

  int result = 1;
  if (INCX == 1) {
    // code for increment equal to 1

    DMAX = ZX[1].abs();
    for (I = 2; I <= N; I++) {
      if (ZX[I].abs() > DMAX) {
        result = I;
        DMAX = ZX[I].abs();
      }
    }
  } else {
    // code for increment not equal to 1

    IX = 1;
    DMAX = ZX[1].abs();
    IX += INCX;
    for (I = 2; I <= N; I++) {
      if (ZX[IX].abs() > DMAX) {
        result = I;
        DMAX = ZX[IX].abs();
      }
      IX += INCX;
    }
  }
  return result;
}