use std::collections::HashMap;
use super::sparse::*;
#[allow(unused_variables)]
pub fn cosine(a: &HashMap<usize, f64>, b: &HashMap<usize, f64>, n: usize) -> f64 {
let norms = norm(a)*norm(b);
if norms > 0. {
return dot(a,b)/(norm(a)*norm(b))
}
return 0.;
}
#[allow(unused_variables)]
pub fn jaccard(a: &HashMap<usize, f64>, b: &HashMap<usize, f64>, n: usize) -> f64 {
let inner = dot(a,b);
inner/(dot(a,a)+dot(b,b)-inner)
}
pub fn pearson(a: &HashMap<usize, f64>, b: &HashMap<usize, f64>, n: usize) -> f64 {
covariance(a,b,n)/(covariance(a,a,n).sqrt()*covariance(b,b,n).sqrt())
}