public void Encode() { VariantLengthInteger.WriteBuffer(buffer, (uint)this.orderedValues.Count()); uint lastNeighbor = 0; foreach (uint x in this.orderedValues) { uint delta = x - lastNeighbor; VariantLengthInteger.WriteBuffer(buffer, delta); lastNeighbor = x; } }
public void Decode() { int index = 0; uint count = VariantLengthInteger.ReadUIntFromBuffer(this.buffer, ref index); List <uint> res = new List <uint>(); uint prefixSum = 0; for (uint i = 0; i < count; ++i) { uint delta = VariantLengthInteger.ReadUIntFromBuffer(buffer, ref index); prefixSum += delta; res.Add(prefixSum); } }