public long get(long index) {assert index >= 0 && index < valueCount;final int block = (int) (index >>> blockShift);final int idx = (int) (index & blockMask);return expected(minValues[block], averages[block], idx) + subReaders[block].get(idx);}
public override long Get(long index){Debug.Assert(index >= 0 && index < valueCount);int block = (int)((long)((ulong)index >> blockShift));int idx = (int)(index & blockMask);return minValues[block] + (long)(float)(idx * averages[block]) + BlockPackedReaderIterator.ZigZagDecode(subReaders[block].Get(idx));}