Coverage Report

Created: 2025-12-26 22:49

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/root/doris/contrib/faiss/faiss/impl/ScalarQuantizer.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/impl/ScalarQuantizer.h>
11
12
#include <algorithm>
13
#include <cstdio>
14
15
#include <faiss/impl/platform_macros.h>
16
#include <omp.h>
17
18
#ifdef __SSE__
19
#include <immintrin.h>
20
#endif
21
22
#include <faiss/IndexIVF.h>
23
#include <faiss/impl/AuxIndexStructures.h>
24
#include <faiss/impl/FaissAssert.h>
25
#include <faiss/impl/IDSelector.h>
26
#include <faiss/utils/bf16.h>
27
#include <faiss/utils/fp16.h>
28
#include <faiss/utils/utils.h>
29
30
namespace faiss {
31
32
/*******************************************************************
33
 * ScalarQuantizer implementation
34
 *
35
 * The main source of complexity is to support combinations of 4
36
 * variants without incurring runtime tests or virtual function calls:
37
 *
38
 * - 4 / 8 bits per code component
39
 * - uniform / non-uniform
40
 * - IP / L2 distance search
41
 * - scalar / AVX distance computation
42
 *
43
 * The appropriate Quantizer object is returned via select_quantizer
44
 * that hides the template mess.
45
 ********************************************************************/
46
47
#if defined(__AVX512F__) && defined(__F16C__)
48
#define USE_AVX512_F16C
49
#elif defined(__AVX2__)
50
#ifdef __F16C__
51
#define USE_F16C
52
#else
53
#warning \
54
        "Cannot enable AVX optimizations in scalar quantizer if -mf16c is not set as well"
55
#endif
56
#endif
57
58
#if defined(__aarch64__)
59
#if defined(__GNUC__) && __GNUC__ < 8
60
#warning \
61
        "Cannot enable NEON optimizations in scalar quantizer if the compiler is GCC<8"
62
#else
63
#define USE_NEON
64
#endif
65
#endif
66
67
namespace {
68
69
typedef ScalarQuantizer::QuantizerType QuantizerType;
70
typedef ScalarQuantizer::RangeStat RangeStat;
71
using SQDistanceComputer = ScalarQuantizer::SQDistanceComputer;
72
73
/*******************************************************************
74
 * Codec: converts between values in [0, 1] and an index in a code
75
 * array. The "i" parameter is the vector component index (not byte
76
 * index).
77
 */
78
79
struct Codec8bit {
80
    static FAISS_ALWAYS_INLINE void encode_component(
81
            float x,
82
            uint8_t* code,
83
11.6k
            int i) {
84
11.6k
        code[i] = (int)(255 * x);
85
11.6k
    }
86
87
    static FAISS_ALWAYS_INLINE float decode_component(
88
            const uint8_t* code,
89
3.12M
            int i) {
90
3.12M
        return (code[i] + 0.5f) / 255.0f;
91
3.12M
    }
92
93
#if defined(__AVX512F__)
94
    static FAISS_ALWAYS_INLINE __m512
95
    decode_16_components(const uint8_t* code, int i) {
96
        const __m128i c16 = _mm_loadu_si128((__m128i*)(code + i));
97
        const __m512i i32 = _mm512_cvtepu8_epi32(c16);
98
        const __m512 f16 = _mm512_cvtepi32_ps(i32);
99
        const __m512 half_one_255 = _mm512_set1_ps(0.5f / 255.f);
100
        const __m512 one_255 = _mm512_set1_ps(1.f / 255.f);
101
        return _mm512_fmadd_ps(f16, one_255, half_one_255);
102
    }
103
#elif defined(__AVX2__)
104
    static FAISS_ALWAYS_INLINE __m256
105
0
    decode_8_components(const uint8_t* code, int i) {
106
0
        const uint64_t c8 = *(uint64_t*)(code + i);
107
0
108
0
        const __m128i i8 = _mm_set1_epi64x(c8);
109
0
        const __m256i i32 = _mm256_cvtepu8_epi32(i8);
110
0
        const __m256 f8 = _mm256_cvtepi32_ps(i32);
111
0
        const __m256 half_one_255 = _mm256_set1_ps(0.5f / 255.f);
112
0
        const __m256 one_255 = _mm256_set1_ps(1.f / 255.f);
113
0
        return _mm256_fmadd_ps(f8, one_255, half_one_255);
114
0
    }
115
#endif
116
117
#ifdef USE_NEON
118
    static FAISS_ALWAYS_INLINE float32x4x2_t
119
    decode_8_components(const uint8_t* code, int i) {
120
        float32_t result[8] = {};
121
        for (size_t j = 0; j < 8; j++) {
122
            result[j] = decode_component(code, i + j);
123
        }
124
        float32x4_t res1 = vld1q_f32(result);
125
        float32x4_t res2 = vld1q_f32(result + 4);
126
        return {res1, res2};
127
    }
128
#endif
129
};
130
131
struct Codec4bit {
132
    static FAISS_ALWAYS_INLINE void encode_component(
133
            float x,
134
            uint8_t* code,
135
12.2k
            int i) {
136
12.2k
        code[i / 2] |= (int)(x * 15.0) << ((i & 1) << 2);
137
12.2k
    }
138
139
    static FAISS_ALWAYS_INLINE float decode_component(
140
            const uint8_t* code,
141
2.92M
            int i) {
142
2.92M
        return (((code[i / 2] >> ((i & 1) << 2)) & 0xf) + 0.5f) / 15.0f;
143
2.92M
    }
144
145
#if defined(__AVX512F__)
146
    static FAISS_ALWAYS_INLINE __m512
147
    decode_16_components(const uint8_t* code, int i) {
148
        uint64_t c8 = *(uint64_t*)(code + (i >> 1));
149
        uint64_t mask = 0x0f0f0f0f0f0f0f0f;
150
        uint64_t c8ev = c8 & mask;
151
        uint64_t c8od = (c8 >> 4) & mask;
152
153
        __m128i c16 =
154
                _mm_unpacklo_epi8(_mm_set1_epi64x(c8ev), _mm_set1_epi64x(c8od));
155
        __m256i c8lo = _mm256_cvtepu8_epi32(c16);
156
        __m256i c8hi = _mm256_cvtepu8_epi32(_mm_srli_si128(c16, 8));
157
        __m512i i16 = _mm512_castsi256_si512(c8lo);
158
        i16 = _mm512_inserti32x8(i16, c8hi, 1);
159
        __m512 f16 = _mm512_cvtepi32_ps(i16);
160
        const __m512 half_one_255 = _mm512_set1_ps(0.5f / 15.f);
161
        const __m512 one_255 = _mm512_set1_ps(1.f / 15.f);
162
        return _mm512_fmadd_ps(f16, one_255, half_one_255);
163
    }
164
#elif defined(__AVX2__)
165
    static FAISS_ALWAYS_INLINE __m256
166
0
    decode_8_components(const uint8_t* code, int i) {
167
0
        uint32_t c4 = *(uint32_t*)(code + (i >> 1));
168
0
        uint32_t mask = 0x0f0f0f0f;
169
0
        uint32_t c4ev = c4 & mask;
170
0
        uint32_t c4od = (c4 >> 4) & mask;
171
0
172
0
        // the 8 lower bytes of c8 contain the values
173
0
        __m128i c8 =
174
0
                _mm_unpacklo_epi8(_mm_set1_epi32(c4ev), _mm_set1_epi32(c4od));
175
0
        __m128i c4lo = _mm_cvtepu8_epi32(c8);
176
0
        __m128i c4hi = _mm_cvtepu8_epi32(_mm_srli_si128(c8, 4));
177
0
        __m256i i8 = _mm256_castsi128_si256(c4lo);
178
0
        i8 = _mm256_insertf128_si256(i8, c4hi, 1);
179
0
        __m256 f8 = _mm256_cvtepi32_ps(i8);
180
0
        __m256 half = _mm256_set1_ps(0.5f);
181
0
        f8 = _mm256_add_ps(f8, half);
182
0
        __m256 one_255 = _mm256_set1_ps(1.f / 15.f);
183
0
        return _mm256_mul_ps(f8, one_255);
184
0
    }
185
#endif
186
187
#ifdef USE_NEON
188
    static FAISS_ALWAYS_INLINE float32x4x2_t
189
    decode_8_components(const uint8_t* code, int i) {
190
        float32_t result[8] = {};
191
        for (size_t j = 0; j < 8; j++) {
192
            result[j] = decode_component(code, i + j);
193
        }
194
        float32x4_t res1 = vld1q_f32(result);
195
        float32x4_t res2 = vld1q_f32(result + 4);
196
        return {res1, res2};
197
    }
198
#endif
199
};
200
201
struct Codec6bit {
202
    static FAISS_ALWAYS_INLINE void encode_component(
203
            float x,
204
            uint8_t* code,
205
0
            int i) {
206
0
        int bits = (int)(x * 63.0);
207
0
        code += (i >> 2) * 3;
208
0
        switch (i & 3) {
209
0
            case 0:
210
0
                code[0] |= bits;
211
0
                break;
212
0
            case 1:
213
0
                code[0] |= bits << 6;
214
0
                code[1] |= bits >> 2;
215
0
                break;
216
0
            case 2:
217
0
                code[1] |= bits << 4;
218
0
                code[2] |= bits >> 4;
219
0
                break;
220
0
            case 3:
221
0
                code[2] |= bits << 2;
222
0
                break;
223
0
        }
224
0
    }
225
226
    static FAISS_ALWAYS_INLINE float decode_component(
227
            const uint8_t* code,
228
0
            int i) {
229
0
        uint8_t bits;
230
0
        code += (i >> 2) * 3;
231
0
        switch (i & 3) {
232
0
            case 0:
233
0
                bits = code[0] & 0x3f;
234
0
                break;
235
0
            case 1:
236
0
                bits = code[0] >> 6;
237
0
                bits |= (code[1] & 0xf) << 2;
238
0
                break;
239
0
            case 2:
240
0
                bits = code[1] >> 4;
241
0
                bits |= (code[2] & 3) << 4;
242
0
                break;
243
0
            case 3:
244
0
                bits = code[2] >> 2;
245
0
                break;
246
0
        }
247
0
        return (bits + 0.5f) / 63.0f;
248
0
    }
249
250
#if defined(__AVX512F__)
251
252
    static FAISS_ALWAYS_INLINE __m512
253
    decode_16_components(const uint8_t* code, int i) {
254
        // pure AVX512 implementation (not necessarily the fastest).
255
        // see:
256
        // https://github.com/zilliztech/knowhere/blob/main/thirdparty/faiss/faiss/impl/ScalarQuantizerCodec_avx512.h
257
258
        // clang-format off
259
260
        // 16 components, 16x6 bit=12 bytes
261
        const __m128i bit_6v =
262
                _mm_maskz_loadu_epi8(0b0000111111111111, code + (i >> 2) * 3);
263
        const __m256i bit_6v_256 = _mm256_broadcast_i32x4(bit_6v);
264
265
        // 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
266
        // 00          01          02          03
267
        const __m256i shuffle_mask = _mm256_setr_epi16(
268
                0xFF00, 0x0100, 0x0201, 0xFF02,
269
                0xFF03, 0x0403, 0x0504, 0xFF05,
270
                0xFF06, 0x0706, 0x0807, 0xFF08,
271
                0xFF09, 0x0A09, 0x0B0A, 0xFF0B);
272
        const __m256i shuffled = _mm256_shuffle_epi8(bit_6v_256, shuffle_mask);
273
274
        // 0: xxxxxxxx xx543210
275
        // 1: xxxx5432 10xxxxxx
276
        // 2: xxxxxx54 3210xxxx
277
        // 3: xxxxxxxx 543210xx
278
        const __m256i shift_right_v = _mm256_setr_epi16(
279
                0x0U, 0x6U, 0x4U, 0x2U,
280
                0x0U, 0x6U, 0x4U, 0x2U,
281
                0x0U, 0x6U, 0x4U, 0x2U,
282
                0x0U, 0x6U, 0x4U, 0x2U);
283
        __m256i shuffled_shifted = _mm256_srlv_epi16(shuffled, shift_right_v);
284
285
        // remove unneeded bits
286
        shuffled_shifted =
287
                _mm256_and_si256(shuffled_shifted, _mm256_set1_epi16(0x003F));
288
289
        // scale
290
        const __m512 f8 =
291
                _mm512_cvtepi32_ps(_mm512_cvtepi16_epi32(shuffled_shifted));
292
        const __m512 half_one_255 = _mm512_set1_ps(0.5f / 63.f);
293
        const __m512 one_255 = _mm512_set1_ps(1.f / 63.f);
294
        return _mm512_fmadd_ps(f8, one_255, half_one_255);
295
296
        // clang-format on
297
    }
298
299
#elif defined(__AVX2__)
300
301
    /* Load 6 bytes that represent 8 6-bit values, return them as a
302
     * 8*32 bit vector register */
303
0
    static FAISS_ALWAYS_INLINE __m256i load6(const uint16_t* code16) {
304
0
        const __m128i perm = _mm_set_epi8(
305
0
                -1, 5, 5, 4, 4, 3, -1, 3, -1, 2, 2, 1, 1, 0, -1, 0);
306
0
        const __m256i shifts = _mm256_set_epi32(2, 4, 6, 0, 2, 4, 6, 0);
307
0
308
0
        // load 6 bytes
309
0
        __m128i c1 =
310
0
                _mm_set_epi16(0, 0, 0, 0, 0, code16[2], code16[1], code16[0]);
311
0
312
0
        // put in 8 * 32 bits
313
0
        __m128i c2 = _mm_shuffle_epi8(c1, perm);
314
0
        __m256i c3 = _mm256_cvtepi16_epi32(c2);
315
0
316
0
        // shift and mask out useless bits
317
0
        __m256i c4 = _mm256_srlv_epi32(c3, shifts);
318
0
        __m256i c5 = _mm256_and_si256(_mm256_set1_epi32(63), c4);
319
0
        return c5;
320
0
    }
321
322
    static FAISS_ALWAYS_INLINE __m256
323
0
    decode_8_components(const uint8_t* code, int i) {
324
0
        // // Faster code for Intel CPUs or AMD Zen3+, just keeping it here
325
0
        // // for the reference, maybe, it becomes used oned day.
326
0
        // const uint16_t* data16 = (const uint16_t*)(code + (i >> 2) * 3);
327
0
        // const uint32_t* data32 = (const uint32_t*)data16;
328
0
        // const uint64_t val = *data32 + ((uint64_t)data16[2] << 32);
329
0
        // const uint64_t vext = _pdep_u64(val, 0x3F3F3F3F3F3F3F3FULL);
330
0
        // const __m128i i8 = _mm_set1_epi64x(vext);
331
0
        // const __m256i i32 = _mm256_cvtepi8_epi32(i8);
332
0
        // const __m256 f8 = _mm256_cvtepi32_ps(i32);
333
0
        // const __m256 half_one_255 = _mm256_set1_ps(0.5f / 63.f);
334
0
        // const __m256 one_255 = _mm256_set1_ps(1.f / 63.f);
335
0
        // return _mm256_fmadd_ps(f8, one_255, half_one_255);
336
0
337
0
        __m256i i8 = load6((const uint16_t*)(code + (i >> 2) * 3));
338
0
        __m256 f8 = _mm256_cvtepi32_ps(i8);
339
0
        // this could also be done with bit manipulations but it is
340
0
        // not obviously faster
341
0
        const __m256 half_one_255 = _mm256_set1_ps(0.5f / 63.f);
342
0
        const __m256 one_255 = _mm256_set1_ps(1.f / 63.f);
343
0
        return _mm256_fmadd_ps(f8, one_255, half_one_255);
344
0
    }
345
346
#endif
347
348
#ifdef USE_NEON
349
    static FAISS_ALWAYS_INLINE float32x4x2_t
350
    decode_8_components(const uint8_t* code, int i) {
351
        float32_t result[8] = {};
352
        for (size_t j = 0; j < 8; j++) {
353
            result[j] = decode_component(code, i + j);
354
        }
355
        float32x4_t res1 = vld1q_f32(result);
356
        float32x4_t res2 = vld1q_f32(result + 4);
357
        return {res1, res2};
358
    }
359
#endif
360
};
361
362
/*******************************************************************
363
 * Quantizer: normalizes scalar vector components, then passes them
364
 * through a codec
365
 *******************************************************************/
366
367
enum class QuantizerTemplateScaling { UNIFORM = 0, NON_UNIFORM = 1 };
368
369
template <class Codec, QuantizerTemplateScaling SCALING, int SIMD>
370
struct QuantizerTemplate {};
371
372
template <class Codec>
373
struct QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 1>
374
        : ScalarQuantizer::SQuantizer {
375
    const size_t d;
376
    const float vmin, vdiff;
377
378
    QuantizerTemplate(size_t d, const std::vector<float>& trained)
379
0
            : d(d), vmin(trained[0]), vdiff(trained[1]) {}
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEC2EmRKSt6vectorIfSaIfEE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEC2EmRKSt6vectorIfSaIfEE
380
381
0
    void encode_vector(const float* x, uint8_t* code) const final {
382
0
        for (size_t i = 0; i < d; i++) {
383
0
            float xi = 0;
384
0
            if (vdiff != 0) {
385
0
                xi = (x[i] - vmin) / vdiff;
386
0
                if (xi < 0) {
387
0
                    xi = 0;
388
0
                }
389
0
                if (xi > 1.0) {
390
0
                    xi = 1.0;
391
0
                }
392
0
            }
393
0
            Codec::encode_component(xi, code, i);
394
0
        }
395
0
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EE13encode_vectorEPKfPh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EE13encode_vectorEPKfPh
396
397
0
    void decode_vector(const uint8_t* code, float* x) const final {
398
0
        for (size_t i = 0; i < d; i++) {
399
0
            float xi = Codec::decode_component(code, i);
400
0
            x[i] = vmin + xi * vdiff;
401
0
        }
402
0
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EE13decode_vectorEPKhPf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EE13decode_vectorEPKhPf
403
404
    FAISS_ALWAYS_INLINE float reconstruct_component(const uint8_t* code, int i)
405
0
            const {
406
0
        float xi = Codec::decode_component(code, i);
407
0
        return vmin + xi * vdiff;
408
0
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EE21reconstruct_componentEPKhi
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EE21reconstruct_componentEPKhi
409
};
410
411
#if defined(__AVX512F__)
412
413
template <class Codec>
414
struct QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 16>
415
        : QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 1> {
416
    QuantizerTemplate(size_t d, const std::vector<float>& trained)
417
            : QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 1>(
418
                      d,
419
                      trained) {}
420
421
    FAISS_ALWAYS_INLINE __m512
422
    reconstruct_16_components(const uint8_t* code, int i) const {
423
        __m512 xi = Codec::decode_16_components(code, i);
424
        return _mm512_fmadd_ps(
425
                xi, _mm512_set1_ps(this->vdiff), _mm512_set1_ps(this->vmin));
426
    }
427
};
428
429
#elif defined(__AVX2__)
430
431
template <class Codec>
432
struct QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 8>
433
        : QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 1> {
434
    QuantizerTemplate(size_t d, const std::vector<float>& trained)
435
            : QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 1>(
436
                      d,
437
                      trained) {}
438
439
    FAISS_ALWAYS_INLINE __m256
440
    reconstruct_8_components(const uint8_t* code, int i) const {
441
        __m256 xi = Codec::decode_8_components(code, i);
442
        return _mm256_fmadd_ps(
443
                xi, _mm256_set1_ps(this->vdiff), _mm256_set1_ps(this->vmin));
444
    }
445
};
446
447
#endif
448
449
#ifdef USE_NEON
450
451
template <class Codec>
452
struct QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 8>
453
        : QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 1> {
454
    QuantizerTemplate(size_t d, const std::vector<float>& trained)
455
            : QuantizerTemplate<Codec, QuantizerTemplateScaling::UNIFORM, 1>(
456
                      d,
457
                      trained) {}
458
459
    FAISS_ALWAYS_INLINE float32x4x2_t
460
    reconstruct_8_components(const uint8_t* code, int i) const {
461
        float32x4x2_t xi = Codec::decode_8_components(code, i);
462
        return {vfmaq_f32(
463
                        vdupq_n_f32(this->vmin),
464
                        xi.val[0],
465
                        vdupq_n_f32(this->vdiff)),
466
                vfmaq_f32(
467
                        vdupq_n_f32(this->vmin),
468
                        xi.val[1],
469
                        vdupq_n_f32(this->vdiff))};
470
    }
471
};
472
473
#endif
474
475
template <class Codec>
476
struct QuantizerTemplate<Codec, QuantizerTemplateScaling::NON_UNIFORM, 1>
477
        : ScalarQuantizer::SQuantizer {
478
    const size_t d;
479
    const float *vmin, *vdiff;
480
481
    QuantizerTemplate(size_t d, const std::vector<float>& trained)
482
24
            : d(d), vmin(trained.data()), vdiff(trained.data() + d) {}
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEC2EmRKSt6vectorIfSaIfEE
Line
Count
Source
482
12
            : d(d), vmin(trained.data()), vdiff(trained.data() + d) {}
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEC2EmRKSt6vectorIfSaIfEE
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEC2EmRKSt6vectorIfSaIfEE
Line
Count
Source
482
12
            : d(d), vmin(trained.data()), vdiff(trained.data() + d) {}
483
484
395
    void encode_vector(const float* x, uint8_t* code) const final {
485
24.2k
        for (size_t i = 0; i < d; i++) {
486
23.8k
            float xi = 0;
487
23.8k
            if (vdiff[i] != 0) {
488
23.8k
                xi = (x[i] - vmin[i]) / vdiff[i];
489
23.8k
                if (xi < 0) {
490
0
                    xi = 0;
491
0
                }
492
23.8k
                if (xi > 1.0) {
493
0
                    xi = 1.0;
494
0
                }
495
23.8k
            }
496
23.8k
            Codec::encode_component(xi, code, i);
497
23.8k
        }
498
395
    }
ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EE13encode_vectorEPKfPh
Line
Count
Source
484
198
    void encode_vector(const float* x, uint8_t* code) const final {
485
11.8k
        for (size_t i = 0; i < d; i++) {
486
11.6k
            float xi = 0;
487
11.6k
            if (vdiff[i] != 0) {
488
11.6k
                xi = (x[i] - vmin[i]) / vdiff[i];
489
11.6k
                if (xi < 0) {
490
0
                    xi = 0;
491
0
                }
492
11.6k
                if (xi > 1.0) {
493
0
                    xi = 1.0;
494
0
                }
495
11.6k
            }
496
11.6k
            Codec::encode_component(xi, code, i);
497
11.6k
        }
498
198
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EE13encode_vectorEPKfPh
ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EE13encode_vectorEPKfPh
Line
Count
Source
484
197
    void encode_vector(const float* x, uint8_t* code) const final {
485
12.4k
        for (size_t i = 0; i < d; i++) {
486
12.2k
            float xi = 0;
487
12.2k
            if (vdiff[i] != 0) {
488
12.2k
                xi = (x[i] - vmin[i]) / vdiff[i];
489
12.2k
                if (xi < 0) {
490
0
                    xi = 0;
491
0
                }
492
12.2k
                if (xi > 1.0) {
493
0
                    xi = 1.0;
494
0
                }
495
12.2k
            }
496
12.2k
            Codec::encode_component(xi, code, i);
497
12.2k
        }
498
197
    }
499
500
0
    void decode_vector(const uint8_t* code, float* x) const final {
501
0
        for (size_t i = 0; i < d; i++) {
502
0
            float xi = Codec::decode_component(code, i);
503
0
            x[i] = vmin[i] + xi * vdiff[i];
504
0
        }
505
0
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EE13decode_vectorEPKhPf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EE13decode_vectorEPKhPf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EE13decode_vectorEPKhPf
506
507
    FAISS_ALWAYS_INLINE float reconstruct_component(const uint8_t* code, int i)
508
6.05M
            const {
509
6.05M
        float xi = Codec::decode_component(code, i);
510
6.05M
        return vmin[i] + xi * vdiff[i];
511
6.05M
    }
ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EE21reconstruct_componentEPKhi
Line
Count
Source
508
3.12M
            const {
509
3.12M
        float xi = Codec::decode_component(code, i);
510
3.12M
        return vmin[i] + xi * vdiff[i];
511
3.12M
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EE21reconstruct_componentEPKhi
ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_117QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EE21reconstruct_componentEPKhi
Line
Count
Source
508
2.92M
            const {
509
2.92M
        float xi = Codec::decode_component(code, i);
510
2.92M
        return vmin[i] + xi * vdiff[i];
511
2.92M
    }
512
};
513
514
#if defined(__AVX512F__)
515
516
template <class Codec>
517
struct QuantizerTemplate<Codec, QuantizerTemplateScaling::NON_UNIFORM, 16>
518
        : QuantizerTemplate<Codec, QuantizerTemplateScaling::NON_UNIFORM, 1> {
519
    QuantizerTemplate(size_t d, const std::vector<float>& trained)
520
            : QuantizerTemplate<
521
                      Codec,
522
                      QuantizerTemplateScaling::NON_UNIFORM,
523
                      1>(d, trained) {}
524
525
    FAISS_ALWAYS_INLINE __m512
526
    reconstruct_16_components(const uint8_t* code, int i) const {
527
        __m512 xi = Codec::decode_16_components(code, i);
528
        return _mm512_fmadd_ps(
529
                xi,
530
                _mm512_loadu_ps(this->vdiff + i),
531
                _mm512_loadu_ps(this->vmin + i));
532
    }
533
};
534
535
#elif defined(__AVX2__)
536
537
template <class Codec>
538
struct QuantizerTemplate<Codec, QuantizerTemplateScaling::NON_UNIFORM, 8>
539
        : QuantizerTemplate<Codec, QuantizerTemplateScaling::NON_UNIFORM, 1> {
540
    QuantizerTemplate(size_t d, const std::vector<float>& trained)
541
            : QuantizerTemplate<
542
                      Codec,
543
                      QuantizerTemplateScaling::NON_UNIFORM,
544
                      1>(d, trained) {}
545
546
    FAISS_ALWAYS_INLINE __m256
547
    reconstruct_8_components(const uint8_t* code, int i) const {
548
        __m256 xi = Codec::decode_8_components(code, i);
549
        return _mm256_fmadd_ps(
550
                xi,
551
                _mm256_loadu_ps(this->vdiff + i),
552
                _mm256_loadu_ps(this->vmin + i));
553
    }
554
};
555
556
#endif
557
558
#ifdef USE_NEON
559
560
template <class Codec>
561
struct QuantizerTemplate<Codec, QuantizerTemplateScaling::NON_UNIFORM, 8>
562
        : QuantizerTemplate<Codec, QuantizerTemplateScaling::NON_UNIFORM, 1> {
563
    QuantizerTemplate(size_t d, const std::vector<float>& trained)
564
            : QuantizerTemplate<
565
                      Codec,
566
                      QuantizerTemplateScaling::NON_UNIFORM,
567
                      1>(d, trained) {}
568
569
    FAISS_ALWAYS_INLINE float32x4x2_t
570
    reconstruct_8_components(const uint8_t* code, int i) const {
571
        float32x4x2_t xi = Codec::decode_8_components(code, i);
572
573
        float32x4x2_t vmin_8 = vld1q_f32_x2(this->vmin + i);
574
        float32x4x2_t vdiff_8 = vld1q_f32_x2(this->vdiff + i);
575
576
        return {vfmaq_f32(vmin_8.val[0], xi.val[0], vdiff_8.val[0]),
577
                vfmaq_f32(vmin_8.val[1], xi.val[1], vdiff_8.val[1])};
578
    }
579
};
580
581
#endif
582
583
/*******************************************************************
584
 * FP16 quantizer
585
 *******************************************************************/
586
587
template <int SIMDWIDTH>
588
struct QuantizerFP16 {};
589
590
template <>
591
struct QuantizerFP16<1> : ScalarQuantizer::SQuantizer {
592
    const size_t d;
593
594
0
    QuantizerFP16(size_t d, const std::vector<float>& /* unused */) : d(d) {}
595
596
0
    void encode_vector(const float* x, uint8_t* code) const final {
597
0
        for (size_t i = 0; i < d; i++) {
598
0
            ((uint16_t*)code)[i] = encode_fp16(x[i]);
599
0
        }
600
0
    }
601
602
0
    void decode_vector(const uint8_t* code, float* x) const final {
603
0
        for (size_t i = 0; i < d; i++) {
604
0
            x[i] = decode_fp16(((uint16_t*)code)[i]);
605
0
        }
606
0
    }
607
608
    FAISS_ALWAYS_INLINE float reconstruct_component(const uint8_t* code, int i)
609
0
            const {
610
0
        return decode_fp16(((uint16_t*)code)[i]);
611
0
    }
612
};
613
614
#if defined(USE_AVX512_F16C)
615
616
template <>
617
struct QuantizerFP16<16> : QuantizerFP16<1> {
618
    QuantizerFP16(size_t d, const std::vector<float>& trained)
619
            : QuantizerFP16<1>(d, trained) {}
620
621
    FAISS_ALWAYS_INLINE __m512
622
    reconstruct_16_components(const uint8_t* code, int i) const {
623
        __m256i codei = _mm256_loadu_si256((const __m256i*)(code + 2 * i));
624
        return _mm512_cvtph_ps(codei);
625
    }
626
};
627
628
#endif
629
630
#if defined(USE_F16C)
631
632
template <>
633
struct QuantizerFP16<8> : QuantizerFP16<1> {
634
    QuantizerFP16(size_t d, const std::vector<float>& trained)
635
            : QuantizerFP16<1>(d, trained) {}
636
637
    FAISS_ALWAYS_INLINE __m256
638
    reconstruct_8_components(const uint8_t* code, int i) const {
639
        __m128i codei = _mm_loadu_si128((const __m128i*)(code + 2 * i));
640
        return _mm256_cvtph_ps(codei);
641
    }
642
};
643
644
#endif
645
646
#ifdef USE_NEON
647
648
template <>
649
struct QuantizerFP16<8> : QuantizerFP16<1> {
650
    QuantizerFP16(size_t d, const std::vector<float>& trained)
651
            : QuantizerFP16<1>(d, trained) {}
652
653
    FAISS_ALWAYS_INLINE float32x4x2_t
654
    reconstruct_8_components(const uint8_t* code, int i) const {
655
        uint16x4x2_t codei = vld1_u16_x2((const uint16_t*)(code + 2 * i));
656
        return {vcvt_f32_f16(vreinterpret_f16_u16(codei.val[0])),
657
                vcvt_f32_f16(vreinterpret_f16_u16(codei.val[1]))};
658
    }
659
};
660
#endif
661
662
/*******************************************************************
663
 * BF16 quantizer
664
 *******************************************************************/
665
666
template <int SIMDWIDTH>
667
struct QuantizerBF16 {};
668
669
template <>
670
struct QuantizerBF16<1> : ScalarQuantizer::SQuantizer {
671
    const size_t d;
672
673
0
    QuantizerBF16(size_t d, const std::vector<float>& /* unused */) : d(d) {}
674
675
0
    void encode_vector(const float* x, uint8_t* code) const final {
676
0
        for (size_t i = 0; i < d; i++) {
677
0
            ((uint16_t*)code)[i] = encode_bf16(x[i]);
678
0
        }
679
0
    }
680
681
0
    void decode_vector(const uint8_t* code, float* x) const final {
682
0
        for (size_t i = 0; i < d; i++) {
683
0
            x[i] = decode_bf16(((uint16_t*)code)[i]);
684
0
        }
685
0
    }
686
687
    FAISS_ALWAYS_INLINE float reconstruct_component(const uint8_t* code, int i)
688
0
            const {
689
0
        return decode_bf16(((uint16_t*)code)[i]);
690
0
    }
691
};
692
693
#if defined(__AVX512F__)
694
695
template <>
696
struct QuantizerBF16<16> : QuantizerBF16<1> {
697
    QuantizerBF16(size_t d, const std::vector<float>& trained)
698
            : QuantizerBF16<1>(d, trained) {}
699
    FAISS_ALWAYS_INLINE __m512
700
    reconstruct_16_components(const uint8_t* code, int i) const {
701
        __m256i code_256i = _mm256_loadu_si256((const __m256i*)(code + 2 * i));
702
        __m512i code_512i = _mm512_cvtepu16_epi32(code_256i);
703
        code_512i = _mm512_slli_epi32(code_512i, 16);
704
        return _mm512_castsi512_ps(code_512i);
705
    }
706
};
707
708
#elif defined(__AVX2__)
709
710
template <>
711
struct QuantizerBF16<8> : QuantizerBF16<1> {
712
    QuantizerBF16(size_t d, const std::vector<float>& trained)
713
0
            : QuantizerBF16<1>(d, trained) {}
714
715
    FAISS_ALWAYS_INLINE __m256
716
0
    reconstruct_8_components(const uint8_t* code, int i) const {
717
0
        __m128i code_128i = _mm_loadu_si128((const __m128i*)(code + 2 * i));
718
0
        __m256i code_256i = _mm256_cvtepu16_epi32(code_128i);
719
0
        code_256i = _mm256_slli_epi32(code_256i, 16);
720
0
        return _mm256_castsi256_ps(code_256i);
721
0
    }
722
};
723
724
#endif
725
726
#ifdef USE_NEON
727
728
template <>
729
struct QuantizerBF16<8> : QuantizerBF16<1> {
730
    QuantizerBF16(size_t d, const std::vector<float>& trained)
731
            : QuantizerBF16<1>(d, trained) {}
732
733
    FAISS_ALWAYS_INLINE float32x4x2_t
734
    reconstruct_8_components(const uint8_t* code, int i) const {
735
        uint16x4x2_t codei = vld1_u16_x2((const uint16_t*)(code + 2 * i));
736
        return {vreinterpretq_f32_u32(vshlq_n_u32(vmovl_u16(codei.val[0]), 16)),
737
                vreinterpretq_f32_u32(
738
                        vshlq_n_u32(vmovl_u16(codei.val[1]), 16))};
739
    }
740
};
741
#endif
742
743
/*******************************************************************
744
 * 8bit_direct quantizer
745
 *******************************************************************/
746
747
template <int SIMDWIDTH>
748
struct Quantizer8bitDirect {};
749
750
template <>
751
struct Quantizer8bitDirect<1> : ScalarQuantizer::SQuantizer {
752
    const size_t d;
753
754
    Quantizer8bitDirect(size_t d, const std::vector<float>& /* unused */)
755
0
            : d(d) {}
756
757
0
    void encode_vector(const float* x, uint8_t* code) const final {
758
0
        for (size_t i = 0; i < d; i++) {
759
0
            code[i] = (uint8_t)x[i];
760
0
        }
761
0
    }
762
763
0
    void decode_vector(const uint8_t* code, float* x) const final {
764
0
        for (size_t i = 0; i < d; i++) {
765
0
            x[i] = code[i];
766
0
        }
767
0
    }
768
769
    FAISS_ALWAYS_INLINE float reconstruct_component(const uint8_t* code, int i)
770
0
            const {
771
0
        return code[i];
772
0
    }
773
};
774
775
#if defined(__AVX512F__)
776
777
template <>
778
struct Quantizer8bitDirect<16> : Quantizer8bitDirect<1> {
779
    Quantizer8bitDirect(size_t d, const std::vector<float>& trained)
780
            : Quantizer8bitDirect<1>(d, trained) {}
781
782
    FAISS_ALWAYS_INLINE __m512
783
    reconstruct_16_components(const uint8_t* code, int i) const {
784
        __m128i x16 = _mm_loadu_si128((__m128i*)(code + i)); // 16 * int8
785
        __m512i y16 = _mm512_cvtepu8_epi32(x16);             // 16 * int32
786
        return _mm512_cvtepi32_ps(y16);                      // 16 * float32
787
    }
788
};
789
790
#elif defined(__AVX2__)
791
792
template <>
793
struct Quantizer8bitDirect<8> : Quantizer8bitDirect<1> {
794
    Quantizer8bitDirect(size_t d, const std::vector<float>& trained)
795
0
            : Quantizer8bitDirect<1>(d, trained) {}
796
797
    FAISS_ALWAYS_INLINE __m256
798
0
    reconstruct_8_components(const uint8_t* code, int i) const {
799
0
        __m128i x8 = _mm_loadl_epi64((__m128i*)(code + i)); // 8 * int8
800
0
        __m256i y8 = _mm256_cvtepu8_epi32(x8);              // 8 * int32
801
0
        return _mm256_cvtepi32_ps(y8);                      // 8 * float32
802
0
    }
803
};
804
805
#endif
806
807
#ifdef USE_NEON
808
809
template <>
810
struct Quantizer8bitDirect<8> : Quantizer8bitDirect<1> {
811
    Quantizer8bitDirect(size_t d, const std::vector<float>& trained)
812
            : Quantizer8bitDirect<1>(d, trained) {}
813
814
    FAISS_ALWAYS_INLINE float32x4x2_t
815
    reconstruct_8_components(const uint8_t* code, int i) const {
816
        uint8x8_t x8 = vld1_u8((const uint8_t*)(code + i));
817
        uint16x8_t y8 = vmovl_u8(x8);
818
        uint16x4_t y8_0 = vget_low_u16(y8);
819
        uint16x4_t y8_1 = vget_high_u16(y8);
820
821
        // convert uint16 -> uint32 -> fp32
822
        return {vcvtq_f32_u32(vmovl_u16(y8_0)), vcvtq_f32_u32(vmovl_u16(y8_1))};
823
    }
824
};
825
826
#endif
827
828
/*******************************************************************
829
 * 8bit_direct_signed quantizer
830
 *******************************************************************/
831
832
template <int SIMDWIDTH>
833
struct Quantizer8bitDirectSigned {};
834
835
template <>
836
struct Quantizer8bitDirectSigned<1> : ScalarQuantizer::SQuantizer {
837
    const size_t d;
838
839
    Quantizer8bitDirectSigned(size_t d, const std::vector<float>& /* unused */)
840
0
            : d(d) {}
841
842
0
    void encode_vector(const float* x, uint8_t* code) const final {
843
0
        for (size_t i = 0; i < d; i++) {
844
0
            code[i] = (uint8_t)(x[i] + 128);
845
0
        }
846
0
    }
847
848
0
    void decode_vector(const uint8_t* code, float* x) const final {
849
0
        for (size_t i = 0; i < d; i++) {
850
0
            x[i] = code[i] - 128;
851
0
        }
852
0
    }
853
854
    FAISS_ALWAYS_INLINE float reconstruct_component(const uint8_t* code, int i)
855
0
            const {
856
0
        return code[i] - 128;
857
0
    }
858
};
859
860
#if defined(__AVX512F__)
861
862
template <>
863
struct Quantizer8bitDirectSigned<16> : Quantizer8bitDirectSigned<1> {
864
    Quantizer8bitDirectSigned(size_t d, const std::vector<float>& trained)
865
            : Quantizer8bitDirectSigned<1>(d, trained) {}
866
867
    FAISS_ALWAYS_INLINE __m512
868
    reconstruct_16_components(const uint8_t* code, int i) const {
869
        __m128i x16 = _mm_loadu_si128((__m128i*)(code + i)); // 16 * int8
870
        __m512i y16 = _mm512_cvtepu8_epi32(x16);             // 16 * int32
871
        __m512i c16 = _mm512_set1_epi32(128);
872
        __m512i z16 = _mm512_sub_epi32(y16, c16); // subtract 128 from all lanes
873
        return _mm512_cvtepi32_ps(z16);           // 16 * float32
874
    }
875
};
876
877
#elif defined(__AVX2__)
878
879
template <>
880
struct Quantizer8bitDirectSigned<8> : Quantizer8bitDirectSigned<1> {
881
    Quantizer8bitDirectSigned(size_t d, const std::vector<float>& trained)
882
0
            : Quantizer8bitDirectSigned<1>(d, trained) {}
883
884
    FAISS_ALWAYS_INLINE __m256
885
0
    reconstruct_8_components(const uint8_t* code, int i) const {
886
0
        __m128i x8 = _mm_loadl_epi64((__m128i*)(code + i)); // 8 * int8
887
0
        __m256i y8 = _mm256_cvtepu8_epi32(x8);              // 8 * int32
888
0
        __m256i c8 = _mm256_set1_epi32(128);
889
0
        __m256i z8 = _mm256_sub_epi32(y8, c8); // subtract 128 from all lanes
890
0
        return _mm256_cvtepi32_ps(z8);         // 8 * float32
891
0
    }
892
};
893
894
#endif
895
896
#ifdef USE_NEON
897
898
template <>
899
struct Quantizer8bitDirectSigned<8> : Quantizer8bitDirectSigned<1> {
900
    Quantizer8bitDirectSigned(size_t d, const std::vector<float>& trained)
901
            : Quantizer8bitDirectSigned<1>(d, trained) {}
902
903
    FAISS_ALWAYS_INLINE float32x4x2_t
904
    reconstruct_8_components(const uint8_t* code, int i) const {
905
        uint8x8_t x8 = vld1_u8((const uint8_t*)(code + i));
906
        uint16x8_t y8 = vmovl_u8(x8); // convert uint8 -> uint16
907
        uint16x4_t y8_0 = vget_low_u16(y8);
908
        uint16x4_t y8_1 = vget_high_u16(y8);
909
910
        float32x4_t z8_0 = vcvtq_f32_u32(
911
                vmovl_u16(y8_0)); // convert uint16 -> uint32 -> fp32
912
        float32x4_t z8_1 = vcvtq_f32_u32(vmovl_u16(y8_1));
913
914
        // subtract 128 to convert into signed numbers
915
        return {vsubq_f32(z8_0, vmovq_n_f32(128.0)),
916
                vsubq_f32(z8_1, vmovq_n_f32(128.0))};
917
    }
918
};
919
920
#endif
921
922
template <int SIMDWIDTH>
923
ScalarQuantizer::SQuantizer* select_quantizer_1(
924
        QuantizerType qtype,
925
        size_t d,
926
4
        const std::vector<float>& trained) {
927
4
    switch (qtype) {
928
2
        case ScalarQuantizer::QT_8bit:
929
2
            return new QuantizerTemplate<
930
2
                    Codec8bit,
931
2
                    QuantizerTemplateScaling::NON_UNIFORM,
932
2
                    SIMDWIDTH>(d, trained);
933
0
        case ScalarQuantizer::QT_6bit:
934
0
            return new QuantizerTemplate<
935
0
                    Codec6bit,
936
0
                    QuantizerTemplateScaling::NON_UNIFORM,
937
0
                    SIMDWIDTH>(d, trained);
938
2
        case ScalarQuantizer::QT_4bit:
939
2
            return new QuantizerTemplate<
940
2
                    Codec4bit,
941
2
                    QuantizerTemplateScaling::NON_UNIFORM,
942
2
                    SIMDWIDTH>(d, trained);
943
0
        case ScalarQuantizer::QT_8bit_uniform:
944
0
            return new QuantizerTemplate<
945
0
                    Codec8bit,
946
0
                    QuantizerTemplateScaling::UNIFORM,
947
0
                    SIMDWIDTH>(d, trained);
948
0
        case ScalarQuantizer::QT_4bit_uniform:
949
0
            return new QuantizerTemplate<
950
0
                    Codec4bit,
951
0
                    QuantizerTemplateScaling::UNIFORM,
952
0
                    SIMDWIDTH>(d, trained);
953
0
        case ScalarQuantizer::QT_fp16:
954
0
            return new QuantizerFP16<SIMDWIDTH>(d, trained);
955
0
        case ScalarQuantizer::QT_bf16:
956
0
            return new QuantizerBF16<SIMDWIDTH>(d, trained);
957
0
        case ScalarQuantizer::QT_8bit_direct:
958
0
            return new Quantizer8bitDirect<SIMDWIDTH>(d, trained);
959
0
        case ScalarQuantizer::QT_8bit_direct_signed:
960
0
            return new Quantizer8bitDirectSigned<SIMDWIDTH>(d, trained);
961
4
    }
962
0
    FAISS_THROW_MSG("unknown qtype");
963
0
}
964
965
/*******************************************************************
966
 * Quantizer range training
967
 */
968
969
0
static float sqr(float x) {
970
0
    return x * x;
971
0
}
972
973
void train_Uniform(
974
        RangeStat rs,
975
        float rs_arg,
976
        idx_t n,
977
        int k,
978
        const float* x,
979
0
        std::vector<float>& trained) {
980
0
    trained.resize(2);
981
0
    float& vmin = trained[0];
982
0
    float& vmax = trained[1];
983
984
0
    if (rs == ScalarQuantizer::RS_minmax) {
985
0
        vmin = HUGE_VAL;
986
0
        vmax = -HUGE_VAL;
987
0
        for (size_t i = 0; i < n; i++) {
988
0
            if (x[i] < vmin)
989
0
                vmin = x[i];
990
0
            if (x[i] > vmax)
991
0
                vmax = x[i];
992
0
        }
993
0
        float vexp = (vmax - vmin) * rs_arg;
994
0
        vmin -= vexp;
995
0
        vmax += vexp;
996
0
    } else if (rs == ScalarQuantizer::RS_meanstd) {
997
0
        double sum = 0, sum2 = 0;
998
0
        for (size_t i = 0; i < n; i++) {
999
0
            sum += x[i];
1000
0
            sum2 += x[i] * x[i];
1001
0
        }
1002
0
        float mean = sum / n;
1003
0
        float var = sum2 / n - mean * mean;
1004
0
        float std = var <= 0 ? 1.0 : sqrt(var);
1005
1006
0
        vmin = mean - std * rs_arg;
1007
0
        vmax = mean + std * rs_arg;
1008
0
    } else if (rs == ScalarQuantizer::RS_quantiles) {
1009
0
        std::vector<float> x_copy(n);
1010
0
        memcpy(x_copy.data(), x, n * sizeof(*x));
1011
        // TODO just do a quickselect
1012
0
        std::sort(x_copy.begin(), x_copy.end());
1013
0
        int o = int(rs_arg * n);
1014
0
        if (o < 0)
1015
0
            o = 0;
1016
0
        if (o > n - o)
1017
0
            o = n / 2;
1018
0
        vmin = x_copy[o];
1019
0
        vmax = x_copy[n - 1 - o];
1020
1021
0
    } else if (rs == ScalarQuantizer::RS_optim) {
1022
0
        float a, b;
1023
0
        float sx = 0;
1024
0
        {
1025
0
            vmin = HUGE_VAL, vmax = -HUGE_VAL;
1026
0
            for (size_t i = 0; i < n; i++) {
1027
0
                if (x[i] < vmin)
1028
0
                    vmin = x[i];
1029
0
                if (x[i] > vmax)
1030
0
                    vmax = x[i];
1031
0
                sx += x[i];
1032
0
            }
1033
0
            b = vmin;
1034
0
            a = (vmax - vmin) / (k - 1);
1035
0
        }
1036
0
        int verbose = false;
1037
0
        int niter = 2000;
1038
0
        float last_err = -1;
1039
0
        int iter_last_err = 0;
1040
0
        for (int it = 0; it < niter; it++) {
1041
0
            float sn = 0, sn2 = 0, sxn = 0, err1 = 0;
1042
1043
0
            for (idx_t i = 0; i < n; i++) {
1044
0
                float xi = x[i];
1045
0
                float ni = floor((xi - b) / a + 0.5);
1046
0
                if (ni < 0)
1047
0
                    ni = 0;
1048
0
                if (ni >= k)
1049
0
                    ni = k - 1;
1050
0
                err1 += sqr(xi - (ni * a + b));
1051
0
                sn += ni;
1052
0
                sn2 += ni * ni;
1053
0
                sxn += ni * xi;
1054
0
            }
1055
1056
0
            if (err1 == last_err) {
1057
0
                iter_last_err++;
1058
0
                if (iter_last_err == 16)
1059
0
                    break;
1060
0
            } else {
1061
0
                last_err = err1;
1062
0
                iter_last_err = 0;
1063
0
            }
1064
1065
0
            float det = sqr(sn) - sn2 * n;
1066
1067
0
            b = (sn * sxn - sn2 * sx) / det;
1068
0
            a = (sn * sx - n * sxn) / det;
1069
0
            if (verbose) {
1070
0
                printf("it %d, err1=%g            \r", it, err1);
1071
0
                fflush(stdout);
1072
0
            }
1073
0
        }
1074
0
        if (verbose)
1075
0
            printf("\n");
1076
1077
0
        vmin = b;
1078
0
        vmax = b + a * (k - 1);
1079
1080
0
    } else {
1081
0
        FAISS_THROW_MSG("Invalid qtype");
1082
0
    }
1083
0
    vmax -= vmin;
1084
0
}
1085
1086
void train_NonUniform(
1087
        RangeStat rs,
1088
        float rs_arg,
1089
        idx_t n,
1090
        int d,
1091
        int k,
1092
        const float* x,
1093
4
        std::vector<float>& trained) {
1094
4
    trained.resize(2 * d);
1095
4
    float* vmin = trained.data();
1096
4
    float* vmax = trained.data() + d;
1097
4
    if (rs == ScalarQuantizer::RS_minmax) {
1098
4
        memcpy(vmin, x, sizeof(*x) * d);
1099
4
        memcpy(vmax, x, sizeof(*x) * d);
1100
400
        for (size_t i = 1; i < n; i++) {
1101
396
            const float* xi = x + i * d;
1102
51.0k
            for (size_t j = 0; j < d; j++) {
1103
50.6k
                if (xi[j] < vmin[j])
1104
2.16k
                    vmin[j] = xi[j];
1105
50.6k
                if (xi[j] > vmax[j])
1106
2.14k
                    vmax[j] = xi[j];
1107
50.6k
            }
1108
396
        }
1109
4
        float* vdiff = vmax;
1110
516
        for (size_t j = 0; j < d; j++) {
1111
512
            float vexp = (vmax[j] - vmin[j]) * rs_arg;
1112
512
            vmin[j] -= vexp;
1113
512
            vmax[j] += vexp;
1114
512
            vdiff[j] = vmax[j] - vmin[j];
1115
512
        }
1116
4
    } else {
1117
        // transpose
1118
0
        std::vector<float> xt(n * d);
1119
0
        for (size_t i = 1; i < n; i++) {
1120
0
            const float* xi = x + i * d;
1121
0
            for (size_t j = 0; j < d; j++) {
1122
0
                xt[j * n + i] = xi[j];
1123
0
            }
1124
0
        }
1125
0
        std::vector<float> trained_d(2);
1126
0
#pragma omp parallel for
1127
0
        for (int j = 0; j < d; j++) {
1128
0
            train_Uniform(rs, rs_arg, n, k, xt.data() + j * n, trained_d);
1129
0
            vmin[j] = trained_d[0];
1130
0
            vmax[j] = trained_d[1];
1131
0
        }
1132
0
    }
1133
4
}
1134
1135
/*******************************************************************
1136
 * Similarity: gets vector components and computes a similarity wrt. a
1137
 * query vector stored in the object. The data fields just encapsulate
1138
 * an accumulator.
1139
 */
1140
1141
template <int SIMDWIDTH>
1142
struct SimilarityL2 {};
1143
1144
template <>
1145
struct SimilarityL2<1> {
1146
    static constexpr int simdwidth = 1;
1147
    static constexpr MetricType metric_type = METRIC_L2;
1148
1149
    const float *y, *yi;
1150
1151
30.1k
    explicit SimilarityL2(const float* y) : y(y) {}
1152
1153
    /******* scalar accumulator *******/
1154
1155
    float accu;
1156
1157
30.1k
    FAISS_ALWAYS_INLINE void begin() {
1158
30.1k
        accu = 0;
1159
30.1k
        yi = y;
1160
30.1k
    }
1161
1162
1.65M
    FAISS_ALWAYS_INLINE void add_component(float x) {
1163
1.65M
        float tmp = *yi++ - x;
1164
1.65M
        accu += tmp * tmp;
1165
1.65M
    }
1166
1167
2.20M
    FAISS_ALWAYS_INLINE void add_component_2(float x1, float x2) {
1168
2.20M
        float tmp = x1 - x2;
1169
2.20M
        accu += tmp * tmp;
1170
2.20M
    }
1171
1172
30.1k
    FAISS_ALWAYS_INLINE float result() {
1173
30.1k
        return accu;
1174
30.1k
    }
1175
};
1176
1177
#if defined(__AVX512F__)
1178
1179
template <>
1180
struct SimilarityL2<16> {
1181
    static constexpr int simdwidth = 16;
1182
    static constexpr MetricType metric_type = METRIC_L2;
1183
1184
    const float *y, *yi;
1185
1186
    explicit SimilarityL2(const float* y) : y(y) {}
1187
    __m512 accu16;
1188
1189
    FAISS_ALWAYS_INLINE void begin_16() {
1190
        accu16 = _mm512_setzero_ps();
1191
        yi = y;
1192
    }
1193
1194
    FAISS_ALWAYS_INLINE void add_16_components(__m512 x) {
1195
        __m512 yiv = _mm512_loadu_ps(yi);
1196
        yi += 16;
1197
        __m512 tmp = _mm512_sub_ps(yiv, x);
1198
        accu16 = _mm512_fmadd_ps(tmp, tmp, accu16);
1199
    }
1200
1201
    FAISS_ALWAYS_INLINE void add_16_components_2(__m512 x, __m512 y_2) {
1202
        __m512 tmp = _mm512_sub_ps(y_2, x);
1203
        accu16 = _mm512_fmadd_ps(tmp, tmp, accu16);
1204
    }
1205
1206
    FAISS_ALWAYS_INLINE float result_16() {
1207
        // performs better than dividing into _mm256 and adding
1208
        return _mm512_reduce_add_ps(accu16);
1209
    }
1210
};
1211
1212
#elif defined(__AVX2__)
1213
1214
template <>
1215
struct SimilarityL2<8> {
1216
    static constexpr int simdwidth = 8;
1217
    static constexpr MetricType metric_type = METRIC_L2;
1218
1219
    const float *y, *yi;
1220
1221
0
    explicit SimilarityL2(const float* y) : y(y) {}
1222
    __m256 accu8;
1223
1224
0
    FAISS_ALWAYS_INLINE void begin_8() {
1225
0
        accu8 = _mm256_setzero_ps();
1226
0
        yi = y;
1227
0
    }
1228
1229
0
    FAISS_ALWAYS_INLINE void add_8_components(__m256 x) {
1230
0
        __m256 yiv = _mm256_loadu_ps(yi);
1231
0
        yi += 8;
1232
0
        __m256 tmp = _mm256_sub_ps(yiv, x);
1233
0
        accu8 = _mm256_fmadd_ps(tmp, tmp, accu8);
1234
0
    }
1235
1236
0
    FAISS_ALWAYS_INLINE void add_8_components_2(__m256 x, __m256 y_2) {
1237
0
        __m256 tmp = _mm256_sub_ps(y_2, x);
1238
0
        accu8 = _mm256_fmadd_ps(tmp, tmp, accu8);
1239
0
    }
1240
1241
0
    FAISS_ALWAYS_INLINE float result_8() {
1242
0
        const __m128 sum = _mm_add_ps(
1243
0
                _mm256_castps256_ps128(accu8), _mm256_extractf128_ps(accu8, 1));
1244
0
        const __m128 v0 = _mm_shuffle_ps(sum, sum, _MM_SHUFFLE(0, 0, 3, 2));
1245
0
        const __m128 v1 = _mm_add_ps(sum, v0);
1246
0
        __m128 v2 = _mm_shuffle_ps(v1, v1, _MM_SHUFFLE(0, 0, 0, 1));
1247
0
        const __m128 v3 = _mm_add_ps(v1, v2);
1248
0
        return _mm_cvtss_f32(v3);
1249
0
    }
1250
};
1251
1252
#endif
1253
1254
#ifdef USE_NEON
1255
template <>
1256
struct SimilarityL2<8> {
1257
    static constexpr int simdwidth = 8;
1258
    static constexpr MetricType metric_type = METRIC_L2;
1259
1260
    const float *y, *yi;
1261
    explicit SimilarityL2(const float* y) : y(y) {}
1262
    float32x4x2_t accu8;
1263
1264
    FAISS_ALWAYS_INLINE void begin_8() {
1265
        accu8 = {vdupq_n_f32(0.0f), vdupq_n_f32(0.0f)};
1266
        yi = y;
1267
    }
1268
1269
    FAISS_ALWAYS_INLINE void add_8_components(float32x4x2_t x) {
1270
        float32x4x2_t yiv = vld1q_f32_x2(yi);
1271
        yi += 8;
1272
1273
        float32x4_t sub0 = vsubq_f32(yiv.val[0], x.val[0]);
1274
        float32x4_t sub1 = vsubq_f32(yiv.val[1], x.val[1]);
1275
1276
        float32x4_t accu8_0 = vfmaq_f32(accu8.val[0], sub0, sub0);
1277
        float32x4_t accu8_1 = vfmaq_f32(accu8.val[1], sub1, sub1);
1278
1279
        accu8 = {accu8_0, accu8_1};
1280
    }
1281
1282
    FAISS_ALWAYS_INLINE void add_8_components_2(
1283
            float32x4x2_t x,
1284
            float32x4x2_t y) {
1285
        float32x4_t sub0 = vsubq_f32(y.val[0], x.val[0]);
1286
        float32x4_t sub1 = vsubq_f32(y.val[1], x.val[1]);
1287
1288
        float32x4_t accu8_0 = vfmaq_f32(accu8.val[0], sub0, sub0);
1289
        float32x4_t accu8_1 = vfmaq_f32(accu8.val[1], sub1, sub1);
1290
1291
        accu8 = {accu8_0, accu8_1};
1292
    }
1293
1294
    FAISS_ALWAYS_INLINE float result_8() {
1295
        float32x4_t sum_0 = vpaddq_f32(accu8.val[0], accu8.val[0]);
1296
        float32x4_t sum_1 = vpaddq_f32(accu8.val[1], accu8.val[1]);
1297
1298
        float32x4_t sum2_0 = vpaddq_f32(sum_0, sum_0);
1299
        float32x4_t sum2_1 = vpaddq_f32(sum_1, sum_1);
1300
        return vgetq_lane_f32(sum2_0, 0) + vgetq_lane_f32(sum2_1, 0);
1301
    }
1302
};
1303
#endif
1304
1305
template <int SIMDWIDTH>
1306
struct SimilarityIP {};
1307
1308
template <>
1309
struct SimilarityIP<1> {
1310
    static constexpr int simdwidth = 1;
1311
    static constexpr MetricType metric_type = METRIC_INNER_PRODUCT;
1312
    const float *y, *yi;
1313
1314
    float accu;
1315
1316
0
    explicit SimilarityIP(const float* y) : y(y) {}
1317
1318
0
    FAISS_ALWAYS_INLINE void begin() {
1319
0
        accu = 0;
1320
0
        yi = y;
1321
0
    }
1322
1323
0
    FAISS_ALWAYS_INLINE void add_component(float x) {
1324
0
        accu += *yi++ * x;
1325
0
    }
1326
1327
0
    FAISS_ALWAYS_INLINE void add_component_2(float x1, float x2) {
1328
0
        accu += x1 * x2;
1329
0
    }
1330
1331
0
    FAISS_ALWAYS_INLINE float result() {
1332
0
        return accu;
1333
0
    }
1334
};
1335
1336
#if defined(__AVX512F__)
1337
1338
template <>
1339
struct SimilarityIP<16> {
1340
    static constexpr int simdwidth = 16;
1341
    static constexpr MetricType metric_type = METRIC_INNER_PRODUCT;
1342
1343
    const float *y, *yi;
1344
1345
    float accu;
1346
1347
    explicit SimilarityIP(const float* y) : y(y) {}
1348
1349
    __m512 accu16;
1350
1351
    FAISS_ALWAYS_INLINE void begin_16() {
1352
        accu16 = _mm512_setzero_ps();
1353
        yi = y;
1354
    }
1355
1356
    FAISS_ALWAYS_INLINE void add_16_components(__m512 x) {
1357
        __m512 yiv = _mm512_loadu_ps(yi);
1358
        yi += 16;
1359
        accu16 = _mm512_fmadd_ps(yiv, x, accu16);
1360
    }
1361
1362
    FAISS_ALWAYS_INLINE void add_16_components_2(__m512 x1, __m512 x2) {
1363
        accu16 = _mm512_fmadd_ps(x1, x2, accu16);
1364
    }
1365
1366
    FAISS_ALWAYS_INLINE float result_16() {
1367
        // performs better than dividing into _mm256 and adding
1368
        return _mm512_reduce_add_ps(accu16);
1369
    }
1370
};
1371
1372
#elif defined(__AVX2__)
1373
1374
template <>
1375
struct SimilarityIP<8> {
1376
    static constexpr int simdwidth = 8;
1377
    static constexpr MetricType metric_type = METRIC_INNER_PRODUCT;
1378
1379
    const float *y, *yi;
1380
1381
    float accu;
1382
1383
0
    explicit SimilarityIP(const float* y) : y(y) {}
1384
1385
    __m256 accu8;
1386
1387
0
    FAISS_ALWAYS_INLINE void begin_8() {
1388
0
        accu8 = _mm256_setzero_ps();
1389
0
        yi = y;
1390
0
    }
1391
1392
0
    FAISS_ALWAYS_INLINE void add_8_components(__m256 x) {
1393
0
        __m256 yiv = _mm256_loadu_ps(yi);
1394
0
        yi += 8;
1395
0
        accu8 = _mm256_fmadd_ps(yiv, x, accu8);
1396
0
    }
1397
1398
0
    FAISS_ALWAYS_INLINE void add_8_components_2(__m256 x1, __m256 x2) {
1399
0
        accu8 = _mm256_fmadd_ps(x1, x2, accu8);
1400
0
    }
1401
1402
0
    FAISS_ALWAYS_INLINE float result_8() {
1403
0
        const __m128 sum = _mm_add_ps(
1404
0
                _mm256_castps256_ps128(accu8), _mm256_extractf128_ps(accu8, 1));
1405
0
        const __m128 v0 = _mm_shuffle_ps(sum, sum, _MM_SHUFFLE(0, 0, 3, 2));
1406
0
        const __m128 v1 = _mm_add_ps(sum, v0);
1407
0
        __m128 v2 = _mm_shuffle_ps(v1, v1, _MM_SHUFFLE(0, 0, 0, 1));
1408
0
        const __m128 v3 = _mm_add_ps(v1, v2);
1409
0
        return _mm_cvtss_f32(v3);
1410
0
    }
1411
};
1412
#endif
1413
1414
#ifdef USE_NEON
1415
1416
template <>
1417
struct SimilarityIP<8> {
1418
    static constexpr int simdwidth = 8;
1419
    static constexpr MetricType metric_type = METRIC_INNER_PRODUCT;
1420
1421
    const float *y, *yi;
1422
1423
    explicit SimilarityIP(const float* y) : y(y) {}
1424
    float32x4x2_t accu8;
1425
1426
    FAISS_ALWAYS_INLINE void begin_8() {
1427
        accu8 = {vdupq_n_f32(0.0f), vdupq_n_f32(0.0f)};
1428
        yi = y;
1429
    }
1430
1431
    FAISS_ALWAYS_INLINE void add_8_components(float32x4x2_t x) {
1432
        float32x4x2_t yiv = vld1q_f32_x2(yi);
1433
        yi += 8;
1434
1435
        float32x4_t accu8_0 = vfmaq_f32(accu8.val[0], yiv.val[0], x.val[0]);
1436
        float32x4_t accu8_1 = vfmaq_f32(accu8.val[1], yiv.val[1], x.val[1]);
1437
        accu8 = {accu8_0, accu8_1};
1438
    }
1439
1440
    FAISS_ALWAYS_INLINE void add_8_components_2(
1441
            float32x4x2_t x1,
1442
            float32x4x2_t x2) {
1443
        float32x4_t accu8_0 = vfmaq_f32(accu8.val[0], x1.val[0], x2.val[0]);
1444
        float32x4_t accu8_1 = vfmaq_f32(accu8.val[1], x1.val[1], x2.val[1]);
1445
        accu8 = {accu8_0, accu8_1};
1446
    }
1447
1448
    FAISS_ALWAYS_INLINE float result_8() {
1449
        float32x4x2_t sum = {
1450
                vpaddq_f32(accu8.val[0], accu8.val[0]),
1451
                vpaddq_f32(accu8.val[1], accu8.val[1])};
1452
1453
        float32x4x2_t sum2 = {
1454
                vpaddq_f32(sum.val[0], sum.val[0]),
1455
                vpaddq_f32(sum.val[1], sum.val[1])};
1456
        return vgetq_lane_f32(sum2.val[0], 0) + vgetq_lane_f32(sum2.val[1], 0);
1457
    }
1458
};
1459
#endif
1460
1461
/*******************************************************************
1462
 * DistanceComputer: combines a similarity and a quantizer to do
1463
 * code-to-vector or code-to-code comparisons
1464
 *******************************************************************/
1465
1466
template <class Quantizer, class Similarity, int SIMDWIDTH>
1467
struct DCTemplate : SQDistanceComputer {};
1468
1469
template <class Quantizer, class Similarity>
1470
struct DCTemplate<Quantizer, Similarity, 1> : SQDistanceComputer {
1471
    using Sim = Similarity;
1472
1473
    Quantizer quant;
1474
1475
    DCTemplate(size_t d, const std::vector<float>& trained)
1476
20
            : quant(d, trained) {}
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
Line
Count
Source
1476
10
            : quant(d, trained) {}
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
Line
Count
Source
1476
10
            : quant(d, trained) {}
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEC2EmRKSt6vectorIfSaIfEE
1477
1478
12.9k
    float compute_distance(const float* x, const uint8_t* code) const {
1479
12.9k
        Similarity sim(x);
1480
12.9k
        sim.begin();
1481
1.66M
        for (size_t i = 0; i < quant.d; i++) {
1482
1.65M
            float xi = quant.reconstruct_component(code, i);
1483
1.65M
            sim.add_component(xi);
1484
1.65M
        }
1485
12.9k
        return sim.result();
1486
12.9k
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh
ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh
Line
Count
Source
1478
6.49k
    float compute_distance(const float* x, const uint8_t* code) const {
1479
6.49k
        Similarity sim(x);
1480
6.49k
        sim.begin();
1481
838k
        for (size_t i = 0; i < quant.d; i++) {
1482
831k
            float xi = quant.reconstruct_component(code, i);
1483
831k
            sim.add_component(xi);
1484
831k
        }
1485
6.49k
        return sim.result();
1486
6.49k
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh
ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh
Line
Count
Source
1478
6.41k
    float compute_distance(const float* x, const uint8_t* code) const {
1479
6.41k
        Similarity sim(x);
1480
6.41k
        sim.begin();
1481
828k
        for (size_t i = 0; i < quant.d; i++) {
1482
821k
            float xi = quant.reconstruct_component(code, i);
1483
821k
            sim.add_component(xi);
1484
821k
        }
1485
6.41k
        return sim.result();
1486
6.41k
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EE16compute_distanceEPKfPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EE16compute_distanceEPKfPKh
1487
1488
    float compute_code_distance(const uint8_t* code1, const uint8_t* code2)
1489
17.1k
            const {
1490
17.1k
        Similarity sim(nullptr);
1491
17.1k
        sim.begin();
1492
2.21M
        for (size_t i = 0; i < quant.d; i++) {
1493
2.20M
            float x1 = quant.reconstruct_component(code1, i);
1494
2.20M
            float x2 = quant.reconstruct_component(code2, i);
1495
2.20M
            sim.add_component_2(x1, x2);
1496
2.20M
        }
1497
17.1k
        return sim.result();
1498
17.1k
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhSA_
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhSA_
ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhSA_
Line
Count
Source
1489
8.95k
            const {
1490
8.95k
        Similarity sim(nullptr);
1491
8.95k
        sim.begin();
1492
1.15M
        for (size_t i = 0; i < quant.d; i++) {
1493
1.14M
            float x1 = quant.reconstruct_component(code1, i);
1494
1.14M
            float x2 = quant.reconstruct_component(code2, i);
1495
1.14M
            sim.add_component_2(x1, x2);
1496
1.14M
        }
1497
8.95k
        return sim.result();
1498
8.95k
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhSA_
ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhSA_
Line
Count
Source
1489
8.23k
            const {
1490
8.23k
        Similarity sim(nullptr);
1491
8.23k
        sim.begin();
1492
1.06M
        for (size_t i = 0; i < quant.d; i++) {
1493
1.05M
            float x1 = quant.reconstruct_component(code1, i);
1494
1.05M
            float x2 = quant.reconstruct_component(code2, i);
1495
1.05M
            sim.add_component_2(x1, x2);
1496
1.05M
        }
1497
8.23k
        return sim.result();
1498
8.23k
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhS8_
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhS8_
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhS8_
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhS8_
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhSA_
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhSA_
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhSA_
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhSA_
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhSA_
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhS8_
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhS8_
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhS8_
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhS8_
1499
1500
228
    void set_query(const float* x) final {
1501
228
        q = x;
1502
228
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf
Line
Count
Source
1500
114
    void set_query(const float* x) final {
1501
114
        q = x;
1502
114
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf
Line
Count
Source
1500
114
    void set_query(const float* x) final {
1501
114
        q = x;
1502
114
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf
1503
1504
17.1k
    float symmetric_dis(idx_t i, idx_t j) override {
1505
17.1k
        return compute_code_distance(
1506
17.1k
                codes + i * code_size, codes + j * code_size);
1507
17.1k
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll
Line
Count
Source
1504
8.95k
    float symmetric_dis(idx_t i, idx_t j) override {
1505
8.95k
        return compute_code_distance(
1506
8.95k
                codes + i * code_size, codes + j * code_size);
1507
8.95k
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll
Line
Count
Source
1504
8.23k
    float symmetric_dis(idx_t i, idx_t j) override {
1505
8.23k
        return compute_code_distance(
1506
8.23k
                codes + i * code_size, codes + j * code_size);
1507
8.23k
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll
1508
1509
12.9k
    float query_to_code(const uint8_t* code) const final {
1510
12.9k
        return compute_distance(q, code);
1511
12.9k
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh
ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh
Line
Count
Source
1509
6.49k
    float query_to_code(const uint8_t* code) const final {
1510
6.49k
        return compute_distance(q, code);
1511
6.49k
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh
ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh
Line
Count
Source
1509
6.41k
    float query_to_code(const uint8_t* code) const final {
1510
6.41k
        return compute_distance(q, code);
1511
6.41k
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_110DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh
1512
};
1513
1514
#if defined(USE_AVX512_F16C)
1515
1516
template <class Quantizer, class Similarity>
1517
struct DCTemplate<Quantizer, Similarity, 16>
1518
        : SQDistanceComputer { // Update to handle 16 lanes
1519
    using Sim = Similarity;
1520
1521
    Quantizer quant;
1522
1523
    DCTemplate(size_t d, const std::vector<float>& trained)
1524
            : quant(d, trained) {}
1525
1526
    float compute_distance(const float* x, const uint8_t* code) const {
1527
        Similarity sim(x);
1528
        sim.begin_16();
1529
        for (size_t i = 0; i < quant.d; i += 16) {
1530
            __m512 xi = quant.reconstruct_16_components(code, i);
1531
            sim.add_16_components(xi);
1532
        }
1533
        return sim.result_16();
1534
    }
1535
1536
    float compute_code_distance(const uint8_t* code1, const uint8_t* code2)
1537
            const {
1538
        Similarity sim(nullptr);
1539
        sim.begin_16();
1540
        for (size_t i = 0; i < quant.d; i += 16) {
1541
            __m512 x1 = quant.reconstruct_16_components(code1, i);
1542
            __m512 x2 = quant.reconstruct_16_components(code2, i);
1543
            sim.add_16_components_2(x1, x2);
1544
        }
1545
        return sim.result_16();
1546
    }
1547
1548
    void set_query(const float* x) final {
1549
        q = x;
1550
    }
1551
1552
    float symmetric_dis(idx_t i, idx_t j) override {
1553
        return compute_code_distance(
1554
                codes + i * code_size, codes + j * code_size);
1555
    }
1556
1557
    float query_to_code(const uint8_t* code) const final {
1558
        return compute_distance(q, code);
1559
    }
1560
};
1561
1562
#elif defined(USE_F16C)
1563
1564
template <class Quantizer, class Similarity>
1565
struct DCTemplate<Quantizer, Similarity, 8> : SQDistanceComputer {
1566
    using Sim = Similarity;
1567
1568
    Quantizer quant;
1569
1570
    DCTemplate(size_t d, const std::vector<float>& trained)
1571
            : quant(d, trained) {}
1572
1573
    float compute_distance(const float* x, const uint8_t* code) const {
1574
        Similarity sim(x);
1575
        sim.begin_8();
1576
        for (size_t i = 0; i < quant.d; i += 8) {
1577
            __m256 xi = quant.reconstruct_8_components(code, i);
1578
            sim.add_8_components(xi);
1579
        }
1580
        return sim.result_8();
1581
    }
1582
1583
    float compute_code_distance(const uint8_t* code1, const uint8_t* code2)
1584
            const {
1585
        Similarity sim(nullptr);
1586
        sim.begin_8();
1587
        for (size_t i = 0; i < quant.d; i += 8) {
1588
            __m256 x1 = quant.reconstruct_8_components(code1, i);
1589
            __m256 x2 = quant.reconstruct_8_components(code2, i);
1590
            sim.add_8_components_2(x1, x2);
1591
        }
1592
        return sim.result_8();
1593
    }
1594
1595
    void set_query(const float* x) final {
1596
        q = x;
1597
    }
1598
1599
    float symmetric_dis(idx_t i, idx_t j) override {
1600
        return compute_code_distance(
1601
                codes + i * code_size, codes + j * code_size);
1602
    }
1603
1604
    float query_to_code(const uint8_t* code) const final {
1605
        return compute_distance(q, code);
1606
    }
1607
};
1608
1609
#endif
1610
1611
#ifdef USE_NEON
1612
1613
template <class Quantizer, class Similarity>
1614
struct DCTemplate<Quantizer, Similarity, 8> : SQDistanceComputer {
1615
    using Sim = Similarity;
1616
1617
    Quantizer quant;
1618
1619
    DCTemplate(size_t d, const std::vector<float>& trained)
1620
            : quant(d, trained) {}
1621
    float compute_distance(const float* x, const uint8_t* code) const {
1622
        Similarity sim(x);
1623
        sim.begin_8();
1624
        for (size_t i = 0; i < quant.d; i += 8) {
1625
            float32x4x2_t xi = quant.reconstruct_8_components(code, i);
1626
            sim.add_8_components(xi);
1627
        }
1628
        return sim.result_8();
1629
    }
1630
1631
    float compute_code_distance(const uint8_t* code1, const uint8_t* code2)
1632
            const {
1633
        Similarity sim(nullptr);
1634
        sim.begin_8();
1635
        for (size_t i = 0; i < quant.d; i += 8) {
1636
            float32x4x2_t x1 = quant.reconstruct_8_components(code1, i);
1637
            float32x4x2_t x2 = quant.reconstruct_8_components(code2, i);
1638
            sim.add_8_components_2(x1, x2);
1639
        }
1640
        return sim.result_8();
1641
    }
1642
1643
    void set_query(const float* x) final {
1644
        q = x;
1645
    }
1646
1647
    float symmetric_dis(idx_t i, idx_t j) override {
1648
        return compute_code_distance(
1649
                codes + i * code_size, codes + j * code_size);
1650
    }
1651
1652
    float query_to_code(const uint8_t* code) const final {
1653
        return compute_distance(q, code);
1654
    }
1655
};
1656
#endif
1657
1658
/*******************************************************************
1659
 * DistanceComputerByte: computes distances in the integer domain
1660
 *******************************************************************/
1661
1662
template <class Similarity, int SIMDWIDTH>
1663
struct DistanceComputerByte : SQDistanceComputer {};
1664
1665
template <class Similarity>
1666
struct DistanceComputerByte<Similarity, 1> : SQDistanceComputer {
1667
    using Sim = Similarity;
1668
1669
    int d;
1670
    std::vector<uint8_t> tmp;
1671
1672
0
    DistanceComputerByte(int d, const std::vector<float>&) : d(d), tmp(d) {}
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEC2EiRKSt6vectorIfSaIfEE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEC2EiRKSt6vectorIfSaIfEE
1673
1674
    int compute_code_distance(const uint8_t* code1, const uint8_t* code2)
1675
0
            const {
1676
0
        int accu = 0;
1677
0
        for (int i = 0; i < d; i++) {
1678
0
            if (Sim::metric_type == METRIC_INNER_PRODUCT) {
1679
0
                accu += int(code1[i]) * code2[i];
1680
0
            } else {
1681
0
                int diff = int(code1[i]) - code2[i];
1682
0
                accu += diff * diff;
1683
0
            }
1684
0
        }
1685
0
        return accu;
1686
0
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EE21compute_code_distanceEPKhS6_
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EE21compute_code_distanceEPKhS6_
1687
1688
0
    void set_query(const float* x) final {
1689
0
        for (int i = 0; i < d; i++) {
1690
0
            tmp[i] = int(x[i]);
1691
0
        }
1692
0
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EE9set_queryEPKf
1693
1694
    int compute_distance(const float* x, const uint8_t* code) {
1695
        set_query(x);
1696
        return compute_code_distance(tmp.data(), code);
1697
    }
1698
1699
0
    float symmetric_dis(idx_t i, idx_t j) override {
1700
0
        return compute_code_distance(
1701
0
                codes + i * code_size, codes + j * code_size);
1702
0
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EE13symmetric_disEll
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EE13symmetric_disEll
1703
1704
0
    float query_to_code(const uint8_t* code) const final {
1705
0
        return compute_code_distance(tmp.data(), code);
1706
0
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EE13query_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_120DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EE13query_to_codeEPKh
1707
};
1708
1709
#if defined(__AVX512F__)
1710
1711
template <class Similarity>
1712
struct DistanceComputerByte<Similarity, 16> : SQDistanceComputer {
1713
    using Sim = Similarity;
1714
1715
    int d;
1716
    std::vector<uint8_t> tmp;
1717
1718
    DistanceComputerByte(int d, const std::vector<float>&) : d(d), tmp(d) {}
1719
1720
    int compute_code_distance(const uint8_t* code1, const uint8_t* code2)
1721
            const {
1722
        __m512i accu = _mm512_setzero_si512();
1723
        for (int i = 0; i < d; i += 32) { // Process 32 bytes at a time
1724
            __m512i c1 = _mm512_cvtepu8_epi16(
1725
                    _mm256_loadu_si256((__m256i*)(code1 + i)));
1726
            __m512i c2 = _mm512_cvtepu8_epi16(
1727
                    _mm256_loadu_si256((__m256i*)(code2 + i)));
1728
            __m512i prod32;
1729
            if (Sim::metric_type == METRIC_INNER_PRODUCT) {
1730
                prod32 = _mm512_madd_epi16(c1, c2);
1731
            } else {
1732
                __m512i diff = _mm512_sub_epi16(c1, c2);
1733
                prod32 = _mm512_madd_epi16(diff, diff);
1734
            }
1735
            accu = _mm512_add_epi32(accu, prod32);
1736
        }
1737
        // Horizontally add elements of accu
1738
        return _mm512_reduce_add_epi32(accu);
1739
    }
1740
1741
    void set_query(const float* x) final {
1742
        for (int i = 0; i < d; i++) {
1743
            tmp[i] = int(x[i]);
1744
        }
1745
    }
1746
1747
    int compute_distance(const float* x, const uint8_t* code) {
1748
        set_query(x);
1749
        return compute_code_distance(tmp.data(), code);
1750
    }
1751
1752
    float symmetric_dis(idx_t i, idx_t j) override {
1753
        return compute_code_distance(
1754
                codes + i * code_size, codes + j * code_size);
1755
    }
1756
1757
    float query_to_code(const uint8_t* code) const final {
1758
        return compute_code_distance(tmp.data(), code);
1759
    }
1760
};
1761
1762
#elif defined(__AVX2__)
1763
1764
template <class Similarity>
1765
struct DistanceComputerByte<Similarity, 8> : SQDistanceComputer {
1766
    using Sim = Similarity;
1767
1768
    int d;
1769
    std::vector<uint8_t> tmp;
1770
1771
    DistanceComputerByte(int d, const std::vector<float>&) : d(d), tmp(d) {}
1772
1773
    int compute_code_distance(const uint8_t* code1, const uint8_t* code2)
1774
            const {
1775
        // __m256i accu = _mm256_setzero_ps ();
1776
        __m256i accu = _mm256_setzero_si256();
1777
        for (int i = 0; i < d; i += 16) {
1778
            // load 16 bytes, convert to 16 uint16_t
1779
            __m256i c1 = _mm256_cvtepu8_epi16(
1780
                    _mm_loadu_si128((__m128i*)(code1 + i)));
1781
            __m256i c2 = _mm256_cvtepu8_epi16(
1782
                    _mm_loadu_si128((__m128i*)(code2 + i)));
1783
            __m256i prod32;
1784
            if (Sim::metric_type == METRIC_INNER_PRODUCT) {
1785
                prod32 = _mm256_madd_epi16(c1, c2);
1786
            } else {
1787
                __m256i diff = _mm256_sub_epi16(c1, c2);
1788
                prod32 = _mm256_madd_epi16(diff, diff);
1789
            }
1790
            accu = _mm256_add_epi32(accu, prod32);
1791
        }
1792
        __m128i sum = _mm256_extractf128_si256(accu, 0);
1793
        sum = _mm_add_epi32(sum, _mm256_extractf128_si256(accu, 1));
1794
        sum = _mm_hadd_epi32(sum, sum);
1795
        sum = _mm_hadd_epi32(sum, sum);
1796
        return _mm_cvtsi128_si32(sum);
1797
    }
1798
1799
    void set_query(const float* x) final {
1800
        /*
1801
        for (int i = 0; i < d; i += 8) {
1802
            __m256 xi = _mm256_loadu_ps (x + i);
1803
            __m256i ci = _mm256_cvtps_epi32(xi);
1804
        */
1805
        for (int i = 0; i < d; i++) {
1806
            tmp[i] = int(x[i]);
1807
        }
1808
    }
1809
1810
    int compute_distance(const float* x, const uint8_t* code) {
1811
        set_query(x);
1812
        return compute_code_distance(tmp.data(), code);
1813
    }
1814
1815
    float symmetric_dis(idx_t i, idx_t j) override {
1816
        return compute_code_distance(
1817
                codes + i * code_size, codes + j * code_size);
1818
    }
1819
1820
    float query_to_code(const uint8_t* code) const final {
1821
        return compute_code_distance(tmp.data(), code);
1822
    }
1823
};
1824
1825
#endif
1826
1827
#ifdef USE_NEON
1828
1829
template <class Similarity>
1830
struct DistanceComputerByte<Similarity, 8> : SQDistanceComputer {
1831
    using Sim = Similarity;
1832
1833
    int d;
1834
    std::vector<uint8_t> tmp;
1835
1836
    DistanceComputerByte(int d, const std::vector<float>&) : d(d), tmp(d) {}
1837
1838
    int compute_code_distance(const uint8_t* code1, const uint8_t* code2)
1839
            const {
1840
        int accu = 0;
1841
        for (int i = 0; i < d; i++) {
1842
            if (Sim::metric_type == METRIC_INNER_PRODUCT) {
1843
                accu += int(code1[i]) * code2[i];
1844
            } else {
1845
                int diff = int(code1[i]) - code2[i];
1846
                accu += diff * diff;
1847
            }
1848
        }
1849
        return accu;
1850
    }
1851
1852
    void set_query(const float* x) final {
1853
        for (int i = 0; i < d; i++) {
1854
            tmp[i] = int(x[i]);
1855
        }
1856
    }
1857
1858
    int compute_distance(const float* x, const uint8_t* code) {
1859
        set_query(x);
1860
        return compute_code_distance(tmp.data(), code);
1861
    }
1862
1863
    float symmetric_dis(idx_t i, idx_t j) override {
1864
        return compute_code_distance(
1865
                codes + i * code_size, codes + j * code_size);
1866
    }
1867
1868
    float query_to_code(const uint8_t* code) const final {
1869
        return compute_code_distance(tmp.data(), code);
1870
    }
1871
};
1872
1873
#endif
1874
1875
/*******************************************************************
1876
 * select_distance_computer: runtime selection of template
1877
 * specialization
1878
 *******************************************************************/
1879
1880
template <class Sim>
1881
SQDistanceComputer* select_distance_computer(
1882
        QuantizerType qtype,
1883
        size_t d,
1884
12
        const std::vector<float>& trained) {
1885
12
    constexpr int SIMDWIDTH = Sim::simdwidth;
1886
12
    switch (qtype) {
1887
0
        case ScalarQuantizer::QT_8bit_uniform:
1888
0
            return new DCTemplate<
1889
0
                    QuantizerTemplate<
1890
0
                            Codec8bit,
1891
0
                            QuantizerTemplateScaling::UNIFORM,
1892
0
                            SIMDWIDTH>,
1893
0
                    Sim,
1894
0
                    SIMDWIDTH>(d, trained);
1895
1896
0
        case ScalarQuantizer::QT_4bit_uniform:
1897
0
            return new DCTemplate<
1898
0
                    QuantizerTemplate<
1899
0
                            Codec4bit,
1900
0
                            QuantizerTemplateScaling::UNIFORM,
1901
0
                            SIMDWIDTH>,
1902
0
                    Sim,
1903
0
                    SIMDWIDTH>(d, trained);
1904
1905
6
        case ScalarQuantizer::QT_8bit:
1906
6
            return new DCTemplate<
1907
6
                    QuantizerTemplate<
1908
6
                            Codec8bit,
1909
6
                            QuantizerTemplateScaling::NON_UNIFORM,
1910
6
                            SIMDWIDTH>,
1911
6
                    Sim,
1912
6
                    SIMDWIDTH>(d, trained);
1913
1914
0
        case ScalarQuantizer::QT_6bit:
1915
0
            return new DCTemplate<
1916
0
                    QuantizerTemplate<
1917
0
                            Codec6bit,
1918
0
                            QuantizerTemplateScaling::NON_UNIFORM,
1919
0
                            SIMDWIDTH>,
1920
0
                    Sim,
1921
0
                    SIMDWIDTH>(d, trained);
1922
1923
6
        case ScalarQuantizer::QT_4bit:
1924
6
            return new DCTemplate<
1925
6
                    QuantizerTemplate<
1926
6
                            Codec4bit,
1927
6
                            QuantizerTemplateScaling::NON_UNIFORM,
1928
6
                            SIMDWIDTH>,
1929
6
                    Sim,
1930
6
                    SIMDWIDTH>(d, trained);
1931
1932
0
        case ScalarQuantizer::QT_fp16:
1933
0
            return new DCTemplate<QuantizerFP16<SIMDWIDTH>, Sim, SIMDWIDTH>(
1934
0
                    d, trained);
1935
1936
0
        case ScalarQuantizer::QT_bf16:
1937
0
            return new DCTemplate<QuantizerBF16<SIMDWIDTH>, Sim, SIMDWIDTH>(
1938
0
                    d, trained);
1939
1940
0
        case ScalarQuantizer::QT_8bit_direct:
1941
#if defined(__AVX512F__)
1942
            if (d % 32 == 0) {
1943
                return new DistanceComputerByte<Sim, SIMDWIDTH>(d, trained);
1944
            } else
1945
#elif defined(__AVX2__)
1946
0
            if (d % 16 == 0) {
1947
0
                return new DistanceComputerByte<Sim, SIMDWIDTH>(d, trained);
1948
0
            } else
1949
0
#endif
1950
0
            {
1951
0
                return new DCTemplate<
1952
0
                        Quantizer8bitDirect<SIMDWIDTH>,
1953
0
                        Sim,
1954
0
                        SIMDWIDTH>(d, trained);
1955
0
            }
1956
0
        case ScalarQuantizer::QT_8bit_direct_signed:
1957
0
            return new DCTemplate<
1958
0
                    Quantizer8bitDirectSigned<SIMDWIDTH>,
1959
0
                    Sim,
1960
0
                    SIMDWIDTH>(d, trained);
1961
12
    }
1962
0
    FAISS_THROW_MSG("unknown qtype");
1963
0
    return nullptr;
1964
0
}
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124select_distance_computerINS0_12SimilarityL2ILi1EEEEEPNS_15ScalarQuantizer18SQDistanceComputerENS4_13QuantizerTypeEmRKSt6vectorIfSaIfEE
Line
Count
Source
1884
12
        const std::vector<float>& trained) {
1885
12
    constexpr int SIMDWIDTH = Sim::simdwidth;
1886
12
    switch (qtype) {
1887
0
        case ScalarQuantizer::QT_8bit_uniform:
1888
0
            return new DCTemplate<
1889
0
                    QuantizerTemplate<
1890
0
                            Codec8bit,
1891
0
                            QuantizerTemplateScaling::UNIFORM,
1892
0
                            SIMDWIDTH>,
1893
0
                    Sim,
1894
0
                    SIMDWIDTH>(d, trained);
1895
1896
0
        case ScalarQuantizer::QT_4bit_uniform:
1897
0
            return new DCTemplate<
1898
0
                    QuantizerTemplate<
1899
0
                            Codec4bit,
1900
0
                            QuantizerTemplateScaling::UNIFORM,
1901
0
                            SIMDWIDTH>,
1902
0
                    Sim,
1903
0
                    SIMDWIDTH>(d, trained);
1904
1905
6
        case ScalarQuantizer::QT_8bit:
1906
6
            return new DCTemplate<
1907
6
                    QuantizerTemplate<
1908
6
                            Codec8bit,
1909
6
                            QuantizerTemplateScaling::NON_UNIFORM,
1910
6
                            SIMDWIDTH>,
1911
6
                    Sim,
1912
6
                    SIMDWIDTH>(d, trained);
1913
1914
0
        case ScalarQuantizer::QT_6bit:
1915
0
            return new DCTemplate<
1916
0
                    QuantizerTemplate<
1917
0
                            Codec6bit,
1918
0
                            QuantizerTemplateScaling::NON_UNIFORM,
1919
0
                            SIMDWIDTH>,
1920
0
                    Sim,
1921
0
                    SIMDWIDTH>(d, trained);
1922
1923
6
        case ScalarQuantizer::QT_4bit:
1924
6
            return new DCTemplate<
1925
6
                    QuantizerTemplate<
1926
6
                            Codec4bit,
1927
6
                            QuantizerTemplateScaling::NON_UNIFORM,
1928
6
                            SIMDWIDTH>,
1929
6
                    Sim,
1930
6
                    SIMDWIDTH>(d, trained);
1931
1932
0
        case ScalarQuantizer::QT_fp16:
1933
0
            return new DCTemplate<QuantizerFP16<SIMDWIDTH>, Sim, SIMDWIDTH>(
1934
0
                    d, trained);
1935
1936
0
        case ScalarQuantizer::QT_bf16:
1937
0
            return new DCTemplate<QuantizerBF16<SIMDWIDTH>, Sim, SIMDWIDTH>(
1938
0
                    d, trained);
1939
1940
0
        case ScalarQuantizer::QT_8bit_direct:
1941
#if defined(__AVX512F__)
1942
            if (d % 32 == 0) {
1943
                return new DistanceComputerByte<Sim, SIMDWIDTH>(d, trained);
1944
            } else
1945
#elif defined(__AVX2__)
1946
0
            if (d % 16 == 0) {
1947
0
                return new DistanceComputerByte<Sim, SIMDWIDTH>(d, trained);
1948
0
            } else
1949
0
#endif
1950
0
            {
1951
0
                return new DCTemplate<
1952
0
                        Quantizer8bitDirect<SIMDWIDTH>,
1953
0
                        Sim,
1954
0
                        SIMDWIDTH>(d, trained);
1955
0
            }
1956
0
        case ScalarQuantizer::QT_8bit_direct_signed:
1957
0
            return new DCTemplate<
1958
0
                    Quantizer8bitDirectSigned<SIMDWIDTH>,
1959
0
                    Sim,
1960
0
                    SIMDWIDTH>(d, trained);
1961
12
    }
1962
0
    FAISS_THROW_MSG("unknown qtype");
1963
0
    return nullptr;
1964
0
}
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124select_distance_computerINS0_12SimilarityIPILi1EEEEEPNS_15ScalarQuantizer18SQDistanceComputerENS4_13QuantizerTypeEmRKSt6vectorIfSaIfEE
1965
1966
} // anonymous namespace
1967
1968
/*******************************************************************
1969
 * ScalarQuantizer implementation
1970
 ********************************************************************/
1971
1972
ScalarQuantizer::ScalarQuantizer(size_t d, QuantizerType qtype)
1973
7
        : Quantizer(d), qtype(qtype) {
1974
7
    set_derived_sizes();
1975
7
}
1976
1977
2
ScalarQuantizer::ScalarQuantizer() {}
1978
1979
11
void ScalarQuantizer::set_derived_sizes() {
1980
11
    switch (qtype) {
1981
6
        case QT_8bit:
1982
6
        case QT_8bit_uniform:
1983
6
        case QT_8bit_direct:
1984
6
        case QT_8bit_direct_signed:
1985
6
            code_size = d;
1986
6
            bits = 8;
1987
6
            break;
1988
5
        case QT_4bit:
1989
5
        case QT_4bit_uniform:
1990
5
            code_size = (d + 1) / 2;
1991
5
            bits = 4;
1992
5
            break;
1993
0
        case QT_6bit:
1994
0
            code_size = (d * 6 + 7) / 8;
1995
0
            bits = 6;
1996
0
            break;
1997
0
        case QT_fp16:
1998
0
            code_size = d * 2;
1999
0
            bits = 16;
2000
0
            break;
2001
0
        case QT_bf16:
2002
0
            code_size = d * 2;
2003
0
            bits = 16;
2004
0
            break;
2005
11
    }
2006
11
}
2007
2008
4
void ScalarQuantizer::train(size_t n, const float* x) {
2009
4
    int bit_per_dim = qtype == QT_4bit_uniform ? 4
2010
4
            : qtype == QT_4bit                 ? 4
2011
4
            : qtype == QT_6bit                 ? 6
2012
2
            : qtype == QT_8bit_uniform         ? 8
2013
2
            : qtype == QT_8bit                 ? 8
2014
2
                                               : -1;
2015
2016
4
    switch (qtype) {
2017
0
        case QT_4bit_uniform:
2018
0
        case QT_8bit_uniform:
2019
0
            train_Uniform(
2020
0
                    rangestat,
2021
0
                    rangestat_arg,
2022
0
                    n * d,
2023
0
                    1 << bit_per_dim,
2024
0
                    x,
2025
0
                    trained);
2026
0
            break;
2027
2
        case QT_4bit:
2028
4
        case QT_8bit:
2029
4
        case QT_6bit:
2030
4
            train_NonUniform(
2031
4
                    rangestat,
2032
4
                    rangestat_arg,
2033
4
                    n,
2034
4
                    d,
2035
4
                    1 << bit_per_dim,
2036
4
                    x,
2037
4
                    trained);
2038
4
            break;
2039
0
        case QT_fp16:
2040
0
        case QT_8bit_direct:
2041
0
        case QT_bf16:
2042
0
        case QT_8bit_direct_signed:
2043
            // no training necessary
2044
0
            break;
2045
4
    }
2046
4
}
2047
2048
4
ScalarQuantizer::SQuantizer* ScalarQuantizer::select_quantizer() const {
2049
#if defined(USE_AVX512_F16C)
2050
    if (d % 16 == 0) {
2051
        return select_quantizer_1<16>(qtype, d, trained);
2052
    } else
2053
#elif defined(USE_F16C) || defined(USE_NEON)
2054
    if (d % 8 == 0) {
2055
        return select_quantizer_1<8>(qtype, d, trained);
2056
    } else
2057
#endif
2058
4
    {
2059
4
        return select_quantizer_1<1>(qtype, d, trained);
2060
4
    }
2061
4
}
2062
2063
void ScalarQuantizer::compute_codes(const float* x, uint8_t* codes, size_t n)
2064
2
        const {
2065
2
    std::unique_ptr<SQuantizer> squant(select_quantizer());
2066
2067
2
    memset(codes, 0, code_size * n);
2068
2
#pragma omp parallel for
2069
16
    for (int64_t i = 0; i < n; i++)
2070
8
        squant->encode_vector(x + i * d, codes + i * code_size);
2071
2
}
2072
2073
0
void ScalarQuantizer::decode(const uint8_t* codes, float* x, size_t n) const {
2074
0
    std::unique_ptr<SQuantizer> squant(select_quantizer());
2075
2076
0
#pragma omp parallel for
2077
0
    for (int64_t i = 0; i < n; i++)
2078
0
        squant->decode_vector(codes + i * code_size, x + i * d);
2079
0
}
2080
2081
SQDistanceComputer* ScalarQuantizer::get_distance_computer(
2082
12
        MetricType metric) const {
2083
12
    FAISS_THROW_IF_NOT(metric == METRIC_L2 || metric == METRIC_INNER_PRODUCT);
2084
#if defined(USE_AVX512_F16C)
2085
    if (d % 16 == 0) {
2086
        if (metric == METRIC_L2) {
2087
            return select_distance_computer<SimilarityL2<16>>(
2088
                    qtype, d, trained);
2089
        } else {
2090
            return select_distance_computer<SimilarityIP<16>>(
2091
                    qtype, d, trained);
2092
        }
2093
    } else
2094
#elif defined(USE_F16C) || defined(USE_NEON)
2095
    if (d % 8 == 0) {
2096
        if (metric == METRIC_L2) {
2097
            return select_distance_computer<SimilarityL2<8>>(qtype, d, trained);
2098
        } else {
2099
            return select_distance_computer<SimilarityIP<8>>(qtype, d, trained);
2100
        }
2101
    } else
2102
#endif
2103
12
    {
2104
12
        if (metric == METRIC_L2) {
2105
12
            return select_distance_computer<SimilarityL2<1>>(qtype, d, trained);
2106
12
        } else {
2107
0
            return select_distance_computer<SimilarityIP<1>>(qtype, d, trained);
2108
0
        }
2109
12
    }
2110
12
}
2111
2112
/*******************************************************************
2113
 * IndexScalarQuantizer/IndexIVFScalarQuantizer scanner object
2114
 *
2115
 * It is an InvertedListScanner, but is designed to work with
2116
 * IndexScalarQuantizer as well.
2117
 ********************************************************************/
2118
2119
namespace {
2120
2121
template <class DCClass, int use_sel>
2122
struct IVFSQScannerIP : InvertedListScanner {
2123
    DCClass dc;
2124
    bool by_residual;
2125
2126
    float accu0; /// added to all distances
2127
2128
    IVFSQScannerIP(
2129
            int d,
2130
            const std::vector<float>& trained,
2131
            size_t code_size,
2132
            bool store_pairs,
2133
            const IDSelector* sel,
2134
            bool by_residual)
2135
0
            : dc(d, trained), by_residual(by_residual), accu0(0) {
2136
0
        this->store_pairs = store_pairs;
2137
0
        this->sel = sel;
2138
0
        this->code_size = code_size;
2139
0
        this->keep_max = true;
2140
0
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmbPKNS_10IDSelectorEb
2141
2142
0
    void set_query(const float* query) override {
2143
0
        dc.set_query(query);
2144
0
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
2145
2146
0
    void set_list(idx_t list_no, float coarse_dis) override {
2147
0
        this->list_no = list_no;
2148
0
        accu0 = by_residual ? coarse_dis : 0;
2149
0
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
2150
2151
0
    float distance_to_code(const uint8_t* code) const final {
2152
0
        return accu0 + dc.query_to_code(code);
2153
0
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
2154
2155
    size_t scan_codes(
2156
            size_t list_size,
2157
            const uint8_t* codes,
2158
            const idx_t* ids,
2159
            float* simi,
2160
            idx_t* idxi,
2161
0
            size_t k) const override {
2162
0
        size_t nup = 0;
2163
2164
0
        for (size_t j = 0; j < list_size; j++, codes += code_size) {
2165
0
            if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) {
2166
0
                continue;
2167
0
            }
2168
2169
0
            float accu = accu0 + dc.query_to_code(codes);
2170
2171
0
            if (accu > simi[0]) {
2172
0
                int64_t id = store_pairs ? (list_no << 32 | j) : ids[j];
2173
0
                minheap_replace_top(k, simi, idxi, accu, id);
2174
0
                nup++;
2175
0
            }
2176
0
        }
2177
0
        return nup;
2178
0
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
2179
2180
    void scan_codes_range(
2181
            size_t list_size,
2182
            const uint8_t* codes,
2183
            const idx_t* ids,
2184
            float radius,
2185
0
            RangeQueryResult& res) const override {
2186
0
        for (size_t j = 0; j < list_size; j++, codes += code_size) {
2187
0
            if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) {
2188
0
                continue;
2189
0
            }
2190
2191
0
            float accu = accu0 + dc.query_to_code(codes);
2192
0
            if (accu > radius) {
2193
0
                int64_t id = store_pairs ? (list_no << 32 | j) : ids[j];
2194
0
                res.add(accu, id);
2195
0
            }
2196
0
        }
2197
0
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerIPINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
2198
};
2199
2200
/* use_sel = 0: don't check selector
2201
 * = 1: check on ids[j]
2202
 * = 2: check in j directly (normally ids is nullptr and store_pairs)
2203
 */
2204
template <class DCClass, int use_sel>
2205
struct IVFSQScannerL2 : InvertedListScanner {
2206
    DCClass dc;
2207
2208
    bool by_residual;
2209
    const Index* quantizer;
2210
    const float* x; /// current query
2211
2212
    std::vector<float> tmp;
2213
2214
    IVFSQScannerL2(
2215
            int d,
2216
            const std::vector<float>& trained,
2217
            size_t code_size,
2218
            const Index* quantizer,
2219
            bool store_pairs,
2220
            const IDSelector* sel,
2221
            bool by_residual)
2222
8
            : dc(d, trained),
2223
8
              by_residual(by_residual),
2224
8
              quantizer(quantizer),
2225
8
              x(nullptr),
2226
8
              tmp(d) {
2227
8
        this->store_pairs = store_pairs;
2228
8
        this->sel = sel;
2229
8
        this->code_size = code_size;
2230
8
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Line
Count
Source
2222
2
            : dc(d, trained),
2223
2
              by_residual(by_residual),
2224
2
              quantizer(quantizer),
2225
2
              x(nullptr),
2226
2
              tmp(d) {
2227
2
        this->store_pairs = store_pairs;
2228
2
        this->sel = sel;
2229
2
        this->code_size = code_size;
2230
2
    }
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Line
Count
Source
2222
2
            : dc(d, trained),
2223
2
              by_residual(by_residual),
2224
2
              quantizer(quantizer),
2225
2
              x(nullptr),
2226
2
              tmp(d) {
2227
2
        this->store_pairs = store_pairs;
2228
2
        this->sel = sel;
2229
2
        this->code_size = code_size;
2230
2
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Line
Count
Source
2222
2
            : dc(d, trained),
2223
2
              by_residual(by_residual),
2224
2
              quantizer(quantizer),
2225
2
              x(nullptr),
2226
2
              tmp(d) {
2227
2
        this->store_pairs = store_pairs;
2228
2
        this->sel = sel;
2229
2
        this->code_size = code_size;
2230
2
    }
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Line
Count
Source
2222
2
            : dc(d, trained),
2223
2
              by_residual(by_residual),
2224
2
              quantizer(quantizer),
2225
2
              x(nullptr),
2226
2
              tmp(d) {
2227
2
        this->store_pairs = store_pairs;
2228
2
        this->sel = sel;
2229
2
        this->code_size = code_size;
2230
2
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEC2EiRKSt6vectorIfSaIfEEmPKNS_5IndexEbPKNS_10IDSelectorEb
2231
2232
8
    void set_query(const float* query) override {
2233
8
        x = query;
2234
8
        if (!quantizer) {
2235
0
            dc.set_query(query);
2236
0
        }
2237
8
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Line
Count
Source
2232
2
    void set_query(const float* query) override {
2233
2
        x = query;
2234
2
        if (!quantizer) {
2235
0
            dc.set_query(query);
2236
0
        }
2237
2
    }
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Line
Count
Source
2232
2
    void set_query(const float* query) override {
2233
2
        x = query;
2234
2
        if (!quantizer) {
2235
0
            dc.set_query(query);
2236
0
        }
2237
2
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Line
Count
Source
2232
2
    void set_query(const float* query) override {
2233
2
        x = query;
2234
2
        if (!quantizer) {
2235
0
            dc.set_query(query);
2236
0
        }
2237
2
    }
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Line
Count
Source
2232
2
    void set_query(const float* query) override {
2233
2
        x = query;
2234
2
        if (!quantizer) {
2235
0
            dc.set_query(query);
2236
0
        }
2237
2
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE9set_queryEPKf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE9set_queryEPKf
2238
2239
20
    void set_list(idx_t list_no, float /*coarse_dis*/) override {
2240
20
        this->list_no = list_no;
2241
20
        if (by_residual) {
2242
            // shift of x_in wrt centroid
2243
20
            quantizer->compute_residual(x, tmp.data(), list_no);
2244
20
            dc.set_query(tmp.data());
2245
20
        } else {
2246
0
            dc.set_query(x);
2247
0
        }
2248
20
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Line
Count
Source
2239
2
    void set_list(idx_t list_no, float /*coarse_dis*/) override {
2240
2
        this->list_no = list_no;
2241
2
        if (by_residual) {
2242
            // shift of x_in wrt centroid
2243
2
            quantizer->compute_residual(x, tmp.data(), list_no);
2244
2
            dc.set_query(tmp.data());
2245
2
        } else {
2246
0
            dc.set_query(x);
2247
0
        }
2248
2
    }
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Line
Count
Source
2239
8
    void set_list(idx_t list_no, float /*coarse_dis*/) override {
2240
8
        this->list_no = list_no;
2241
8
        if (by_residual) {
2242
            // shift of x_in wrt centroid
2243
8
            quantizer->compute_residual(x, tmp.data(), list_no);
2244
8
            dc.set_query(tmp.data());
2245
8
        } else {
2246
0
            dc.set_query(x);
2247
0
        }
2248
8
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Line
Count
Source
2239
2
    void set_list(idx_t list_no, float /*coarse_dis*/) override {
2240
2
        this->list_no = list_no;
2241
2
        if (by_residual) {
2242
            // shift of x_in wrt centroid
2243
2
            quantizer->compute_residual(x, tmp.data(), list_no);
2244
2
            dc.set_query(tmp.data());
2245
2
        } else {
2246
0
            dc.set_query(x);
2247
0
        }
2248
2
    }
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Line
Count
Source
2239
8
    void set_list(idx_t list_no, float /*coarse_dis*/) override {
2240
8
        this->list_no = list_no;
2241
8
        if (by_residual) {
2242
            // shift of x_in wrt centroid
2243
8
            quantizer->compute_residual(x, tmp.data(), list_no);
2244
8
            dc.set_query(tmp.data());
2245
8
        } else {
2246
0
            dc.set_query(x);
2247
0
        }
2248
8
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE8set_listElf
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE8set_listElf
2249
2250
0
    float distance_to_code(const uint8_t* code) const final {
2251
0
        return dc.query_to_code(code);
2252
0
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16distance_to_codeEPKh
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16distance_to_codeEPKh
2253
2254
    size_t scan_codes(
2255
            size_t list_size,
2256
            const uint8_t* codes,
2257
            const idx_t* ids,
2258
            float* simi,
2259
            idx_t* idxi,
2260
16
            size_t k) const override {
2261
16
        size_t nup = 0;
2262
416
        for (size_t j = 0; j < list_size; j++, codes += code_size) {
2263
400
            if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) {
2264
0
                continue;
2265
0
            }
2266
2267
400
            float dis = dc.query_to_code(codes);
2268
2269
400
            if (dis < simi[0]) {
2270
110
                int64_t id = store_pairs ? (list_no << 32 | j) : ids[j];
2271
110
                maxheap_replace_top(k, simi, idxi, dis, id);
2272
110
                nup++;
2273
110
            }
2274
400
        }
2275
16
        return nup;
2276
16
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Line
Count
Source
2260
8
            size_t k) const override {
2261
8
        size_t nup = 0;
2262
208
        for (size_t j = 0; j < list_size; j++, codes += code_size) {
2263
200
            if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) {
2264
0
                continue;
2265
0
            }
2266
2267
200
            float dis = dc.query_to_code(codes);
2268
2269
200
            if (dis < simi[0]) {
2270
46
                int64_t id = store_pairs ? (list_no << 32 | j) : ids[j];
2271
46
                maxheap_replace_top(k, simi, idxi, dis, id);
2272
46
                nup++;
2273
46
            }
2274
200
        }
2275
8
        return nup;
2276
8
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Line
Count
Source
2260
8
            size_t k) const override {
2261
8
        size_t nup = 0;
2262
208
        for (size_t j = 0; j < list_size; j++, codes += code_size) {
2263
200
            if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) {
2264
0
                continue;
2265
0
            }
2266
2267
200
            float dis = dc.query_to_code(codes);
2268
2269
200
            if (dis < simi[0]) {
2270
64
                int64_t id = store_pairs ? (list_no << 32 | j) : ids[j];
2271
64
                maxheap_replace_top(k, simi, idxi, dis, id);
2272
64
                nup++;
2273
64
            }
2274
200
        }
2275
8
        return nup;
2276
8
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE10scan_codesEmPKhPKlPfPlm
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE10scan_codesEmPKhPKlPfPlm
2277
2278
    void scan_codes_range(
2279
            size_t list_size,
2280
            const uint8_t* codes,
2281
            const idx_t* ids,
2282
            float radius,
2283
4
            RangeQueryResult& res) const override {
2284
114
        for (size_t j = 0; j < list_size; j++, codes += code_size) {
2285
110
            if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) {
2286
0
                continue;
2287
0
            }
2288
2289
110
            float dis = dc.query_to_code(codes);
2290
110
            if (dis < radius) {
2291
108
                int64_t id = store_pairs ? (list_no << 32 | j) : ids[j];
2292
108
                res.add(dis, id);
2293
108
            }
2294
110
        }
2295
4
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Line
Count
Source
2283
2
            RangeQueryResult& res) const override {
2284
32
        for (size_t j = 0; j < list_size; j++, codes += code_size) {
2285
30
            if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) {
2286
0
                continue;
2287
0
            }
2288
2289
30
            float dis = dc.query_to_code(codes);
2290
30
            if (dis < radius) {
2291
30
                int64_t id = store_pairs ? (list_no << 32 | j) : ids[j];
2292
30
                res.add(dis, id);
2293
30
            }
2294
30
        }
2295
2
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Line
Count
Source
2283
2
            RangeQueryResult& res) const override {
2284
82
        for (size_t j = 0; j < list_size; j++, codes += code_size) {
2285
80
            if (use_sel && !sel->is_member(use_sel == 1 ? ids[j] : j)) {
2286
0
                continue;
2287
0
            }
2288
2289
80
            float dis = dc.query_to_code(codes);
2290
80
            if (dis < radius) {
2291
78
                int64_t id = store_pairs ? (list_no << 32 | j) : ids[j];
2292
78
                res.add(dis, id);
2293
78
            }
2294
80
        }
2295
2
    }
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
Unexecuted instantiation: ScalarQuantizer.cpp:_ZNK5faiss12_GLOBAL__N_114IVFSQScannerL2INS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EE16scan_codes_rangeEmPKhPKlfRNS_16RangeQueryResultE
2296
};
2297
2298
template <class DCClass, int use_sel>
2299
InvertedListScanner* sel3_InvertedListScanner(
2300
        const ScalarQuantizer* sq,
2301
        const Index* quantizer,
2302
        bool store_pairs,
2303
        const IDSelector* sel,
2304
8
        bool r) {
2305
8
    if (DCClass::Sim::metric_type == METRIC_L2) {
2306
8
        return new IVFSQScannerL2<DCClass, use_sel>(
2307
8
                sq->d,
2308
8
                sq->trained,
2309
8
                sq->code_size,
2310
8
                quantizer,
2311
8
                store_pairs,
2312
8
                sel,
2313
8
                r);
2314
8
    } else if (DCClass::Sim::metric_type == METRIC_INNER_PRODUCT) {
2315
0
        return new IVFSQScannerIP<DCClass, use_sel>(
2316
0
                sq->d, sq->trained, sq->code_size, store_pairs, sel, r);
2317
0
    } else {
2318
0
        FAISS_THROW_MSG("unsupported metric type");
2319
0
    }
2320
8
}
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Line
Count
Source
2304
2
        bool r) {
2305
2
    if (DCClass::Sim::metric_type == METRIC_L2) {
2306
2
        return new IVFSQScannerL2<DCClass, use_sel>(
2307
2
                sq->d,
2308
2
                sq->trained,
2309
2
                sq->code_size,
2310
2
                quantizer,
2311
2
                store_pairs,
2312
2
                sel,
2313
2
                r);
2314
2
    } else if (DCClass::Sim::metric_type == METRIC_INNER_PRODUCT) {
2315
0
        return new IVFSQScannerIP<DCClass, use_sel>(
2316
0
                sq->d, sq->trained, sq->code_size, store_pairs, sel, r);
2317
0
    } else {
2318
0
        FAISS_THROW_MSG("unsupported metric type");
2319
0
    }
2320
2
}
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Line
Count
Source
2304
2
        bool r) {
2305
2
    if (DCClass::Sim::metric_type == METRIC_L2) {
2306
2
        return new IVFSQScannerL2<DCClass, use_sel>(
2307
2
                sq->d,
2308
2
                sq->trained,
2309
2
                sq->code_size,
2310
2
                quantizer,
2311
2
                store_pairs,
2312
2
                sel,
2313
2
                r);
2314
2
    } else if (DCClass::Sim::metric_type == METRIC_INNER_PRODUCT) {
2315
0
        return new IVFSQScannerIP<DCClass, use_sel>(
2316
0
                sq->d, sq->trained, sq->code_size, store_pairs, sel, r);
2317
0
    } else {
2318
0
        FAISS_THROW_MSG("unsupported metric type");
2319
0
    }
2320
2
}
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Line
Count
Source
2304
2
        bool r) {
2305
2
    if (DCClass::Sim::metric_type == METRIC_L2) {
2306
2
        return new IVFSQScannerL2<DCClass, use_sel>(
2307
2
                sq->d,
2308
2
                sq->trained,
2309
2
                sq->code_size,
2310
2
                quantizer,
2311
2
                store_pairs,
2312
2
                sel,
2313
2
                r);
2314
2
    } else if (DCClass::Sim::metric_type == METRIC_INNER_PRODUCT) {
2315
0
        return new IVFSQScannerIP<DCClass, use_sel>(
2316
0
                sq->d, sq->trained, sq->code_size, store_pairs, sel, r);
2317
0
    } else {
2318
0
        FAISS_THROW_MSG("unsupported metric type");
2319
0
    }
2320
2
}
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Line
Count
Source
2304
2
        bool r) {
2305
2
    if (DCClass::Sim::metric_type == METRIC_L2) {
2306
2
        return new IVFSQScannerL2<DCClass, use_sel>(
2307
2
                sq->d,
2308
2
                sq->trained,
2309
2
                sq->code_size,
2310
2
                quantizer,
2311
2
                store_pairs,
2312
2
                sel,
2313
2
                r);
2314
2
    } else if (DCClass::Sim::metric_type == METRIC_INNER_PRODUCT) {
2315
0
        return new IVFSQScannerIP<DCClass, use_sel>(
2316
0
                sq->d, sq->trained, sq->code_size, store_pairs, sel, r);
2317
0
    } else {
2318
0
        FAISS_THROW_MSG("unsupported metric type");
2319
0
    }
2320
2
}
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi2EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel3_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEELi0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
2321
2322
template <class DCClass>
2323
InvertedListScanner* sel2_InvertedListScanner(
2324
        const ScalarQuantizer* sq,
2325
        const Index* quantizer,
2326
        bool store_pairs,
2327
        const IDSelector* sel,
2328
8
        bool r) {
2329
8
    if (sel) {
2330
4
        if (store_pairs) {
2331
0
            return sel3_InvertedListScanner<DCClass, 2>(
2332
0
                    sq, quantizer, store_pairs, sel, r);
2333
4
        } else {
2334
4
            return sel3_InvertedListScanner<DCClass, 1>(
2335
4
                    sq, quantizer, store_pairs, sel, r);
2336
4
        }
2337
4
    } else {
2338
4
        return sel3_InvertedListScanner<DCClass, 0>(
2339
4
                sq, quantizer, store_pairs, sel, r);
2340
4
    }
2341
8
}
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Line
Count
Source
2328
4
        bool r) {
2329
4
    if (sel) {
2330
2
        if (store_pairs) {
2331
0
            return sel3_InvertedListScanner<DCClass, 2>(
2332
0
                    sq, quantizer, store_pairs, sel, r);
2333
2
        } else {
2334
2
            return sel3_InvertedListScanner<DCClass, 1>(
2335
2
                    sq, quantizer, store_pairs, sel, r);
2336
2
        }
2337
2
    } else {
2338
2
        return sel3_InvertedListScanner<DCClass, 0>(
2339
2
                sq, quantizer, store_pairs, sel, r);
2340
2
    }
2341
4
}
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Line
Count
Source
2328
4
        bool r) {
2329
4
    if (sel) {
2330
2
        if (store_pairs) {
2331
0
            return sel3_InvertedListScanner<DCClass, 2>(
2332
0
                    sq, quantizer, store_pairs, sel, r);
2333
2
        } else {
2334
2
            return sel3_InvertedListScanner<DCClass, 1>(
2335
2
                    sq, quantizer, store_pairs, sel, r);
2336
2
        }
2337
2
    } else {
2338
2
        return sel3_InvertedListScanner<DCClass, 0>(
2339
2
                sq, quantizer, store_pairs, sel, r);
2340
2
    }
2341
4
}
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityL2ILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0ELi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_17QuantizerTemplateINS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1ELi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerFP16ILi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_13QuantizerBF16ILi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_20DistanceComputerByteINS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_19Quantizer8bitDirectILi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel2_InvertedListScannerINS0_10DCTemplateINS0_25Quantizer8bitDirectSignedILi1EEENS0_12SimilarityIPILi1EEELi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
2342
2343
template <class Similarity, class Codec, QuantizerTemplateScaling SCALING>
2344
InvertedListScanner* sel12_InvertedListScanner(
2345
        const ScalarQuantizer* sq,
2346
        const Index* quantizer,
2347
        bool store_pairs,
2348
        const IDSelector* sel,
2349
8
        bool r) {
2350
8
    constexpr int SIMDWIDTH = Similarity::simdwidth;
2351
8
    using QuantizerClass = QuantizerTemplate<Codec, SCALING, SIMDWIDTH>;
2352
8
    using DCClass = DCTemplate<QuantizerClass, Similarity, SIMDWIDTH>;
2353
8
    return sel2_InvertedListScanner<DCClass>(
2354
8
            sq, quantizer, store_pairs, sel, r);
2355
8
}
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityL2ILi1EEENS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityL2ILi1EEENS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityL2ILi1EEENS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Line
Count
Source
2349
4
        bool r) {
2350
4
    constexpr int SIMDWIDTH = Similarity::simdwidth;
2351
4
    using QuantizerClass = QuantizerTemplate<Codec, SCALING, SIMDWIDTH>;
2352
4
    using DCClass = DCTemplate<QuantizerClass, Similarity, SIMDWIDTH>;
2353
4
    return sel2_InvertedListScanner<DCClass>(
2354
4
            sq, quantizer, store_pairs, sel, r);
2355
4
}
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityL2ILi1EEENS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Line
Count
Source
2349
4
        bool r) {
2350
4
    constexpr int SIMDWIDTH = Similarity::simdwidth;
2351
4
    using QuantizerClass = QuantizerTemplate<Codec, SCALING, SIMDWIDTH>;
2352
4
    using DCClass = DCTemplate<QuantizerClass, Similarity, SIMDWIDTH>;
2353
4
    return sel2_InvertedListScanner<DCClass>(
2354
4
            sq, quantizer, store_pairs, sel, r);
2355
4
}
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityL2ILi1EEENS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityIPILi1EEENS0_9Codec8bitELNS0_24QuantizerTemplateScalingE0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityIPILi1EEENS0_9Codec4bitELNS0_24QuantizerTemplateScalingE0EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityIPILi1EEENS0_9Codec8bitELNS0_24QuantizerTemplateScalingE1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityIPILi1EEENS0_9Codec4bitELNS0_24QuantizerTemplateScalingE1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_125sel12_InvertedListScannerINS0_12SimilarityIPILi1EEENS0_9Codec6bitELNS0_24QuantizerTemplateScalingE1EEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
2356
2357
template <class Similarity>
2358
InvertedListScanner* sel1_InvertedListScanner(
2359
        const ScalarQuantizer* sq,
2360
        const Index* quantizer,
2361
        bool store_pairs,
2362
        const IDSelector* sel,
2363
8
        bool r) {
2364
8
    constexpr int SIMDWIDTH = Similarity::simdwidth;
2365
8
    switch (sq->qtype) {
2366
0
        case ScalarQuantizer::QT_8bit_uniform:
2367
0
            return sel12_InvertedListScanner<
2368
0
                    Similarity,
2369
0
                    Codec8bit,
2370
0
                    QuantizerTemplateScaling::UNIFORM>(
2371
0
                    sq, quantizer, store_pairs, sel, r);
2372
0
        case ScalarQuantizer::QT_4bit_uniform:
2373
0
            return sel12_InvertedListScanner<
2374
0
                    Similarity,
2375
0
                    Codec4bit,
2376
0
                    QuantizerTemplateScaling::UNIFORM>(
2377
0
                    sq, quantizer, store_pairs, sel, r);
2378
4
        case ScalarQuantizer::QT_8bit:
2379
4
            return sel12_InvertedListScanner<
2380
4
                    Similarity,
2381
4
                    Codec8bit,
2382
4
                    QuantizerTemplateScaling::NON_UNIFORM>(
2383
4
                    sq, quantizer, store_pairs, sel, r);
2384
4
        case ScalarQuantizer::QT_4bit:
2385
4
            return sel12_InvertedListScanner<
2386
4
                    Similarity,
2387
4
                    Codec4bit,
2388
4
                    QuantizerTemplateScaling::NON_UNIFORM>(
2389
4
                    sq, quantizer, store_pairs, sel, r);
2390
0
        case ScalarQuantizer::QT_6bit:
2391
0
            return sel12_InvertedListScanner<
2392
0
                    Similarity,
2393
0
                    Codec6bit,
2394
0
                    QuantizerTemplateScaling::NON_UNIFORM>(
2395
0
                    sq, quantizer, store_pairs, sel, r);
2396
0
        case ScalarQuantizer::QT_fp16:
2397
0
            return sel2_InvertedListScanner<DCTemplate<
2398
0
                    QuantizerFP16<SIMDWIDTH>,
2399
0
                    Similarity,
2400
0
                    SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r);
2401
0
        case ScalarQuantizer::QT_bf16:
2402
0
            return sel2_InvertedListScanner<DCTemplate<
2403
0
                    QuantizerBF16<SIMDWIDTH>,
2404
0
                    Similarity,
2405
0
                    SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r);
2406
0
        case ScalarQuantizer::QT_8bit_direct:
2407
#if defined(__AVX512F__)
2408
            if (sq->d % 32 == 0) {
2409
                return sel2_InvertedListScanner<
2410
                        DistanceComputerByte<Similarity, SIMDWIDTH>>(
2411
                        sq, quantizer, store_pairs, sel, r);
2412
            } else
2413
#elif defined(__AVX2__)
2414
0
            if (sq->d % 16 == 0) {
2415
0
                return sel2_InvertedListScanner<
2416
0
                        DistanceComputerByte<Similarity, SIMDWIDTH>>(
2417
0
                        sq, quantizer, store_pairs, sel, r);
2418
0
            } else
2419
0
#endif
2420
0
            {
2421
0
                return sel2_InvertedListScanner<DCTemplate<
2422
0
                        Quantizer8bitDirect<SIMDWIDTH>,
2423
0
                        Similarity,
2424
0
                        SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r);
2425
0
            }
2426
0
        case ScalarQuantizer::QT_8bit_direct_signed:
2427
0
            return sel2_InvertedListScanner<DCTemplate<
2428
0
                    Quantizer8bitDirectSigned<SIMDWIDTH>,
2429
0
                    Similarity,
2430
0
                    SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r);
2431
8
    }
2432
2433
0
    FAISS_THROW_MSG("unknown qtype");
2434
0
    return nullptr;
2435
0
}
ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel1_InvertedListScannerINS0_12SimilarityL2ILi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
Line
Count
Source
2363
8
        bool r) {
2364
8
    constexpr int SIMDWIDTH = Similarity::simdwidth;
2365
8
    switch (sq->qtype) {
2366
0
        case ScalarQuantizer::QT_8bit_uniform:
2367
0
            return sel12_InvertedListScanner<
2368
0
                    Similarity,
2369
0
                    Codec8bit,
2370
0
                    QuantizerTemplateScaling::UNIFORM>(
2371
0
                    sq, quantizer, store_pairs, sel, r);
2372
0
        case ScalarQuantizer::QT_4bit_uniform:
2373
0
            return sel12_InvertedListScanner<
2374
0
                    Similarity,
2375
0
                    Codec4bit,
2376
0
                    QuantizerTemplateScaling::UNIFORM>(
2377
0
                    sq, quantizer, store_pairs, sel, r);
2378
4
        case ScalarQuantizer::QT_8bit:
2379
4
            return sel12_InvertedListScanner<
2380
4
                    Similarity,
2381
4
                    Codec8bit,
2382
4
                    QuantizerTemplateScaling::NON_UNIFORM>(
2383
4
                    sq, quantizer, store_pairs, sel, r);
2384
4
        case ScalarQuantizer::QT_4bit:
2385
4
            return sel12_InvertedListScanner<
2386
4
                    Similarity,
2387
4
                    Codec4bit,
2388
4
                    QuantizerTemplateScaling::NON_UNIFORM>(
2389
4
                    sq, quantizer, store_pairs, sel, r);
2390
0
        case ScalarQuantizer::QT_6bit:
2391
0
            return sel12_InvertedListScanner<
2392
0
                    Similarity,
2393
0
                    Codec6bit,
2394
0
                    QuantizerTemplateScaling::NON_UNIFORM>(
2395
0
                    sq, quantizer, store_pairs, sel, r);
2396
0
        case ScalarQuantizer::QT_fp16:
2397
0
            return sel2_InvertedListScanner<DCTemplate<
2398
0
                    QuantizerFP16<SIMDWIDTH>,
2399
0
                    Similarity,
2400
0
                    SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r);
2401
0
        case ScalarQuantizer::QT_bf16:
2402
0
            return sel2_InvertedListScanner<DCTemplate<
2403
0
                    QuantizerBF16<SIMDWIDTH>,
2404
0
                    Similarity,
2405
0
                    SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r);
2406
0
        case ScalarQuantizer::QT_8bit_direct:
2407
#if defined(__AVX512F__)
2408
            if (sq->d % 32 == 0) {
2409
                return sel2_InvertedListScanner<
2410
                        DistanceComputerByte<Similarity, SIMDWIDTH>>(
2411
                        sq, quantizer, store_pairs, sel, r);
2412
            } else
2413
#elif defined(__AVX2__)
2414
0
            if (sq->d % 16 == 0) {
2415
0
                return sel2_InvertedListScanner<
2416
0
                        DistanceComputerByte<Similarity, SIMDWIDTH>>(
2417
0
                        sq, quantizer, store_pairs, sel, r);
2418
0
            } else
2419
0
#endif
2420
0
            {
2421
0
                return sel2_InvertedListScanner<DCTemplate<
2422
0
                        Quantizer8bitDirect<SIMDWIDTH>,
2423
0
                        Similarity,
2424
0
                        SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r);
2425
0
            }
2426
0
        case ScalarQuantizer::QT_8bit_direct_signed:
2427
0
            return sel2_InvertedListScanner<DCTemplate<
2428
0
                    Quantizer8bitDirectSigned<SIMDWIDTH>,
2429
0
                    Similarity,
2430
0
                    SIMDWIDTH>>(sq, quantizer, store_pairs, sel, r);
2431
8
    }
2432
2433
0
    FAISS_THROW_MSG("unknown qtype");
2434
0
    return nullptr;
2435
0
}
Unexecuted instantiation: ScalarQuantizer.cpp:_ZN5faiss12_GLOBAL__N_124sel1_InvertedListScannerINS0_12SimilarityIPILi1EEEEEPNS_19InvertedListScannerEPKNS_15ScalarQuantizerEPKNS_5IndexEbPKNS_10IDSelectorEb
2436
2437
template <int SIMDWIDTH>
2438
InvertedListScanner* sel0_InvertedListScanner(
2439
        MetricType mt,
2440
        const ScalarQuantizer* sq,
2441
        const Index* quantizer,
2442
        bool store_pairs,
2443
        const IDSelector* sel,
2444
8
        bool by_residual) {
2445
8
    if (mt == METRIC_L2) {
2446
8
        return sel1_InvertedListScanner<SimilarityL2<SIMDWIDTH>>(
2447
8
                sq, quantizer, store_pairs, sel, by_residual);
2448
8
    } else if (mt == METRIC_INNER_PRODUCT) {
2449
0
        return sel1_InvertedListScanner<SimilarityIP<SIMDWIDTH>>(
2450
0
                sq, quantizer, store_pairs, sel, by_residual);
2451
0
    } else {
2452
0
        FAISS_THROW_MSG("unsupported metric type");
2453
0
    }
2454
8
}
2455
2456
} // anonymous namespace
2457
2458
InvertedListScanner* ScalarQuantizer::select_InvertedListScanner(
2459
        MetricType mt,
2460
        const Index* quantizer,
2461
        bool store_pairs,
2462
        const IDSelector* sel,
2463
8
        bool by_residual) const {
2464
#if defined(USE_AVX512_F16C)
2465
    if (d % 16 == 0) {
2466
        return sel0_InvertedListScanner<16>(
2467
                mt, this, quantizer, store_pairs, sel, by_residual);
2468
    } else
2469
#elif defined(USE_F16C) || defined(USE_NEON)
2470
    if (d % 8 == 0) {
2471
        return sel0_InvertedListScanner<8>(
2472
                mt, this, quantizer, store_pairs, sel, by_residual);
2473
    } else
2474
#endif
2475
8
    {
2476
8
        return sel0_InvertedListScanner<1>(
2477
8
                mt, this, quantizer, store_pairs, sel, by_residual);
2478
8
    }
2479
8
}
2480
2481
} // namespace faiss