return dist;
}
float distanceEuclidean(HashSparseVector sv1 ,HashSparseVector sv2) {
float dist = 0.0f;
TIntFloatIterator it1 = sv1.data.iterator();
TIntFloatIterator it2 = sv2.data.iterator();
if (it1.hasNext() && it2.hasNext()) {
it1.advance();
it2.advance();
}
while (it1.hasNext() && it2.hasNext()) {
if(it1.key()<it2.key()){
dist += it1.value()*it1.value();
it1.advance();
}else if(it1.key()>it2.key()){
dist += it2.value()*it2.value();
it2.advance();
}else{
float t = it1.value() - it2.value();
dist += t*t;
it1.advance();
it2.advance();
}
}
while (it1.hasNext()) {
it1.advance();
dist += it1.value() * it1.value();
}
while (it2.hasNext()) {
it2.advance();
dist += it2.value() * it2.value();
}
return dist;
}