ext/hnswlib/src/bruteforce.h in hnswlib-0.1.1 vs ext/hnswlib/src/bruteforce.h in hnswlib-0.2.0
- old
+ new
@@ -6,10 +6,11 @@
namespace hnswlib {
template<typename dist_t>
class BruteforceSearch : public AlgorithmInterface<dist_t> {
public:
+ BruteforceSearch() : data_(nullptr) { }
BruteforceSearch(SpaceInterface <dist_t> *s) {
}
BruteforceSearch(SpaceInterface<dist_t> *s, const std::string &location) {
loadIndex(location, s);
@@ -89,16 +90,16 @@
std::priority_queue<std::pair<dist_t, labeltype >>
searchKnn(const void *query_data, size_t k) const {
std::priority_queue<std::pair<dist_t, labeltype >> topResults;
if (cur_element_count == 0) return topResults;
- for (int i = 0; i < k; i++) {
+ for (size_t i = 0; i < k; i++) {
dist_t dist = fstdistfunc_(query_data, data_ + size_per_element_ * i, dist_func_param_);
topResults.push(std::pair<dist_t, labeltype>(dist, *((labeltype *) (data_ + size_per_element_ * i +
data_size_))));
}
dist_t lastdist = topResults.top().first;
- for (int i = k; i < cur_element_count; i++) {
+ for (size_t i = k; i < cur_element_count; i++) {
dist_t dist = fstdistfunc_(query_data, data_ + size_per_element_ * i, dist_func_param_);
if (dist <= lastdist) {
topResults.push(std::pair<dist_t, labeltype>(dist, *((labeltype *) (data_ + size_per_element_ * i +
data_size_))));
if (topResults.size() > k)