All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
faiss::Index2Layer Struct Reference

`#include <IndexIVFPQ.h>`

Inheritance diagram for faiss::Index2Layer:

## Public Member Functions

| Index2Layer (Index *quantizer, size_t nlist, int M, MetricType metric=METRIC_L2)
void | train (idx_t n, const float *x) override
void | add (idx_t n, const float *x) override
void | search (idx_t n, const float *x, idx_t k, float *distances, idx_t *labels) const override
| not implemented
void | reconstruct_n (idx_t i0, idx_t ni, float *recons) const override
void | reconstruct (idx_t key, float *recons) const override
void | reset () override
| removes all elements from the database.
void | transfer_to_IVFPQ (IndexIVFPQ &other) const
| transfer the flat codes to an IVFPQ index
Public Member Functions inherited from faiss::Index
| Index (idx_t d=0, MetricType metric=METRIC_L2)
virtual void | add_with_ids (idx_t n, const float *x, const long *xids)
virtual void | range_search (idx_t n, const float *x, float radius, RangeSearchResult *result) const
void | assign (idx_t n, const float *x, idx_t *labels, idx_t k=1)
virtual long | remove_ids (const IDSelector &sel)
virtual void | search_and_reconstruct (idx_t n, const float *x, idx_t k, float *distances, idx_t *labels, float *recons) const
void | compute_residual (const float *x, float *residual, idx_t key) const
void | display () const

## Public Attributes

Level1Quantizer | q1
| first level quantizer
ProductQuantizer | pq
| second level quantizer is always a PQ
std::vector< uint8_t > | codes
| Codes. Size ntotal * code_size.
size_t | code_size_1
| size of the code for the first level (ceil(log8(q1.nlist)))
size_t | code_size_2
| size of the code for the second level
size_t | code_size
| code_size_1 + code_size_2
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

Same as an IndexIVFPQ without the inverted lists: codes are stored sequentially

The class is mainly inteded to store encoded vectors that can be accessed randomly, the search function is not implemented.

Definition at line 196 of file IndexIVFPQ.h.

## Member Function Documentation

void faiss::Index2Layer::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 1346 of file IndexIVFPQ.cpp.

void faiss::Index2Layer::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 1447 of file IndexIVFPQ.cpp.

void faiss::Index2Layer::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 1405 of file IndexIVFPQ.cpp.

void faiss::Index2Layer::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 1308 of file IndexIVFPQ.cpp.

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

- /data/users/matthijs/github_faiss/faiss/IndexIVFPQ.h
- /data/users/matthijs/github_faiss/faiss/IndexIVFPQ.cpp