MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / prepare_query

Method prepare_query

nodedb-codec/src/vector_quant/bbq.rs:246–267  ·  view source on GitHub ↗
(&self, q: &[f32])

Source from the content-addressed store, hash-verified

244 }
245
246 fn prepare_query(&self, q: &[f32]) -> BbqQuery {
247 let mut centered = Vec::with_capacity(self.dim);
248 self.center(q, &mut centered);
249 let signs = Self::pack_signs(&centered);
250 let query_norm = Self::norm(&centered);
251 let sign_fp: Vec<f32> = centered
252 .iter()
253 .map(|&x| if x >= 0.0 { 1.0 } else { -1.0 })
254 .collect();
255 let dot_vs = Self::dot(&centered, &sign_fp);
256 let query_dot_quantized = if query_norm > 0.0 {
257 dot_vs / query_norm
258 } else {
259 0.0
260 };
261 BbqQuery {
262 centered,
263 signs,
264 query_norm,
265 query_dot_quantized,
266 }
267 }
268
269 /// Fast Hamming-based symmetric distance estimate.
270 ///

Callers 1

Calls 3

centerMethod · 0.80
collectMethod · 0.80
iterMethod · 0.45

Tested by 1