code: static private float[][] splitArray(final float[] array, final int blockSize)
  	{
  		int size = array.length / blockSize;
  		float[][] split = new float[size][];
  		for (int i = 0; i < size; i++)
  		{
  			split[i] = subArray(array, i * blockSize, blockSize);
  		}
  		return split;
  	}
docs: Converts a 1D array into a number of smaller arrays. This is used
  to achieve offset + constant indexing into an array. Each sub-array
  represents a block of values of the original array.
  
  @param array
  The array to split up into blocks.
  @param blockSize
  The size of the blocks to split the array
  into. This must be an exact divisor of
  the length of the array, or some data
  will be lost from the main array.
  @return An array of arrays in which each element in the returned
  array will be of length <code>blockSize</code>.