/**
  * Copies element of this type-specific big list into the given big array one-by-one.
  *
  * <p>This is a trivial iterator-based implementation. It is expected that implementations will
  * override this method with a more optimized version.
  *
  * @param from the start index (inclusive).
  * @param a the destination big array.
  * @param offset the offset into the destination big array where to store the first element
  *     copied.
  * @param length the number of elements to be copied.
  */
 public void getElements(final long from, final float a[][], long offset, long length) {
   FloatBigListIterator i = listIterator(from);
   FloatBigArrays.ensureOffsetLength(a, offset, length);
   if (from + length > size64())
     throw new IndexOutOfBoundsException(
         "End index (" + (from + length) + ") is greater than list size (" + size64() + ")");
   while (length-- != 0) FloatBigArrays.set(a, offset++, i.nextFloat());
 }
 public void addElements(final long index, final float a[][]) {
   addElements(index, a, 0, FloatBigArrays.length(a));
 }
 /**
  * Adds elements to this type-specific big list one-by-one.
  *
  * <p>This is a trivial iterator-based implementation. It is expected that implementations will
  * override this method with a more optimized version.
  *
  * @param index the index at which to add elements.
  * @param a the big array containing the elements.
  * @param offset the offset of the first element to add.
  * @param length the number of elements to add.
  */
 public void addElements(long index, final float a[][], long offset, long length) {
   ensureIndex(index);
   FloatBigArrays.ensureOffsetLength(a, offset, length);
   while (length-- != 0) add(index++, FloatBigArrays.get(a, offset++));
 }