(r: &[f32], v: &[f32], dim: usize)
| 199 | /// Row-major matrix-vector multiply: returns R · v. |
| 200 | #[inline] |
| 201 | fn matvec(r: &[f32], v: &[f32], dim: usize) -> Vec<f32> { |
| 202 | let mut out = vec![0.0f32; dim]; |
| 203 | for i in 0..dim { |
| 204 | let row = &r[i * dim..(i + 1) * dim]; |
| 205 | out[i] = row.iter().zip(v.iter()).map(|(a, b)| a * b).sum(); |
| 206 | } |
| 207 | out |
| 208 | } |
| 209 | |
| 210 | fn pq_encode(v: &[f32], codebooks: &[Vec<Vec<f32>>], m: usize, sub_dim: usize) -> Vec<u8> { |
| 211 | let mut codes = Vec::with_capacity(m); |
no test coverage detected