code: public static Iterable<MutableLongTuple> clampingIterable(
          LongTuple min, LongTuple max, 
          final Iterable<? extends MutableLongTuple> delegate)
      {
          Objects.requireNonNull(delegate, "The delegate is null");
          LongTuple localMin = LongTuples.copy(min);
          LongTuple localMax = LongTuples.copy(max);
          return () -> LongTupleIterators.clampingIteratorInternal(
              localMin, localMax, delegate.iterator());
      }
docs: Creates an iterable from the given delegate that creates iterators
  that return the {@link MutableLongTuple}s created by the iterators of
  the given delegate that are contained in the given bounds.<br>
  <br>
  <b>Note:</b> The caller is responsible for making sure that
  the tuples returned by the given delegate have the same
  {@link Tuple#getSize()} as the given bounds. This method can
  not check this internally. If the sizes are different, the
  behavior of the returned iterable is unspecified.
  
  @param min The minimum, inclusive. A copy of this tuple will be
  stored internally.
  @param max The maximum, exclusive. A copy of this tuple will be
  stored internally.
  @param delegate The delegate
  @return The iterable