#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.
1.8.5