45 METRIC_INNER_PRODUCT = 0,
52 struct RangeSearchResult;
62 std::string index_typename;
77 index_typename (
"Undefined Index typename"),
103 virtual void add (
idx_t n,
const float *x) = 0;
124 float *distances,
idx_t *labels)
const = 0;
148 virtual void reset() = 0;
189 return index_typename; }
191 virtual void set_typename () = 0 ;
virtual void reset()=0
removes all elements from the database.
void assign(idx_t n, const float *x, idx_t *labels, idx_t k=1)
virtual void add_with_ids(idx_t n, const float *x, const long *xids)
virtual void reconstruct_n(idx_t i0, idx_t ni, float *recons) const
virtual void add(idx_t n, const float *x)=0
long idx_t
all indices are this type
idx_t ntotal
total nb of indexed vectors
virtual std::string get_typename() const
bool verbose
verbosity level
virtual long remove_ids(const IDSelector &sel)
virtual void search(idx_t n, const float *x, idx_t k, float *distances, idx_t *labels) const =0
MetricType metric_type
type of metric this index uses for search
virtual void range_search(idx_t n, const float *x, float radius, RangeSearchResult *result) const
bool is_trained
set if the Index does not require training, or if training is done already
void compute_residual(const float *x, float *residual, idx_t key) const
virtual void reconstruct(idx_t key, float *recons) const
virtual void train(idx_t n, const float *x)
MetricType
Some algorithms support both an inner product vetsion and a L2 search version.