未验证 提交 fed865c7 编写于 作者: G GuoRentong 提交者: GitHub

Values of type 'const size_t' may not fit into the receiver type 'int' (#2109)

Signed-off-by: NGuoRentong <rt.guo@outlook.com>
Co-authored-by: Nguo rentong <grt@guodeMacBook-Pro.local>
上级 4c108c75
......@@ -834,9 +834,9 @@ class AnnoyIndexInterface {
virtual bool load(const char* filename, bool prefault=false, char** error=nullptr) = 0;
virtual bool load_index(void* index_data, const int64_t& index_size, char** error = nullptr) = 0;
virtual T get_distance(S i, S j) const = 0;
virtual void get_nns_by_item(S item, size_t n, int search_k, vector<S>* result, vector<T>* distances,
virtual void get_nns_by_item(S item, size_t n, int64_t search_k, vector<S>* result, vector<T>* distances,
faiss::ConcurrentBitsetPtr& bitset = nullptr) const = 0;
virtual void get_nns_by_vector(const T* w, size_t n, int search_k, vector<S>* result, vector<T>* distances,
virtual void get_nns_by_vector(const T* w, size_t n, int64_t search_k, vector<S>* result, vector<T>* distances,
faiss::ConcurrentBitsetPtr& bitset = nullptr) const = 0;
virtual S get_n_items() const = 0;
virtual S get_dim() const = 0;
......@@ -1172,14 +1172,14 @@ public:
return D::normalized_distance(D::distance(_get(i), _get(j), _f));
}
void get_nns_by_item(S item, size_t n, int search_k, vector<S>* result, vector<T>* distances,
void get_nns_by_item(S item, size_t n, int64_t search_k, vector<S>* result, vector<T>* distances,
faiss::ConcurrentBitsetPtr& bitset) const {
// TODO: handle OOB
const Node* m = _get(item);
_get_all_nns(m->v, n, search_k, result, distances, bitset);
}
void get_nns_by_vector(const T* w, size_t n, int search_k, vector<S>* result, vector<T>* distances,
void get_nns_by_vector(const T* w, size_t n, int64_t search_k, vector<S>* result, vector<T>* distances,
faiss::ConcurrentBitsetPtr& bitset) const {
_get_all_nns(w, n, search_k, result, distances, bitset);
}
......@@ -1327,7 +1327,7 @@ protected:
return item;
}
void _get_all_nns(const T* v, size_t n, int search_k, vector<S>* result, vector<T>* distances,
void _get_all_nns(const T* v, size_t n, int64_t search_k, vector<S>* result, vector<T>* distances,
faiss::ConcurrentBitsetPtr& bitset) const {
Node* v_node = (Node *)alloca(_s);
D::template zero_value<Node>(v_node);
......@@ -1337,7 +1337,7 @@ protected:
std::priority_queue<pair<T, S> > q;
if (search_k <= 0) {
search_k = std::max(n * _roots.size(), (size_t )_n_items * 5 / 100);
search_k = std::max(int64_t(n * _roots.size()), int64_t(_n_items * 5 / 100));
}
for (size_t i = 0; i < _roots.size(); i++) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册