int main() { { MoveToFront<int> move; SHOW(move.enter(4)); SHOW(move.enter(5)); SHOW(move.enter(6)); SHOW(move.enter(4)); SHOW(move.enter(4)); SHOW(move.enter(5)); SHOW(move.enter(4)); } { Encoding<int> enc; enc.add(10, .5f); enc.add(11, .125f); enc.add(12, .125f); enc.add(13, .125f); enc.add(12, .125f); enc.print(); SHOW(enc.huffman_cost()); SHOW(enc.entropy()); SHOW(enc.norm_entropy()); enc.print_top_entries("enc", 2, [](const int& i) { return sform("%d", i); }); } { DeltaEncoding de; de.enter_sign(0); de.enter_bits(3); de.enter_sign(0); de.enter_bits(4); de.enter_sign(1); de.enter_bits(5); de.enter_sign(1); de.enter_bits(4); de.enter_sign(1); de.enter_bits(3); int total_bits = de.analyze("de"); SHOW(total_bits); SHOW(DeltaEncoding::val_bits(13.f)); SHOW(DeltaEncoding::val_bits(3.15f)); SHOW(DeltaEncoding::val_bits(3.1f)); SHOW(DeltaEncoding::val_bits(3.f)); SHOW(DeltaEncoding::val_bits(2.5f)); SHOW(DeltaEncoding::val_bits(2.2f)); SHOW(DeltaEncoding::val_bits(2.0f)); SHOW(DeltaEncoding::val_bits(1.5f)); SHOW(DeltaEncoding::val_bits(1.0f)); SHOW(DeltaEncoding::val_sign(13.3f)); SHOW(DeltaEncoding::val_sign(-13.3f)); SHOW(de.total_entropy()); } }