public boolean isParityCorrect(byte[][] shards,int firstByte,int byteCount,byte[] tempBuffer){
  checkBuffersAndSizes(shards,firstByte,byteCount);
  if (tempBuffer.length < firstByte + byteCount) {
    throw new IllegalArgumentException("tempBuffer is not big enough");
  }
  byte[][] toCheck=new byte[parityShardCount][];
  System.arraycopy(shards,dataShardCount,toCheck,0,parityShardCount);
  return codingLoop.checkSomeShards(parityRows,shards,dataShardCount,toCheck,parityShardCount,firstByte,byteCount,tempBuffer);
}

public boolean isParityCorrect ( byte [ ] [ ] shards , int firstByte , int byteCount , byte [ ] tempBuffer ) { checkBuffersAndSizes ( shards , firstByte , byteCount ) ; if ( tempBuffer . length < firstByte + byteCount ) { throw new IllegalArgumentException ( "tempBuffer is not big enough" ) ; } byte [ ] [ ] toCheck = new byte [ parityShardCount ] [ ] ; System . arraycopy ( shards , dataShardCount , toCheck , 0 , parityShardCount ) ; return codingLoop . checkSomeShards ( parityRows , shards , dataShardCount , toCheck , parityShardCount , firstByte , byteCount , tempBuffer ) ; }
returns true if the parity shards contain the right data . this method may be significantly faster than the one above that does not use a temporary buffer .
