Coverage Report

Created: 2025-11-04 19:34

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/root/doris/contrib/faiss/faiss/IndexIVFPQ.cpp
Line
Count
Source
1
/*
2
 * Copyright (c) Meta Platforms, Inc. and affiliates.
3
 *
4
 * This source code is licensed under the MIT license found in the
5
 * LICENSE file in the root directory of this source tree.
6
 */
7
8
// -*- c++ -*-
9
10
#include <faiss/IndexIVFPQ.h>
11
12
#include <cassert>
13
#include <cinttypes>
14
#include <cmath>
15
#include <cstdint>
16
#include <cstdio>
17
18
#include <algorithm>
19
20
#include <faiss/utils/Heap.h>
21
#include <faiss/utils/distances.h>
22
#include <faiss/utils/utils.h>
23
24
#include <faiss/Clustering.h>
25
26
#include <faiss/utils/hamming.h>
27
28
#include <faiss/impl/FaissAssert.h>
29
30
#include <faiss/impl/AuxIndexStructures.h>
31
#include <faiss/impl/IDSelector.h>
32
33
#include <faiss/impl/ProductQuantizer.h>
34
35
#include <faiss/impl/code_distance/code_distance.h>
36
37
namespace faiss {
38
39
/*****************************************
40
 * IndexIVFPQ implementation
41
 ******************************************/
42
43
IndexIVFPQ::IndexIVFPQ(
44
        Index* quantizer,
45
        size_t d,
46
        size_t nlist,
47
        size_t M,
48
        size_t nbits_per_idx,
49
        MetricType metric)
50
0
        : IndexIVF(quantizer, d, nlist, 0, metric), pq(d, M, nbits_per_idx) {
51
0
    code_size = pq.code_size;
52
0
    invlists->code_size = code_size;
53
0
    is_trained = false;
54
0
    by_residual = true;
55
0
    use_precomputed_table = 0;
56
0
    scan_table_threshold = 0;
57
58
0
    polysemous_training = nullptr;
59
0
    do_polysemous_training = false;
60
0
    polysemous_ht = 0;
61
0
}
62
63
/****************************************************************
64
 * training                                                     */
65
66
0
void IndexIVFPQ::train_encoder(idx_t n, const float* x, const idx_t* assign) {
67
0
    pq.train(n, x);
68
69
0
    if (do_polysemous_training) {
70
0
        if (verbose)
71
0
            printf("doing polysemous training for PQ\n");
72
0
        PolysemousTraining default_pt;
73
0
        PolysemousTraining* pt =
74
0
                polysemous_training ? polysemous_training : &default_pt;
75
0
        pt->optimize_pq_for_hamming(pq, n, x);
76
0
    }
77
78
0
    if (by_residual) {
79
0
        precompute_table();
80
0
    }
81
0
}
82
83
0
idx_t IndexIVFPQ::train_encoder_num_vectors() const {
84
0
    return pq.cp.max_points_per_centroid * pq.ksub;
85
0
}
86
87
/****************************************************************
88
 * IVFPQ as codec                                               */
89
90
/* produce a binary signature based on the residual vector */
91
0
void IndexIVFPQ::encode(idx_t key, const float* x, uint8_t* code) const {
92
0
    if (by_residual) {
93
0
        std::vector<float> residual_vec(d);
94
0
        quantizer->compute_residual(x, residual_vec.data(), key);
95
0
        pq.compute_code(residual_vec.data(), code);
96
0
    } else
97
0
        pq.compute_code(x, code);
98
0
}
99
100
void IndexIVFPQ::encode_multiple(
101
        size_t n,
102
        idx_t* keys,
103
        const float* x,
104
        uint8_t* xcodes,
105
0
        bool compute_keys) const {
106
0
    if (compute_keys)
107
0
        quantizer->assign(n, x, keys);
108
109
0
    encode_vectors(n, x, keys, xcodes);
110
0
}
111
112
void IndexIVFPQ::decode_multiple(
113
        size_t n,
114
        const idx_t* keys,
115
        const uint8_t* xcodes,
116
0
        float* x) const {
117
0
    pq.decode(xcodes, x, n);
118
0
    if (by_residual) {
119
0
        std::vector<float> centroid(d);
120
0
        for (size_t i = 0; i < n; i++) {
121
0
            quantizer->reconstruct(keys[i], centroid.data());
122
0
            float* xi = x + i * d;
123
0
            for (size_t j = 0; j < d; j++) {
124
0
                xi[j] += centroid[j];
125
0
            }
126
0
        }
127
0
    }
128
0
}
129
130
/****************************************************************
131
 * add                                                          */
132
133
void IndexIVFPQ::add_core(
134
        idx_t n,
135
        const float* x,
136
        const idx_t* xids,
137
        const idx_t* coarse_idx,
138
0
        void* inverted_list_context) {
139
0
    add_core_o(n, x, xids, nullptr, coarse_idx, inverted_list_context);
140
0
}
141
142
static std::unique_ptr<float[]> compute_residuals(
143
        const Index* quantizer,
144
        idx_t n,
145
        const float* x,
146
0
        const idx_t* list_nos) {
147
0
    size_t d = quantizer->d;
148
0
    std::unique_ptr<float[]> residuals(new float[n * d]);
149
    // TODO: parallelize?
150
0
    for (size_t i = 0; i < n; i++) {
151
0
        if (list_nos[i] < 0)
152
0
            memset(residuals.get() + i * d, 0, sizeof(float) * d);
153
0
        else
154
0
            quantizer->compute_residual(
155
0
                    x + i * d, residuals.get() + i * d, list_nos[i]);
156
0
    }
157
0
    return residuals;
158
0
}
159
160
void IndexIVFPQ::encode_vectors(
161
        idx_t n,
162
        const float* x,
163
        const idx_t* list_nos,
164
        uint8_t* codes,
165
0
        bool include_listnos) const {
166
0
    if (by_residual) {
167
0
        std::unique_ptr<float[]> to_encode =
168
0
                compute_residuals(quantizer, n, x, list_nos);
169
0
        pq.compute_codes(to_encode.get(), codes, n);
170
0
    } else {
171
0
        pq.compute_codes(x, codes, n);
172
0
    }
173
174
0
    if (include_listnos) {
175
0
        size_t coarse_size = coarse_code_size();
176
0
        for (idx_t i = n - 1; i >= 0; i--) {
177
0
            uint8_t* code = codes + i * (coarse_size + code_size);
178
0
            memmove(code + coarse_size, codes + i * code_size, code_size);
179
0
            encode_listno(list_nos[i], code);
180
0
        }
181
0
    }
182
0
}
183
184
0
void IndexIVFPQ::sa_decode(idx_t n, const uint8_t* codes, float* x) const {
185
0
    size_t coarse_size = coarse_code_size();
186
187
0
#pragma omp parallel
188
0
    {
189
0
        std::vector<float> residual(d);
190
191
0
#pragma omp for
192
0
        for (idx_t i = 0; i < n; i++) {
193
0
            const uint8_t* code = codes + i * (code_size + coarse_size);
194
0
            int64_t list_no = decode_listno(code);
195
0
            float* xi = x + i * d;
196
0
            pq.decode(code + coarse_size, xi);
197
0
            if (by_residual) {
198
0
                quantizer->reconstruct(list_no, residual.data());
199
0
                for (size_t j = 0; j < d; j++) {
200
0
                    xi[j] += residual[j];
201
0
                }
202
0
            }
203
0
        }
204
0
    }
205
0
}
206
207
// block size used in IndexIVFPQ::add_core_o
208
int index_ivfpq_add_core_o_bs = 32768;
209
210
void IndexIVFPQ::add_core_o(
211
        idx_t n,
212
        const float* x,
213
        const idx_t* xids,
214
        float* residuals_2,
215
        const idx_t* precomputed_idx,
216
0
        void* inverted_list_context) {
217
0
    idx_t bs = index_ivfpq_add_core_o_bs;
218
0
    if (n > bs) {
219
0
        for (idx_t i0 = 0; i0 < n; i0 += bs) {
220
0
            idx_t i1 = std::min(i0 + bs, n);
221
0
            if (verbose) {
222
0
                printf("IndexIVFPQ::add_core_o: adding %" PRId64 ":%" PRId64
223
0
                       " / %" PRId64 "\n",
224
0
                       i0,
225
0
                       i1,
226
0
                       n);
227
0
            }
228
0
            add_core_o(
229
0
                    i1 - i0,
230
0
                    x + i0 * d,
231
0
                    xids ? xids + i0 : nullptr,
232
0
                    residuals_2 ? residuals_2 + i0 * d : nullptr,
233
0
                    precomputed_idx ? precomputed_idx + i0 : nullptr,
234
0
                    inverted_list_context);
235
0
        }
236
0
        return;
237
0
    }
238
239
0
    InterruptCallback::check();
240
241
0
    direct_map.check_can_add(xids);
242
243
0
    FAISS_THROW_IF_NOT(is_trained);
244
0
    double t0 = getmillisecs();
245
0
    const idx_t* idx;
246
0
    std::unique_ptr<idx_t[]> del_idx;
247
248
0
    if (precomputed_idx) {
249
0
        idx = precomputed_idx;
250
0
    } else {
251
0
        idx_t* idx0 = new idx_t[n];
252
0
        del_idx.reset(idx0);
253
0
        quantizer->assign(n, x, idx0);
254
0
        idx = idx0;
255
0
    }
256
257
0
    double t1 = getmillisecs();
258
0
    std::unique_ptr<uint8_t[]> xcodes(new uint8_t[n * code_size]);
259
260
0
    const float* to_encode = nullptr;
261
0
    std::unique_ptr<const float[]> del_to_encode;
262
263
0
    if (by_residual) {
264
0
        del_to_encode = compute_residuals(quantizer, n, x, idx);
265
0
        to_encode = del_to_encode.get();
266
0
    } else {
267
0
        to_encode = x;
268
0
    }
269
0
    pq.compute_codes(to_encode, xcodes.get(), n);
270
271
0
    double t2 = getmillisecs();
272
    // TODO: parallelize?
273
0
    size_t n_ignore = 0;
274
0
    for (size_t i = 0; i < n; i++) {
275
0
        idx_t key = idx[i];
276
0
        idx_t id = xids ? xids[i] : ntotal + i;
277
0
        if (key < 0) {
278
0
            direct_map.add_single_id(id, -1, 0);
279
0
            n_ignore++;
280
0
            if (residuals_2)
281
0
                memset(residuals_2, 0, sizeof(*residuals_2) * d);
282
0
            continue;
283
0
        }
284
285
0
        uint8_t* code = xcodes.get() + i * code_size;
286
0
        size_t offset =
287
0
                invlists->add_entry(key, id, code, inverted_list_context);
288
289
0
        if (residuals_2) {
290
0
            float* res2 = residuals_2 + i * d;
291
0
            const float* xi = to_encode + i * d;
292
0
            pq.decode(code, res2);
293
0
            for (int j = 0; j < d; j++)
294
0
                res2[j] = xi[j] - res2[j];
295
0
        }
296
297
0
        direct_map.add_single_id(id, key, offset);
298
0
    }
299
300
0
    double t3 = getmillisecs();
301
0
    if (verbose) {
302
0
        char comment[100] = {0};
303
0
        if (n_ignore > 0)
304
0
            snprintf(comment, 100, "(%zd vectors ignored)", n_ignore);
305
0
        printf(" add_core times: %.3f %.3f %.3f %s\n",
306
0
               t1 - t0,
307
0
               t2 - t1,
308
0
               t3 - t2,
309
0
               comment);
310
0
    }
311
0
    ntotal += n;
312
0
}
313
314
void IndexIVFPQ::reconstruct_from_offset(
315
        int64_t list_no,
316
        int64_t offset,
317
0
        float* recons) const {
318
0
    const uint8_t* code = invlists->get_single_code(list_no, offset);
319
320
0
    pq.decode(code, recons);
321
0
    if (by_residual) {
322
0
        std::vector<float> centroid(d);
323
0
        quantizer->reconstruct(list_no, centroid.data());
324
325
0
        for (int i = 0; i < d; ++i) {
326
0
            recons[i] += centroid[i];
327
0
        }
328
0
    }
329
0
}
330
331
/// 2G by default, accommodates tables up to PQ32 w/ 65536 centroids
332
size_t precomputed_table_max_bytes = ((size_t)1) << 31;
333
334
/** Precomputed tables for residuals
335
 *
336
 * During IVFPQ search with by_residual, we compute
337
 *
338
 *     d = || x - y_C - y_R ||^2
339
 *
340
 * where x is the query vector, y_C the coarse centroid, y_R the
341
 * refined PQ centroid. The expression can be decomposed as:
342
 *
343
 *    d = || x - y_C ||^2 + || y_R ||^2 + 2 * (y_C|y_R) - 2 * (x|y_R)
344
 *        ---------------   ---------------------------       -------
345
 *             term 1                 term 2                   term 3
346
 *
347
 * When using multiprobe, we use the following decomposition:
348
 * - term 1 is the distance to the coarse centroid, that is computed
349
 *   during the 1st stage search.
350
 * - term 2 can be precomputed, as it does not involve x. However,
351
 *   because of the PQ, it needs nlist * M * ksub storage. This is why
352
 *   use_precomputed_table is off by default
353
 * - term 3 is the classical non-residual distance table.
354
 *
355
 * Since y_R defined by a product quantizer, it is split across
356
 * subvectors and stored separately for each subvector. If the coarse
357
 * quantizer is a MultiIndexQuantizer then the table can be stored
358
 * more compactly.
359
 *
360
 * At search time, the tables for term 2 and term 3 are added up. This
361
 * is faster when the length of the lists is > ksub * M.
362
 */
363
364
void initialize_IVFPQ_precomputed_table(
365
        int& use_precomputed_table,
366
        const Index* quantizer,
367
        const ProductQuantizer& pq,
368
        AlignedTable<float>& precomputed_table,
369
        bool by_residual,
370
0
        bool verbose) {
371
0
    size_t nlist = quantizer->ntotal;
372
0
    size_t d = quantizer->d;
373
0
    FAISS_THROW_IF_NOT(d == pq.d);
374
375
0
    if (use_precomputed_table == -1) {
376
0
        precomputed_table.resize(0);
377
0
        return;
378
0
    }
379
380
0
    if (use_precomputed_table == 0) { // then choose the type of table
381
0
        if (!(quantizer->metric_type == METRIC_L2 && by_residual)) {
382
0
            if (verbose) {
383
0
                printf("IndexIVFPQ::precompute_table: precomputed "
384
0
                       "tables needed only for L2 metric and by_residual is enabled\n");
385
0
            }
386
0
            precomputed_table.resize(0);
387
0
            return;
388
0
        }
389
0
        const MultiIndexQuantizer* miq =
390
0
                dynamic_cast<const MultiIndexQuantizer*>(quantizer);
391
0
        if (miq && pq.M % miq->pq.M == 0)
392
0
            use_precomputed_table = 2;
393
0
        else {
394
0
            size_t table_size = pq.M * pq.ksub * nlist * sizeof(float);
395
0
            if (table_size > precomputed_table_max_bytes) {
396
0
                if (verbose) {
397
0
                    printf("IndexIVFPQ::precompute_table: not precomputing table, "
398
0
                           "it would be too big: %zd bytes (max %zd)\n",
399
0
                           table_size,
400
0
                           precomputed_table_max_bytes);
401
0
                    use_precomputed_table = 0;
402
0
                }
403
0
                return;
404
0
            }
405
0
            use_precomputed_table = 1;
406
0
        }
407
0
    } // otherwise assume user has set appropriate flag on input
408
409
0
    if (verbose) {
410
0
        printf("precomputing IVFPQ tables type %d\n", use_precomputed_table);
411
0
    }
412
413
    // squared norms of the PQ centroids
414
0
    std::vector<float> r_norms(pq.M * pq.ksub, NAN);
415
0
    for (int m = 0; m < pq.M; m++)
416
0
        for (int j = 0; j < pq.ksub; j++)
417
0
            r_norms[m * pq.ksub + j] =
418
0
                    fvec_norm_L2sqr(pq.get_centroids(m, j), pq.dsub);
419
420
0
    if (use_precomputed_table == 1) {
421
0
        precomputed_table.resize(nlist * pq.M * pq.ksub);
422
0
        std::vector<float> centroid(d);
423
424
0
        for (size_t i = 0; i < nlist; i++) {
425
0
            quantizer->reconstruct(i, centroid.data());
426
427
0
            float* tab = &precomputed_table[i * pq.M * pq.ksub];
428
0
            pq.compute_inner_prod_table(centroid.data(), tab);
429
0
            fvec_madd(pq.M * pq.ksub, r_norms.data(), 2.0, tab, tab);
430
0
        }
431
0
    } else if (use_precomputed_table == 2) {
432
0
        const MultiIndexQuantizer* miq =
433
0
                dynamic_cast<const MultiIndexQuantizer*>(quantizer);
434
0
        FAISS_THROW_IF_NOT(miq);
435
0
        const ProductQuantizer& cpq = miq->pq;
436
0
        FAISS_THROW_IF_NOT(pq.M % cpq.M == 0);
437
438
0
        precomputed_table.resize(cpq.ksub * pq.M * pq.ksub);
439
440
        // reorder PQ centroid table
441
0
        std::vector<float> centroids(d * cpq.ksub, NAN);
442
443
0
        for (int m = 0; m < cpq.M; m++) {
444
0
            for (size_t i = 0; i < cpq.ksub; i++) {
445
0
                memcpy(centroids.data() + i * d + m * cpq.dsub,
446
0
                       cpq.get_centroids(m, i),
447
0
                       sizeof(*centroids.data()) * cpq.dsub);
448
0
            }
449
0
        }
450
451
0
        pq.compute_inner_prod_tables(
452
0
                cpq.ksub, centroids.data(), precomputed_table.data());
453
454
0
        for (size_t i = 0; i < cpq.ksub; i++) {
455
0
            float* tab = &precomputed_table[i * pq.M * pq.ksub];
456
0
            fvec_madd(pq.M * pq.ksub, r_norms.data(), 2.0, tab, tab);
457
0
        }
458
0
    }
459
0
}
460
461
0
void IndexIVFPQ::precompute_table() {
462
0
    initialize_IVFPQ_precomputed_table(
463
0
            use_precomputed_table,
464
0
            quantizer,
465
0
            pq,
466
0
            precomputed_table,
467
0
            by_residual,
468
0
            verbose);
469
0
}
470
471
namespace {
472
473
0
#define TIC t0 = get_cycles()
474
0
#define TOC get_cycles() - t0
475
476
/** QueryTables manages the various ways of searching an
477
 * IndexIVFPQ. The code contains a lot of branches, depending on:
478
 * - metric_type: are we computing L2 or Inner product similarity?
479
 * - by_residual: do we encode raw vectors or residuals?
480
 * - use_precomputed_table: are x_R|x_C tables precomputed?
481
 * - polysemous_ht: are we filtering with polysemous codes?
482
 */
483
struct QueryTables {
484
    /*****************************************************
485
     * General data from the IVFPQ
486
     *****************************************************/
487
488
    const IndexIVFPQ& ivfpq;
489
    const IVFSearchParameters* params;
490
491
    // copied from IndexIVFPQ for easier access
492
    int d;
493
    const ProductQuantizer& pq;
494
    MetricType metric_type;
495
    bool by_residual;
496
    int use_precomputed_table;
497
    int polysemous_ht;
498
499
    // pre-allocated data buffers
500
    float *sim_table, *sim_table_2;
501
    float *residual_vec, *decoded_vec;
502
503
    // single data buffer
504
    std::vector<float> mem;
505
506
    // for table pointers
507
    std::vector<const float*> sim_table_ptrs;
508
509
    explicit QueryTables(
510
            const IndexIVFPQ& ivfpq,
511
            const IVFSearchParameters* params)
512
0
            : ivfpq(ivfpq),
513
0
              d(ivfpq.d),
514
0
              pq(ivfpq.pq),
515
0
              metric_type(ivfpq.metric_type),
516
0
              by_residual(ivfpq.by_residual),
517
0
              use_precomputed_table(ivfpq.use_precomputed_table) {
518
0
        mem.resize(pq.ksub * pq.M * 2 + d * 2);
519
0
        sim_table = mem.data();
520
0
        sim_table_2 = sim_table + pq.ksub * pq.M;
521
0
        residual_vec = sim_table_2 + pq.ksub * pq.M;
522
0
        decoded_vec = residual_vec + d;
523
524
        // for polysemous
525
0
        polysemous_ht = ivfpq.polysemous_ht;
526
0
        if (auto ivfpq_params =
527
0
                    dynamic_cast<const IVFPQSearchParameters*>(params)) {
528
0
            polysemous_ht = ivfpq_params->polysemous_ht;
529
0
        }
530
0
        if (polysemous_ht != 0) {
531
0
            q_code.resize(pq.code_size);
532
0
        }
533
0
        init_list_cycles = 0;
534
0
        sim_table_ptrs.resize(pq.M);
535
0
    }
536
537
    /*****************************************************
538
     * What we do when query is known
539
     *****************************************************/
540
541
    // field specific to query
542
    const float* qi;
543
544
    // query-specific initialization
545
0
    void init_query(const float* qi) {
546
0
        this->qi = qi;
547
0
        if (metric_type == METRIC_INNER_PRODUCT)
548
0
            init_query_IP();
549
0
        else
550
0
            init_query_L2();
551
0
        if (!by_residual && polysemous_ht != 0)
552
0
            pq.compute_code(qi, q_code.data());
553
0
    }
554
555
0
    void init_query_IP() {
556
        // precompute some tables specific to the query qi
557
0
        pq.compute_inner_prod_table(qi, sim_table);
558
0
    }
559
560
0
    void init_query_L2() {
561
0
        if (!by_residual) {
562
0
            pq.compute_distance_table(qi, sim_table);
563
0
        } else if (use_precomputed_table) {
564
0
            pq.compute_inner_prod_table(qi, sim_table_2);
565
0
        }
566
0
    }
567
568
    /*****************************************************
569
     * When inverted list is known: prepare computations
570
     *****************************************************/
571
572
    // fields specific to list
573
    idx_t key;
574
    float coarse_dis;
575
    std::vector<uint8_t> q_code;
576
577
    uint64_t init_list_cycles;
578
579
    /// once we know the query and the centroid, we can prepare the
580
    /// sim_table that will be used for accumulation
581
    /// and dis0, the initial value
582
0
    float precompute_list_tables() {
583
0
        float dis0 = 0;
584
0
        uint64_t t0;
585
0
        TIC;
586
0
        if (by_residual) {
587
0
            if (metric_type == METRIC_INNER_PRODUCT)
588
0
                dis0 = precompute_list_tables_IP();
589
0
            else
590
0
                dis0 = precompute_list_tables_L2();
591
0
        }
592
0
        init_list_cycles += TOC;
593
0
        return dis0;
594
0
    }
595
596
0
    float precompute_list_table_pointers() {
597
0
        float dis0 = 0;
598
0
        uint64_t t0;
599
0
        TIC;
600
0
        if (by_residual) {
601
0
            if (metric_type == METRIC_INNER_PRODUCT)
602
0
                FAISS_THROW_MSG("not implemented");
603
0
            else
604
0
                dis0 = precompute_list_table_pointers_L2();
605
0
        }
606
0
        init_list_cycles += TOC;
607
0
        return dis0;
608
0
    }
609
610
    /*****************************************************
611
     * compute tables for inner prod
612
     *****************************************************/
613
614
0
    float precompute_list_tables_IP() {
615
        // prepare the sim_table that will be used for accumulation
616
        // and dis0, the initial value
617
0
        ivfpq.quantizer->reconstruct(key, decoded_vec);
618
        // decoded_vec = centroid
619
0
        float dis0 = fvec_inner_product(qi, decoded_vec, d);
620
621
0
        if (polysemous_ht) {
622
0
            for (int i = 0; i < d; i++) {
623
0
                residual_vec[i] = qi[i] - decoded_vec[i];
624
0
            }
625
0
            pq.compute_code(residual_vec, q_code.data());
626
0
        }
627
0
        return dis0;
628
0
    }
629
630
    /*****************************************************
631
     * compute tables for L2 distance
632
     *****************************************************/
633
634
0
    float precompute_list_tables_L2() {
635
0
        float dis0 = 0;
636
637
0
        if (use_precomputed_table == 0 || use_precomputed_table == -1) {
638
0
            ivfpq.quantizer->compute_residual(qi, residual_vec, key);
639
0
            pq.compute_distance_table(residual_vec, sim_table);
640
641
0
            if (polysemous_ht != 0) {
642
0
                pq.compute_code(residual_vec, q_code.data());
643
0
            }
644
645
0
        } else if (use_precomputed_table == 1) {
646
0
            dis0 = coarse_dis;
647
648
0
            fvec_madd(
649
0
                    pq.M * pq.ksub,
650
0
                    ivfpq.precomputed_table.data() + key * pq.ksub * pq.M,
651
0
                    -2.0,
652
0
                    sim_table_2,
653
0
                    sim_table);
654
655
0
            if (polysemous_ht != 0) {
656
0
                ivfpq.quantizer->compute_residual(qi, residual_vec, key);
657
0
                pq.compute_code(residual_vec, q_code.data());
658
0
            }
659
660
0
        } else if (use_precomputed_table == 2) {
661
0
            dis0 = coarse_dis;
662
663
0
            const MultiIndexQuantizer* miq =
664
0
                    dynamic_cast<const MultiIndexQuantizer*>(ivfpq.quantizer);
665
0
            FAISS_THROW_IF_NOT(miq);
666
0
            const ProductQuantizer& cpq = miq->pq;
667
0
            int Mf = pq.M / cpq.M;
668
669
0
            const float* qtab = sim_table_2; // query-specific table
670
0
            float* ltab = sim_table;         // (output) list-specific table
671
672
0
            long k = key;
673
0
            for (int cm = 0; cm < cpq.M; cm++) {
674
                // compute PQ index
675
0
                int ki = k & ((uint64_t(1) << cpq.nbits) - 1);
676
0
                k >>= cpq.nbits;
677
678
                // get corresponding table
679
0
                const float* pc = ivfpq.precomputed_table.data() +
680
0
                        (ki * pq.M + cm * Mf) * pq.ksub;
681
682
0
                if (polysemous_ht == 0) {
683
                    // sum up with query-specific table
684
0
                    fvec_madd(Mf * pq.ksub, pc, -2.0, qtab, ltab);
685
0
                    ltab += Mf * pq.ksub;
686
0
                    qtab += Mf * pq.ksub;
687
0
                } else {
688
0
                    for (int m = cm * Mf; m < (cm + 1) * Mf; m++) {
689
0
                        q_code[m] = fvec_madd_and_argmin(
690
0
                                pq.ksub, pc, -2, qtab, ltab);
691
0
                        pc += pq.ksub;
692
0
                        ltab += pq.ksub;
693
0
                        qtab += pq.ksub;
694
0
                    }
695
0
                }
696
0
            }
697
0
        }
698
699
0
        return dis0;
700
0
    }
701
702
0
    float precompute_list_table_pointers_L2() {
703
0
        float dis0 = 0;
704
705
0
        if (use_precomputed_table == 1) {
706
0
            dis0 = coarse_dis;
707
708
0
            const float* s =
709
0
                    ivfpq.precomputed_table.data() + key * pq.ksub * pq.M;
710
0
            for (int m = 0; m < pq.M; m++) {
711
0
                sim_table_ptrs[m] = s;
712
0
                s += pq.ksub;
713
0
            }
714
0
        } else if (use_precomputed_table == 2) {
715
0
            dis0 = coarse_dis;
716
717
0
            const MultiIndexQuantizer* miq =
718
0
                    dynamic_cast<const MultiIndexQuantizer*>(ivfpq.quantizer);
719
0
            FAISS_THROW_IF_NOT(miq);
720
0
            const ProductQuantizer& cpq = miq->pq;
721
0
            int Mf = pq.M / cpq.M;
722
723
0
            long k = key;
724
0
            int m0 = 0;
725
0
            for (int cm = 0; cm < cpq.M; cm++) {
726
0
                int ki = k & ((uint64_t(1) << cpq.nbits) - 1);
727
0
                k >>= cpq.nbits;
728
729
0
                const float* pc = ivfpq.precomputed_table.data() +
730
0
                        (ki * pq.M + cm * Mf) * pq.ksub;
731
732
0
                for (int m = m0; m < m0 + Mf; m++) {
733
0
                    sim_table_ptrs[m] = pc;
734
0
                    pc += pq.ksub;
735
0
                }
736
0
                m0 += Mf;
737
0
            }
738
0
        } else {
739
0
            FAISS_THROW_MSG("need precomputed tables");
740
0
        }
741
742
0
        if (polysemous_ht) {
743
0
            FAISS_THROW_MSG("not implemented");
744
            // Not clear that it makes sense to implemente this,
745
            // because it costs M * ksub, which is what we wanted to
746
            // avoid with the tables pointers.
747
0
        }
748
749
0
        return dis0;
750
0
    }
751
};
752
753
// This way of handling the selector is not optimal since all distances
754
// are computed even if the id would filter it out.
755
template <class C, bool use_sel>
756
struct KnnSearchResults {
757
    idx_t key;
758
    const idx_t* ids;
759
    const IDSelector* sel;
760
761
    // heap params
762
    size_t k;
763
    float* heap_sim;
764
    idx_t* heap_ids;
765
766
    size_t nup;
767
768
0
    inline bool skip_entry(idx_t j) {
769
0
        return use_sel && !sel->is_member(ids[j]);
770
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_116KnnSearchResultsINS_4CMinIflEELb1EE10skip_entryEl
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_116KnnSearchResultsINS_4CMaxIflEELb1EE10skip_entryEl
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_116KnnSearchResultsINS_4CMinIflEELb0EE10skip_entryEl
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_116KnnSearchResultsINS_4CMaxIflEELb0EE10skip_entryEl
771
772
0
    inline void add(idx_t j, float dis) {
773
0
        if (C::cmp(heap_sim[0], dis)) {
774
0
            idx_t id = ids ? ids[j] : lo_build(key, j);
775
0
            heap_replace_top<C>(k, heap_sim, heap_ids, dis, id);
776
0
            nup++;
777
0
        }
778
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_116KnnSearchResultsINS_4CMinIflEELb1EE3addElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_116KnnSearchResultsINS_4CMaxIflEELb1EE3addElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_116KnnSearchResultsINS_4CMinIflEELb0EE3addElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_116KnnSearchResultsINS_4CMaxIflEELb0EE3addElf
779
};
780
781
template <class C, bool use_sel>
782
struct RangeSearchResults {
783
    idx_t key;
784
    const idx_t* ids;
785
    const IDSelector* sel;
786
787
    // wrapped result structure
788
    float radius;
789
    RangeQueryResult& rres;
790
791
0
    inline bool skip_entry(idx_t j) {
792
0
        return use_sel && !sel->is_member(ids[j]);
793
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_118RangeSearchResultsINS_4CMinIflEELb1EE10skip_entryEl
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_118RangeSearchResultsINS_4CMaxIflEELb1EE10skip_entryEl
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_118RangeSearchResultsINS_4CMinIflEELb0EE10skip_entryEl
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_118RangeSearchResultsINS_4CMaxIflEELb0EE10skip_entryEl
794
795
0
    inline void add(idx_t j, float dis) {
796
0
        if (C::cmp(radius, dis)) {
797
0
            idx_t id = ids ? ids[j] : lo_build(key, j);
798
0
            rres.add(dis, id);
799
0
        }
800
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_118RangeSearchResultsINS_4CMinIflEELb1EE3addElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_118RangeSearchResultsINS_4CMaxIflEELb1EE3addElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_118RangeSearchResultsINS_4CMinIflEELb0EE3addElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_118RangeSearchResultsINS_4CMaxIflEELb0EE3addElf
801
};
802
803
/*****************************************************
804
 * Scaning the codes.
805
 * The scanning functions call their favorite precompute_*
806
 * function to precompute the tables they need.
807
 *****************************************************/
808
template <typename IDType, MetricType METRIC_TYPE, class PQDecoder>
809
struct IVFPQScannerT : QueryTables {
810
    const uint8_t* list_codes;
811
    const IDType* list_ids;
812
    size_t list_size;
813
814
    IVFPQScannerT(const IndexIVFPQ& ivfpq, const IVFSearchParameters* params)
815
0
            : QueryTables(ivfpq, params) {
816
0
        assert(METRIC_TYPE == metric_type);
817
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EEC2ERKNS_10IndexIVFPQEPKNS_19SearchParametersIVFE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EEC2ERKNS_10IndexIVFPQEPKNS_19SearchParametersIVFE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EEC2ERKNS_10IndexIVFPQEPKNS_19SearchParametersIVFE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EEC2ERKNS_10IndexIVFPQEPKNS_19SearchParametersIVFE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEEC2ERKNS_10IndexIVFPQEPKNS_19SearchParametersIVFE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEEC2ERKNS_10IndexIVFPQEPKNS_19SearchParametersIVFE
818
819
    float dis0;
820
821
0
    void init_list(idx_t list_no, float coarse_dis, int mode) {
822
0
        this->key = list_no;
823
0
        this->coarse_dis = coarse_dis;
824
825
0
        if (mode == 2) {
826
0
            dis0 = precompute_list_tables();
827
0
        } else if (mode == 1) {
828
0
            dis0 = precompute_list_table_pointers();
829
0
        }
830
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE9init_listElfi
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE9init_listElfi
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE9init_listElfi
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE9init_listElfi
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE9init_listElfi
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE9init_listElfi
831
832
    /*****************************************************
833
     * Scaning the codes: simple PQ scan.
834
     *****************************************************/
835
836
    // This is the baseline version of scan_list_with_tables().
837
    // It demonstrates what this function actually does.
838
    //
839
    // /// version of the scan where we use precomputed tables.
840
    // template <class SearchResultType>
841
    // void scan_list_with_table(
842
    //         size_t ncode,
843
    //         const uint8_t* codes,
844
    //         SearchResultType& res) const {
845
    //
846
    //     for (size_t j = 0; j < ncode; j++, codes += pq.code_size) {
847
    //         if (res.skip_entry(j)) {
848
    //             continue;
849
    //         }
850
    //         float dis = dis0 + distance_single_code<PQDecoder>(
851
    //             pq, sim_table, codes);
852
    //         res.add(j, dis);
853
    //     }
854
    // }
855
856
    // This is the modified version of scan_list_with_tables().
857
    // It was observed that doing manual unrolling of the loop that
858
    //    utilizes distance_single_code() speeds up the computations.
859
860
    /// version of the scan where we use precomputed tables.
861
    template <class SearchResultType>
862
    void scan_list_with_table(
863
            size_t ncode,
864
            const uint8_t* codes,
865
0
            SearchResultType& res) const {
866
0
        int counter = 0;
867
868
0
        size_t saved_j[4] = {0, 0, 0, 0};
869
0
        for (size_t j = 0; j < ncode; j++) {
870
0
            if (res.skip_entry(j)) {
871
0
                continue;
872
0
            }
873
874
0
            saved_j[0] = (counter == 0) ? j : saved_j[0];
875
0
            saved_j[1] = (counter == 1) ? j : saved_j[1];
876
0
            saved_j[2] = (counter == 2) ? j : saved_j[2];
877
0
            saved_j[3] = (counter == 3) ? j : saved_j[3];
878
879
0
            counter += 1;
880
0
            if (counter == 4) {
881
0
                float distance_0 = 0;
882
0
                float distance_1 = 0;
883
0
                float distance_2 = 0;
884
0
                float distance_3 = 0;
885
0
                distance_four_codes<PQDecoder>(
886
0
                        pq.M,
887
0
                        pq.nbits,
888
0
                        sim_table,
889
0
                        codes + saved_j[0] * pq.code_size,
890
0
                        codes + saved_j[1] * pq.code_size,
891
0
                        codes + saved_j[2] * pq.code_size,
892
0
                        codes + saved_j[3] * pq.code_size,
893
0
                        distance_0,
894
0
                        distance_1,
895
0
                        distance_2,
896
0
                        distance_3);
897
898
0
                res.add(saved_j[0], dis0 + distance_0);
899
0
                res.add(saved_j[1], dis0 + distance_1);
900
0
                res.add(saved_j[2], dis0 + distance_2);
901
0
                res.add(saved_j[3], dis0 + distance_3);
902
0
                counter = 0;
903
0
            }
904
0
        }
905
906
0
        if (counter >= 1) {
907
0
            float dis = dis0 +
908
0
                    distance_single_code<PQDecoder>(
909
0
                                pq.M,
910
0
                                pq.nbits,
911
0
                                sim_table,
912
0
                                codes + saved_j[0] * pq.code_size);
913
0
            res.add(saved_j[0], dis);
914
0
        }
915
0
        if (counter >= 2) {
916
0
            float dis = dis0 +
917
0
                    distance_single_code<PQDecoder>(
918
0
                                pq.M,
919
0
                                pq.nbits,
920
0
                                sim_table,
921
0
                                codes + saved_j[1] * pq.code_size);
922
0
            res.add(saved_j[1], dis);
923
0
        }
924
0
        if (counter >= 3) {
925
0
            float dis = dis0 +
926
0
                    distance_single_code<PQDecoder>(
927
0
                                pq.M,
928
0
                                pq.nbits,
929
0
                                sim_table,
930
0
                                codes + saved_j[2] * pq.code_size);
931
0
            res.add(saved_j[2], dis);
932
0
        }
933
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE20scan_list_with_tableINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE20scan_list_with_tableINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE20scan_list_with_tableINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE20scan_list_with_tableINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE20scan_list_with_tableINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE20scan_list_with_tableINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE20scan_list_with_tableINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE20scan_list_with_tableINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE20scan_list_with_tableINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE20scan_list_with_tableINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE20scan_list_with_tableINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE20scan_list_with_tableINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE20scan_list_with_tableINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE20scan_list_with_tableINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE20scan_list_with_tableINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE20scan_list_with_tableINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE20scan_list_with_tableINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE20scan_list_with_tableINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE20scan_list_with_tableINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE20scan_list_with_tableINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE20scan_list_with_tableINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE20scan_list_with_tableINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE20scan_list_with_tableINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE20scan_list_with_tableINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
934
935
    /// tables are not precomputed, but pointers are provided to the
936
    /// relevant X_c|x_r tables
937
    template <class SearchResultType>
938
    void scan_list_with_pointer(
939
            size_t ncode,
940
            const uint8_t* codes,
941
0
            SearchResultType& res) const {
942
0
        for (size_t j = 0; j < ncode; j++, codes += pq.code_size) {
943
0
            if (res.skip_entry(j)) {
944
0
                continue;
945
0
            }
946
0
            PQDecoder decoder(codes, pq.nbits);
947
0
            float dis = dis0;
948
0
            const float* tab = sim_table_2;
949
950
0
            for (size_t m = 0; m < pq.M; m++) {
951
0
                int ci = decoder.decode();
952
0
                dis += sim_table_ptrs[m][ci] - 2 * tab[ci];
953
0
                tab += pq.ksub;
954
0
            }
955
0
            res.add(j, dis);
956
0
        }
957
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE22scan_list_with_pointerINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE22scan_list_with_pointerINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE22scan_list_with_pointerINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE22scan_list_with_pointerINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE22scan_list_with_pointerINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE22scan_list_with_pointerINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE22scan_list_with_pointerINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE22scan_list_with_pointerINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE22scan_list_with_pointerINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE22scan_list_with_pointerINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE22scan_list_with_pointerINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE22scan_list_with_pointerINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE22scan_list_with_pointerINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE22scan_list_with_pointerINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE22scan_list_with_pointerINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE22scan_list_with_pointerINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE22scan_list_with_pointerINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE22scan_list_with_pointerINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE22scan_list_with_pointerINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE22scan_list_with_pointerINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE22scan_list_with_pointerINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE22scan_list_with_pointerINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE22scan_list_with_pointerINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE22scan_list_with_pointerINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
958
959
    /// nothing is precomputed: access residuals on-the-fly
960
    template <class SearchResultType>
961
    void scan_on_the_fly_dist(
962
            size_t ncode,
963
            const uint8_t* codes,
964
0
            SearchResultType& res) const {
965
0
        const float* dvec;
966
0
        float dis0 = 0;
967
0
        if (by_residual) {
968
0
            if (METRIC_TYPE == METRIC_INNER_PRODUCT) {
969
0
                ivfpq.quantizer->reconstruct(key, residual_vec);
970
0
                dis0 = fvec_inner_product(residual_vec, qi, d);
971
0
            } else {
972
0
                ivfpq.quantizer->compute_residual(qi, residual_vec, key);
973
0
            }
974
0
            dvec = residual_vec;
975
0
        } else {
976
0
            dvec = qi;
977
0
            dis0 = 0;
978
0
        }
979
980
0
        for (size_t j = 0; j < ncode; j++, codes += pq.code_size) {
981
0
            if (res.skip_entry(j)) {
982
0
                continue;
983
0
            }
984
0
            pq.decode(codes, decoded_vec);
985
986
0
            float dis;
987
0
            if (METRIC_TYPE == METRIC_INNER_PRODUCT) {
988
0
                dis = dis0 + fvec_inner_product(decoded_vec, qi, d);
989
0
            } else {
990
0
                dis = fvec_L2sqr(decoded_vec, dvec, d);
991
0
            }
992
0
            res.add(j, dis);
993
0
        }
994
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE20scan_on_the_fly_distINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE20scan_on_the_fly_distINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE20scan_on_the_fly_distINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE20scan_on_the_fly_distINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE20scan_on_the_fly_distINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE20scan_on_the_fly_distINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE20scan_on_the_fly_distINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE20scan_on_the_fly_distINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE20scan_on_the_fly_distINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE20scan_on_the_fly_distINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE20scan_on_the_fly_distINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE20scan_on_the_fly_distINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE20scan_on_the_fly_distINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE20scan_on_the_fly_distINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE20scan_on_the_fly_distINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE20scan_on_the_fly_distINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE20scan_on_the_fly_distINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE20scan_on_the_fly_distINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE20scan_on_the_fly_distINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE20scan_on_the_fly_distINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE20scan_on_the_fly_distINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE20scan_on_the_fly_distINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE20scan_on_the_fly_distINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE20scan_on_the_fly_distINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
995
996
    /*****************************************************
997
     * Scanning codes with polysemous filtering
998
     *****************************************************/
999
1000
    // This is the baseline version of scan_list_polysemous_hc().
1001
    // It demonstrates what this function actually does.
1002
1003
    //     template <class HammingComputer, class SearchResultType>
1004
    //     void scan_list_polysemous_hc(
1005
    //             size_t ncode,
1006
    //             const uint8_t* codes,
1007
    //             SearchResultType& res) const {
1008
    //         int ht = ivfpq.polysemous_ht;
1009
    //         size_t n_hamming_pass = 0, nup = 0;
1010
    //
1011
    //         int code_size = pq.code_size;
1012
    //
1013
    //         HammingComputer hc(q_code.data(), code_size);
1014
    //
1015
    //         for (size_t j = 0; j < ncode; j++, codes += code_size) {
1016
    //             if (res.skip_entry(j)) {
1017
    //                 continue;
1018
    //             }
1019
    //             const uint8_t* b_code = codes;
1020
    //             int hd = hc.hamming(b_code);
1021
    //             if (hd < ht) {
1022
    //                 n_hamming_pass++;
1023
    //
1024
    //                 float dis =
1025
    //                         dis0 +
1026
    //                         distance_single_code<PQDecoder>(
1027
    //                             pq, sim_table, codes);
1028
    //
1029
    //                 res.add(j, dis);
1030
    //             }
1031
    //         }
1032
    // #pragma omp critical
1033
    //         { indexIVFPQ_stats.n_hamming_pass += n_hamming_pass; }
1034
    //     }
1035
1036
    // This is the modified version of scan_list_with_tables().
1037
    // It was observed that doing manual unrolling of the loop that
1038
    //    utilizes distance_single_code() speeds up the computations.
1039
1040
    template <class HammingComputer, class SearchResultType>
1041
    void scan_list_polysemous_hc(
1042
            size_t ncode,
1043
            const uint8_t* codes,
1044
0
            SearchResultType& res) const {
1045
0
        int ht = ivfpq.polysemous_ht;
1046
0
        size_t n_hamming_pass = 0;
1047
1048
0
        int code_size = pq.code_size;
1049
1050
0
        size_t saved_j[8];
1051
0
        int counter = 0;
1052
1053
0
        HammingComputer hc(q_code.data(), code_size);
1054
1055
0
        for (size_t j = 0; j < (ncode / 4) * 4; j += 4) {
1056
0
            const uint8_t* b_code = codes + j * code_size;
1057
1058
            // Unrolling is a key. Basically, doing multiple popcount
1059
            // operations one after another speeds things up.
1060
1061
            // 9999999 is just an arbitrary large number
1062
0
            int hd0 = (res.skip_entry(j + 0))
1063
0
                    ? 99999999
1064
0
                    : hc.hamming(b_code + 0 * code_size);
1065
0
            int hd1 = (res.skip_entry(j + 1))
1066
0
                    ? 99999999
1067
0
                    : hc.hamming(b_code + 1 * code_size);
1068
0
            int hd2 = (res.skip_entry(j + 2))
1069
0
                    ? 99999999
1070
0
                    : hc.hamming(b_code + 2 * code_size);
1071
0
            int hd3 = (res.skip_entry(j + 3))
1072
0
                    ? 99999999
1073
0
                    : hc.hamming(b_code + 3 * code_size);
1074
1075
0
            saved_j[counter] = j + 0;
1076
0
            counter = (hd0 < ht) ? (counter + 1) : counter;
1077
0
            saved_j[counter] = j + 1;
1078
0
            counter = (hd1 < ht) ? (counter + 1) : counter;
1079
0
            saved_j[counter] = j + 2;
1080
0
            counter = (hd2 < ht) ? (counter + 1) : counter;
1081
0
            saved_j[counter] = j + 3;
1082
0
            counter = (hd3 < ht) ? (counter + 1) : counter;
1083
1084
0
            if (counter >= 4) {
1085
                // process four codes at the same time
1086
0
                n_hamming_pass += 4;
1087
1088
0
                float distance_0 = dis0;
1089
0
                float distance_1 = dis0;
1090
0
                float distance_2 = dis0;
1091
0
                float distance_3 = dis0;
1092
0
                distance_four_codes<PQDecoder>(
1093
0
                        pq.M,
1094
0
                        pq.nbits,
1095
0
                        sim_table,
1096
0
                        codes + saved_j[0] * pq.code_size,
1097
0
                        codes + saved_j[1] * pq.code_size,
1098
0
                        codes + saved_j[2] * pq.code_size,
1099
0
                        codes + saved_j[3] * pq.code_size,
1100
0
                        distance_0,
1101
0
                        distance_1,
1102
0
                        distance_2,
1103
0
                        distance_3);
1104
1105
0
                res.add(saved_j[0], dis0 + distance_0);
1106
0
                res.add(saved_j[1], dis0 + distance_1);
1107
0
                res.add(saved_j[2], dis0 + distance_2);
1108
0
                res.add(saved_j[3], dis0 + distance_3);
1109
1110
                //
1111
0
                counter -= 4;
1112
0
                saved_j[0] = saved_j[4];
1113
0
                saved_j[1] = saved_j[5];
1114
0
                saved_j[2] = saved_j[6];
1115
0
                saved_j[3] = saved_j[7];
1116
0
            }
1117
0
        }
1118
1119
0
        for (size_t kk = 0; kk < counter; kk++) {
1120
0
            n_hamming_pass++;
1121
1122
0
            float dis = dis0 +
1123
0
                    distance_single_code<PQDecoder>(
1124
0
                                pq.M,
1125
0
                                pq.nbits,
1126
0
                                sim_table,
1127
0
                                codes + saved_j[kk] * pq.code_size);
1128
1129
0
            res.add(saved_j[kk], dis);
1130
0
        }
1131
1132
        // process leftovers
1133
0
        for (size_t j = (ncode / 4) * 4; j < ncode; j++) {
1134
0
            if (res.skip_entry(j)) {
1135
0
                continue;
1136
0
            }
1137
0
            const uint8_t* b_code = codes + j * code_size;
1138
0
            int hd = hc.hamming(b_code);
1139
0
            if (hd < ht) {
1140
0
                n_hamming_pass++;
1141
1142
0
                float dis = dis0 +
1143
0
                        distance_single_code<PQDecoder>(
1144
0
                                    pq.M,
1145
0
                                    pq.nbits,
1146
0
                                    sim_table,
1147
0
                                    codes + j * code_size);
1148
1149
0
                res.add(j, dis);
1150
0
            }
1151
0
        }
1152
1153
0
#pragma omp critical
1154
0
        { indexIVFPQ_stats.n_hamming_pass += n_hamming_pass; }
1155
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer4ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_16HammingComputer8ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer16ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer20ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer32ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_17HammingComputer64ENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE23scan_list_polysemous_hcINS_22HammingComputerDefaultENS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT0_
1156
1157
    template <class SearchResultType>
1158
    struct Run_scan_list_polysemous_hc {
1159
        using T = void;
1160
        template <class HammingComputer, class... Types>
1161
0
        void f(const IVFPQScannerT* scanner, Types... args) {
1162
0
            scanner->scan_list_polysemous_hc<HammingComputer, SearchResultType>(
1163
0
                    args...);
1164
0
        }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_16HammingComputer4EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_16HammingComputer8EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer16EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer20EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer32EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_17HammingComputer64EJmPKhS9_EEEvPKS4_DpT0_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE27Run_scan_list_polysemous_hcINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEE1fINS_22HammingComputerDefaultEJmPKhS9_EEEvPKS4_DpT0_
1165
    };
1166
1167
    template <class SearchResultType>
1168
    void scan_list_polysemous(
1169
            size_t ncode,
1170
            const uint8_t* codes,
1171
0
            SearchResultType& res) const {
1172
0
        Run_scan_list_polysemous_hc<SearchResultType> r;
1173
0
        dispatch_HammingComputer(pq.code_size, r, this, ncode, codes, res);
1174
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE20scan_list_polysemousINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE20scan_list_polysemousINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE20scan_list_polysemousINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE20scan_list_polysemousINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE20scan_list_polysemousINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE20scan_list_polysemousINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE20scan_list_polysemousINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE20scan_list_polysemousINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE20scan_list_polysemousINS0_16KnnSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE20scan_list_polysemousINS0_18RangeSearchResultsINS_4CMinIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE20scan_list_polysemousINS0_16KnnSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE20scan_list_polysemousINS0_18RangeSearchResultsINS_4CMaxIflEELb1EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE20scan_list_polysemousINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_10PQDecoder8EE20scan_list_polysemousINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE20scan_list_polysemousINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_10PQDecoder8EE20scan_list_polysemousINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE20scan_list_polysemousINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_11PQDecoder16EE20scan_list_polysemousINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE20scan_list_polysemousINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_11PQDecoder16EE20scan_list_polysemousINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE20scan_list_polysemousINS0_16KnnSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE0ENS_16PQDecoderGenericEE20scan_list_polysemousINS0_18RangeSearchResultsINS_4CMinIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE20scan_list_polysemousINS0_16KnnSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_113IVFPQScannerTIlLNS_10MetricTypeE1ENS_16PQDecoderGenericEE20scan_list_polysemousINS0_18RangeSearchResultsINS_4CMaxIflEELb0EEEEEvmPKhRT_
1175
};
1176
1177
/* We put as many parameters as possible in template. Hopefully the
1178
 * gain in runtime is worth the code bloat.
1179
 *
1180
 * C is the comparator < or >, it is directly related to METRIC_TYPE.
1181
 *
1182
 * precompute_mode is how much we precompute (2 = precompute distance tables,
1183
 * 1 = precompute pointers to distances, 0 = compute distances one by one).
1184
 * Currently only 2 is supported
1185
 *
1186
 * use_sel: store or ignore the IDSelector
1187
 */
1188
template <MetricType METRIC_TYPE, class C, class PQDecoder, bool use_sel>
1189
struct IVFPQScanner : IVFPQScannerT<idx_t, METRIC_TYPE, PQDecoder>,
1190
                      InvertedListScanner {
1191
    int precompute_mode;
1192
    const IDSelector* sel;
1193
1194
    IVFPQScanner(
1195
            const IndexIVFPQ& ivfpq,
1196
            bool store_pairs,
1197
            int precompute_mode,
1198
            const IDSelector* sel)
1199
0
            : IVFPQScannerT<idx_t, METRIC_TYPE, PQDecoder>(ivfpq, nullptr),
1200
0
              precompute_mode(precompute_mode),
1201
0
              sel(sel) {
1202
0
        this->store_pairs = store_pairs;
1203
0
        this->keep_max = is_similarity_metric(METRIC_TYPE);
1204
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_10PQDecoder8ELb1EEC2ERKNS_10IndexIVFPQEbiPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_10PQDecoder8ELb1EEC2ERKNS_10IndexIVFPQEbiPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_11PQDecoder16ELb1EEC2ERKNS_10IndexIVFPQEbiPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_11PQDecoder16ELb1EEC2ERKNS_10IndexIVFPQEbiPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_16PQDecoderGenericELb1EEC2ERKNS_10IndexIVFPQEbiPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_16PQDecoderGenericELb1EEC2ERKNS_10IndexIVFPQEbiPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_10PQDecoder8ELb0EEC2ERKNS_10IndexIVFPQEbiPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_10PQDecoder8ELb0EEC2ERKNS_10IndexIVFPQEbiPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_11PQDecoder16ELb0EEC2ERKNS_10IndexIVFPQEbiPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_11PQDecoder16ELb0EEC2ERKNS_10IndexIVFPQEbiPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_16PQDecoderGenericELb0EEC2ERKNS_10IndexIVFPQEbiPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_16PQDecoderGenericELb0EEC2ERKNS_10IndexIVFPQEbiPKNS_10IDSelectorE
1205
1206
0
    void set_query(const float* query) override {
1207
0
        this->init_query(query);
1208
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_10PQDecoder8ELb1EE9set_queryEPKf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_10PQDecoder8ELb1EE9set_queryEPKf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_11PQDecoder16ELb1EE9set_queryEPKf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_11PQDecoder16ELb1EE9set_queryEPKf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_16PQDecoderGenericELb1EE9set_queryEPKf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_16PQDecoderGenericELb1EE9set_queryEPKf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_10PQDecoder8ELb0EE9set_queryEPKf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_10PQDecoder8ELb0EE9set_queryEPKf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_11PQDecoder16ELb0EE9set_queryEPKf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_11PQDecoder16ELb0EE9set_queryEPKf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_16PQDecoderGenericELb0EE9set_queryEPKf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_16PQDecoderGenericELb0EE9set_queryEPKf
1209
1210
0
    void set_list(idx_t list_no, float coarse_dis) override {
1211
0
        this->list_no = list_no;
1212
0
        this->init_list(list_no, coarse_dis, precompute_mode);
1213
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_10PQDecoder8ELb1EE8set_listElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_10PQDecoder8ELb1EE8set_listElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_11PQDecoder16ELb1EE8set_listElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_11PQDecoder16ELb1EE8set_listElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_16PQDecoderGenericELb1EE8set_listElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_16PQDecoderGenericELb1EE8set_listElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_10PQDecoder8ELb0EE8set_listElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_10PQDecoder8ELb0EE8set_listElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_11PQDecoder16ELb0EE8set_listElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_11PQDecoder16ELb0EE8set_listElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_16PQDecoderGenericELb0EE8set_listElf
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_16PQDecoderGenericELb0EE8set_listElf
1214
1215
0
    float distance_to_code(const uint8_t* code) const override {
1216
0
        assert(precompute_mode == 2);
1217
0
        float dis = this->dis0 +
1218
0
                distance_single_code<PQDecoder>(
1219
0
                            this->pq.M, this->pq.nbits, this->sim_table, code);
1220
0
        return dis;
1221
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_10PQDecoder8ELb1EE16distance_to_codeEPKh
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_10PQDecoder8ELb1EE16distance_to_codeEPKh
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_11PQDecoder16ELb1EE16distance_to_codeEPKh
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_11PQDecoder16ELb1EE16distance_to_codeEPKh
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_16PQDecoderGenericELb1EE16distance_to_codeEPKh
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_16PQDecoderGenericELb1EE16distance_to_codeEPKh
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_10PQDecoder8ELb0EE16distance_to_codeEPKh
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_10PQDecoder8ELb0EE16distance_to_codeEPKh
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_11PQDecoder16ELb0EE16distance_to_codeEPKh
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_11PQDecoder16ELb0EE16distance_to_codeEPKh
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_16PQDecoderGenericELb0EE16distance_to_codeEPKh
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_16PQDecoderGenericELb0EE16distance_to_codeEPKh
1222
1223
    size_t scan_codes(
1224
            size_t ncode,
1225
            const uint8_t* codes,
1226
            const idx_t* ids,
1227
            float* heap_sim,
1228
            idx_t* heap_ids,
1229
0
            size_t k) const override {
1230
0
        KnnSearchResults<C, use_sel> res = {
1231
0
                /* key */ this->key,
1232
0
                /* ids */ this->store_pairs ? nullptr : ids,
1233
0
                /* sel */ this->sel,
1234
0
                /* k */ k,
1235
0
                /* heap_sim */ heap_sim,
1236
0
                /* heap_ids */ heap_ids,
1237
0
                /* nup */ 0};
1238
1239
0
        if (this->polysemous_ht > 0) {
1240
0
            assert(precompute_mode == 2);
1241
0
            this->scan_list_polysemous(ncode, codes, res);
1242
0
        } else if (precompute_mode == 2) {
1243
0
            this->scan_list_with_table(ncode, codes, res);
1244
0
        } else if (precompute_mode == 1) {
1245
0
            this->scan_list_with_pointer(ncode, codes, res);
1246
0
        } else if (precompute_mode == 0) {
1247
0
            this->scan_on_the_fly_dist(ncode, codes, res);
1248
0
        } else {
1249
0
            FAISS_THROW_MSG("bad precomp mode");
1250
0
        }
1251
0
        return res.nup;
1252
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_10PQDecoder8ELb1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_10PQDecoder8ELb1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_11PQDecoder16ELb1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_11PQDecoder16ELb1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_16PQDecoderGenericELb1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_16PQDecoderGenericELb1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_10PQDecoder8ELb0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_10PQDecoder8ELb0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_11PQDecoder16ELb0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_11PQDecoder16ELb0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_16PQDecoderGenericELb0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_16PQDecoderGenericELb0EE10scan_codesEmPKhPKlPfPlm
1253
1254
    void scan_codes_range(
1255
            size_t ncode,
1256
            const uint8_t* codes,
1257
            const idx_t* ids,
1258
            float radius,
1259
0
            RangeQueryResult& rres) const override {
1260
0
        RangeSearchResults<C, use_sel> res = {
1261
0
                /* key */ this->key,
1262
0
                /* ids */ this->store_pairs ? nullptr : ids,
1263
0
                /* sel */ this->sel,
1264
0
                /* radius */ radius,
1265
0
                /* rres */ rres};
1266
1267
0
        if (this->polysemous_ht > 0) {
1268
0
            assert(precompute_mode == 2);
1269
0
            this->scan_list_polysemous(ncode, codes, res);
1270
0
        } else if (precompute_mode == 2) {
1271
0
            this->scan_list_with_table(ncode, codes, res);
1272
0
        } else if (precompute_mode == 1) {
1273
0
            this->scan_list_with_pointer(ncode, codes, res);
1274
0
        } else if (precompute_mode == 0) {
1275
0
            this->scan_on_the_fly_dist(ncode, codes, res);
1276
0
        } else {
1277
0
            FAISS_THROW_MSG("bad precomp mode");
1278
0
        }
1279
0
    }
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_10PQDecoder8ELb1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_10PQDecoder8ELb1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_11PQDecoder16ELb1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_11PQDecoder16ELb1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_16PQDecoderGenericELb1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_16PQDecoderGenericELb1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_10PQDecoder8ELb0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_10PQDecoder8ELb0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_11PQDecoder16ELb0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_11PQDecoder16ELb0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE0ENS_4CMinIflEENS_16PQDecoderGenericELb0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZNK5faiss12_GLOBAL__N_112IVFPQScannerILNS_10MetricTypeE1ENS_4CMaxIflEENS_16PQDecoderGenericELb0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
1280
};
1281
1282
template <class PQDecoder, bool use_sel>
1283
InvertedListScanner* get_InvertedListScanner1(
1284
        const IndexIVFPQ& index,
1285
        bool store_pairs,
1286
0
        const IDSelector* sel) {
1287
0
    if (index.metric_type == METRIC_INNER_PRODUCT) {
1288
0
        return new IVFPQScanner<
1289
0
                METRIC_INNER_PRODUCT,
1290
0
                CMin<float, idx_t>,
1291
0
                PQDecoder,
1292
0
                use_sel>(index, store_pairs, 2, sel);
1293
0
    } else if (index.metric_type == METRIC_L2) {
1294
0
        return new IVFPQScanner<
1295
0
                METRIC_L2,
1296
0
                CMax<float, idx_t>,
1297
0
                PQDecoder,
1298
0
                use_sel>(index, store_pairs, 2, sel);
1299
0
    }
1300
0
    return nullptr;
1301
0
}
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_124get_InvertedListScanner1INS_10PQDecoder8ELb1EEEPNS_19InvertedListScannerERKNS_10IndexIVFPQEbPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_124get_InvertedListScanner1INS_11PQDecoder16ELb1EEEPNS_19InvertedListScannerERKNS_10IndexIVFPQEbPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_124get_InvertedListScanner1INS_16PQDecoderGenericELb1EEEPNS_19InvertedListScannerERKNS_10IndexIVFPQEbPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_124get_InvertedListScanner1INS_10PQDecoder8ELb0EEEPNS_19InvertedListScannerERKNS_10IndexIVFPQEbPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_124get_InvertedListScanner1INS_11PQDecoder16ELb0EEEPNS_19InvertedListScannerERKNS_10IndexIVFPQEbPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_124get_InvertedListScanner1INS_16PQDecoderGenericELb0EEEPNS_19InvertedListScannerERKNS_10IndexIVFPQEbPKNS_10IDSelectorE
1302
1303
template <bool use_sel>
1304
InvertedListScanner* get_InvertedListScanner2(
1305
        const IndexIVFPQ& index,
1306
        bool store_pairs,
1307
0
        const IDSelector* sel) {
1308
0
    if (index.pq.nbits == 8) {
1309
0
        return get_InvertedListScanner1<PQDecoder8, use_sel>(
1310
0
                index, store_pairs, sel);
1311
0
    } else if (index.pq.nbits == 16) {
1312
0
        return get_InvertedListScanner1<PQDecoder16, use_sel>(
1313
0
                index, store_pairs, sel);
1314
0
    } else {
1315
0
        return get_InvertedListScanner1<PQDecoderGeneric, use_sel>(
1316
0
                index, store_pairs, sel);
1317
0
    }
1318
0
}
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_124get_InvertedListScanner2ILb1EEEPNS_19InvertedListScannerERKNS_10IndexIVFPQEbPKNS_10IDSelectorE
Unexecuted instantiation: IndexIVFPQ.cpp:_ZN5faiss12_GLOBAL__N_124get_InvertedListScanner2ILb0EEEPNS_19InvertedListScannerERKNS_10IndexIVFPQEbPKNS_10IDSelectorE
1319
1320
} // anonymous namespace
1321
1322
InvertedListScanner* IndexIVFPQ::get_InvertedListScanner(
1323
        bool store_pairs,
1324
        const IDSelector* sel,
1325
0
        const IVFSearchParameters*) const {
1326
0
    if (sel) {
1327
0
        return get_InvertedListScanner2<true>(*this, store_pairs, sel);
1328
0
    } else {
1329
0
        return get_InvertedListScanner2<false>(*this, store_pairs, sel);
1330
0
    }
1331
0
    return nullptr;
1332
0
}
1333
1334
IndexIVFPQStats indexIVFPQ_stats;
1335
1336
1
void IndexIVFPQStats::reset() {
1337
1
    memset(this, 0, sizeof(*this));
1338
1
}
1339
1340
0
IndexIVFPQ::IndexIVFPQ() {
1341
    // initialize some runtime values
1342
0
    use_precomputed_table = 0;
1343
0
    scan_table_threshold = 0;
1344
0
    do_polysemous_training = false;
1345
0
    polysemous_ht = 0;
1346
0
    polysemous_training = nullptr;
1347
0
}
1348
1349
struct CodeCmp {
1350
    const uint8_t* tab;
1351
    size_t code_size;
1352
0
    bool operator()(int a, int b) const {
1353
0
        return cmp(a, b) > 0;
1354
0
    }
1355
0
    int cmp(int a, int b) const {
1356
0
        return memcmp(tab + a * code_size, tab + b * code_size, code_size);
1357
0
    }
1358
};
1359
1360
0
size_t IndexIVFPQ::find_duplicates(idx_t* dup_ids, size_t* lims) const {
1361
0
    size_t ngroup = 0;
1362
0
    lims[0] = 0;
1363
0
    for (size_t list_no = 0; list_no < nlist; list_no++) {
1364
0
        size_t n = invlists->list_size(list_no);
1365
0
        std::vector<int> ord(n);
1366
0
        for (int i = 0; i < n; i++)
1367
0
            ord[i] = i;
1368
0
        InvertedLists::ScopedCodes codes(invlists, list_no);
1369
0
        CodeCmp cs = {codes.get(), code_size};
1370
0
        std::sort(ord.begin(), ord.end(), cs);
1371
1372
0
        InvertedLists::ScopedIds list_ids(invlists, list_no);
1373
0
        int prev = -1; // all elements from prev to i-1 are equal
1374
0
        for (int i = 0; i < n; i++) {
1375
0
            if (prev >= 0 && cs.cmp(ord[prev], ord[i]) == 0) {
1376
                // same as previous => remember
1377
0
                if (prev + 1 == i) { // start new group
1378
0
                    ngroup++;
1379
0
                    lims[ngroup] = lims[ngroup - 1];
1380
0
                    dup_ids[lims[ngroup]++] = list_ids[ord[prev]];
1381
0
                }
1382
0
                dup_ids[lims[ngroup]++] = list_ids[ord[i]];
1383
0
            } else { // not same as previous.
1384
0
                prev = i;
1385
0
            }
1386
0
        }
1387
0
    }
1388
0
    return ngroup;
1389
0
}
1390
1391
} // namespace faiss