Faiss

- Main Page
- Namespaces
- Classes
- Files

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

All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
Public Types | Public Member Functions | Public Attributes | List of all members
faiss::IndexBinary Struct Referenceabstract

`#include <IndexBinary.h>`

Inheritance diagram for faiss::IndexBinary:

## Public Types
typedef long | idx_t
| all indices are this type

## Public Member Functions
| IndexBinary (idx_t d=0, MetricType metric=METRIC_L2)
virtual void | train (idx_t n, const uint8_t *x)
virtual void | add (idx_t n, const uint8_t *x)=0
virtual void | add_with_ids (idx_t n, const uint8_t *x, const long *xids)
virtual void | search (idx_t n, const uint8_t *x, idx_t k, int32_t *distances, idx_t *labels) const =0
virtual void | range_search (idx_t n, const uint8_t *x, int radius, RangeSearchResult *result) const
void | assign (idx_t n, const uint8_t *x, idx_t *labels, idx_t k=1)
virtual void | reset ()=0
| Removes all elements from the database.
virtual long | remove_ids (const IDSelector &sel)
virtual void | reconstruct (idx_t key, uint8_t *recons) const
virtual void | reconstruct_n (idx_t i0, idx_t ni, uint8_t *recons) const
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
void | display () const

## Public Attributes
int | d
| vector dimension
int | code_size
| number of bytes per vector ( = d / 8 )
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

## Detailed Description

Abstract structure for a binary index.

Supports adding vertices and searching them.

All queries are symmetric because there is no distinction between codes and vectors.

Definition at line 37 of file IndexBinary.h.

## Member Function Documentation

virtual void faiss::IndexBinary::add | ( | idx_t | n,
|  | const uint8_t * | x
| ) |  |
| pure virtual

Add n vectors of dimension d to the index.

Vectors are implicitly assigned labels ntotal .. ntotal + n - 1

Parameters

  x | input matrix, size n * d / 8

Implemented in faiss::IndexBinaryIVF, faiss::gpu::GpuIndexBinaryFlat, faiss::IndexBinaryHNSW, faiss::IndexBinaryFromFloat, and faiss::IndexBinaryFlat.

void faiss::IndexBinary::add_with_ids | ( | idx_t | n,
|  | const uint8_t * | x,
|  | const long * | xids
| ) |  |
| 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 in faiss::IndexBinaryIVF.

Definition at line 35 of file IndexBinary.cpp.

void faiss::IndexBinary::assign | ( | idx_t | n,
|  | const uint8_t * | x,
|  | idx_t * | labels,
|  | idx_t | k = `1`
| ) |  |

Return the indexes of the k vectors closest to the query x.

This function is identical to search but only returns labels of neighbors.

Parameters

  x | input vectors to search, size n * d / 8
  labels | output labels of the NNs, size n*k

Definition at line 29 of file IndexBinary.cpp.

void faiss::IndexBinary::display | ( |  | ) | const

Display the actual class name and some more info.

Definition at line 73 of file IndexBinary.cpp.

void faiss::IndexBinary::range_search | ( | idx_t | n,
|  | const uint8_t * | x,
|  | int | radius,
|  | RangeSearchResult * | result
| ) |  | const
| 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 / 8
  radius | search radius
  result | result table

Definition at line 24 of file IndexBinary.cpp.

void faiss::IndexBinary::reconstruct | ( | idx_t | key,
|  | uint8_t * | recons
| ) |  | const
| virtual

Reconstruct a stored vector.

This function may not be defined for some indexes.

Parameters

  key | id of the vector to reconstruct
  recons | reconstucted vector (size d / 8)

Reimplemented in faiss::IndexBinaryIVF, faiss::gpu::GpuIndexBinaryFlat, faiss::IndexBinaryHNSW, and faiss::IndexBinaryFlat.

Definition at line 44 of file IndexBinary.cpp.

void faiss::IndexBinary::reconstruct_n | ( | idx_t | i0,
|  | idx_t | ni,
|  | uint8_t * | recons
| ) |  | const
| virtual

Reconstruct vectors i0 to i0 + ni - 1.

This function may not be defined for some indexes.

Parameters

  recons | reconstucted vectors (size ni * d / 8)

Reimplemented in faiss::IndexBinaryIVF.

Definition at line 48 of file IndexBinary.cpp.

long faiss::IndexBinary::remove_ids | ( | const IDSelector & | sel | ) |
| virtual

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

Reimplemented in faiss::IndexBinaryIVF, and faiss::IndexBinaryFlat.

Definition at line 39 of file IndexBinary.cpp.

virtual void faiss::IndexBinary::search | ( | idx_t | n,
|  | const uint8_t * | x,
|  | idx_t | k,
|  | int32_t * | distances,
|  | idx_t * | labels
| ) |  | const
| pure 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 / 8
  labels | output labels of the NNs, size n*k
  distances | output pairwise distances, size n*k

Implemented in faiss::IndexBinaryIVF, faiss::gpu::GpuIndexBinaryFlat, faiss::IndexBinaryHNSW, faiss::IndexBinaryFromFloat, and faiss::IndexBinaryFlat.

void faiss::IndexBinary::search_and_reconstruct | ( | idx_t | n,
|  | const uint8_t * | x,
|  | idx_t | k,
|  | int32_t * | distances,
|  | idx_t * | labels,
|  | uint8_t * | recons
| ) |  | const
| 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 array is padded with -1s.

Parameters

  recons | reconstructed vectors size (n, k, d)

Reimplemented in faiss::IndexBinaryIVF.

Definition at line 54 of file IndexBinary.cpp.

void faiss::IndexBinary::train | ( | idx_t | n,
|  | const uint8_t * | x
| ) |  |
| virtual

Perform training on a representative set of vectors.

Parameters

  n | nb of training vectors
  x | training vecors, size n * d / 8

Reimplemented in faiss::IndexBinaryIVF, faiss::IndexBinaryFromFloat, and faiss::IndexBinaryHNSW.

Definition at line 20 of file IndexBinary.cpp.

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

- /tmp/faiss/IndexBinary.h
- /tmp/faiss/IndexBinary.cpp