@thi.ng/vectors
Version:
Optimized 2d/3d/4d and arbitrary length vector operations, support for memory mapping/layouts
17 lines (16 loc) • 389 B
JavaScript
const distJaccard = (a, b) => 1 - jaccardSimilarity(a, b);
const jaccardSimilarity = (a, b) => {
let numUnion = 0;
let numIsec = 0;
for (let i = a.length; i-- > 0; ) {
const aa = a[i] !== 0;
const bb = b[i] !== 0;
numUnion += ~~(aa || bb);
numIsec += ~~(aa && bb);
}
return numUnion > 0 ? numIsec / numUnion : 0;
};
export {
distJaccard,
jaccardSimilarity
};