diff --git a/src/main/java/proteomics/Types/SparseBooleanVector.java b/src/main/java/proteomics/Types/SparseBooleanVector.java index c558606..b8cf7ff 100644 --- a/src/main/java/proteomics/Types/SparseBooleanVector.java +++ b/src/main/java/proteomics/Types/SparseBooleanVector.java @@ -22,13 +22,11 @@ public void put(int idx) { return sparse_vector.size(); } - public double dot(SparseVector other) { + public double dot(SparseVector other) { // caution: it will change the original Sparse Boolean Vector. double output = 0; - Map other_vector = other.getVectorMap(); - Set intersectedKeys = new HashSet<>(sparse_vector); - intersectedKeys.retainAll(other_vector.keySet()); - for (int i : intersectedKeys) { - output += other_vector.get(i); + sparse_vector.retainAll(other.getIdxSet()); + for (int i : sparse_vector) { + output += other.get(i); } return output; }