10 #ifndef FAISS_INDEX_BINARY_H
11 #define FAISS_INDEX_BINARY_H
18 #include "FaissAssert.h"
27 struct RangeSearchResult;
38 using component_t = uint8_t;
39 using distance_t = int32_t;
59 FAISS_THROW_IF_NOT(
d % 8 == 0);
70 virtual void train(idx_t n,
const uint8_t *x);
77 virtual void add(idx_t n,
const uint8_t *x) = 0;
86 virtual void add_with_ids(idx_t n,
const uint8_t *x,
const long *xids);
97 virtual void search(idx_t n,
const uint8_t *x, idx_t k,
98 int32_t *distances, idx_t *labels)
const = 0;
110 virtual void range_search(idx_t n,
const uint8_t *x,
int radius,
119 void assign(idx_t n,
const uint8_t *x, idx_t *labels, idx_t k = 1);
122 virtual void reset() = 0;
134 virtual void reconstruct(idx_t key, uint8_t *recons)
const;
142 virtual void reconstruct_n(idx_t i0, idx_t ni, uint8_t *recons)
const;
153 int32_t *distances, idx_t *labels,
154 uint8_t *recons)
const;
163 #endif // FAISS_INDEX_BINARY_H
virtual void search(idx_t n, const uint8_t *x, idx_t k, int32_t *distances, idx_t *labels) const =0
virtual void reset()=0
Removes all elements from the database.
bool verbose
verbosity level
virtual long remove_ids(const IDSelector &sel)
bool is_trained
set if the Index does not require training, or if training is done already
virtual void train(idx_t n, const uint8_t *x)
int code_size
number of bytes per vector ( = d / 8 )
Index::idx_t idx_t
all indices are this type
long idx_t
all indices are this type
virtual void reconstruct(idx_t key, uint8_t *recons) const
void assign(idx_t n, const uint8_t *x, idx_t *labels, idx_t k=1)
virtual void range_search(idx_t n, const uint8_t *x, int radius, RangeSearchResult *result) const
virtual void add_with_ids(idx_t n, const uint8_t *x, const long *xids)
virtual void search_and_reconstruct(idx_t n, const uint8_t *x, idx_t k, int32_t *distances, idx_t *labels, uint8_t *recons) const
virtual void reconstruct_n(idx_t i0, idx_t ni, uint8_t *recons) const
idx_t ntotal
total nb of indexed vectors
virtual void add(idx_t n, const uint8_t *x)=0
MetricType metric_type
type of metric this index uses for search
MetricType
Some algorithms support both an inner product version and a L2 search version.