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

#include <VectorTransform.h>

Inheritance diagram for faiss::IndexPreTransform:
faiss::Index

Public Member Functions

 IndexPreTransform (Index *index)
 ! whether pointers are deleted in destructor
 
 IndexPreTransform (VectorTransform *ltrans, Index *index)
 ltrans is the last transform before the index
 
void prepend_transform (VectorTransform *ltrans)
 
void train (idx_t n, const float *x) override
 
void add (idx_t n, const float *x) override
 
void add_with_ids (idx_t n, const float *x, const long *xids) override
 
void reset () override
 removes all elements from the database.
 
long remove_ids (const IDSelector &sel) override
 
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 reconstruct_n (idx_t i0, idx_t ni, float *recons) const override
 
void search_and_reconstruct (idx_t n, const float *x, idx_t k, float *distances, idx_t *labels, float *recons) const override
 
const float * apply_chain (idx_t n, const float *x) const
 
void reverse_chain (idx_t n, const float *xt, float *x) const
 
- Public Member Functions inherited from faiss::Index
 Index (idx_t d=0, MetricType metric=METRIC_L2)
 
void assign (idx_t n, const float *x, idx_t *labels, idx_t k=1)
 
void compute_residual (const float *x, float *residual, idx_t key) const
 
void display () const
 

Public Attributes

std::vector< VectorTransform * > chain
 
Indexindex
 ! chain of tranforms
 
bool own_fields
 ! the sub-index
 
- 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
using idx_t = long
 all indices are this type
 
using component_t = float
 
using distance_t = float
 

Detailed Description

Index that applies a LinearTransform transform on vectors before handing them over to a sub-index

Definition at line 271 of file VectorTransform.h.

Member Function Documentation

void IndexPreTransform::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.

Definition at line 993 of file VectorTransform.cpp.

void IndexPreTransform::add_with_ids ( idx_t  n,
const float *  x,
const long *  xids 
)
overridevirtual

Same as add, but stores xids instead of sequential ids.

The default implementation fails with an assertion, as it is not supported by all indexes.

Parameters
xidsif non-null, ids to store for the vectors (size n)

Reimplemented from faiss::Index.

Definition at line 1002 of file VectorTransform.cpp.

const float * IndexPreTransform::apply_chain ( idx_t  n,
const float *  x 
) const

apply the transforms in the chain. The returned float * may be equal to x, otherwise it should be deallocated.

Definition at line 964 of file VectorTransform.cpp.

void IndexPreTransform::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 1024 of file VectorTransform.cpp.

void IndexPreTransform::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 1047 of file VectorTransform.cpp.

void IndexPreTransform::reconstruct_n ( idx_t  i0,
idx_t  ni,
float *  recons 
) const
overridevirtual

Reconstruct vectors i0 to i0 + ni - 1

this function may not be defined for some indexes

Parameters
reconsreconstucted vector (size ni * d)

Reimplemented from faiss::Index.

Definition at line 1059 of file VectorTransform.cpp.

long IndexPreTransform::remove_ids ( const IDSelector sel)
overridevirtual

removes IDs from the index. Not supported by all indexes.

Reimplemented from faiss::Index.

Definition at line 1040 of file VectorTransform.cpp.

void IndexPreTransform::reverse_chain ( idx_t  n,
const float *  xt,
float *  x 
) const

Reverse the transforms in the chain. May not be implemented for all transforms in the chain or may return approximate results.

Definition at line 979 of file VectorTransform.cpp.

void IndexPreTransform::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.

Definition at line 1015 of file VectorTransform.cpp.

void IndexPreTransform::search_and_reconstruct ( idx_t  n,
const float *  x,
idx_t  k,
float *  distances,
idx_t labels,
float *  recons 
) const
overridevirtual

Similar to search, but also reconstructs the stored vectors (or an approximation in the case of lossy coding) for the search results.

If there are not enough results for a query, the resulting arrays is padded with -1s.

Parameters
reconsreconstructed vectors size (n, k, d)

Reimplemented from faiss::Index.

Definition at line 1071 of file VectorTransform.cpp.

void IndexPreTransform::train ( idx_t  n,
const float *  x 
)
overridevirtual

Perform training on a representative set of vectors

Parameters
nnb of training vectors
xtraining vecors, size n * d

Reimplemented from faiss::Index.

Definition at line 906 of file VectorTransform.cpp.


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