Faiss

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

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:

## 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
Index * | index
| ! 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
| ) |  |
| override virtual

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

  x | input 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
| ) |  |
| override virtual

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

  xids | if 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
| override virtual

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

  x | input vectors to search, size n * d
  radius | search radius
  result | result table

Reimplemented from faiss::Index.

Definition at line 1024 of file VectorTransform.cpp.

void IndexPreTransform::reconstruct | ( | idx_t | key,
|  | float * | recons
| ) |  | const
| override virtual

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

this function may not be defined for some indexes

Parameters

  key | id of the vector to reconstruct
  recons | reconstucted 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
| override virtual

Reconstruct vectors i0 to i0 + ni - 1

this function may not be defined for some indexes

Parameters

  recons | reconstucted vector (size ni * d)

Reimplemented from faiss::Index.

Definition at line 1059 of file VectorTransform.cpp.

long IndexPreTransform::remove_ids | ( | const IDSelector & | sel | ) |
| override virtual

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
| override virtual

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

  x | input vectors to search, size n * d
  labels | output labels of the NNs, size n*k
  distances | output 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
| override virtual

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

  recons | reconstructed 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
| ) |  |
| override virtual

Perform training on a representative set of vectors

Parameters

  n | nb of training vectors
  x | training 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:

- /data/users/hoss/faiss/VectorTransform.h
- /data/users/hoss/faiss/VectorTransform.cpp