@Override public double compare(final SparseDoubleArray h1, final SparseDoubleArray h2) { if (h1.length != h2.length) throw new IllegalArgumentException("Vectors have differing lengths"); double d = 0; for (SparseDoubleArray.DualEntry e : h1.intersectEntries(h2)) { d += Math.abs(e.value - e.otherValue); } return d; } },
@Override public double compare(final SparseDoubleArray h1, final SparseDoubleArray h2) { if (h1.length != h2.length) throw new IllegalArgumentException("Vectors have differing lengths"); double d = 0; for (SparseDoubleArray.DualEntry e : h1.intersectEntries(h2)) { d += Math.min(e.value, e.otherValue); } return d; } },
@Override public double compare(final SparseDoubleArray h1, final SparseDoubleArray h2) { if (h1.length != h2.length) throw new IllegalArgumentException("Vectors have differing lengths"); double d = 0; for (SparseDoubleArray.DualEntry e : h1.intersectEntries(h2)) { d += Math.abs(e.value - e.otherValue); } return d; } },
@Override public double compare(final SparseDoubleArray h1, final SparseDoubleArray h2) { if (h1.length != h2.length) throw new IllegalArgumentException("Vectors have differing lengths"); double d = 0; for (SparseDoubleArray.DualEntry e : h1.intersectEntries(h2)) { d += Math.min(e.value, e.otherValue); } return d; } },