Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/coding
diff options
context:
space:
mode:
authorMaxim Pimenov <m@maps.me>2018-12-24 17:57:45 +0300
committerVladimir Byko-Ianko <bykoianko@gmail.com>2018-12-26 08:38:51 +0300
commit087b82dbe94377f8a0bc6df3fad2b2e3a20c10c4 (patch)
tree21411061e3fac88d4ef1990fe2af8a8a642e48d8 /coding
parentf66f24b477f3d1b57ff6e1461604cb462300efbd (diff)
[coding] Removed VarintVector.
Diffstat (limited to 'coding')
-rw-r--r--coding/CMakeLists.txt2
-rw-r--r--coding/coding_tests/CMakeLists.txt1
-rw-r--r--coding/coding_tests/varint_vector_test.cpp167
-rw-r--r--coding/varint_vector.cpp210
-rw-r--r--coding/varint_vector.hpp86
5 files changed, 0 insertions, 466 deletions
diff --git a/coding/CMakeLists.txt b/coding/CMakeLists.txt
index 8ed056315a..b9252bd381 100644
--- a/coding/CMakeLists.txt
+++ b/coding/CMakeLists.txt
@@ -87,8 +87,6 @@ set(
var_record_reader.hpp
var_serial_vector.hpp
varint.hpp
-# varint_vector.cpp
-# varint_vector.hpp
write_to_sink.hpp
writer.hpp
zip_creator.cpp
diff --git a/coding/coding_tests/CMakeLists.txt b/coding/coding_tests/CMakeLists.txt
index 729c46b0fa..aea1919d31 100644
--- a/coding/coding_tests/CMakeLists.txt
+++ b/coding/coding_tests/CMakeLists.txt
@@ -40,7 +40,6 @@ set(
var_record_reader_test.cpp
var_serial_vector_test.cpp
varint_test.cpp
- #varint_vector_test.cpp
writer_test.cpp
zip_creator_test.cpp
zip_reader_test.cpp
diff --git a/coding/coding_tests/varint_vector_test.cpp b/coding/coding_tests/varint_vector_test.cpp
deleted file mode 100644
index be0aa896df..0000000000
--- a/coding/coding_tests/varint_vector_test.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-#include "testing/testing.hpp"
-
-/*
-#include "coding/reader.hpp"
-#include "coding/varint_vector.hpp"
-#include "coding/writer.hpp"
-
-#include "std/random.hpp"
-
-using namespace varint;
-
-
-UNIT_TEST(VarintVector_Use)
-{
- vector<uint8_t> buffer;
- MemWriter<vector<uint8_t>> writer(buffer);
-
- vector<uint64_t> g_nums;
- vector<uint64_t> g_nums_sums;
-
- uint32_t const c_nums_count = 12345;
- uint32_t const c_index_tests_count = 50000;
- uint32_t const c_sum_tests_count = 20000;
-
- mt19937 rng(0);
-
- // Generate vector.
- {
- uint64_t sum = 0;
- VectorBuilder builder;
- for (uint32_t i = 0; i < c_nums_count; ++i)
- {
- g_nums_sums.push_back(sum);
- uint8_t const byte_size = rng() % 6 + 1;
- uint64_t const num = rng() & ((uint64_t(1) << (byte_size * 7)) - 1);
-
- g_nums.push_back(num);
- builder.AddNum(num);
- sum += num;
- }
-
- TEST_EQUAL(g_nums.size(), c_nums_count, ());
- TEST_EQUAL(g_nums_sums.size(), c_nums_count, ());
-
- builder.Finalize(&writer);
- }
-
- MemReader reader(buffer.data(), buffer.size());
-
- // Test sequential access by index.
- {
- Vector v(&reader);
- for (uint32_t i = 0; i < c_nums_count; ++i)
- {
- uint32_t serial_pos = 0;
- uint64_t sum_before = 0;
- v.FindByIndex(i, serial_pos, sum_before);
-
- TEST_EQUAL(sum_before, g_nums_sums[i], ());
- uint64_t num = 0;
- v.Read(serial_pos, num);
-
- TEST_EQUAL(g_nums[i], num, ());
- }
- }
-
- // Test random access by index.
- {
- Vector v(&reader);
- for (uint32_t i = 0; i < c_index_tests_count; ++i)
- {
- uint64_t const index = rng() % g_nums.size();
-
- uint32_t serial_pos = 0;
- uint64_t sum_before = 0;
- v.FindByIndex(index, serial_pos, sum_before);
-
- TEST_EQUAL(sum_before, g_nums_sums[index], ());
-
- uint64_t num = 0;
- v.Read(serial_pos, num);
- TEST_EQUAL(g_nums[index], num, ());
- }
- }
-
- // Test sequential access by precise sum.
- {
- Vector v(&reader);
- for (uint32_t i = 0; i < c_nums_count-1; ++i)
- {
- if (g_nums_sums[i] == g_nums_sums[i + 1])
- continue;
-
- uint64_t const sum = g_nums_sums[i];
-
- uint32_t serial_pos = 0;
- uint64_t sum_before = 0;
- uint64_t count_before = 0;
- v.FindBySum(sum, serial_pos, sum_before, count_before);
-
- TEST_EQUAL(count_before, i, ());
- TEST_EQUAL(sum, sum_before, ());
-
- uint64_t num = 0;
- v.Read(serial_pos, num);
- TEST_EQUAL(g_nums[i], num, ());
- }
- }
-
- // Test random access by precise sum.
- {
- Vector v(&reader);
- for (uint32_t i = 0; i < c_sum_tests_count; ++i)
- {
- uint64_t index = rng() % (g_nums_sums.size() - 2);
- while (g_nums_sums[index] == g_nums_sums[index + 1])
- {
- ++index;
- TEST_LESS(index+1, g_nums.size(), ());
- }
-
- uint64_t const sum = g_nums_sums[index];
-
- uint32_t serial_pos = 0;
- uint64_t sum_before = 0;
- uint64_t count_before = 0;
- v.FindBySum(sum, serial_pos, sum_before, count_before);
-
- TEST_EQUAL(count_before, index, ());
- TEST_EQUAL(sum, sum_before, ());
-
- uint64_t num = 0;
- v.Read(serial_pos, num);
- TEST_EQUAL(g_nums[index], num, ());
- }
- }
-
- // Test random access by intermediate sum.
- {
- Vector v(&reader);
- for (uint32_t i = 0; i < c_sum_tests_count; ++i)
- {
- uint64_t index = rng() % (g_nums_sums.size() - 2);
- while (g_nums_sums[index] + 1 >= g_nums_sums[index + 1])
- {
- ++index;
- TEST_LESS(index+1, g_nums_sums.size(), ());
- }
-
- uint64_t const sum = (g_nums_sums[index] + g_nums_sums[index + 1]) / 2;
-
- uint32_t serial_pos = 0;
- uint64_t sum_before = 0;
- uint64_t count_before = 0;
- v.FindBySum(sum, serial_pos, sum_before, count_before);
-
- TEST_EQUAL(count_before, index, ());
- TEST_GREATER(sum, sum_before, ());
- TEST_LESS(sum, g_nums_sums[index + 1], ());
-
- uint64_t num = 0;
- v.Read(serial_pos, num);
- TEST_EQUAL(g_nums[index], num, ());
- }
- }
-}
-*/
diff --git a/coding/varint_vector.cpp b/coding/varint_vector.cpp
deleted file mode 100644
index 60fbe5584c..0000000000
--- a/coding/varint_vector.cpp
+++ /dev/null
@@ -1,210 +0,0 @@
-#include "coding/varint_vector.hpp"
-
-/*
-#include "coding/writer.hpp"
-#include "coding/reader.hpp"
-
-#include "base/assert.hpp"
-
-
-namespace varint
-{
-
-namespace
-{
- void VarintEncode(vector<uint8_t> & dst, uint64_t n)
- {
- if (n == 0)
- {
- dst.push_back(0);
- }
- else
- {
- while (n != 0)
- {
- uint8_t b = n & 0x7F;
- n >>= 7;
- b |= (n == 0) ? 0 : 0x80;
- dst.push_back(b);
- }
- }
- }
-
- uint64_t VarintDecode(Reader * reader, uint64_t & offset)
- {
- uint64_t n = 0;
- int shift = 0;
- while (1)
- {
- uint8_t b = 0;
- reader->Read(offset, &b, 1);
- n |= uint64_t(b & 0x7F) << shift;
- ++offset;
- if ((b & 0x80) == 0)
- break;
- shift += 7;
- }
- return n;
- }
-}
-
-VectorBuilder::VectorBuilder(uint64_t numElemPerTableEntry)
- : m_numElemPerTableEntry(numElemPerTableEntry), m_numsCount(0), m_sum(0)
-{
-}
-
-void VectorBuilder::AddNum(uint64_t num)
-{
- if (m_numsCount % m_numElemPerTableEntry == 0)
- {
- TableEntry tableEntry;
- tableEntry.pos = m_serialNums.size();
- tableEntry.sum = m_sum;
- m_selectTable.push_back(tableEntry);
- }
- VarintEncode(m_serialNums, num);
- ++m_numsCount;
- m_sum += num;
-}
-
-void VectorBuilder::Finalize(Writer * writer)
-{
- vector<uint8_t> header;
- VarintEncode(header, m_numsCount);
- VarintEncode(header, m_numElemPerTableEntry);
- VarintEncode(header, m_selectTable.size());
- VarintEncode(header, m_serialNums.size());
-
- writer->Write(header.data(), header.size());
- writer->Write(m_selectTable.data(), m_selectTable.size() * sizeof(m_selectTable.front()));
- writer->Write(m_serialNums.data(), m_serialNums.size());
-}
-
-
-void VectorBuilderDelayedLast::AddLast()
-{
- if (m_hasLast)
- {
- BaseT::AddNum(m_last);
- m_hasLast = false;
- }
-}
-
-void VectorBuilderDelayedLast::AddNum(uint64_t num)
-{
- AddLast();
-
- m_last = num;
- m_hasLast = true;
-}
-
-void VectorBuilderDelayedLast::ReplaceLast(uint64_t num)
-{
- ASSERT(m_hasLast, ());
- m_last = num;
-}
-
-void VectorBuilderDelayedLast::Finalize(Writer * writer)
-{
- AddLast();
-
- BaseT::Finalize(writer);
-}
-
-
-Vector::Vector(Reader * reader)
- : m_reader(reader), m_numsCount(0), m_numElemPerTableEntry(0), m_numTableEntries(0),
- m_serialNumsSize(0), m_selectTableOffset(0), m_serialNumsOffset(0)
-{
- uint64_t parseOffset = 0;
- m_numsCount = VarintDecode(m_reader, parseOffset);
- m_numElemPerTableEntry = VarintDecode(m_reader, parseOffset);
- m_numTableEntries = VarintDecode(m_reader, parseOffset);
- m_serialNumsSize = VarintDecode(m_reader, parseOffset);
- m_selectTableOffset = parseOffset;
- m_serialNumsOffset = m_selectTableOffset + sizeof(TableEntry) * m_numTableEntries;
-}
-
-void Vector::FindByIndex(uint64_t index, uint32_t & serialPos, uint64_t & sumBefore)
-{
- ASSERT_LESS(index, m_numsCount, ());
- uint64_t tableEntryIndex = index / m_numElemPerTableEntry;
-
- ASSERT_LESS(tableEntryIndex, m_numTableEntries, ());
-
- uint64_t tableEntryOffset = m_selectTableOffset + tableEntryIndex * sizeof(TableEntry);
- uint64_t indexWithinRange = index % m_numElemPerTableEntry;
-
- TableEntry tableEntry;
- m_reader->Read(tableEntryOffset, &tableEntry, sizeof(TableEntry));
-
- uint64_t sum = tableEntry.sum;
- uint64_t numOffset = m_serialNumsOffset + tableEntry.pos;
- for (uint64_t i = 0; i < indexWithinRange; ++i)
- {
- uint64_t num = VarintDecode(m_reader, numOffset);
- sum += num;
- }
- serialPos = numOffset - m_serialNumsOffset;
- sumBefore = sum;
-}
-
-void Vector::FindBySum(uint64_t sum, uint32_t & serialPos, uint64_t & sumBefore, uint64_t & countBefore)
-{
- // First do binary search over select table to find the biggest
- // sum that is less or equal to our.
- uint64_t l = 0, r = m_numTableEntries;
- uint64_t countBinarySearchCycles = 0;
- while (r - l > 1)
- {
- ++countBinarySearchCycles;
-
- uint64_t m = (l + r) / 2;
- uint64_t tableEntryOffset = m_selectTableOffset + m * sizeof(TableEntry);
-
- TableEntry tableEntry;
- m_reader->Read(tableEntryOffset, &tableEntry, sizeof(TableEntry));
- if (sum >= tableEntry.sum)
- l = m;
- else
- r = m;
- }
-
- uint64_t tableEntryIndex = l;
- countBefore = tableEntryIndex * m_numElemPerTableEntry;
-
- uint64_t tableEntryOffset = m_selectTableOffset + tableEntryIndex * sizeof(TableEntry);
- TableEntry tableEntry;
- m_reader->Read(tableEntryOffset, &tableEntry, sizeof(TableEntry));
-
- uint64_t numsSum = tableEntry.sum;
- // At this point nums_sum <= sum.
- uint64_t numOffset = m_serialNumsOffset + tableEntry.pos;
- while (numsSum <= sum && countBefore < m_numsCount)
- {
- uint64_t nextOffset = numOffset;
- uint64_t num = VarintDecode(m_reader, nextOffset);
-
- if (numsSum + num > sum)
- break;
-
- numOffset = nextOffset;
- numsSum += num;
- ++countBefore;
- }
-
- serialPos = numOffset - m_serialNumsOffset;
- sumBefore = numsSum;
-}
-
-void Vector::Read(uint32_t & serialPos, uint64_t & num)
-{
- ASSERT_LESS(serialPos, m_serialNumsSize, ());
-
- uint64_t numOffset = m_serialNumsOffset + serialPos;
- num = VarintDecode(m_reader, numOffset);
- serialPos = numOffset - m_serialNumsOffset;
-}
-
-}
-*/
diff --git a/coding/varint_vector.hpp b/coding/varint_vector.hpp
deleted file mode 100644
index e84460e32d..0000000000
--- a/coding/varint_vector.hpp
+++ /dev/null
@@ -1,86 +0,0 @@
-#pragma once
-
-/*
-#include "base/base.hpp"
-
-#include "std/vector.hpp"
-
-
-class Writer;
-class Reader;
-
-namespace varint
-{
-
-#pragma pack(push, 1)
-struct TableEntry
-{
- uint32_t pos;
- uint64_t sum;
-};
-#pragma pack(pop)
-
-
-class VectorBuilder
-{
-protected:
- // Implicit expectation: total compressed size should be within 4GB.
- static uint64_t const DEF_NUM_ELEMENTS_PER_TABLE_ENTRY = 1024;
-
-public:
- VectorBuilder(uint64_t numElemPerTableEntry = DEF_NUM_ELEMENTS_PER_TABLE_ENTRY);
-
- void AddNum(uint64_t num);
- void Finalize(Writer * writer);
-
-protected:
- uint64_t m_numElemPerTableEntry;
- uint64_t m_numsCount;
- uint64_t m_sum;
- vector<TableEntry> m_selectTable;
- vector<uint8_t> m_serialNums;
-};
-
-class VectorBuilderDelayedLast : public VectorBuilder
-{
- typedef VectorBuilder BaseT;
- uint64_t m_last;
- bool m_hasLast;
-
- void AddLast();
-public:
- VectorBuilderDelayedLast(uint64_t numElemPerTableEntry = DEF_NUM_ELEMENTS_PER_TABLE_ENTRY)
- : BaseT(numElemPerTableEntry), m_hasLast(false)
- {
- }
-
- void AddNum(uint64_t num);
- void ReplaceLast(uint64_t num);
- void Finalize(Writer * writer);
-
- bool HasLast() const { return m_hasLast; }
- uint64_t GetLast() const { return m_last; }
- uint64_t GetNumsCount() const { return m_numsCount + (m_hasLast ? 1 : 0); }
-};
-
-class Vector
-{
-public:
- Vector(Reader * reader);
-
- void FindByIndex(uint64_t countBefore, uint32_t & serialPos, uint64_t & sumBefore);
- void FindBySum(uint64_t sum, uint32_t & serialPos, uint64_t & sumBefore, uint64_t & countBefore);
- void Read(uint32_t & serialPos, uint64_t & num);
-
-private:
- Reader * m_reader;
- uint64_t m_numsCount;
- uint64_t m_numElemPerTableEntry;
- uint64_t m_numTableEntries;
- uint64_t m_serialNumsSize;
- uint64_t m_selectTableOffset;
- uint64_t m_serialNumsOffset;
-};
-
-}
-*/