Faiss
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
Public Member Functions | Public Attributes | List of all members
faiss::IndexFlat Struct Reference

#include <IndexFlat.h>

Inheritance diagram for faiss::IndexFlat:
faiss::Index faiss::IndexFlatIP faiss::IndexFlatL2 faiss::IndexFlat1D faiss::IndexFlatL2BaseShift

Public Member Functions

 IndexFlat (idx_t d, MetricType metric=METRIC_INNER_PRODUCT)
 
void add (idx_t n, const float *x) override
 
void reset () override
 removes all elements from the database.
 
void search (idx_t n, const float *x, idx_t k, float *distances, idx_t *labels) const override
 
void range_search (idx_t n, const float *x, float radius, RangeSearchResult *result) const override
 
void reconstruct (idx_t key, float *recons) const override
 
void compute_distance_subset (idx_t n, const float *x, idx_t k, float *distances, const idx_t *labels) const
 
long remove_ids (const IDSelector &sel) override
 
- Public Member Functions inherited from faiss::Index
 Index (idx_t d=0, MetricType metric=METRIC_INNER_PRODUCT)
 
virtual void train (idx_t, const float *)
 
virtual void add_with_ids (idx_t n, const float *x, const long *xids)
 
void assign (idx_t n, const float *x, idx_t *labels, idx_t k=1)
 
virtual void reconstruct_n (idx_t i0, idx_t ni, float *recons) const
 
void compute_residual (const float *x, float *residual, idx_t key) const
 
void display () const
 

Public Attributes

std::vector< float > xb
 database vectors, size ntotal * d
 
- Public Attributes inherited from faiss::Index
int d
 vector dimension
 
idx_t ntotal
 total nb of indexed vectors
 
bool verbose
 verbosity level
 
bool is_trained
 set if the Index does not require training, or if training is done already
 
MetricType metric_type
 type of metric this index uses for search
 

Additional Inherited Members

- Public Types inherited from faiss::Index
typedef long idx_t
 all indices are this type
 

Detailed Description

Index that stores the full vectors and performs exhaustive search

Definition at line 23 of file IndexFlat.h.

Member Function Documentation

void faiss::IndexFlat::add ( idx_t  n,
const float *  x 
)
overridevirtual

Add n vectors of dimension d to the index.

Vectors are implicitly assigned labels ntotal .. ntotal + n - 1 This function slices the input vectors in chuncks smaller than blocksize_add and calls add_core.

Parameters
xinput matrix, size n * d

Implements faiss::Index.

Reimplemented in faiss::IndexFlat1D.

Definition at line 30 of file IndexFlat.cpp.

void faiss::IndexFlat::compute_distance_subset ( idx_t  n,
const float *  x,
idx_t  k,
float *  distances,
const idx_t labels 
) const

compute distance with a subset of vectors

Parameters
xquery vectors, size n * d
labelsindices of the vectors that should be compared for each query vector, size n * k
distancescorresponding output distances, size n * k

Definition at line 73 of file IndexFlat.cpp.

void faiss::IndexFlat::range_search ( idx_t  n,
const float *  x,
float  radius,
RangeSearchResult result 
) const
overridevirtual

query n vectors of dimension d to the index.

return all vectors with distance < radius. Note that many indexes do not implement the range_search (only the k-NN search is mandatory).

Parameters
xinput vectors to search, size n * d
radiussearch radius
resultresult table

Reimplemented from faiss::Index.

Definition at line 58 of file IndexFlat.cpp.

void faiss::IndexFlat::reconstruct ( idx_t  key,
float *  recons 
) const
overridevirtual

Reconstruct a stored vector (or an approximation if lossy coding)

this function may not be defined for some indexes

Parameters
keyid of the vector to reconstruct
reconsreconstucted vector (size d)

Reimplemented from faiss::Index.

Definition at line 118 of file IndexFlat.cpp.

long faiss::IndexFlat::remove_ids ( const IDSelector sel)
overridevirtual

remove some ids. NB that Because of the structure of the indexing structre, the semantics of this operation are different from the usual ones: the new ids are shifted

Reimplemented from faiss::Index.

Definition at line 95 of file IndexFlat.cpp.

void faiss::IndexFlat::search ( idx_t  n,
const float *  x,
idx_t  k,
float *  distances,
idx_t labels 
) const
overridevirtual

query n vectors of dimension d to the index.

return at most k vectors. If there are not enough results for a query, the result array is padded with -1s.

Parameters
xinput vectors to search, size n * d
labelsoutput labels of the NNs, size n*k
distancesoutput pairwise distances, size n*k

Implements faiss::Index.

Reimplemented in faiss::IndexFlat1D, and faiss::IndexFlatL2BaseShift.

Definition at line 42 of file IndexFlat.cpp.


The documentation for this struct was generated from the following files: