code: public static MutableLongArrayND wrap(
          MutableLongTuple t, IntTuple size)
      {
          Objects.requireNonNull(t, "The tuple is null");
          Objects.requireNonNull(size, "The size is null");
          int totalSize = IntTupleFunctions.reduce(size, 1, (a, b) -> a * b);
          if (t.getSize() != totalSize)
          {
              throw new IllegalArgumentException(
                  "The tuple has a size of " + t.getSize() + ", the expected " + 
                  "array size is " + size + " (total: " + totalSize + ")");
          }
          return new MutableTupleLongArrayND(t, size);
      }
docs: Creates a <i>view</i> on the given tuple as a {@link LongArrayND}.
  Changes in the given tuple will be visible in the returned array,
  and vice versa.
  
  @param t The tuple
  @param size The size of the array
  @return The view on the tuple
  @throws NullPointerException If any argument is <code>null</code>
  @throws IllegalArgumentException If the
  {@link LongTuple#getSize() size} of the tuple does not match the
  given array size (that is, the product of all elements of the given
  tuple).