(a: &[f32], b: &[f32])
| 259 | /// L2 squared distance for sub-vectors (used in k-means and encoding). |
| 260 | #[inline] |
| 261 | fn l2_sub(a: &[f32], b: &[f32]) -> f32 { |
| 262 | let mut sum = 0.0f32; |
| 263 | for i in 0..a.len() { |
| 264 | let d = a[i] - b[i]; |
| 265 | sum += d * d; |
| 266 | } |
| 267 | sum |
| 268 | } |
| 269 | |
| 270 | /// Simple k-means clustering for PQ codebook training. |
| 271 | /// |