code: public static MutableIntArrayND apply(
          IntArrayND a0, IntArrayND a1, 
          IntBinaryOperator op,
          MutableIntArrayND result)
      {
          Utils.checkForEqualSizes(a0, a1);
          MutableIntArrayND finalResult = validate(a0, result);
          finalResult.coordinates().parallel().forEach(t -> 
          {
              int operand0 = a0.get(t);
              int operand1 = a1.get(t);
              int r = op.applyAsInt(operand0, operand1);
              finalResult.set(t, r);
          });
          return finalResult;
      }
docs: Applies the given binary operator to each pair of elements from the
  given arrays, and stores the result in the given result array.<br>
  <br>
  If the given result array is <code>null</code>, then a new array
  will be created and returned.<br>
  <br>
  The source arrays and the target array may be identical.
  
  @param a0 The first array
  @param a1 The second array
  @param op The operator to apply
  @param result The array that will store the result
  @return The result
  @throws IllegalArgumentException If the given arrays do not have
  equal sizes.