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}