public long get(int index) {final int blockOffset = index / valuesPerBlock;final long skip = ((long) blockOffset) << 3;try {in.seek(startPointer + skip);long block = in.readLong();final int offsetInBlock = index % valuesPerBlock;return (block >>> (offsetInBlock * bitsPerValue)) & mask;} catch (IOException e) {throw new IllegalStateException("failed", e);}}
public override long Get(int index){int blockOffset = index / valuesPerBlock;long skip = ((long)blockOffset) << 3;try{@in.Seek(startPointer + skip);long block = @in.ReadInt64();int offsetInBlock = index % valuesPerBlock;return ((long)((ulong)block >> (offsetInBlock * m_bitsPerValue))) & mask;}catch (System.IO.IOException e){throw new InvalidOperationException("failed", e);}}