예제 #1
0
  protected BigRational multiplyRow(int index) throws UndefinedMultiplyException {

    BigRational result = BigRational.ZERO;

    for (int j = 0; j < size.col; j++) {
      if (!array[index][j].isZero()) {
        if (basis.getNewValue(j + position.col).isPositive()) {
          result = result.add((array[index][j].multiply(basis.getNewValue(j + position.col))));
        } else if (basis.getNewValue(j + position.col).isUndefined()) {
          throw new UndefinedMultiplyException();
        }
      }
    }
    return result;
  }
예제 #2
0
  private BigRational multiplyBlockRow(BigRational[][] array, int index, int starting_col)
      throws UndefinedMultiplyException {

    BigRational result = BigRational.ZERO;
    int cols = array[0].length;

    for (int j = 0; j < cols; j++) {
      if (!array[index][j].isZero()) {
        if (basis.getNewValue(j + starting_col).isPositive()) {
          result = result.add((array[index][j].multiply(basis.getNewValue(j + starting_col))));
        } else if (basis.getNewValue(j + starting_col).isUndefined()) {
          throw new UndefinedMultiplyException();
        }
      }
    }
    return result;
  }