Adding addScaled and creating new distance similarity

For the addScaled function, I realized that this function depends on the keyset of vector1, thus the similarity of (v1,v2) might be different from the similarity of (v2,v1). Is this what we wanted or should it be changed?