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()