#include <IndexIVF.h>
Public Types | |
using | idx_t = Index::idx_t |
Public Member Functions | |
virtual void | set_query (const float *query_vector)=0 |
from now on we handle this query. | |
virtual void | set_list (idx_t list_no, float coarse_dis)=0 |
following codes come from this inverted list | |
virtual float | distance_to_code (const uint8_t *code) const =0 |
compute a single query-to-code distance | |
virtual size_t | scan_codes (size_t n, const uint8_t *codes, const idx_t *ids, float *distances, idx_t *labels, size_t k) const =0 |
virtual void | scan_codes_range (size_t n, const uint8_t *codes, const idx_t *ids, float radius, RangeQueryResult &result) const |
Object that handles a query. The inverted lists to scan are provided externally. The object has a lot of state, but distance_to_code and scan_codes can be called in multiple threads
Definition at line 272 of file IndexIVF.h.
|
pure virtual |
scan a set of codes, compute distances to current query and update heap of results if necessary.
n | number of codes to scan |
codes | codes to scan (n * code_size) |
ids | corresponding ids (ignored if store_pairs) |
distances | heap distances (size k) |
labels | heap labels (size k) |
k | heap size |
|
virtual |
scan a set of codes, compute distances to current query and update results if distances are below radius
(default implementation fails)
Definition at line 830 of file IndexIVF.cpp.