Trait vpsearch::MetricSpace
[−]
[src]
pub trait MetricSpace { type UserData; type Distance: Copy + PartialOrd + Bounded + Add<Output=Self::Distance> + Sub<Output=Self::Distance>; fn distance(&self,
other: &Self,
user_data: &Self::UserData)
-> Self::Distance; }
Associated Types
type UserData
type Distance: Copy + PartialOrd + Bounded + Add<Output=Self::Distance> + Sub<Output=Self::Distance>
Required Methods
fn distance(&self, other: &Self, user_data: &Self::UserData) -> Self::Distance
This function must return distance between two items that meets triangle inequality. Specifically, it can't return squared distance (you must use sqrt if you use Euclidean distance)
@param user_data Whatever you want. Passed from new_with_user_data()