Minor cleanups + comments

This commit is contained in:
Lauren Budorick 2016-05-24 10:17:24 -04:00 committed by Daniel J. Hofmann
parent 44fdf86702
commit 0c60a2aef8
2 changed files with 13 additions and 4 deletions

View File

@ -2,6 +2,7 @@
#define PACKED_VECTOR_HPP #define PACKED_VECTOR_HPP
#include "util/typedefs.hpp" #include "util/typedefs.hpp"
#include "util/shared_memory_vector_wrapper.hpp"
#include <cmath> #include <cmath>
#include <vector> #include <vector>
@ -15,12 +16,18 @@ const constexpr std::size_t BITSIZE = 33;
const constexpr std::size_t ELEMSIZE = 64; const constexpr std::size_t ELEMSIZE = 64;
const constexpr std::size_t PACKSIZE = BITSIZE * ELEMSIZE; const constexpr std::size_t PACKSIZE = BITSIZE * ELEMSIZE;
std::size_t PackedVectorSize(std::size_t elements) /**
* Returns the size of the packed vector datastructure with `elements` packed elements (the size of its underlying vector)
*/
inline std::size_t PackedVectorSize(std::size_t elements)
{ {
return ceil(float(elements) / ELEMSIZE) * BITSIZE; return ceil(float(elements) / ELEMSIZE) * BITSIZE;
}; };
std::size_t PackedVectorCapacity(std::size_t vec_size) /**
* Returns the capacity of a packed vector with underlying vector size `vec_size`
*/
inline std::size_t PackedVectorCapacity(std::size_t vec_size)
{ {
return floor(float(vec_size) / BITSIZE) * ELEMSIZE; return floor(float(vec_size) / BITSIZE) * ELEMSIZE;
} }
@ -33,11 +40,13 @@ std::size_t PackedVectorCapacity(std::size_t vec_size)
template <bool UseSharedMemory> class PackedVector template <bool UseSharedMemory> class PackedVector
{ {
public: public:
PackedVector() = default; PackedVector() = default;
void push_back(OSMNodeID incoming_node_id) void push_back(OSMNodeID incoming_node_id)
{ {
std::uint64_t node_id = static_cast<std::uint64_t>(incoming_node_id); std::uint64_t node_id = static_cast<std::uint64_t>(incoming_node_id);
// mask incoming values, just in case they are > bitsize // mask incoming values, just in case they are > bitsize
const std::uint64_t incoming_mask = static_cast<std::uint64_t>(pow(2, BITSIZE)) - 1; const std::uint64_t incoming_mask = static_cast<std::uint64_t>(pow(2, BITSIZE)) - 1;
node_id = node_id & incoming_mask; node_id = node_id & incoming_mask;

View File

@ -12,7 +12,7 @@ using namespace osrm::util;
// Verify that the packed vector behaves as expected // Verify that the packed vector behaves as expected
BOOST_AUTO_TEST_CASE(insert_and_retrieve_packed_test) BOOST_AUTO_TEST_CASE(insert_and_retrieve_packed_test)
{ {
PackedVector packed_ids; PackedVector<false> packed_ids;
std::vector<OSMNodeID> original_ids; std::vector<OSMNodeID> original_ids;
const constexpr std::size_t num_test_cases = 399; const constexpr std::size_t num_test_cases = 399;
@ -33,7 +33,7 @@ BOOST_AUTO_TEST_CASE(insert_and_retrieve_packed_test)
BOOST_AUTO_TEST_CASE(packed_vector_capacity_test) BOOST_AUTO_TEST_CASE(packed_vector_capacity_test)
{ {
PackedVector packed_vec; PackedVector<false> packed_vec;
const std::size_t original_size = packed_vec.capacity(); const std::size_t original_size = packed_vec.capacity();
std::vector<OSMNodeID> dummy_vec; std::vector<OSMNodeID> dummy_vec;