lance_index/vector/sq/
builder.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright The Lance Authors
3
4use crate::vector::quantizer::QuantizerBuildParams;
5
6#[derive(Debug, Clone)]
7pub struct SQBuildParams {
8    /// Number of bits of scaling range.
9    pub num_bits: u16,
10
11    /// Sample rate for training.
12    pub sample_rate: usize,
13}
14
15impl Default for SQBuildParams {
16    fn default() -> Self {
17        Self {
18            num_bits: 8,
19            sample_rate: 256,
20        }
21    }
22}
23
24impl QuantizerBuildParams for SQBuildParams {
25    fn sample_size(&self) -> usize {
26        self.sample_rate * 2usize.pow(self.num_bits as u32)
27    }
28}