c_nCuckooProbesetSize = cfg.getSizeT("CuckooProbesetSize", c_nCuckooProbesetSize );
c_nCuckooProbesetThreshold = cfg.getSizeT("CuckooProbesetThreshold", c_nCuckooProbesetThreshold );
+ c_nMultiLevelSet_HeadBits = cfg.getSizeT("MultiLevelMapHeadBits", c_nMultiLevelSet_HeadBits);
+ c_nMultiLevelSet_ArrayBits = cfg.getSizeT("MultiLevelMapArrayBits", c_nMultiLevelSet_ArrayBits);
+
if ( c_nInsertThreadCount == 0 )
c_nInsertThreadCount = std::thread::hardware_concurrency();
if ( c_nDeleteThreadCount == 0 )
size_t c_nCuckooProbesetSize = 16; // CuckooSet probeset size (only for list-based probeset)
size_t c_nCuckooProbesetThreshold = 0; // CUckooSet probeset threshold (0 - use default)
+ size_t c_nMultiLevelSet_HeadBits = 10;
+ size_t c_nMultiLevelSet_ArrayBits = 4;
+
size_t c_nLoadFactor = 2;
private:
c_nCuckooProbesetSize = cfg.getSizeT("CuckooProbesetSize", c_nCuckooProbesetSize );
c_nCuckooProbesetThreshold = cfg.getSizeT("CuckooProbesetThreshold", c_nCuckooProbesetThreshold );
+ c_nMultiLevelSet_HeadBits = cfg.getSizeT("MultiLevelMapHeadBits", c_nMultiLevelSet_HeadBits);
+ c_nMultiLevelSet_ArrayBits = cfg.getSizeT("MultiLevelMapArrayBits", c_nMultiLevelSet_ArrayBits);
+
if ( c_nInsertThreadCount == 0 )
c_nInsertThreadCount = std::thread::hardware_concurrency();
if ( c_nDeleteThreadCount == 0 )
size_t c_nCuckooProbesetSize = 16; // CuckooSet probeset size (only for list-based probeset)
size_t c_nCuckooProbesetThreshold = 0; // CUckooSet probeset threshold (0 - use default)
+ size_t c_nMultiLevelSet_HeadBits = 10;
+ size_t c_nMultiLevelSet_ArrayBits = 4;
+
size_t c_nLoadFactor = 2;
private:
c_nCuckooProbesetSize = cfg.getSizeT("CuckooProbesetSize", c_nCuckooProbesetSize );
c_nCuckooProbesetThreshold = cfg.getSizeT("CuckooProbesetThreshold", c_nCuckooProbesetThreshold );
+ c_nMultiLevelSet_HeadBits = cfg.getSizeT("MultiLevelMapHeadBits", c_nMultiLevelSet_HeadBits);
+ c_nMultiLevelSet_ArrayBits = cfg.getSizeT("MultiLevelMapArrayBits", c_nMultiLevelSet_ArrayBits);
+
if ( c_nThreadCount == 0 )
c_nThreadCount = std::thread::hardware_concurrency();
size_t c_nCuckooProbesetSize = 16; // CuckooSet probeset size (only for list-based probeset)
size_t c_nCuckooProbesetThreshold = 0; // CUckooSet probeset threshold (0 - use default)
+ size_t c_nMultiLevelSet_HeadBits = 10;
+ size_t c_nMultiLevelSet_ArrayBits = 4;
+
size_t c_nLoadFactor = 2;
public:
template <class Config>
MultiLevelHashSet( Config const& cfg )
- : base_class( cfg.c_nSetSize, cfg.c_nLoadFactor )
+ : base_class( cfg.c_nMultiLevelSet_HeadBits, cfg.c_nMultiLevelSet_ArrayBits )
{}
template <typename Q>