use candle_core::Tensor;
use crate::error::ColbertError;
pub fn normalize_l2(v: &Tensor) -> Result<Tensor, ColbertError> {
let inv_norm_l2 =
((v.sqr()?.sum_keepdim(v.rank() - 1)?.sqrt()? + 1e-12f64)?).recip()?;
v.broadcast_mul(&inv_norm_l2).map_err(ColbertError::from)
}