public NumericDocValuesAnonymousInnerClassHelper3(MemoryDocValuesProducer outerInstance, long min, long mult,
     BlockPackedReader quotientReader)
 {
     this.min = min;
     this.mult = mult;
     this.quotientReader = quotientReader;
 }
 private NumericDocValues LoadNumeric(FieldInfo field)
 {
     NumericEntry entry = numerics[field.Number];
     data.Seek(entry.offset + entry.missingBytes);
     switch (entry.format)
     {
         case TABLE_COMPRESSED:
             int size = data.ReadVInt();
             if (size > 256)
             {
                 throw new CorruptIndexException(
                     "TABLE_COMPRESSED cannot have more than 256 distinct values, input=" + data);
             }
             var decode = new long[size];
             for (int i = 0; i < decode.Length; i++)
             {
                 decode[i] = data.ReadLong();
             }
             int formatID = data.ReadVInt();
             int bitsPerValue = data.ReadVInt();
             var ordsReader = PackedInts.GetReaderNoHeader(data, PackedInts.Format.ById(formatID),
                 entry.packedIntsVersion, maxDoc, bitsPerValue);
             ramBytesUsed.AddAndGet(RamUsageEstimator.SizeOf(decode) + ordsReader.RamBytesUsed());
             return new NumericDocValuesAnonymousInnerClassHelper(this, decode, ordsReader);
         case DELTA_COMPRESSED:
             int blockSize = data.ReadVInt();
             var reader = new BlockPackedReader(data, entry.packedIntsVersion, blockSize, maxDoc,
                 false);
             ramBytesUsed.AddAndGet(reader.RamBytesUsed());
             return reader;
         case UNCOMPRESSED:
             var bytes = new byte[maxDoc];
             data.ReadBytes(bytes, 0, bytes.Length);
             ramBytesUsed.AddAndGet(RamUsageEstimator.SizeOf(bytes));
             return new NumericDocValuesAnonymousInnerClassHelper2(this, bytes);
         case GCD_COMPRESSED:
             long min = data.ReadLong();
             long mult = data.ReadLong();
             int quotientBlockSize = data.ReadVInt();
             var quotientReader = new BlockPackedReader(data, entry.packedIntsVersion,
                 quotientBlockSize, maxDoc, false);
             ramBytesUsed.AddAndGet(quotientReader.RamBytesUsed());
             return new NumericDocValuesAnonymousInnerClassHelper3(this, min, mult, quotientReader);
         default:
             throw new InvalidOperationException();
     }
 }