dla_gbrpvgrw function

double dla_gbrpvgrw(
  1. int N,
  2. int KL,
  3. int KU,
  4. int NCOLS,
  5. Matrix<double> AB_,
  6. int LDAB,
  7. Matrix<double> AFB_,
  8. int LDAFB,
)

Implementation

double dla_gbrpvgrw(
  final int N,
  final int KL,
  final int KU,
  final int NCOLS,
  final Matrix<double> AB_,
  final int LDAB,
  final Matrix<double> AFB_,
  final int LDAFB,
) {
  final AB = AB_.having(ld: LDAB);
  final AFB = AFB_.having(ld: LDAFB);
  int I, J, KD;
  double AMAX, UMAX, RPVGRW;

  RPVGRW = 1.0;

  KD = KU + 1;
  for (J = 1; J <= NCOLS; J++) {
    AMAX = 0.0;
    UMAX = 0.0;
    for (I = max(J - KU, 1); I <= min(J + KL, N); I++) {
      AMAX = max(AB[KD + I - J][J].abs(), AMAX);
    }
    for (I = max(J - KU, 1); I <= J; I++) {
      UMAX = max(AFB[KD + I - J][J].abs(), UMAX);
    }
    if (UMAX != 0.0) {
      RPVGRW = min(AMAX / UMAX, RPVGRW);
    }
  }
  return RPVGRW;
}