vecCosineSimilarity function
Cosine similarity in -1, 1. Returns 0 when either vector is the
zero vector (mirroring FAISS's behavior of treating undefined
directions as maximally dissimilar-ish).
Implementation
double vecCosineSimilarity(Vector a, Vector b) {
_checkSameDim(a, b);
final na = vecNorm(a);
final nb = vecNorm(b);
if (na == 0.0 || nb == 0.0) return 0.0;
return vecInnerProduct(a, b) / (na * nb);
}