Commit d8eeceb8 authored by matthijs's avatar matthijs

sync with FB version 2017-09-08

fix index_cpu_to_gpu_multiple

fix PCA dimension
parent 3986a8db
This diff is collapsed.
......@@ -54,6 +54,9 @@ struct IndexIVF: Index {
std::vector < std::vector<long> > ids; ///< Inverted lists for indexes
size_t code_size; ///< code size per vector in bytes
std::vector < std::vector<uint8_t> > codes; // binary codes, size nlist
/// map for direct access to the elements. Enables reconstruct().
bool maintain_direct_map;
std::vector <long> direct_map;
......@@ -78,13 +81,52 @@ struct IndexIVF: Index {
/// does nothing by default
virtual void train_residual (idx_t n, const float *x);
/** search a set of vectors, that are pre-quantized by the IVF
* quantizer. Fill in the corresponding heaps with the query
* results. search() calls this.
*
* @param n nb of vectors to query
* @param x query vectors, size nx * d
* @param assign coarse quantization indices, size nx * nprobe
* @param centroid_dis
* distances to coarse centroids, size nx * nprobe
* @param distance
* output distances, size n * k
* @param labels output labels, size n * k
* @param store_pairs store inv list index + inv list offset
* instead in upper/lower 32 bit of result,
* instead of ids (used for reranking).
*/
virtual void search_preassigned (idx_t n, const float *x, idx_t k,
const idx_t *assign,
const float *centroid_dis,
float *distances, idx_t *labels,
bool store_pairs) const = 0;
/** assign the vectors, then call search_preassign */
virtual void search (idx_t n, const float *x, idx_t k,
float *distances, idx_t *labels) const override;
/// Dataset manipulation functions
long remove_ids(const IDSelector& sel) override;
/** moves the entries from another dataset to self. On output,
* other is empty. add_id is added to all moved ids (for
* sequential ids, this would be this->ntotal */
virtual void merge_from (IndexIVF &other, idx_t add_id);
/** implemented by sub-classes */
virtual void merge_from_residuals (IndexIVF &other) = 0;
/** copy a subset of the entries index to the other index
*
* if subset_type == 0: copies ids in [a1, a2)
* if subset_type == 1: copies ids if id % a1 == a2
* if subset_type == 2: copies inverted lists such that a1
* elements are left before and a2 elements are after
*/
virtual void copy_subset_to (IndexIVF & other, int subset_type,
long a1, long a2) const;
~IndexIVF() override;
......@@ -127,12 +169,9 @@ extern IndexIVFFlatStats indexIVFFlat_stats;
/** Inverted file with stored vectors. Here the inverted file
* pre-selects the vectors to be searched, but they are not otherwise
* encoded.
* encoded, the code array just contains the raw float entries.
*/
struct IndexIVFFlat: IndexIVF {
/** Inverted list of original vectors. Each list is a nl * d
* matrix, where nl is the nb of vectors stored in the list. */
std::vector < std::vector<float> > vecs;
IndexIVFFlat (
Index * quantizer, size_t d, size_t nlist_,
......@@ -145,17 +184,11 @@ struct IndexIVFFlat: IndexIVF {
/// implemented for all IndexIVF* classes
void add_with_ids(idx_t n, const float* x, const long* xids) override;
void search(
idx_t n,
const float* x,
idx_t k,
float* distances,
idx_t* labels) const override;
/// perform search, without computing the assignment to the quantizer
void search_preassigned (idx_t n, const float *x, idx_t k,
const idx_t *assign,
float *distances, idx_t *labels) const;
const float *centroid_dis,
float *distances, idx_t *labels,
bool store_pairs) const override;
void range_search(
idx_t n,
......@@ -163,30 +196,6 @@ struct IndexIVFFlat: IndexIVF {
float radius,
RangeSearchResult* result) const override;
/** copy a subset of the entries index to the other index
*
* if subset_type == 0: copies ids in [a1, a2)
* if subset_type == 1: copies ids if id % a1 == a2
*/
void copy_subset_to (IndexIVFFlat & other, int subset_type,
long a1, long a2) const;
void reset() override;
long remove_ids(const IDSelector& sel) override;
/// Implementation of the search for the inner product metric
void search_knn_inner_product (
size_t nx, const float * x,
const long * keys,
float_minheap_array_t * res) const;
/// Implementation of the search for the L2 metric
void search_knn_L2sqr (
size_t nx, const float * x,
const long * keys,
float_maxheap_array_t * res) const;
/** Update a subset of vectors.
*
* The index must have a direct_map
......@@ -199,37 +208,9 @@ struct IndexIVFFlat: IndexIVF {
void reconstruct(idx_t key, float* recons) const override;
void merge_from_residuals(IndexIVF& other) override;
IndexIVFFlat () {}
};
struct IndexIVFFlatIPBounds: IndexIVFFlat {
/// nb of dimensions of pre-filter
size_t fsize;
/// norm of remainder (dimensions fsize:d)
std::vector<std::vector<float> > part_norms;
IndexIVFFlatIPBounds (
Index * quantizer, size_t d, size_t nlist,
size_t fsize);
void add_core(
idx_t n,
const float* x,
const long* xids,
const long* precomputed_idx) override;
void search(
idx_t n,
const float* x,
idx_t k,
float* distances,
idx_t* labels) const override;
};
} // namespace faiss
......
......@@ -50,7 +50,6 @@ IndexIVFPQ::IndexIVFPQ (Index * quantizer, size_t d, size_t nlist,
FAISS_THROW_IF_NOT (nbits_per_idx <= 8);
code_size = pq.code_size;
is_trained = false;
codes.resize (nlist);
by_residual = true;
use_precomputed_table = 0;
scan_table_threshold = 0;
......@@ -102,6 +101,8 @@ void IndexIVFPQ::train_residual_o (idx_t n, const float *x, float *residuals_2)
pq.train (n, trainset);
if (do_polysemous_training) {
if (verbose)
printf("doing polysemous training for PQ\n");
PolysemousTraining default_pt;
PolysemousTraining *pt = polysemous_training;
if (!pt) pt = &default_pt;
......@@ -319,42 +320,6 @@ void IndexIVFPQ::reconstruct (idx_t key, float * recons) const
void IndexIVFPQ::merge_from_residuals (IndexIVF &other_in)
{
IndexIVFPQ &other = dynamic_cast<IndexIVFPQ &> (other_in);
for (int i = 0; i < nlist; i++) {
codes[i].insert (codes[i].end(),
other.codes[i].begin(), other.codes[i].end());
other.codes[i].clear();
}
}
void IndexIVFPQ::copy_subset_to (IndexIVFPQ & other, int subset_type,
long a1, long a2) const
{
FAISS_THROW_IF_NOT (nlist == other.nlist);
FAISS_THROW_IF_NOT (!other.maintain_direct_map);
size_t code_size = pq.code_size;
for (long list_no = 0; list_no < nlist; list_no++) {
const std::vector<idx_t> & ids_in = ids[list_no];
std::vector<idx_t> & ids_out = other.ids[list_no];
const std::vector<uint8_t> & codes_in = codes[list_no];
std::vector<uint8_t> & codes_out = other.codes[list_no];
for (long i = 0; i < ids_in.size(); i++) {
idx_t id = ids_in[i];
if (subset_type == 0 && a1 <= id && id < a2) {
ids_out.push_back (id);
codes_out.insert (codes_out.end(),
codes_in.begin() + i * code_size,
codes_in.begin() + (i + 1) * code_size);
other.ntotal++;
}
}
}
}
......@@ -390,12 +355,10 @@ void IndexIVFPQ::copy_subset_to (IndexIVFPQ & other, int subset_type,
void IndexIVFPQ::precompute_table ()
{
if (use_precomputed_table == 0) { // then choose the type of table
if (quantizer->metric_type == METRIC_INNER_PRODUCT) {
fprintf(stderr, "IndexIVFPQ::precompute_table: WARN precomputed "
"tables not supported for inner product quantizers\n");
"tables not needed for inner product quantizers\n");
return;
}
const MultiIndexQuantizer *miq =
......@@ -406,6 +369,10 @@ void IndexIVFPQ::precompute_table ()
use_precomputed_table = 1;
} // otherwise assume user has set appropriate flag on input
if (verbose) {
printf ("precomputing IVFPQ tables type %d\n",
use_precomputed_table);
}
// squared norms of the PQ centroids
std::vector<float> r_norms (pq.M * pq.ksub, NAN);
......@@ -960,15 +927,17 @@ void IndexIVFPQStats::reset () {
}
void IndexIVFPQ::search_knn_with_key (
size_t nx,
const float * qx,
const long * keys,
const float * coarse_dis,
float_maxheap_array_t * res,
void IndexIVFPQ::search_preassigned (idx_t nx, const float *qx, idx_t k,
const idx_t *keys,
const float *coarse_dis,
float *distances, idx_t *labels,
bool store_pairs) const
{
const size_t k = res->k;
float_maxheap_array_t res = {
size_t(nx), size_t(k),
labels, distances
};
#pragma omp parallel
{
......@@ -984,8 +953,8 @@ void IndexIVFPQ::search_knn_with_key (
const float *qi = qx + i * d;
const long * keysi = keys + i * nprobe;
const float *coarse_dis_i = coarse_dis + i * nprobe;
float * heap_sim = res->get_val (i);
long * heap_ids = res->get_ids (i);
float * heap_sim = res.get_val (i);
long * heap_ids = res.get_ids (i);
uint64_t t0;
TIC;
......@@ -1004,10 +973,11 @@ void IndexIVFPQ::search_knn_with_key (
// not enough centroids for multiprobe
continue;
}
if (key >= (long) nlist) {
fprintf (stderr, "Invalid key=%ld nlist=%ld\n", key, nlist);
throw;
}
FAISS_THROW_IF_NOT_FMT (
key < (long) nlist,
"Invalid key=%ld at ik=%ld nlist=%ld\n",
key, ik, nlist);
size_t list_size = ids[key].size();
stats_nlist ++;
nscan += list_size;
......@@ -1059,65 +1029,6 @@ void IndexIVFPQ::search_knn_with_key (
}
void IndexIVFPQ::search (idx_t n, const float *x, idx_t k,
float *distances, idx_t *labels) const
{
long * idx = new long [n * nprobe];
ScopeDeleter<long> del (idx);
float * coarse_dis = new float [n * nprobe];
ScopeDeleter<float> del2 (coarse_dis);
uint64_t t0;
TIC;
quantizer->search (n, x, nprobe, coarse_dis, idx);
indexIVFPQ_stats.assign_cycles += TOC;
TIC;
float_maxheap_array_t res = { size_t(n), size_t(k), labels, distances};
search_knn_with_key (n, x, idx, coarse_dis, &res);
indexIVFPQ_stats.search_cycles += TOC;
}
void IndexIVFPQ::reset()
{
IndexIVF::reset();
for (size_t key = 0; key < nlist; key++) {
codes[key].clear();
}
}
long IndexIVFPQ::remove_ids (const IDSelector & sel)
{
FAISS_THROW_IF_NOT_MSG (!maintain_direct_map,
"direct map remove not implemented");
long nremove = 0;
#pragma omp parallel for reduction(+: nremove)
for (long i = 0; i < nlist; i++) {
std::vector<idx_t> & idsi = ids[i];
uint8_t * codesi = codes[i].data();
long l = idsi.size(), j = 0;
while (j < l) {
if (sel.is_member (idsi[j])) {
l--;
idsi [j] = idsi [l];
memmove (codesi + j * code_size,
codesi + l * code_size, code_size);
} else {
j++;
}
}
if (l < idsi.size()) {
nremove += idsi.size() - l;
idsi.resize (l);
codes[i].resize (l * code_size);
}
}
ntotal -= nremove;
return nremove;
}
IndexIVFPQ::IndexIVFPQ ()
......@@ -1275,9 +1186,9 @@ void IndexIVFPQR::search (
float *coarse_distances = new float [k_coarse * n];
ScopeDeleter<float> del(coarse_distances);
faiss::float_maxheap_array_t res_coarse = {
size_t(n), k_coarse, coarse_labels, coarse_distances};
search_knn_with_key (n, x, idx, L1_dis, &res_coarse, true);
search_preassigned (n, x, k_coarse,
idx, L1_dis, coarse_distances, coarse_labels,
true);
}
......@@ -1359,13 +1270,19 @@ void IndexIVFPQR::reconstruct_n (idx_t i0, idx_t ni, float *recons) const
}
void IndexIVFPQR::merge_from_residuals (IndexIVF &other_in)
void IndexIVFPQR::merge_from (IndexIVF &other_in, idx_t add_id)
{
IndexIVFPQR &other = dynamic_cast<IndexIVFPQR &> (other_in);
IndexIVFPQ::merge_from_residuals (other);
IndexIVFPQR *other = dynamic_cast<IndexIVFPQR *> (&other_in);
FAISS_THROW_IF_NOT(other);
IndexIVF::merge_from (other_in, add_id);
refine_codes.insert (refine_codes.end(),
other.refine_codes.begin(), other.refine_codes.end());
other.refine_codes.clear();
other->refine_codes.begin(),
other->refine_codes.end());
other->refine_codes.clear();
}
long IndexIVFPQR::remove_ids(const IDSelector& /*sel*/) {
......@@ -1479,15 +1396,18 @@ IndexIVFPQCompact::~IndexIVFPQCompact ()
}
void IndexIVFPQCompact::search_knn_with_key (
size_t nx,
const float * qx,
const long * keys,
const float * coarse_dis,
float_maxheap_array_t * res,
void IndexIVFPQCompact::search_preassigned (idx_t nx, const float *qx, idx_t k,
const idx_t *keys,
const float *coarse_dis,
float *distances, idx_t *labels,
bool store_pairs) const
{
const size_t k = res->k;
float_maxheap_array_t res = {
size_t(nx), size_t(k),
labels, distances
};
#pragma omp parallel
{
......@@ -1503,8 +1423,8 @@ void IndexIVFPQCompact::search_knn_with_key (
const float *qi = qx + i * d;
const long * keysi = keys + i * nprobe;
const float *coarse_dis_i = coarse_dis + i * nprobe;
float * heap_sim = res->get_val (i);
long * heap_ids = res->get_ids (i);
float * heap_sim = res.get_val (i);
long * heap_ids = res.get_ids (i);
uint64_t t0;
TIC;
......
......@@ -29,7 +29,6 @@ namespace faiss {
struct IndexIVFPQ: IndexIVF {
bool by_residual; ///< Encode residual or plain vector?
int use_precomputed_table; ///< if by_residual, build precompute tables
size_t code_size; ///< code size per vector in bytes
ProductQuantizer pq; ///< produces the codes
bool do_polysemous_training; ///< reorder PQ centroids after training?
......@@ -40,7 +39,6 @@ struct IndexIVFPQ: IndexIVF {
size_t max_codes; ///< max nb of codes to visit to do a query
int polysemous_ht; ///< Hamming thresh for polysemous filtering
std::vector < std::vector<uint8_t> > codes; // binary codes, size nlist
/// if use_precompute_table
/// size nlist * pq.M * pq.ksub
......@@ -60,17 +58,6 @@ struct IndexIVFPQ: IndexIVF {
const long *xids, float *residuals_2,
const long *precomputed_idx = nullptr);
void search(
idx_t n,
const float* x,
idx_t k,
float* distances,
idx_t* labels) const override;
void reset() override;
long remove_ids(const IDSelector& sel) override;
/// trains the product quantizer
void train_residual(idx_t n, const float* x) override;
......@@ -121,49 +108,23 @@ struct IndexIVFPQ: IndexIVF {
void decode_multiple (size_t n, const long *keys,
const uint8_t * xcodes, float * x) const;
/** search a set of vectors, that are pre-quantized by the IVF
* quantizer. Fill in the corresponding heaps with the query
* results.
*
* @param nx nb of vectors to query
* @param qx query vectors, size nx * d
* @param keys coarse quantization indices, size nx * nprobe
* @param coarse_dis
* distances to coarse centroids, size nx * nprobe
* @param res heaps for all the results, gives the nprobe
* @param store_pairs store inv list index + inv list offset
* instead in upper/lower 32 bit of result,
* instead of ids (used for reranking).
*/
virtual void search_knn_with_key (
size_t nx,
const float * qx,
const long * keys,
const float * coarse_dis,
float_maxheap_array_t* res,
bool store_pairs = false) const;
void search_preassigned (idx_t n, const float *x, idx_t k,
const idx_t *assign,
const float *centroid_dis,
float *distances, idx_t *labels,
bool store_pairs) const override;
/// build precomputed table
void precompute_table ();
/// used to implement merging
void merge_from_residuals(IndexIVF& other) override;
/** copy a subset of the entries index to the other index
*
* if subset_type == 0: copies ids in [a1, a2)
* if subset_type == 1: copies ids if id % a1 == a2
*/
void copy_subset_to (IndexIVFPQ & other, int subset_type,
long a1, long a2) const;
IndexIVFPQ ();
};
/// statistics are robust to internal threading, but not if
/// IndexIVFPQ::search is called by multiple threads
/// IndexIVFPQ::search_preassigned is called by multiple threads
struct IndexIVFPQStats {
size_t nq; // nb of queries run
size_t nlist; // nb of inverted lists scanned
......@@ -222,6 +183,9 @@ struct IndexIVFPQR: IndexIVFPQ {
void reconstruct_n(idx_t i0, idx_t ni, float* recons) const override;
void merge_from (IndexIVF &other, idx_t add_id) override;
void search(
idx_t n,
const float* x,
......@@ -229,8 +193,6 @@ struct IndexIVFPQR: IndexIVFPQ {
float* distances,
idx_t* labels) const override;
void merge_from_residuals(IndexIVF& other) override;
IndexIVFPQR();
};
......@@ -261,13 +223,11 @@ struct IndexIVFPQCompact: IndexIVFPQ {
char * mmap_buffer;
long mmap_length;
void search_knn_with_key(
size_t nx,
const float* qx,
const long* keys,
const float* coarse_dis,
float_maxheap_array_t* res,
bool store_pairs = false) const override;
void search_preassigned (idx_t n, const float *x, idx_t k,
const idx_t *assign,
const float *centroid_dis,
float *distances, idx_t *labels,
bool store_pairs) const override;
/// the three following functions will fail at runtime
void add(idx_t, const float*) override;
......
......@@ -814,11 +814,10 @@ IndexIVFScalarQuantizer::IndexIVFScalarQuantizer
{
code_size = sq.code_size;
is_trained = false;
codes.resize(nlist);
}
IndexIVFScalarQuantizer::IndexIVFScalarQuantizer ():
IndexIVF (), code_size (0)
IndexIVF ()
{}
void IndexIVFScalarQuantizer::train_residual (idx_t n, const float *x)
......@@ -885,7 +884,8 @@ void search_with_probes_ip (const IndexIVFScalarQuantizer & index,
const float *x,
const idx_t *cent_ids, const float *cent_dis,
const Quantizer & quant,
int k, float *simi, idx_t *idxi)
int k, float *simi, idx_t *idxi,
bool store_pairs)
{
int nprobe = index.nprobe;
size_t code_size = index.code_size;
......@@ -908,7 +908,8 @@ void search_with_probes_ip (const IndexIVFScalarQuantizer & index,
if (accu > simi [0]) {
minheap_pop (k, simi, idxi);
minheap_push (k, simi, idxi, accu, ids[j]);
long id = store_pairs ? (list_no << 32 | j) : ids[j];
minheap_push (k, simi, idxi, accu, id);
}
codes += code_size;
}
......@@ -922,7 +923,8 @@ void search_with_probes_L2 (const IndexIVFScalarQuantizer & index,
const idx_t *cent_ids,
const Index *quantizer,
const Quantizer & quant,
int k, float *simi, idx_t *idxi)
int k, float *simi, idx_t *idxi,
bool store_pairs)
{
int nprobe = index.nprobe;
size_t code_size = index.code_size;
......@@ -947,7 +949,8 @@ void search_with_probes_L2 (const IndexIVFScalarQuantizer & index,
if (dis < simi [0]) {
maxheap_pop (k, simi, idxi);
maxheap_push (k, simi, idxi, dis, ids[j]);
long id = store_pairs ? (list_no << 32 | j) : ids[j];
maxheap_push (k, simi, idxi, dis, id);
}
codes += code_size;
}
......@@ -955,48 +958,34 @@ void search_with_probes_L2 (const IndexIVFScalarQuantizer & index,
maxheap_reorder (k, simi, idxi);
}
void IndexIVFScalarQuantizer::search (idx_t n, const float *x, idx_t k,
float *distances, idx_t *labels) const
void IndexIVFScalarQuantizer::search_preassigned (
idx_t n, const float *x, idx_t k,
const idx_t *idx,
const float *dis,
float *distances, idx_t *labels,
bool store_pairs) const
{
FAISS_THROW_IF_NOT (is_trained);
idx_t *idx = new idx_t [n * nprobe];
ScopeDeleter<idx_t> del (idx);
float *dis = new float [n * nprobe];
ScopeDeleter<float> del2 (dis);
quantizer->search (n, x, nprobe, dis, idx);
Quantizer *squant = select_quantizer (sq);
ScopeDeleter1<Quantizer> del3(squant);
ScopeDeleter1<Quantizer> del(squant);
if (metric_type == METRIC_INNER_PRODUCT) {
#pragma omp parallel for
for (size_t i = 0; i < n; i++) {
search_with_probes_ip (*this, x + i * d,
idx + i * nprobe, dis + i * nprobe, *squant,
k, distances + i * k, labels + i * k);
k, distances + i * k, labels + i * k,
store_pairs);
}
} else {
#pragma omp parallel for
for (size_t i = 0; i < n; i++) {
search_with_probes_L2 (*this, x + i * d,
idx + i * nprobe, quantizer, *squant,
k, distances + i * k, labels + i * k);
}
k, distances + i * k, labels + i * k,
store_pairs);
}
}
void IndexIVFScalarQuantizer::merge_from_residuals (IndexIVF & other_in) {
IndexIVFScalarQuantizer &other =
dynamic_cast<IndexIVFScalarQuantizer &> (other_in);
for (int i = 0; i < nlist; i++) {
std::vector<uint8_t> & src = other.codes[i];
std::vector<uint8_t> & dest = codes[i];
dest.insert (dest.end(), src.begin (), src.end ());
src.clear ();
}
}
......
......@@ -129,11 +129,6 @@ struct IndexScalarQuantizer: Index {
struct IndexIVFScalarQuantizer:IndexIVF {
ScalarQuantizer sq;
size_t code_size;
/// inverted list codes.
std::vector<std::vector<uint8_t> > codes;
IndexIVFScalarQuantizer(Index *quantizer, size_t d, size_t nlist,
ScalarQuantizer::QuantizerType qtype,
MetricType metric = METRIC_L2);
......@@ -144,14 +139,12 @@ struct IndexIVFScalarQuantizer:IndexIVF {
void add_with_ids(idx_t n, const float* x, const long* xids) override;
void search(
idx_t n,
const float* x,
idx_t k,
float* distances,
idx_t* labels) const override;
void search_preassigned (idx_t n, const float *x, idx_t k,
const idx_t *assign,
const float *centroid_dis,
float *distances, idx_t *labels,
bool store_pairs) const override;
void merge_from_residuals(IndexIVF& other) override;
};
......
......@@ -373,7 +373,7 @@ void PCAMatrix::train (Index::idx_t n, const float *x)
eig (n, gramd.data (), eigenvaluesd.data (), verbose);
PCAMat.resize(d_in * d_in);
PCAMat.resize(d_in * n);
for (size_t i = 0; i < n * n; i++)
gram [i] = gramd [i];
......@@ -393,7 +393,6 @@ void PCAMatrix::train (Index::idx_t n, const float *x)
&one, PCAMat.data(), &di);
}
if(verbose && d_in <= 10) {
float *ci = PCAMat.data();
printf("PCAMat=\n");
......@@ -407,8 +406,6 @@ void PCAMatrix::train (Index::idx_t n, const float *x)
}
prepare_Ab();
is_trained = true;
}
......@@ -427,6 +424,10 @@ void PCAMatrix::prepare_Ab ()
{
if (!random_rotation) {
FAISS_THROW_IF_NOT_MSG (
d_out * d_in <= PCAMat.size(),
"PCA matrix was trained on too few examples "
"to output this number of dimensions");
A = PCAMat;
A.resize(d_out * d_in); // strip off useless dimensions
......
......@@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;}</div>
<div class="ttc" id="structfaiss_1_1IndexFlatL2_html"><div class="ttname"><a href="structfaiss_1_1IndexFlatL2.html">faiss::IndexFlatL2</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexFlat_8h_source.html#l00079">IndexFlat.h:79</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFFlat_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFFlat.html">faiss::IndexIVFFlat</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVF_8h_source.html#l00132">IndexIVF.h:132</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFFlat_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFFlat.html">faiss::IndexIVFFlat</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVF_8h_source.html#l00174">IndexIVF.h:174</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
......
......@@ -925,7 +925,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="structfaiss_1_1ScalarQuantizer_html_a1201dbd1611fa5c10782ade5d0e4952e"><div class="ttname"><a href="structfaiss_1_1ScalarQuantizer.html#a1201dbd1611fa5c10782ade5d0e4952e">faiss::ScalarQuantizer::QuantizerType</a></div><div class="ttdeci">QuantizerType</div><div class="ttdef"><b>Definition:</b> <a href="IndexScalarQuantizer_8h_source.html#l00032">IndexScalarQuantizer.h:32</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexFlat_html"><div class="ttname"><a href="structfaiss_1_1IndexFlat.html">faiss::IndexFlat</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexFlat_8h_source.html#l00023">IndexFlat.h:23</a></div></div>
<div class="ttc" id="structfaiss_1_1OperatingPoint_html_a2c023f1484e4748e3e97681bb1f4b78e"><div class="ttname"><a href="structfaiss_1_1OperatingPoint.html#a2c023f1484e4748e3e97681bb1f4b78e">faiss::OperatingPoint::cno</a></div><div class="ttdeci">long cno</div><div class="ttdoc">integer identifer </div><div class="ttdef"><b>Definition:</b> <a href="AutoTune_8h_source.html#l00090">AutoTune.h:90</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFPQR_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFPQR.html">faiss::IndexIVFPQR</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVFPQ_8h_source.html#l00198">IndexIVFPQ.h:198</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFPQR_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFPQR.html">faiss::IndexIVFPQR</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVFPQ_8h_source.html#l00159">IndexIVFPQ.h:159</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexPQ_html_af616e1f3c7bff7f62c2607b8079da43f"><div class="ttname"><a href="structfaiss_1_1IndexPQ.html#af616e1f3c7bff7f62c2607b8079da43f">faiss::IndexPQ::do_polysemous_training</a></div><div class="ttdeci">bool do_polysemous_training</div><div class="ttdoc">false = standard PQ </div><div class="ttdef"><b>Definition:</b> <a href="IndexPQ_8h_source.html#l00069">IndexPQ.h:69</a></div></div>
<div class="ttc" id="structfaiss_1_1OperatingPoints_html_a1702eeb680ce73ca8c1fd071955f0679"><div class="ttname"><a href="structfaiss_1_1OperatingPoints.html#a1702eeb680ce73ca8c1fd071955f0679">faiss::OperatingPoints::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdef"><b>Definition:</b> <a href="AutoTune_8cpp_source.html#l00102">AutoTune.cpp:102</a></div></div>
<div class="ttc" id="structfaiss_1_1OperatingPoint_html"><div class="ttname"><a href="structfaiss_1_1OperatingPoint.html">faiss::OperatingPoint</a></div><div class="ttdef"><b>Definition:</b> <a href="AutoTune_8h_source.html#l00086">AutoTune.h:86</a></div></div>
......@@ -943,13 +943,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="structfaiss_1_1OperatingPoints_html_a7afabe0576800255eeec680486cb30df"><div class="ttname"><a href="structfaiss_1_1OperatingPoints.html#a7afabe0576800255eeec680486cb30df">faiss::OperatingPoints::add</a></div><div class="ttdeci">bool add(double perf, double t, const std::string &amp;key, size_t cno=0)</div><div class="ttdoc">add a performance measure. Return whether it is an optimal point </div><div class="ttdef"><b>Definition:</b> <a href="AutoTune_8cpp_source.html#l00112">AutoTune.cpp:112</a></div></div>
<div class="ttc" id="structfaiss_1_1OPQMatrix_html"><div class="ttname"><a href="structfaiss_1_1OPQMatrix.html">faiss::OPQMatrix</a></div><div class="ttdef"><b>Definition:</b> <a href="VectorTransform_8h_source.html#l00180">VectorTransform.h:180</a></div></div>
<div class="ttc" id="structfaiss_1_1ScopeDeleter1_html"><div class="ttname"><a href="structfaiss_1_1ScopeDeleter1.html">faiss::ScopeDeleter1</a></div><div class="ttdef"><b>Definition:</b> <a href="FaissException_8h_source.html#l00052">FaissException.h:52</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFPQ_html_a9d5373633df7a9bec4de69400b9adeed"><div class="ttname"><a href="structfaiss_1_1IndexIVFPQ.html#a9d5373633df7a9bec4de69400b9adeed">faiss::IndexIVFPQ::do_polysemous_training</a></div><div class="ttdeci">bool do_polysemous_training</div><div class="ttdoc">reorder PQ centroids after training? </div><div class="ttdef"><b>Definition:</b> <a href="IndexIVFPQ_8h_source.html#l00035">IndexIVFPQ.h:35</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFPQ_html_a9d5373633df7a9bec4de69400b9adeed"><div class="ttname"><a href="structfaiss_1_1IndexIVFPQ.html#a9d5373633df7a9bec4de69400b9adeed">faiss::IndexIVFPQ::do_polysemous_training</a></div><div class="ttdeci">bool do_polysemous_training</div><div class="ttdoc">reorder PQ centroids after training? </div><div class="ttdef"><b>Definition:</b> <a href="IndexIVFPQ_8h_source.html#l00034">IndexIVFPQ.h:34</a></div></div>
<div class="ttc" id="structfaiss_1_1ParameterSpace_html_aee8fd44e15656ba80fe98de4c65ed767"><div class="ttname"><a href="structfaiss_1_1ParameterSpace.html#aee8fd44e15656ba80fe98de4c65ed767">faiss::ParameterSpace::batchsize</a></div><div class="ttdeci">size_t batchsize</div><div class="ttdoc">maximum number of queries to submit at a time. </div><div class="ttdef"><b>Definition:</b> <a href="AutoTune_8h_source.html#l00145">AutoTune.h:145</a></div></div>
<div class="ttc" id="structfaiss_1_1AutoTuneCriterion_html_a9084449e216b331c5f753a10c6de6a47"><div class="ttname"><a href="structfaiss_1_1AutoTuneCriterion.html#a9084449e216b331c5f753a10c6de6a47">faiss::AutoTuneCriterion::evaluate</a></div><div class="ttdeci">virtual double evaluate(const float *D, const idx_t *I) const =0</div></div>
<div class="ttc" id="structfaiss_1_1IndexPreTransform_html"><div class="ttname"><a href="structfaiss_1_1IndexPreTransform.html">faiss::IndexPreTransform</a></div><div class="ttdef"><b>Definition:</b> <a href="VectorTransform_8h_source.html#l00239">VectorTransform.h:239</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIDMap_html"><div class="ttname"><a href="structfaiss_1_1IndexIDMap.html">faiss::IndexIDMap</a></div><div class="ttdef"><b>Definition:</b> <a href="MetaIndexes_8h_source.html#l00026">MetaIndexes.h:26</a></div></div>
<div class="ttc" id="structfaiss_1_1AutoTuneCriterion_html_adcfaafb3f1b3449e2cfd553f0f603a5b"><div class="ttname"><a href="structfaiss_1_1AutoTuneCriterion.html#adcfaafb3f1b3449e2cfd553f0f603a5b">faiss::AutoTuneCriterion::nq</a></div><div class="ttdeci">idx_t nq</div><div class="ttdoc">nb of queries this criterion is evaluated on </div><div class="ttdef"><b>Definition:</b> <a href="AutoTune_8h_source.html#l00028">AutoTune.h:28</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFFlat_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFFlat.html">faiss::IndexIVFFlat</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVF_8h_source.html#l00132">IndexIVF.h:132</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFFlat_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFFlat.html">faiss::IndexIVFFlat</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVF_8h_source.html#l00174">IndexIVF.h:174</a></div></div>
<div class="ttc" id="structfaiss_1_1OperatingPoints_html_a2829e78e01cc42c3a341622947663b31"><div class="ttname"><a href="structfaiss_1_1OperatingPoints.html#a2829e78e01cc42c3a341622947663b31">faiss::OperatingPoints::optimal_pts</a></div><div class="ttdeci">std::vector&lt; OperatingPoint &gt; optimal_pts</div><div class="ttdoc">optimal operating points, sorted by perf </div><div class="ttdef"><b>Definition:</b> <a href="AutoTune_8h_source.html#l00098">AutoTune.h:98</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexFlatIP_html"><div class="ttname"><a href="structfaiss_1_1IndexFlatIP.html">faiss::IndexFlatIP</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexFlat_8h_source.html#l00073">IndexFlat.h:73</a></div></div>
<div class="ttc" id="structfaiss_1_1AutoTuneCriterion_html_a174f0de8e6fd01905f5fa2170f5039d8"><div class="ttname"><a href="structfaiss_1_1AutoTuneCriterion.html#a174f0de8e6fd01905f5fa2170f5039d8">faiss::AutoTuneCriterion::set_groundtruth</a></div><div class="ttdeci">void set_groundtruth(int gt_nnn, const float *gt_D_in, const idx_t *gt_I_in)</div><div class="ttdef"><b>Definition:</b> <a href="AutoTune_8cpp_source.html#l00036">AutoTune.cpp:36</a></div></div>
......
......@@ -244,7 +244,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="structfaiss_1_1gpu_1_1GpuIndexIVFFlatConfig_html_ab98ac354bcd5632976f7edc2deda6e57"><div class="ttname"><a href="structfaiss_1_1gpu_1_1GpuIndexIVFFlatConfig.html#ab98ac354bcd5632976f7edc2deda6e57">faiss::gpu::GpuIndexIVFFlatConfig::useFloat16IVFStorage</a></div><div class="ttdeci">bool useFloat16IVFStorage</div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFFlat_8h_source.html#l00029">GpuIndexIVFFlat.h:29</a></div></div>
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuResources_html"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuResources.html">faiss::gpu::GpuResources</a></div><div class="ttdef"><b>Definition:</b> <a href="GpuResources_8h_source.html#l00023">GpuResources.h:23</a></div></div>
<div class="ttc" id="classfaiss_1_1gpu_1_1CpuTimer_html"><div class="ttname"><a href="classfaiss_1_1gpu_1_1CpuTimer.html">faiss::gpu::CpuTimer</a></div><div class="ttdoc">CPU wallclock elapsed timer. </div><div class="ttdef"><b>Definition:</b> <a href="Timer_8h_source.html#l00042">Timer.h:42</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFFlat_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFFlat.html">faiss::IndexIVFFlat</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVF_8h_source.html#l00132">IndexIVF.h:132</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFFlat_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFFlat.html">faiss::IndexIVFFlat</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVF_8h_source.html#l00174">IndexIVF.h:174</a></div></div>
<div class="ttc" id="structfaiss_1_1gpu_1_1GpuIndexFlatConfig_html_afd694186c87751937a646f3db2c8ba3d"><div class="ttname"><a href="structfaiss_1_1gpu_1_1GpuIndexFlatConfig.html#afd694186c87751937a646f3db2c8ba3d">faiss::gpu::GpuIndexFlatConfig::useFloat16</a></div><div class="ttdeci">bool useFloat16</div><div class="ttdoc">Whether or not data is stored as float16. </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexFlat_8h_source.html#l00035">GpuIndexFlat.h:35</a></div></div>
<div class="ttc" id="structfaiss_1_1gpu_1_1GpuIndexConfig_html_aab05a0aa7b42feae7df4e556a52ead57"><div class="ttname"><a href="structfaiss_1_1gpu_1_1GpuIndexConfig.html#aab05a0aa7b42feae7df4e556a52ead57">faiss::gpu::GpuIndexConfig::device</a></div><div class="ttdeci">int device</div><div class="ttdoc">GPU device on which the index is resident. </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndex_8h_source.html#l00027">GpuIndex.h:27</a></div></div>
<div class="ttc" id="structfaiss_1_1gpu_1_1GpuIndexIVFConfig_html_a6d357a9a67a2fed9c8e7b139712d30f6"><div class="ttname"><a href="structfaiss_1_1gpu_1_1GpuIndexIVFConfig.html#a6d357a9a67a2fed9c8e7b139712d30f6">faiss::gpu::GpuIndexIVFConfig::flatConfig</a></div><div class="ttdeci">GpuIndexFlatConfig flatConfig</div><div class="ttdoc">Configuration for the coarse quantizer object. </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVF_8h_source.html#l00034">GpuIndexIVF.h:34</a></div></div>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -384,7 +384,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVF_html_a94c2c171f9a2d27085dea9101067bdf2"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVF.html#a94c2c171f9a2d27085dea9101067bdf2">faiss::gpu::GpuIndexIVF::copyFrom</a></div><div class="ttdeci">void copyFrom(const faiss::IndexIVF *index)</div><div class="ttdoc">Copy what we need from the CPU equivalent. </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVF_8cu_source.html#l00080">GpuIndexIVF.cu:80</a></div></div>
<div class="ttc" id="structfaiss_1_1Index_html_a6e92732617c4dbe364e7678dd8773a7f"><div class="ttname"><a href="structfaiss_1_1Index.html#a6e92732617c4dbe364e7678dd8773a7f">faiss::Index::is_trained</a></div><div class="ttdeci">bool is_trained</div><div class="ttdoc">set if the Index does not require training, or if training is done already </div><div class="ttdef"><b>Definition:</b> <a href="Index_8h_source.html#l00069">Index.h:69</a></div></div>
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVF_html_ace41857c97a357284acbe4556c9da3da"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVF.html#ace41857c97a357284acbe4556c9da3da">faiss::gpu::GpuIndexIVF::add</a></div><div class="ttdeci">void add(Index::idx_t n, const float *x) override</div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVF_8cu_source.html#l00215">GpuIndexIVF.cu:215</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVF_html_aedd0c14b5654295b291638ec7f9f9517"><div class="ttname"><a href="structfaiss_1_1IndexIVF.html#aedd0c14b5654295b291638ec7f9f9517">faiss::IndexIVF::maintain_direct_map</a></div><div class="ttdeci">bool maintain_direct_map</div><div class="ttdoc">map for direct access to the elements. Enables reconstruct(). </div><div class="ttdef"><b>Definition:</b> <a href="IndexIVF_8h_source.html#l00058">IndexIVF.h:58</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVF_html_aedd0c14b5654295b291638ec7f9f9517"><div class="ttname"><a href="structfaiss_1_1IndexIVF.html#aedd0c14b5654295b291638ec7f9f9517">faiss::IndexIVF::maintain_direct_map</a></div><div class="ttdeci">bool maintain_direct_map</div><div class="ttdoc">map for direct access to the elements. Enables reconstruct(). </div><div class="ttdef"><b>Definition:</b> <a href="IndexIVF_8h_source.html#l00061">IndexIVF.h:61</a></div></div>
<div class="ttc" id="structfaiss_1_1ClusteringParameters_html_ad997fb511f574f7ddc69938c21612f8d"><div class="ttname"><a href="structfaiss_1_1ClusteringParameters.html#ad997fb511f574f7ddc69938c21612f8d">faiss::ClusteringParameters::spherical</a></div><div class="ttdeci">bool spherical</div><div class="ttdoc">do we want normalized centroids? </div><div class="ttdef"><b>Definition:</b> <a href="Clustering_8h_source.html#l00029">Clustering.h:29</a></div></div>
<div class="ttc" id="classfaiss_1_1gpu_1_1GpuIndexIVF_html_a520803e209b44c904b876d6b8dad23c9"><div class="ttname"><a href="classfaiss_1_1gpu_1_1GpuIndexIVF.html#a520803e209b44c904b876d6b8dad23c9">faiss::gpu::GpuIndexIVF::cp</a></div><div class="ttdeci">ClusteringParameters cp</div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVF_8h_source.html#l00082">GpuIndexIVF.h:82</a></div></div>
<div class="ttc" id="namespacefaiss_html_afd12191c638da74760ff397cf319752c"><div class="ttname"><a href="namespacefaiss.html#afd12191c638da74760ff397cf319752c">faiss::MetricType</a></div><div class="ttdeci">MetricType</div><div class="ttdoc">Some algorithms support both an inner product vetsion and a L2 search version. </div><div class="ttdef"><b>Definition:</b> <a href="Index_8h_source.html#l00043">Index.h:43</a></div></div>
......
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
......@@ -642,7 +642,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="classfaiss_1_1gpu_1_1StandardGpuResources_html_a6431477a7328ac147797b3b4e3fcf651"><div class="ttname"><a href="classfaiss_1_1gpu_1_1StandardGpuResources.html#a6431477a7328ac147797b3b4e3fcf651">faiss::gpu::StandardGpuResources::noTempMemory</a></div><div class="ttdeci">void noTempMemory()</div><div class="ttdef"><b>Definition:</b> <a href="StandardGpuResources_8cpp_source.html#l00076">StandardGpuResources.cpp:76</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexFlatL2_html"><div class="ttname"><a href="structfaiss_1_1IndexFlatL2.html">faiss::IndexFlatL2</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexFlat_8h_source.html#l00079">IndexFlat.h:79</a></div></div>
<div class="ttc" id="structfaiss_1_1gpu_1_1GpuIndexIVFFlatConfig_html_ab98ac354bcd5632976f7edc2deda6e57"><div class="ttname"><a href="structfaiss_1_1gpu_1_1GpuIndexIVFFlatConfig.html#ab98ac354bcd5632976f7edc2deda6e57">faiss::gpu::GpuIndexIVFFlatConfig::useFloat16IVFStorage</a></div><div class="ttdeci">bool useFloat16IVFStorage</div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexIVFFlat_8h_source.html#l00029">GpuIndexIVFFlat.h:29</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFFlat_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFFlat.html">faiss::IndexIVFFlat</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVF_8h_source.html#l00132">IndexIVF.h:132</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFFlat_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFFlat.html">faiss::IndexIVFFlat</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVF_8h_source.html#l00174">IndexIVF.h:174</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexFlatIP_html"><div class="ttname"><a href="structfaiss_1_1IndexFlatIP.html">faiss::IndexFlatIP</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexFlat_8h_source.html#l00073">IndexFlat.h:73</a></div></div>
<div class="ttc" id="structfaiss_1_1gpu_1_1GpuIndexFlatConfig_html_afd694186c87751937a646f3db2c8ba3d"><div class="ttname"><a href="structfaiss_1_1gpu_1_1GpuIndexFlatConfig.html#afd694186c87751937a646f3db2c8ba3d">faiss::gpu::GpuIndexFlatConfig::useFloat16</a></div><div class="ttdeci">bool useFloat16</div><div class="ttdoc">Whether or not data is stored as float16. </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndexFlat_8h_source.html#l00035">GpuIndexFlat.h:35</a></div></div>
<div class="ttc" id="structfaiss_1_1gpu_1_1GpuIndexConfig_html_aab05a0aa7b42feae7df4e556a52ead57"><div class="ttname"><a href="structfaiss_1_1gpu_1_1GpuIndexConfig.html#aab05a0aa7b42feae7df4e556a52ead57">faiss::gpu::GpuIndexConfig::device</a></div><div class="ttdeci">int device</div><div class="ttdoc">GPU device on which the index is resident. </div><div class="ttdef"><b>Definition:</b> <a href="GpuIndex_8h_source.html#l00027">GpuIndex.h:27</a></div></div>
......
This diff is collapsed.
This diff is collapsed.
......@@ -193,7 +193,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div>
<div class="ttc" id="structfaiss_1_1IndexFlat_html"><div class="ttname"><a href="structfaiss_1_1IndexFlat.html">faiss::IndexFlat</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexFlat_8h_source.html#l00023">IndexFlat.h:23</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexFlatL2_html"><div class="ttname"><a href="structfaiss_1_1IndexFlatL2.html">faiss::IndexFlatL2</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexFlat_8h_source.html#l00079">IndexFlat.h:79</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFFlat_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFFlat.html">faiss::IndexIVFFlat</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVF_8h_source.html#l00132">IndexIVF.h:132</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFFlat_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFFlat.html">faiss::IndexIVFFlat</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVF_8h_source.html#l00174">IndexIVF.h:174</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexFlatIP_html"><div class="ttname"><a href="structfaiss_1_1IndexFlatIP.html">faiss::IndexFlatIP</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexFlat_8h_source.html#l00073">IndexFlat.h:73</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFPQ_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFPQ.html">faiss::IndexIVFPQ</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVFPQ_8h_source.html#l00029">IndexIVFPQ.h:29</a></div></div>
</div><!-- fragment --></div><!-- contents -->
......
This diff is collapsed.
This diff is collapsed.
......@@ -394,7 +394,7 @@ const MemorySpace&#160;</td><td class="memItemRight" valign="bottom"><a class="e
</div><div class="memdoc">
<p>Copy ourselves to the given CPU index; will overwrite all data in the index instance </p>
<p>Definition at line <a class="el" href="GpuIndexIVFFlat_8cu_source.html#l00126">126</a> of file <a class="el" href="GpuIndexIVFFlat_8cu_source.html">GpuIndexIVFFlat.cu</a>.</p>
<p>Definition at line <a class="el" href="GpuIndexIVFFlat_8cu_source.html#l00127">127</a> of file <a class="el" href="GpuIndexIVFFlat_8cu_source.html">GpuIndexIVFFlat.cu</a>.</p>
</div>
</div>
......@@ -412,7 +412,7 @@ const MemorySpace&#160;</td><td class="memItemRight" valign="bottom"><a class="e
</div><div class="memdoc">
<p>After adding vectors, one can call this to reclaim device memory to exactly the amount needed. Returns space reclaimed in bytes </p>
<p>Definition at line <a class="el" href="GpuIndexIVFFlat_8cu_source.html#l00150">150</a> of file <a class="el" href="GpuIndexIVFFlat_8cu_source.html">GpuIndexIVFFlat.cu</a>.</p>
<p>Definition at line <a class="el" href="GpuIndexIVFFlat_8cu_source.html#l00154">154</a> of file <a class="el" href="GpuIndexIVFFlat_8cu_source.html">GpuIndexIVFFlat.cu</a>.</p>
</div>
</div>
......@@ -458,7 +458,7 @@ const MemorySpace&#160;</td><td class="memItemRight" valign="bottom"><a class="e
<p>Reimplemented from <a class="el" href="structfaiss_1_1Index.html#a1ffe916c958605c38b0b1bfad42485e4">faiss::Index</a>.</p>
<p>Definition at line <a class="el" href="GpuIndexIVFFlat_8cu_source.html#l00173">173</a> of file <a class="el" href="GpuIndexIVFFlat_8cu_source.html">GpuIndexIVFFlat.cu</a>.</p>
<p>Definition at line <a class="el" href="GpuIndexIVFFlat_8cu_source.html#l00177">177</a> of file <a class="el" href="GpuIndexIVFFlat_8cu_source.html">GpuIndexIVFFlat.cu</a>.</p>
</div>
</div>
......
......@@ -240,7 +240,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;}</div>
<div class="ttc" id="structfaiss_1_1IndexIVFFlat_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFFlat.html">faiss::IndexIVFFlat</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVF_8h_source.html#l00132">IndexIVF.h:132</a></div></div>
<div class="ttc" id="structfaiss_1_1IndexIVFFlat_html"><div class="ttname"><a href="structfaiss_1_1IndexIVFFlat.html">faiss::IndexIVFFlat</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexIVF_8h_source.html#l00174">IndexIVF.h:174</a></div></div>
<div class="ttc" id="structfaiss_1_1MultiIndexQuantizer_html"><div class="ttname"><a href="structfaiss_1_1MultiIndexQuantizer.html">faiss::MultiIndexQuantizer</a></div><div class="ttdef"><b>Definition:</b> <a href="IndexPQ_8h_source.html#l00135">IndexPQ.h:135</a></div></div>
<div class="ttc" id="namespacefaiss_html_afd12191c638da74760ff397cf319752c"><div class="ttname"><a href="namespacefaiss.html#afd12191c638da74760ff397cf319752c">faiss::MetricType</a></div><div class="ttdeci">MetricType</div><div class="ttdoc">Some algorithms support both an inner product vetsion and a L2 search version. </div><div class="ttdef"><b>Definition:</b> <a href="Index_8h_source.html#l00043">Index.h:43</a></div></div>
</div><!-- fragment --></div><!-- contents -->
......
......@@ -99,6 +99,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:test__ivfpq__indexing_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>test_ivfpq_indexing.cpp</b> <a href="test__ivfpq__indexing_8cpp_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:test__pairs__decoding_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><b>test_pairs_decoding.cpp</b> <a href="test__pairs__decoding_8cpp_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
......
This diff is collapsed.
......@@ -158,7 +158,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</li>
<li>add_core()
: <a class="el" href="structfaiss_1_1IndexIVFFlat.html#aea729c3d8c70bdd93f8e413e834851a4">faiss::IndexIVFFlat</a>
, <a class="el" href="structfaiss_1_1IndexIVFFlatIPBounds.html#a938285c16dafe294775643b820637444">faiss::IndexIVFFlatIPBounds</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQR.html#a186b746f22b65ddf416b1e821b0866ec">faiss::IndexIVFPQR</a>
</li>
<li>add_core_o()
......@@ -168,26 +167,26 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
: <a class="el" href="structfaiss_1_1ParameterSpace.html#aeaa27a715fe3fceef5da18d894976833">faiss::ParameterSpace</a>
</li>
<li>add_with_ids()
: <a class="el" href="structfaiss_1_1Index.html#aa6931dfe054b33b02c842ff75f7a0c7f">faiss::Index</a>
, <a class="el" href="structfaiss_1_1IndexShards.html#a1f771d50133494f682f05c9ab9e39ad9">faiss::IndexShards</a>
, <a class="el" href="structfaiss_1_1IndexIVFFlat.html#a5f7356766632d3ce2838f285aa6b8e76">faiss::IndexIVFFlat</a>
: <a class="el" href="structfaiss_1_1IndexIVFFlat.html#a5f7356766632d3ce2838f285aa6b8e76">faiss::IndexIVFFlat</a>
, <a class="el" href="structfaiss_1_1IndexPreTransform.html#a07fef0553b2ef2907f394470f61898b2">faiss::IndexPreTransform</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQ.html#a981c2748bfbd9b018494f119279a0342">faiss::IndexIVFPQ</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQR.html#a4b6154a5194d574d037ba78c137a2fa5">faiss::IndexIVFPQR</a>
, <a class="el" href="structfaiss_1_1IndexIVFScalarQuantizer.html#afa95c17787b7e3dbed9309b440d4d748">faiss::IndexIVFScalarQuantizer</a>
, <a class="el" href="structfaiss_1_1IndexIDMap.html#aeace75e53648c052d05c357b744e090b">faiss::IndexIDMap</a>
, <a class="el" href="structfaiss_1_1IndexIDMap2.html#a33ff76975891695c2fa45ed26fc8eae9">faiss::IndexIDMap2</a>
, <a class="el" href="structfaiss_1_1IndexPreTransform.html#a07fef0553b2ef2907f394470f61898b2">faiss::IndexPreTransform</a>
, <a class="el" href="structfaiss_1_1IndexShards.html#a1f771d50133494f682f05c9ab9e39ad9">faiss::IndexShards</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndex.html#a47f6969fe60d82b8e3407557ba9eec88">faiss::gpu::GpuIndex</a>
, <a class="el" href="structfaiss_1_1Index.html#aa6931dfe054b33b02c842ff75f7a0c7f">faiss::Index</a>
</li>
<li>addCodeVectorsFromCpu()
: <a class="el" href="classfaiss_1_1gpu_1_1IVFFlat.html#a0bedde6dcb7c2f10f277461b97486f52">faiss::gpu::IVFFlat</a>
, <a class="el" href="classfaiss_1_1gpu_1_1IVFPQ.html#a9992b38226dc8f92ca2691582fabb675">faiss::gpu::IVFPQ</a>
</li>
<li>addImpl_()
: <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlat.html#ae0c916b911eda2f1a09a55f42ebc729c">faiss::gpu::GpuIndexFlat</a>
: <a class="el" href="classfaiss_1_1gpu_1_1GpuIndex.html#a345819c6214c2a6eb7874dde1145036f">faiss::gpu::GpuIndex</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFFlat.html#a64bd89e18b8199ae7a88066890b10a0e">faiss::gpu::GpuIndexIVFFlat</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a50e74f0621ca2fe5688825f434ad2bb2">faiss::gpu::GpuIndexIVFPQ</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndex.html#a345819c6214c2a6eb7874dde1145036f">faiss::gpu::GpuIndex</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlat.html#ae0c916b911eda2f1a09a55f42ebc729c">faiss::gpu::GpuIndexFlat</a>
</li>
<li>addIndex()
: <a class="el" href="classfaiss_1_1gpu_1_1IndexProxy.html#af9bb81e75f8d5471094e4d4776a56f63">faiss::gpu::IndexProxy</a>
......@@ -231,15 +230,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li>apply_noalloc()
: <a class="el" href="structfaiss_1_1NormalizationTransform.html#a80c94dc7d17c9a7a9edc627150401571">faiss::NormalizationTransform</a>
, <a class="el" href="structfaiss_1_1RemapDimensionsTransform.html#a550be3d40c221d2134bf06a13dd33c4d">faiss::RemapDimensionsTransform</a>
, <a class="el" href="structfaiss_1_1LinearTransform.html#af9c20b4ae67691b5713489884ca9f80f">faiss::LinearTransform</a>
, <a class="el" href="structfaiss_1_1VectorTransform.html#a90f1a218c224c049f1bd8b77a78d6aa0">faiss::VectorTransform</a>
, <a class="el" href="structfaiss_1_1LinearTransform.html#af9c20b4ae67691b5713489884ca9f80f">faiss::LinearTransform</a>
</li>
<li>apply_preprocess()
: <a class="el" href="structfaiss_1_1IndexLSH.html#ae7bb111e0aa6bd1b2a13e5efa8ef9cea">faiss::IndexLSH</a>
</li>
<li>as()
: <a class="el" href="classfaiss_1_1gpu_1_1detail_1_1SubTensor_3_01TensorType_00_010_00_01PtrTraits_01_4.html#a67bfa92466e03834b7f007cb9cdf8d50">faiss::gpu::detail::SubTensor&lt; TensorType, 0, PtrTraits &gt;</a>
, <a class="el" href="classfaiss_1_1gpu_1_1detail_1_1SubTensor.html#aefdafcf236e5c49ad3bce1646797f8f2">faiss::gpu::detail::SubTensor&lt; TensorType, SubDim, PtrTraits &gt;</a>
: <a class="el" href="classfaiss_1_1gpu_1_1detail_1_1SubTensor.html#aefdafcf236e5c49ad3bce1646797f8f2">faiss::gpu::detail::SubTensor&lt; TensorType, SubDim, PtrTraits &gt;</a>
, <a class="el" href="classfaiss_1_1gpu_1_1detail_1_1SubTensor_3_01TensorType_00_010_00_01PtrTraits_01_4.html#ad1d375e64756991dadeb5a1e63ed2cfd">faiss::gpu::detail::SubTensor&lt; TensorType, 0, PtrTraits &gt;</a>
</li>
<li>assign()
: <a class="el" href="structfaiss_1_1Index.html#a8bc5d8d1cd0dd7b34b3c98a9f76b4a9c">faiss::Index</a>
......
......@@ -161,7 +161,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
: <a class="el" href="structfaiss_1_1OperatingPoint.html#a2c023f1484e4748e3e97681bb1f4b78e">faiss::OperatingPoint</a>
</li>
<li>code_size
: <a class="el" href="structfaiss_1_1IndexIVFPQ.html#a31c6fb2faa4dadea4c0594338be7be90">faiss::IndexIVFPQ</a>
: <a class="el" href="structfaiss_1_1IndexIVF.html#a46d1aeddb60643c5b3f096147c3e028f">faiss::IndexIVF</a>
, <a class="el" href="structfaiss_1_1ScalarQuantizer.html#a647b8774e4cd8ca5623a194f5c7f8a33">faiss::ScalarQuantizer</a>
, <a class="el" href="structfaiss_1_1ProductQuantizer.html#aa61330eadb84772b71018b093773a5f9">faiss::ProductQuantizer</a>
</li>
......@@ -169,7 +169,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
: <a class="el" href="structfaiss_1_1IndexLSH.html#a55c0f1127850af0d06ef22fc8b791572">faiss::IndexLSH</a>
, <a class="el" href="structfaiss_1_1IndexPQ.html#a490b64b12384951ed66548a3a48f91e5">faiss::IndexPQ</a>
, <a class="el" href="structfaiss_1_1IndexScalarQuantizer.html#a861fa059f9d4ced9147e08193a2be9be">faiss::IndexScalarQuantizer</a>
, <a class="el" href="structfaiss_1_1IndexIVFScalarQuantizer.html#abc335510a1855faecb3e445c49a9b204">faiss::IndexIVFScalarQuantizer</a>
</li>
<li>combination_ge()
: <a class="el" href="structfaiss_1_1ParameterSpace.html#a7cdedaf4bab33293771c4267d453a950">faiss::ParameterSpace</a>
......@@ -230,31 +229,30 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
: <a class="el" href="structfaiss_1_1BufferList.html#a78b70417a9ba5b27553b3134f1190958">faiss::BufferList</a>
</li>
<li>copy_subset_to()
: <a class="el" href="structfaiss_1_1IndexIVFPQ.html#af278c710f6c7605f59e1da48a6dea37a">faiss::IndexIVFPQ</a>
, <a class="el" href="structfaiss_1_1IndexIVFFlat.html#a1d0a5285344c3302ba10bb79f4578a82">faiss::IndexIVFFlat</a>
: <a class="el" href="structfaiss_1_1IndexIVF.html#a2fc63f9bbfe64e05106366465ece2187">faiss::IndexIVF</a>
</li>
<li>copyFrom()
: <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlatL2.html#a9a9de859274bb73e6d8ea02cae5ca9a6">faiss::gpu::GpuIndexFlatL2</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVF.html#a94c2c171f9a2d27085dea9101067bdf2">faiss::gpu::GpuIndexIVF</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlatIP.html#aa181b1778a8dca81ac5cf6cd6a3d5f1d">faiss::gpu::GpuIndexFlatIP</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a8d48f79af9080b55706050244fc24f0e">faiss::gpu::GpuIndexIVFPQ</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlat.html#abb964875e0893de1d8334ca5ad0f62dc">faiss::gpu::GpuIndexFlat</a>
, <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#ae981a94263044f38be89d690dd958426">faiss::gpu::Tensor&lt; T, Dim, Contig, IndexT, PtrTraits &gt;</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVF.html#a94c2c171f9a2d27085dea9101067bdf2">faiss::gpu::GpuIndexIVF</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a8d48f79af9080b55706050244fc24f0e">faiss::gpu::GpuIndexIVFPQ</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFFlat.html#a96fd66c31c7e46b1549ed61d1b3476f3">faiss::gpu::GpuIndexIVFFlat</a>
</li>
<li>copyTo()
: <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlatIP.html#af70d0fe80cf3bf16ffffd8b16ed64f08">faiss::gpu::GpuIndexFlatIP</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVF.html#a1db0a796b8b2917d989952c5f07fbe55">faiss::gpu::GpuIndexIVF</a>
, <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a6ce60d784817469d5b47b560da177b92">faiss::gpu::Tensor&lt; T, Dim, Contig, IndexT, PtrTraits &gt;</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlatL2.html#ab21960d379190b98aaa05ae3877dea09">faiss::gpu::GpuIndexFlatL2</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlat.html#a046007ff2fafcafc6ae328769c700e39">faiss::gpu::GpuIndexFlat</a>
: <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlatL2.html#ab21960d379190b98aaa05ae3877dea09">faiss::gpu::GpuIndexFlatL2</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlatIP.html#af70d0fe80cf3bf16ffffd8b16ed64f08">faiss::gpu::GpuIndexFlatIP</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#aad10de2407911e9adf42c1be5c5dd390">faiss::gpu::GpuIndexIVFPQ</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVF.html#a1db0a796b8b2917d989952c5f07fbe55">faiss::gpu::GpuIndexIVF</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFFlat.html#a345980d7ae4b5baadf93f647fc6cb0b1">faiss::gpu::GpuIndexIVFFlat</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlat.html#a046007ff2fafcafc6ae328769c700e39">faiss::gpu::GpuIndexFlat</a>
, <a class="el" href="classfaiss_1_1gpu_1_1Tensor.html#a6ce60d784817469d5b47b560da177b92">faiss::gpu::Tensor&lt; T, Dim, Contig, IndexT, PtrTraits &gt;</a>
</li>
<li>cp
: <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVF.html#a520803e209b44c904b876d6b8dad23c9">faiss::gpu::GpuIndexIVF</a>
, <a class="el" href="structfaiss_1_1ProductQuantizer.html#af265acf5aa1bcda60898002287e6a3d6">faiss::ProductQuantizer</a>
: <a class="el" href="structfaiss_1_1ProductQuantizer.html#af265acf5aa1bcda60898002287e6a3d6">faiss::ProductQuantizer</a>
, <a class="el" href="structfaiss_1_1IndexIVF.html#a9746bcd42ecec1501f221e918b25e8e7">faiss::IndexIVF</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVF.html#a520803e209b44c904b876d6b8dad23c9">faiss::gpu::GpuIndexIVF</a>
</li>
<li>CpuTimer()
: <a class="el" href="classfaiss_1_1gpu_1_1CpuTimer.html#af2f8e832b4c5425e152834ae7aa2af49">faiss::gpu::CpuTimer</a>
......
......@@ -131,9 +131,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li>flatConfig
: <a class="el" href="structfaiss_1_1gpu_1_1GpuIndexIVFConfig.html#a6d357a9a67a2fed9c8e7b139712d30f6">faiss::gpu::GpuIndexIVFConfig</a>
</li>
<li>fsize
: <a class="el" href="structfaiss_1_1IndexIVFFlatIPBounds.html#a32e550879d0bf5eecf0a939eb25b3c0c">faiss::IndexIVFFlatIPBounds</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
......
......@@ -171,20 +171,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</li>
<li>merge_from()
: <a class="el" href="structfaiss_1_1IndexIVF.html#a0f22cc237c30c935df5b6560aecf8f01">faiss::IndexIVF</a>
</li>
<li>merge_from_residuals()
: <a class="el" href="structfaiss_1_1IndexIVF.html#aacaf0b2529a9d9def094ea3728a12824">faiss::IndexIVF</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQR.html#af6c7ee3bc917cc5d4ab04ff64269ee06">faiss::IndexIVFPQR</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQ.html#a6b8964e2da609a9261a8a35ae347ecb2">faiss::IndexIVFPQ</a>
, <a class="el" href="structfaiss_1_1IndexIVFScalarQuantizer.html#afd54410889924a0cb544f1e3fd5babe9">faiss::IndexIVFScalarQuantizer</a>
, <a class="el" href="structfaiss_1_1IndexIVFFlat.html#a8fc1695a87f33db1a16f8c50c3344cd3">faiss::IndexIVFFlat</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQR.html#a31a1fec2a88b410ea96ce5be7d527be9">faiss::IndexIVFPQR</a>
</li>
<li>merge_with()
: <a class="el" href="structfaiss_1_1OperatingPoints.html#a84baddccd8b803dee460739f8bcbc0c9">faiss::OperatingPoints</a>
</li>
<li>mergeWarpQ()
: <a class="el" href="structfaiss_1_1gpu_1_1WarpSelect.html#a408cbf9a09094078cb62018400f30076">faiss::gpu::WarpSelect&lt; K, V, Dir, Comp, NumWarpQ, NumThreadQ, ThreadsPerBlock &gt;</a>
, <a class="el" href="structfaiss_1_1gpu_1_1BlockSelect.html#a08aa08d16ec29c7b7dccc65edd5115cd">faiss::gpu::BlockSelect&lt; K, V, Dir, Comp, NumWarpQ, NumThreadQ, ThreadsPerBlock &gt;</a>
: <a class="el" href="structfaiss_1_1gpu_1_1BlockSelect.html#a08aa08d16ec29c7b7dccc65edd5115cd">faiss::gpu::BlockSelect&lt; K, V, Dir, Comp, NumWarpQ, NumThreadQ, ThreadsPerBlock &gt;</a>
, <a class="el" href="structfaiss_1_1gpu_1_1WarpSelect.html#a408cbf9a09094078cb62018400f30076">faiss::gpu::WarpSelect&lt; K, V, Dir, Comp, NumWarpQ, NumThreadQ, ThreadsPerBlock &gt;</a>
</li>
<li>metric_type
: <a class="el" href="structfaiss_1_1Index.html#a8e18f641854b2bde83ecff0a2f9a6f4e">faiss::Index</a>
......
......@@ -128,9 +128,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li>parameter_ranges
: <a class="el" href="structfaiss_1_1ParameterSpace.html#a334c1bb54bc2b70950a4a63950728cbb">faiss::ParameterSpace</a>
</li>
<li>part_norms
: <a class="el" href="structfaiss_1_1IndexIVFFlatIPBounds.html#a07b988f02cc2f6fc3eb951609bfc0817">faiss::IndexIVFFlatIPBounds</a>
</li>
<li>PCAMat
: <a class="el" href="structfaiss_1_1PCAMatrix.html#aef5c130774e5d4f697a3e1c82647bfd3">faiss::PCAMatrix</a>
</li>
......@@ -144,8 +141,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
: <a class="el" href="structfaiss_1_1IndexFlat1D.html#a3442f0d86a14108534f99eea0b7d4d3f">faiss::IndexFlat1D</a>
</li>
<li>polysemous_ht
: <a class="el" href="structfaiss_1_1IndexPQ.html#aff455f2adff6064939494dad6e3017bc">faiss::IndexPQ</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQ.html#a3093a0a3e128eafce6e0583b75e9662e">faiss::IndexIVFPQ</a>
: <a class="el" href="structfaiss_1_1IndexIVFPQ.html#a3093a0a3e128eafce6e0583b75e9662e">faiss::IndexIVFPQ</a>
, <a class="el" href="structfaiss_1_1IndexPQ.html#aff455f2adff6064939494dad6e3017bc">faiss::IndexPQ</a>
</li>
<li>polysemous_training
: <a class="el" href="structfaiss_1_1IndexIVFPQ.html#a2b14cbb5acb3fc28a4df8fde3f5567cd">faiss::IndexIVFPQ</a>
......
......@@ -203,8 +203,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li>remove_ids()
: <a class="el" href="structfaiss_1_1Index.html#af8bf7bd97aeed8ad5fc48b242379a68a">faiss::Index</a>
, <a class="el" href="structfaiss_1_1IndexFlat.html#a8d1ea1d28e80849f8b0f5493679d68c9">faiss::IndexFlat</a>
, <a class="el" href="structfaiss_1_1IndexIVFFlat.html#a46ee62aabc316ec38882a3f54e594559">faiss::IndexIVFFlat</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQ.html#ad9fa584ac2e12e9b9bb25a737efcc4d9">faiss::IndexIVFPQ</a>
, <a class="el" href="structfaiss_1_1IndexIVF.html#a545c275690fac76be8c1a4685b3c7b8e">faiss::IndexIVF</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQR.html#acc5eeeeb8ac8d2581ef07947932d9f6c">faiss::IndexIVFPQR</a>
, <a class="el" href="structfaiss_1_1IndexIDMap.html#a699ca4891bf3a437b2a182c04d33d9b9">faiss::IndexIDMap</a>
, <a class="el" href="structfaiss_1_1IndexIDMap2.html#a87e313ebc8dd62fb734a61a6d95a98f0">faiss::IndexIDMap2</a>
......@@ -220,50 +219,48 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
: <a class="el" href="classfaiss_1_1gpu_1_1FlatIndex.html#a7a06b678b97e3732939f6a4fb5106ef6">faiss::gpu::FlatIndex</a>
</li>
<li>reserveMemory()
: <a class="el" href="classfaiss_1_1gpu_1_1IVFBase.html#a02e1e2d080ee31bf7835f89b9f2a13a9">faiss::gpu::IVFBase</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFFlat.html#a329d7734f1285788d10c1fbf1f88d72f">faiss::gpu::GpuIndexIVFFlat</a>
: <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFFlat.html#a329d7734f1285788d10c1fbf1f88d72f">faiss::gpu::GpuIndexIVFFlat</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a4e7d62e21f7e23fa4e94c69131389eea">faiss::gpu::GpuIndexIVFPQ</a>
, <a class="el" href="classfaiss_1_1gpu_1_1IVFBase.html#a02e1e2d080ee31bf7835f89b9f2a13a9">faiss::gpu::IVFBase</a>
</li>
<li>reserveVecs
: <a class="el" href="structfaiss_1_1gpu_1_1GpuClonerOptions.html#ab60dd87e51af59373a48d73852573f04">faiss::gpu::GpuClonerOptions</a>
</li>
<li>reset()
: <a class="el" href="structfaiss_1_1IndexIVF.html#a47a3b7665e9d2be41c6d3b2e9144b73f">faiss::IndexIVF</a>
: <a class="el" href="structfaiss_1_1IndexShards.html#aa7dc5d020de4a0552058cbf2844cb00f">faiss::IndexShards</a>
, <a class="el" href="structfaiss_1_1IndexSplitVectors.html#a8047981cb8d10c54107664c4955df402">faiss::IndexSplitVectors</a>
, <a class="el" href="structfaiss_1_1IndexPreTransform.html#a8e48ac9fde5e76e378553b2a6ec2c86e">faiss::IndexPreTransform</a>
, <a class="el" href="structfaiss_1_1IndexFlat.html#ab63dc34ef5d33f98f94aa0ade7c7324f">faiss::IndexFlat</a>
, <a class="el" href="structfaiss_1_1IndexFlat1D.html#aa205c4ffa6cbd50f49ef9cb6cc050000">faiss::IndexFlat1D</a>
, <a class="el" href="structfaiss_1_1IndexIVFFlat.html#a9df8b023486f54c8f2c5452787807360">faiss::IndexIVFFlat</a>
, <a class="el" href="structfaiss_1_1IndexPQ.html#a25e17da885cf55d84b176b46f3ad25b1">faiss::IndexPQ</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a3a43a70461e09ef87bdb7b48ec420dd2">faiss::gpu::GpuIndexIVFPQ</a>
, <a class="el" href="structfaiss_1_1IndexRefineFlat.html#ac3efe902315768afe83fa2b8ea5dc591">faiss::IndexRefineFlat</a>
, <a class="el" href="structfaiss_1_1IndexIVF.html#a47a3b7665e9d2be41c6d3b2e9144b73f">faiss::IndexIVF</a>
, <a class="el" href="structfaiss_1_1IndexFlat1D.html#aa205c4ffa6cbd50f49ef9cb6cc050000">faiss::IndexFlat1D</a>
, <a class="el" href="structfaiss_1_1Index.html#a849361f5f0ab0aba8d419c86f2594191">faiss::Index</a>
, <a class="el" href="classfaiss_1_1gpu_1_1IVFBase.html#a7ea671876443c93436499ad581f16997">faiss::gpu::IVFBase</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFFlat.html#a88676a893e9b44041e7a52327d960b54">faiss::gpu::GpuIndexIVFFlat</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a3a43a70461e09ef87bdb7b48ec420dd2">faiss::gpu::GpuIndexIVFPQ</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQCompact.html#a8f5eccfb4d5e4098ff6c00acb3bc40a1">faiss::IndexIVFPQCompact</a>
, <a class="el" href="structfaiss_1_1IndexFlat.html#ab63dc34ef5d33f98f94aa0ade7c7324f">faiss::IndexFlat</a>
, <a class="el" href="structfaiss_1_1IndexScalarQuantizer.html#af0d6b901a2a02fff34e5c7c1ea5b8d55">faiss::IndexScalarQuantizer</a>
, <a class="el" href="structfaiss_1_1IndexPreTransform.html#a8e48ac9fde5e76e378553b2a6ec2c86e">faiss::IndexPreTransform</a>
, <a class="el" href="structfaiss_1_1MultiIndexQuantizer.html#a4808ce22fcc95c7af902b97969f2a90d">faiss::MultiIndexQuantizer</a>
, <a class="el" href="structfaiss_1_1IndexLSH.html#aba7791311191bb168b79f8f59dd459ab">faiss::IndexLSH</a>
, <a class="el" href="classfaiss_1_1gpu_1_1FlatIndex.html#ae06cb2ffd46659b6639b97297546096e">faiss::gpu::FlatIndex</a>
, <a class="el" href="structfaiss_1_1IndexIDMap.html#a70aca5b0f665c5a109d5dadf1e13b448">faiss::IndexIDMap</a>
, <a class="el" href="structfaiss_1_1MultiIndexQuantizer.html#a4808ce22fcc95c7af902b97969f2a90d">faiss::MultiIndexQuantizer</a>
, <a class="el" href="structfaiss_1_1IndexShards.html#aa7dc5d020de4a0552058cbf2844cb00f">faiss::IndexShards</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQR.html#ae0e979a014a9defe2254e9543657b075">faiss::IndexIVFPQR</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlat.html#a67161796f274a7171a67c36bdf1ef1db">faiss::gpu::GpuIndexFlat</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFFlat.html#a88676a893e9b44041e7a52327d960b54">faiss::gpu::GpuIndexIVFFlat</a>
, <a class="el" href="classfaiss_1_1gpu_1_1IndexProxy.html#a7f1b8287a607c80f2bb92f4ac0300649">faiss::gpu::IndexProxy</a>
, <a class="el" href="structfaiss_1_1IndexScalarQuantizer.html#af0d6b901a2a02fff34e5c7c1ea5b8d55">faiss::IndexScalarQuantizer</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQCompact.html#a8f5eccfb4d5e4098ff6c00acb3bc40a1">faiss::IndexIVFPQCompact</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQR.html#ae0e979a014a9defe2254e9543657b075">faiss::IndexIVFPQR</a>
, <a class="el" href="structfaiss_1_1Index.html#a849361f5f0ab0aba8d419c86f2594191">faiss::Index</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQ.html#acd807799dc56dcef0f221847a2af86f7">faiss::IndexIVFPQ</a>
, <a class="el" href="classfaiss_1_1gpu_1_1FlatIndex.html#ae06cb2ffd46659b6639b97297546096e">faiss::gpu::FlatIndex</a>
</li>
<li>resources_
: <a class="el" href="classfaiss_1_1gpu_1_1IVFBase.html#a05e6400358ec1f529a67209d3f24cc63">faiss::gpu::IVFBase</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndex.html#a17b82a8a11783da6eb1b07c9aab98c36">faiss::gpu::GpuIndex</a>
: <a class="el" href="classfaiss_1_1gpu_1_1GpuIndex.html#a17b82a8a11783da6eb1b07c9aab98c36">faiss::gpu::GpuIndex</a>
, <a class="el" href="classfaiss_1_1gpu_1_1IVFBase.html#a05e6400358ec1f529a67209d3f24cc63">faiss::gpu::IVFBase</a>
</li>
<li>returnAlloc()
: <a class="el" href="structfaiss_1_1gpu_1_1StackDeviceMemory_1_1Stack.html#a5c652c126c2bf37149995cdb9d46a382">faiss::gpu::StackDeviceMemory::Stack</a>
</li>
<li>reverse_transform()
: <a class="el" href="structfaiss_1_1RemapDimensionsTransform.html#a2fc83e79e4d3c7853bfd6931cbbaf82a">faiss::RemapDimensionsTransform</a>
: <a class="el" href="structfaiss_1_1PCAMatrix.html#abf427521a66cbfaaf0b7aae16bcb6e93">faiss::PCAMatrix</a>
, <a class="el" href="structfaiss_1_1RandomRotationMatrix.html#a3ad86e9ae3bdc2090c1f5fc62a335c16">faiss::RandomRotationMatrix</a>
, <a class="el" href="structfaiss_1_1RemapDimensionsTransform.html#a2fc83e79e4d3c7853bfd6931cbbaf82a">faiss::RemapDimensionsTransform</a>
, <a class="el" href="structfaiss_1_1VectorTransform.html#a101ce54f1c60df19478801aa942470d9">faiss::VectorTransform</a>
, <a class="el" href="structfaiss_1_1PCAMatrix.html#abf427521a66cbfaaf0b7aae16bcb6e93">faiss::PCAMatrix</a>
, <a class="el" href="structfaiss_1_1OPQMatrix.html#a8e61a84ea6bcbdee1809028b6aaa3aae">faiss::OPQMatrix</a>
</li>
<li>rotate_data
......
......@@ -134,42 +134,33 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li>search()
: <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlat.html#ac0f0301829363f920e619f673a4d97f3">faiss::gpu::GpuIndexFlat</a>
, <a class="el" href="structfaiss_1_1IndexFlatL2BaseShift.html#a16e9bf1aec9d18b3ebbe78fea6bfecc0">faiss::IndexFlatL2BaseShift</a>
, <a class="el" href="structfaiss_1_1IndexPQ.html#a491ba3ed34093513e6a850fbca0abdd2">faiss::IndexPQ</a>
, <a class="el" href="structfaiss_1_1MultiIndexQuantizer.html#a999ee03f4e65f453377e209d10e25681">faiss::MultiIndexQuantizer</a>
, <a class="el" href="structfaiss_1_1IndexRefineFlat.html#ad04444de1e2c26c463cc52f3c076dd41">faiss::IndexRefineFlat</a>
, <a class="el" href="structfaiss_1_1IndexScalarQuantizer.html#abf24732c29106bb808148c3d30599662">faiss::IndexScalarQuantizer</a>
, <a class="el" href="structfaiss_1_1IndexIVFScalarQuantizer.html#a0e1197a21c9291a2d570116f72fd2196">faiss::IndexIVFScalarQuantizer</a>
, <a class="el" href="classfaiss_1_1gpu_1_1IndexProxy.html#a25ed68079907eeeca9d441cdd4fc0740">faiss::gpu::IndexProxy</a>
, <a class="el" href="structfaiss_1_1IndexFlat1D.html#a65736f2900865cd156faba4fcd260d05">faiss::IndexFlat1D</a>
, <a class="el" href="structfaiss_1_1IndexIDMap.html#a2f36fa9150a465b48952afbba856e2a1">faiss::IndexIDMap</a>
, <a class="el" href="structfaiss_1_1IndexRefineFlat.html#ad04444de1e2c26c463cc52f3c076dd41">faiss::IndexRefineFlat</a>
, <a class="el" href="structfaiss_1_1IndexShards.html#a83391295650370e8987358a898bb2cca">faiss::IndexShards</a>
, <a class="el" href="structfaiss_1_1IndexIVFFlat.html#acd2bdb06fcbe9d1f5799cf78aa6cdf0d">faiss::IndexIVFFlat</a>
, <a class="el" href="structfaiss_1_1IndexSplitVectors.html#a4a010daf51e44d9717e94400cc23c159">faiss::IndexSplitVectors</a>
, <a class="el" href="classfaiss_1_1gpu_1_1IndexProxy.html#a25ed68079907eeeca9d441cdd4fc0740">faiss::gpu::IndexProxy</a>
, <a class="el" href="structfaiss_1_1IndexFlat1D.html#a65736f2900865cd156faba4fcd260d05">faiss::IndexFlat1D</a>
, <a class="el" href="structfaiss_1_1ProductQuantizer.html#a1ae7892a15b9f6809a3ba1a123a7831b">faiss::ProductQuantizer</a>
, <a class="el" href="structfaiss_1_1IndexPreTransform.html#a7c2c820895d87083742969c281ae4911">faiss::IndexPreTransform</a>
, <a class="el" href="structfaiss_1_1IndexIVF.html#ae2fd47b7d52603659e269aa8f6abb613">faiss::IndexIVF</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndex.html#a6f1cadb5e8970c9c1fdf15eddb9d874f">faiss::gpu::GpuIndex</a>
, <a class="el" href="structfaiss_1_1Index.html#aced51b1ebc33c47ab3ae15ea906559a7">faiss::Index</a>
, <a class="el" href="structfaiss_1_1IndexIVFFlatIPBounds.html#aac063e96413e0e90d87898df8a60088b">faiss::IndexIVFFlatIPBounds</a>
, <a class="el" href="structfaiss_1_1IndexPreTransform.html#a7c2c820895d87083742969c281ae4911">faiss::IndexPreTransform</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQ.html#afa7c9a7ae0316d2a05acb60ab2b7a31a">faiss::IndexIVFPQ</a>
, <a class="el" href="structfaiss_1_1IndexFlat.html#a85510d70f4675197df9988651e4692c9">faiss::IndexFlat</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQR.html#a3e982ee6f1a3a025148270701867d04f">faiss::IndexIVFPQR</a>
, <a class="el" href="structfaiss_1_1IndexLSH.html#a66b6afb56afa1f58e2d93abfdfd223ee">faiss::IndexLSH</a>
, <a class="el" href="structfaiss_1_1IndexFlat.html#a85510d70f4675197df9988651e4692c9">faiss::IndexFlat</a>
, <a class="el" href="structfaiss_1_1IndexPQ.html#a491ba3ed34093513e6a850fbca0abdd2">faiss::IndexPQ</a>
, <a class="el" href="structfaiss_1_1MultiIndexQuantizer.html#a999ee03f4e65f453377e209d10e25681">faiss::MultiIndexQuantizer</a>
</li>
<li>search_ip()
: <a class="el" href="structfaiss_1_1ProductQuantizer.html#a66be226806ca2abcaaf1653cdc690aa6">faiss::ProductQuantizer</a>
</li>
<li>search_knn_inner_product()
: <a class="el" href="structfaiss_1_1IndexIVFFlat.html#a5ac4f051396a1535426baec8f401aa93">faiss::IndexIVFFlat</a>
</li>
<li>search_knn_L2sqr()
: <a class="el" href="structfaiss_1_1IndexIVFFlat.html#a9ca8cc3ca71ff91f1e5e2db3b8ead615">faiss::IndexIVFFlat</a>
</li>
<li>search_knn_with_key()
: <a class="el" href="structfaiss_1_1IndexIVFPQ.html#ad5ae3ae94b4776291f6abee5110c7c0c">faiss::IndexIVFPQ</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQCompact.html#a583dd638a00cb9246ac7b54ee6d65f95">faiss::IndexIVFPQCompact</a>
</li>
<li>search_preassigned()
: <a class="el" href="structfaiss_1_1IndexIVFFlat.html#a7a280ade19868bc3e0b7db6181a0e792">faiss::IndexIVFFlat</a>
: <a class="el" href="structfaiss_1_1IndexIVF.html#ae13fe9ff54a870ded3487c5c282ca566">faiss::IndexIVF</a>
, <a class="el" href="structfaiss_1_1IndexIVFFlat.html#a6abfaf0da529ece0e68909aab4c282fd">faiss::IndexIVFFlat</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQ.html#a150a37cf3e8a7e37cb8dab1d5678bc02">faiss::IndexIVFPQ</a>
, <a class="el" href="structfaiss_1_1IndexIVFPQCompact.html#ada9e5292194ee1be42d122037fbf2502">faiss::IndexIVFPQCompact</a>
, <a class="el" href="structfaiss_1_1IndexIVFScalarQuantizer.html#a341e473a62adcb03e07e53f67c1a7358">faiss::IndexIVFScalarQuantizer</a>
</li>
<li>Search_type_t
: <a class="el" href="structfaiss_1_1IndexPQ.html#a4fa05430935a02b62b7c15c9840c42fe">faiss::IndexPQ</a>
......@@ -178,10 +169,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
: <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlat.html#afedeff5442b6ed94f856cecb8d8e598d">faiss::gpu::GpuIndexFlat</a>
</li>
<li>searchImpl_()
: <a class="el" href="classfaiss_1_1gpu_1_1GpuIndex.html#a482408e73bfa420d46eed690f2936e04">faiss::gpu::GpuIndex</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlat.html#ac99bfd11ff5150f29cf054ea55fc8fe4">faiss::gpu::GpuIndexFlat</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFFlat.html#a3285302b227052fee57b3df10c2a482b">faiss::gpu::GpuIndexIVFFlat</a>
: <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFFlat.html#a3285302b227052fee57b3df10c2a482b">faiss::gpu::GpuIndexIVFFlat</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexIVFPQ.html#a42f619bee6ecb268442c7807e75896fe">faiss::gpu::GpuIndexIVFPQ</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndex.html#a482408e73bfa420d46eed690f2936e04">faiss::gpu::GpuIndex</a>
, <a class="el" href="classfaiss_1_1gpu_1_1GpuIndexFlat.html#ac99bfd11ff5150f29cf054ea55fc8fe4">faiss::gpu::GpuIndexFlat</a>
</li>
<li>seed
: <a class="el" href="structfaiss_1_1ClusteringParameters.html#a509c65e2ebe6ecabebd163ecb03c5579">faiss::ClusteringParameters</a>
......@@ -277,13 +268,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
: <a class="el" href="structfaiss_1_1IndexPQ.html#a4fa05430935a02b62b7c15c9840c42fea4287cbc83d1d5f0d1a02f014e5fe692c">faiss::IndexPQ</a>
</li>
<li>Stack()
: <a class="el" href="structfaiss_1_1gpu_1_1StackDeviceMemory_1_1Stack.html#a92a16b44da0ab2a89d3d032b762c0232">faiss::gpu::StackDeviceMemory::Stack</a>
: <a class="el" href="structfaiss_1_1gpu_1_1StackDeviceMemory_1_1Stack.html#a783de9fc71cf57bf336c474f6155453d">faiss::gpu::StackDeviceMemory::Stack</a>
</li>
<li>stack_
: <a class="el" href="classfaiss_1_1gpu_1_1StackDeviceMemory.html#a323a632f397eaf3df3034595762c6a29">faiss::gpu::StackDeviceMemory</a>
</li>
<li>StackDeviceMemory()
: <a class="el" href="classfaiss_1_1gpu_1_1StackDeviceMemory.html#afd7a84b8cd1f747d873cdd1ab07e8a4b">faiss::gpu::StackDeviceMemory</a>
: <a class="el" href="classfaiss_1_1gpu_1_1StackDeviceMemory.html#a130f900c32ba91ae1f872c7ee506a93e">faiss::gpu::StackDeviceMemory</a>
</li>
<li>start_
: <a class="el" href="structfaiss_1_1gpu_1_1StackDeviceMemory_1_1Stack.html#aed64654e7d498114fdd48a6f1cdb1aa2">faiss::gpu::StackDeviceMemory::Stack</a>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -11,7 +11,6 @@ var searchData=
['find_5fduplicates',['find_duplicates',['../structfaiss_1_1IndexIVFPQ.html#aee355b57acde203a3caed46a93e16a3c',1,'faiss::IndexIVFPQ']]],
['flatconfig',['flatConfig',['../structfaiss_1_1gpu_1_1GpuIndexIVFConfig.html#a6d357a9a67a2fed9c8e7b139712d30f6',1,'faiss::gpu::GpuIndexIVFConfig']]],
['flatindex',['FlatIndex',['../classfaiss_1_1gpu_1_1FlatIndex.html',1,'faiss::gpu']]],
['fsize',['fsize',['../structfaiss_1_1IndexIVFFlatIPBounds.html#a32e550879d0bf5eecf0a939eb25b3c0c',1,'faiss::IndexIVFFlatIPBounds']]],
['fvec_5fl2sqr',['fvec_L2sqr',['../namespacefaiss.html#a7466bd32de31640860393a701eaac5ad',1,'faiss']]],
['fvec_5fmadd',['fvec_madd',['../namespacefaiss.html#a40328c31abd0bbba5bd95d7de951e847',1,'faiss']]],
['fvec_5fmadd_5fand_5fargmin',['fvec_madd_and_argmin',['../namespacefaiss.html#a9da63b8bb84460f5e8ccf8e17622cc7a',1,'faiss']]],
......
This diff is collapsed.
......@@ -19,8 +19,7 @@ var searchData=
['mean',['mean',['../structfaiss_1_1PCAMatrix.html#a721c338c1df5c99471db82e6d3dc8f93',1,'faiss::PCAMatrix']]],
['memoryspace',['memorySpace',['../structfaiss_1_1gpu_1_1GpuIndexConfig.html#adf7c9461009108a9a433a077ab322d2e',1,'faiss::gpu::GpuIndexConfig']]],
['memoryspace_5f',['memorySpace_',['../classfaiss_1_1gpu_1_1GpuIndex.html#af304169eac7781b573f76d545f37b7d9',1,'faiss::gpu::GpuIndex']]],
['merge_5ffrom',['merge_from',['../structfaiss_1_1IndexIVF.html#a0f22cc237c30c935df5b6560aecf8f01',1,'faiss::IndexIVF']]],
['merge_5ffrom_5fresiduals',['merge_from_residuals',['../structfaiss_1_1IndexIVF.html#aacaf0b2529a9d9def094ea3728a12824',1,'faiss::IndexIVF::merge_from_residuals()'],['../structfaiss_1_1IndexIVFFlat.html#a8fc1695a87f33db1a16f8c50c3344cd3',1,'faiss::IndexIVFFlat::merge_from_residuals()'],['../structfaiss_1_1IndexIVFPQ.html#a6b8964e2da609a9261a8a35ae347ecb2',1,'faiss::IndexIVFPQ::merge_from_residuals()'],['../structfaiss_1_1IndexIVFPQR.html#af6c7ee3bc917cc5d4ab04ff64269ee06',1,'faiss::IndexIVFPQR::merge_from_residuals()'],['../structfaiss_1_1IndexIVFScalarQuantizer.html#afd54410889924a0cb544f1e3fd5babe9',1,'faiss::IndexIVFScalarQuantizer::merge_from_residuals()']]],
['merge_5ffrom',['merge_from',['../structfaiss_1_1IndexIVF.html#a0f22cc237c30c935df5b6560aecf8f01',1,'faiss::IndexIVF::merge_from()'],['../structfaiss_1_1IndexIVFPQR.html#a31a1fec2a88b410ea96ce5be7d527be9',1,'faiss::IndexIVFPQR::merge_from()']]],
['merge_5fresult_5ftable_5fwith',['merge_result_table_with',['../namespacefaiss.html#afb7b33f6892678ba79aaf5e71777837c',1,'faiss']]],
['merge_5fwith',['merge_with',['../structfaiss_1_1OperatingPoints.html#a84baddccd8b803dee460739f8bcbc0c9',1,'faiss::OperatingPoints']]],
['mergewarpq',['mergeWarpQ',['../structfaiss_1_1gpu_1_1BlockSelect.html#a08aa08d16ec29c7b7dccc65edd5115cd',1,'faiss::gpu::BlockSelect::mergeWarpQ()'],['../structfaiss_1_1gpu_1_1WarpSelect.html#a408cbf9a09094078cb62018400f30076',1,'faiss::gpu::WarpSelect::mergeWarpQ()']]],
......@@ -30,6 +29,6 @@ var searchData=
['min_5fpoints_5fper_5fcentroid',['min_points_per_centroid',['../structfaiss_1_1ClusteringParameters.html#a5af907901147a9b1e748b13305839924',1,'faiss::ClusteringParameters']]],
['minpagedsize_5f',['minPagedSize_',['../classfaiss_1_1gpu_1_1GpuIndexFlat.html#aad665a7b5888b4aafd47ae0f8d0e6c40',1,'faiss::gpu::GpuIndexFlat']]],
['minsumk',['MinSumK',['../structfaiss_1_1MinSumK.html',1,'faiss']]],
['multiindexquantizer',['MultiIndexQuantizer',['../structfaiss_1_1MultiIndexQuantizer.html',1,'faiss']]],
['multiindexquantizer',['MultiIndexQuantizer',['../structfaiss_1_1MultiIndexQuantizer.html#a01a568055ebc1e841f7e4218722efa01',1,'faiss::MultiIndexQuantizer']]]
['multiindexquantizer',['MultiIndexQuantizer',['../structfaiss_1_1MultiIndexQuantizer.html#a01a568055ebc1e841f7e4218722efa01',1,'faiss::MultiIndexQuantizer']]],
['multiindexquantizer',['MultiIndexQuantizer',['../structfaiss_1_1MultiIndexQuantizer.html',1,'faiss']]]
];
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
docs/html/structfaiss_1_1IndexIVF.png

2.46 KB | W: | H:

docs/html/structfaiss_1_1IndexIVF.png

2.13 KB | W: | H:

docs/html/structfaiss_1_1IndexIVF.png
docs/html/structfaiss_1_1IndexIVF.png
docs/html/structfaiss_1_1IndexIVF.png
docs/html/structfaiss_1_1IndexIVF.png
  • 2-up
  • Swipe
  • Onion skin
This diff is collapsed.
This diff is collapsed.
......@@ -118,7 +118,7 @@ size_t&#160;</td><td class="memItemRight" valign="bottom"><b>npartial</b></td></
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p>Definition at line <a class="el" href="IndexIVF_8h_source.html#l00111">111</a> of file <a class="el" href="IndexIVF_8h_source.html">IndexIVF.h</a>.</p>
<p>Definition at line <a class="el" href="IndexIVF_8h_source.html#l00153">153</a> of file <a class="el" href="IndexIVF_8h_source.html">IndexIVF.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following files:<ul>
<li>/data/users/matthijs/github_faiss/faiss/<a class="el" href="IndexIVF_8h_source.html">IndexIVF.h</a></li>
<li>/data/users/matthijs/github_faiss/faiss/<a class="el" href="IndexIVF_8cpp_source.html">IndexIVF.cpp</a></li>
......
This diff is collapsed.
This diff is collapsed.
......@@ -143,9 +143,9 @@ size_t&#160;</td><td class="memItemRight" valign="bottom"><b>heap_cycles</b></td
<tr class="separator:a1ea5898e035d34a1b9c3669aeef2caf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>statistics are robust to internal threading, but not if <a class="el" href="structfaiss_1_1IndexIVFPQ.html#afa7c9a7ae0316d2a05acb60ab2b7a31a">IndexIVFPQ::search</a> is called by multiple threads </p>
<div class="textblock"><p>statistics are robust to internal threading, but not if <a class="el" href="structfaiss_1_1IndexIVFPQ.html#a150a37cf3e8a7e37cb8dab1d5678bc02">IndexIVFPQ::search_preassigned</a> is called by multiple threads </p>
<p>Definition at line <a class="el" href="IndexIVFPQ_8h_source.html#l00167">167</a> of file <a class="el" href="IndexIVFPQ_8h_source.html">IndexIVFPQ.h</a>.</p>
<p>Definition at line <a class="el" href="IndexIVFPQ_8h_source.html#l00128">128</a> of file <a class="el" href="IndexIVFPQ_8h_source.html">IndexIVFPQ.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following files:<ul>
<li>/data/users/matthijs/github_faiss/faiss/<a class="el" href="IndexIVFPQ_8h_source.html">IndexIVFPQ.h</a></li>
<li>/data/users/matthijs/github_faiss/faiss/<a class="el" href="IndexIVFPQ_8cpp_source.html">IndexIVFPQ.cpp</a></li>
......
......@@ -242,7 +242,7 @@ typedef long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" hr
<p>Implements <a class="el" href="structfaiss_1_1Index.html#a1b5e9ac70adbce0897dd6c8276ad96f2">faiss::Index</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00841">841</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00842">842</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
</div>
</div>
......@@ -294,7 +294,7 @@ typedef long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" hr
<p>Reimplemented from <a class="el" href="structfaiss_1_1Index.html#aa6931dfe054b33b02c842ff75f7a0c7f">faiss::Index</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00850">850</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00851">851</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
</div>
</div>
......@@ -323,7 +323,7 @@ typedef long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" hr
</div><div class="memdoc">
<p>apply the transforms in the chain. The returned float * may be equal to x, otherwise it should be deallocated. </p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00826">826</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00827">827</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
</div>
</div>
......@@ -375,7 +375,7 @@ typedef long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" hr
<p>Reimplemented from <a class="el" href="structfaiss_1_1Index.html#a1936604fffe16b0ef2a3879305950738">faiss::Index</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00885">885</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00886">886</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
</div>
</div>
......@@ -404,7 +404,7 @@ typedef long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" hr
<p>Reimplemented from <a class="el" href="structfaiss_1_1Index.html#af8bf7bd97aeed8ad5fc48b242379a68a">faiss::Index</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00878">878</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00879">879</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
</div>
</div>
......@@ -470,7 +470,7 @@ typedef long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" hr
<p>Implements <a class="el" href="structfaiss_1_1Index.html#aced51b1ebc33c47ab3ae15ea906559a7">faiss::Index</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00863">863</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00864">864</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
</div>
</div>
......@@ -516,7 +516,7 @@ typedef long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" hr
<p>Reimplemented from <a class="el" href="structfaiss_1_1Index.html#a1ffe916c958605c38b0b1bfad42485e4">faiss::Index</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00790">790</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00791">791</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
</div>
</div>
......
......@@ -240,7 +240,7 @@ typedef <a class="el" href="structfaiss_1_1Index.html#a040c6aed1f224f3ea7bf58eeb
<p>Reimplemented from <a class="el" href="structfaiss_1_1VectorTransform.html#a101ce54f1c60df19478801aa942470d9">faiss::VectorTransform</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00708">708</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00709">709</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
</div>
</div>
......@@ -286,7 +286,7 @@ typedef <a class="el" href="structfaiss_1_1Index.html#a040c6aed1f224f3ea7bf58eeb
<p>Reimplemented from <a class="el" href="structfaiss_1_1VectorTransform.html#a7350d4dd28d60866d55ba4f75d2da84c">faiss::VectorTransform</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00547">547</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00548">548</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
</div>
</div>
......
......@@ -249,7 +249,7 @@ typedef <a class="el" href="structfaiss_1_1Index.html#a040c6aed1f224f3ea7bf58eeb
<p>Reimplemented from <a class="el" href="structfaiss_1_1VectorTransform.html#a101ce54f1c60df19478801aa942470d9">faiss::VectorTransform</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00521">521</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00522">522</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
</div>
</div>
......
......@@ -189,7 +189,7 @@ typedef <a class="el" href="structfaiss_1_1Index.html#a040c6aed1f224f3ea7bf58eeb
</div><div class="memdoc">
<p>remap input to output, skipping or inserting dimensions as needed if uniform: distribute dimensions uniformly otherwise just take the d_out first ones. </p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00920">920</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
<p>Definition at line <a class="el" href="VectorTransform_8cpp_source.html#l00921">921</a> of file <a class="el" href="VectorTransform_8cpp_source.html">VectorTransform.cpp</a>.</p>
</div>
</div>
......
This diff is collapsed.
......@@ -213,7 +213,6 @@ struct ToGpuClonerMultiple: faiss::Cloner, GpuMultipleClonerOptions {
Index *clone_Index(const Index *index) override {
long n = sub_cloners.size();
if (n == 1)
return sub_cloners[0].clone_Index(index);
......@@ -259,14 +258,15 @@ struct ToGpuClonerMultiple: faiss::Cloner, GpuMultipleClonerOptions {
idx2.nprobe = index_ivfpq->nprobe;
idx2.use_precomputed_table = 0;
idx2.is_trained = index->is_trained;
index_ivfpq->copy_subset_to(idx2, 0, i0, i1);
index_ivfpq->copy_subset_to(idx2, 2, i0, i1);
FAISS_ASSERT(idx2.ntotal == i1 - i0);
shards[i] = sub_cloners[i].clone_Index(&idx2);
} else if (index_ivfflat) {
faiss::IndexIVFFlat idx2(
index_ivfflat->quantizer, index->d,
index_ivfflat->nlist, index_ivfflat->metric_type);
idx2.nprobe = index_ivfflat->nprobe;
index_ivfflat->copy_subset_to(idx2, 0, i0, i1);
index_ivfflat->copy_subset_to(idx2, 2, i0, i1);
idx2.nprobe = index_ivfflat->nprobe;
shards[i] = sub_cloners[i].clone_Index(&idx2);
}
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment