cosineSimilarity function
Cosine similarity helper.
Implementation
double cosineSimilarity(List<double> a, List<double> b) {
if (a.length != b.length || a.isEmpty) return 0.0;
double dot = 0.0, normA = 0.0, normB = 0.0;
for (int i = 0; i < a.length; i++) {
dot += a[i] * b[i];
normA += a[i] * a[i];
normB += b[i] * b[i];
}
if (normA == 0.0 || normB == 0.0) return 0.0;
return dot / (_sqrt(normA) * _sqrt(normB));
}