public static void performAggregateBinaryIgnoreIndexes(
      MatrixValue value1, MatrixValue value2, MatrixValue valueOut, AggregateBinaryOperator op)
      throws DMLRuntimeException {

    // perform on the value
    value1.aggregateBinaryOperations(value1, value2, valueOut, op);
  }
  public static void performAggregateBinary(
      MatrixIndexes indexes1,
      MatrixValue value1,
      MatrixIndexes indexes2,
      MatrixValue value2,
      MatrixIndexes indexesOut,
      MatrixValue valueOut,
      AggregateBinaryOperator op)
      throws DMLRuntimeException {
    // compute output index
    indexesOut.setIndexes(indexes1.getRowIndex(), indexes2.getColumnIndex());

    // perform on the value
    value1.aggregateBinaryOperations(indexes1, value1, indexes2, value2, valueOut, op);
  }