code: public static MutableIntTuple apply(
          IntTuple t0, IntTuple t1, 
          IntBinaryOperator op,
          MutableIntTuple result)
      {
          Utils.checkForEqualSize(t0, t1);
          result = IntTuples.validate(t0, result);
          int n = t0.getSize();
          for (int i=0; i<n; i++)
          {
              int operand0 = t0.get(i);
              int operand1 = t1.get(i);
              int r = op.applyAsInt(operand0, operand1);
              result.set(i, r);
          }
          return result;
      }
docs: Applies the given binary operator to each pair of elements from the
  given tuples, and stores the result in the given result tuple.
  If the given result tuple is <code>null</code>, then a new tuple
  will be created and returned.
  
  @param t0 The first tuple
  @param t1 The second tuple
  @param op The operator to apply
  @param result The tuple that will store the result
  @return The result
  @throws IllegalArgumentException If the given tuples do not have
  the same {@link Tuple#getSize() size}