diff --git a/include/tag_uint128.h b/include/tag_uint128.h index 258b73c14..481f25f15 100644 --- a/include/tag_uint128.h +++ b/include/tag_uint128.h @@ -10,20 +10,18 @@ struct tag_uint128 { std::uint64_t _data1 = 0; std::uint64_t _data2 = 0; - - bool operator==(const tag_uint128& other) const + + bool operator==(const tag_uint128 &other) const { - return _data1 == other._data1 - && _data2 == other._data2; + return _data1 == other._data1 && _data2 == other._data2; } bool operator==(std::uint64_t other) const { - return _data1 == other - && _data2 == 0; + return _data1 == other && _data2 == 0; } - tag_uint128& operator=(const tag_uint128& other) + tag_uint128 &operator=(const tag_uint128 &other) { _data1 = other._data1; _data2 = other._data2; @@ -31,7 +29,7 @@ struct tag_uint128 return *this; } - tag_uint128& operator=(std::uint64_t other) + tag_uint128 &operator=(std::uint64_t other) { _data1 = other; _data2 = 0; @@ -41,13 +39,14 @@ struct tag_uint128 }; #pragma pack(pop) -} +} // namespace diskann namespace std { // Hash 128 input bits down to 64 bits of output. // This is intended to be a reasonably good hash function. -inline std::uint64_t Hash128to64(const std::uint64_t& low, const std::uint64_t& high) { +inline std::uint64_t Hash128to64(const std::uint64_t &low, const std::uint64_t &high) +{ // Murmur-inspired hashing. const std::uint64_t kMul = 0x9ddfea08eb382d69ULL; std::uint64_t a = (low ^ high) * kMul; @@ -58,13 +57,12 @@ inline std::uint64_t Hash128to64(const std::uint64_t& low, const std::uint64_t& return b; } -template<> -struct hash +template <> struct hash { - _NODISCARD size_t operator()(const diskann::tag_uint128& key) const noexcept + _NODISCARD size_t operator()(const diskann::tag_uint128 &key) const noexcept { return Hash128to64(key._data1, key._data2); // map -0 to 0 } }; -} \ No newline at end of file +} // namespace std \ No newline at end of file diff --git a/include/utils.h b/include/utils.h index 67cca9644..28ef47ddb 100644 --- a/include/utils.h +++ b/include/utils.h @@ -1008,7 +1008,6 @@ void block_convert(std::ofstream &writr, std::ifstream &readr, float *read_buf, DISKANN_DLLEXPORT void normalize_data_file(const std::string &inFileName, const std::string &outFileName); - inline std::string get_tag_string(std::uint64_t tag) { return std::to_string(tag); diff --git a/src/index.cpp b/src/index.cpp index 4a109f484..9dc1093b4 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -2023,10 +2023,10 @@ std::pair Index::_search_with_filters(const float *distances) { auto converted_label = this->get_converted_label(raw_label); - - if (typeid(TagT*) == indices.type()) + + if (typeid(TagT *) == indices.type()) { - auto ptr = std::any_cast(indices); + auto ptr = std::any_cast(indices); return this->search_with_filters(std::any_cast(query), converted_label, K, L, ptr, distances); } else @@ -3374,11 +3374,11 @@ template DISKANN_DLLEXPORT std::pair Index Index::search( - const float* query, const size_t K, const uint32_t L, tag_uint128* indices, float* distances); + const float *query, const size_t K, const uint32_t L, tag_uint128 *indices, float *distances); template DISKANN_DLLEXPORT std::pair Index::search( - const uint8_t* query, const size_t K, const uint32_t L, tag_uint128* indices, float* distances); + const uint8_t *query, const size_t K, const uint32_t L, tag_uint128 *indices, float *distances); template DISKANN_DLLEXPORT std::pair Index::search( - const int8_t* query, const size_t K, const uint32_t L, tag_uint128* indices, float* distances); + const int8_t *query, const size_t K, const uint32_t L, tag_uint128 *indices, float *distances); template DISKANN_DLLEXPORT std::pair Index::search_with_filters< uint64_t>(const float *query, const uint32_t &filter_label, const size_t K, const uint32_t L, uint64_t *indices, @@ -3410,14 +3410,14 @@ template DISKANN_DLLEXPORT std::pair Index Index::search_with_filters< - tag_uint128>(const float* query, const uint32_t& filter_label, const size_t K, const uint32_t L, tag_uint128* indices, - float* distances); + tag_uint128>(const float *query, const uint32_t &filter_label, const size_t K, const uint32_t L, + tag_uint128 *indices, float *distances); template DISKANN_DLLEXPORT std::pair Index::search_with_filters< - tag_uint128>(const uint8_t* query, const uint32_t& filter_label, const size_t K, const uint32_t L, tag_uint128* indices, - float* distances); + tag_uint128>(const uint8_t *query, const uint32_t &filter_label, const size_t K, const uint32_t L, + tag_uint128 *indices, float *distances); template DISKANN_DLLEXPORT std::pair Index::search_with_filters< - tag_uint128>(const int8_t* query, const uint32_t& filter_label, const size_t K, const uint32_t L, tag_uint128* indices, - float* distances); + tag_uint128>(const int8_t *query, const uint32_t &filter_label, const size_t K, const uint32_t L, + tag_uint128 *indices, float *distances); template DISKANN_DLLEXPORT std::pair Index::search( const float *query, const size_t K, const uint32_t L, uint64_t *indices, float *distances); @@ -3440,11 +3440,11 @@ template DISKANN_DLLEXPORT std::pair Index Index::search( - const float* query, const size_t K, const uint32_t L, tag_uint128* indices, float* distances); + const float *query, const size_t K, const uint32_t L, tag_uint128 *indices, float *distances); template DISKANN_DLLEXPORT std::pair Index::search( - const uint8_t* query, const size_t K, const uint32_t L, tag_uint128* indices, float* distances); + const uint8_t *query, const size_t K, const uint32_t L, tag_uint128 *indices, float *distances); template DISKANN_DLLEXPORT std::pair Index::search( - const int8_t* query, const size_t K, const uint32_t L, tag_uint128* indices, float* distances); + const int8_t *query, const size_t K, const uint32_t L, tag_uint128 *indices, float *distances); template DISKANN_DLLEXPORT std::pair Index::search_with_filters< uint64_t>(const float *query, const uint16_t &filter_label, const size_t K, const uint32_t L, uint64_t *indices, @@ -3476,13 +3476,13 @@ template DISKANN_DLLEXPORT std::pair Index Index::search_with_filters< - tag_uint128>(const float* query, const uint16_t& filter_label, const size_t K, const uint32_t L, tag_uint128* indices, - float* distances); + tag_uint128>(const float *query, const uint16_t &filter_label, const size_t K, const uint32_t L, + tag_uint128 *indices, float *distances); template DISKANN_DLLEXPORT std::pair Index::search_with_filters< - tag_uint128>(const uint8_t* query, const uint16_t& filter_label, const size_t K, const uint32_t L, tag_uint128* indices, - float* distances); + tag_uint128>(const uint8_t *query, const uint16_t &filter_label, const size_t K, const uint32_t L, + tag_uint128 *indices, float *distances); template DISKANN_DLLEXPORT std::pair Index::search_with_filters< - tag_uint128>(const int8_t* query, const uint16_t& filter_label, const size_t K, const uint32_t L, tag_uint128* indices, - float* distances); + tag_uint128>(const int8_t *query, const uint16_t &filter_label, const size_t K, const uint32_t L, + tag_uint128 *indices, float *distances); } // namespace diskann