pub fn l2_normalize(v: &mut [f32])
In-place L2 normalisation. Zero vectors are left unchanged (all zeros). Pre-normalising stored vectors lets vector search reduce cosine similarity to a plain dot product in its O(N) inner loop.