cachePositionsLength = new long[ two2h + 1 ];
cachePointer = new OutputBitStream[ two2h ];
cachePointerByte = new FastByteArrayOutputStream[ two2h ];
for ( int i = 0; i < two2h; i++ )
cachePointer[ i ] = new OutputBitStream( cachePointerByte[ i ] = new FastByteArrayOutputStream(), 0 );
cacheSkip = new OutputBitStream[ two2h ];
cacheSkipBitCount = new OutputBitStream[ two2h ];
cacheSkipByte = new FastByteArrayOutputStream[ two2h ];
for ( int i = 0; i < two2h; i++ ) {
cacheSkip[ i ] = new OutputBitStream( cacheSkipByte[ i ] = new FastByteArrayOutputStream(), 0 );
cacheSkipBitCount[ i ] = new OutputBitStream( NullOutputStream.getInstance(), 0 );
}
skipPointer = new int[ two2h + 1 ];
distance = new long[ two2h + 1 ];