Example #1
0
 private void EnsureCapacity(long value)
 {
     if ((value & CurrentMask) == value)
     {
         return;
     }
     int bitsRequired = value < 0 ? 64 : PackedInts.BitsRequired(value);
     Debug.Assert(bitsRequired > Current.BitsPerValue);
     int valueCount = Size();
     PackedInts.Mutable next = PackedInts.GetMutable(valueCount, bitsRequired, AcceptableOverheadRatio);
     PackedInts.Copy(Current, 0, next, 0, valueCount, PackedInts.DEFAULT_BUFFER_SIZE);
     Current = next;
     CurrentMask = Mask(Current.BitsPerValue);
 }
Example #2
0
 /// <param name="startBitsPerValue">       the initial number of bits per value, may grow depending on the data </param>
 /// <param name="valueCount">              the number of values </param>
 /// <param name="acceptableOverheadRatio"> an acceptable overhead ratio </param>
 public GrowableWriter(int startBitsPerValue, int valueCount, float acceptableOverheadRatio)
 {
     this.AcceptableOverheadRatio = acceptableOverheadRatio;
     Current = PackedInts.GetMutable(valueCount, startBitsPerValue, this.AcceptableOverheadRatio);
     CurrentMask = Mask(Current.BitsPerValue);
 }