pub trait EuclideanDistance<T, Rhs = Self> {
fn euclidean_distance(&self, rhs: &Rhs) -> T;
fn euclidean_squared(&self, rhs: &Rhs) -> T;
}
pub trait ManhattanDistance<T, Rhs = Self> {
fn manhattan_distance(&self, rhs: &Rhs) -> T;
}
pub trait ChebyshevDistance<T, Rhs = Self> {
fn chebyshev_distance(&self, rhs: &Rhs) -> T;
}
pub trait FrechetDistance<T, Rhs = Self> {
fn frechet_distance(&self, rhs: &Rhs) -> T;
}
pub trait GeodesicDistance<T, Rhs = Self> {
fn geodesic_distance(&self, rhs: &Rhs) -> T;
}
pub trait HaversineDistance<T, Rhs = Self> {
fn haversine_distance(&self, rhs: &Rhs) -> T;
}
pub trait MinkowskiDistance<T, Rhs = Self> {
fn minkowski_distance(&self, rhs: &Rhs, p: T) -> T;
}
pub trait HammingDistance<T, Rhs = Self> {
fn hamming_distance(&self, rhs: &Rhs) -> T;
}
pub trait LevenshteinDistance<T, Rhs = Self> {
fn levenshtein_distance(&self, rhs: &Rhs) -> T;
}
pub trait JaroDistance<T, Rhs = Self> {
fn jaro_distance(&self, rhs: &Rhs) -> T;
}
pub trait JaroWinklerDistance<T, Rhs = Self> {
fn jaro_winkler_distance(&self, rhs: &Rhs) -> T;
}
pub trait SorensenDiceDistance<T, Rhs = Self> {
fn sorensen_dice_distance(&self, rhs: &Rhs) -> T;
}
pub trait CosineDistance<T, Rhs = Self> {
fn cosine_distance(&self, rhs: &Rhs) -> T;
}
pub trait JaccardDistance<T, Rhs = Self> {
fn jaccard_distance(&self, rhs: &Rhs) -> T;
}
pub trait OverlapDistance<T, Rhs = Self> {
fn overlap_distance(&self, rhs: &Rhs) -> T;
}
pub trait RogersTanimotoDistance<T, Rhs = Self> {
fn rogers_tanimoto_distance(&self, rhs: &Rhs) -> T;
}
pub trait RusselRaoDistance<T, Rhs = Self> {
fn russel_rao_distance(&self, rhs: &Rhs) -> T;
}
pub trait SokalSneathDistance<T, Rhs = Self> {
fn sokal_sneath_distance(&self, rhs: &Rhs) -> T;
}
pub trait KulczynskiDistance<T, Rhs = Self> {
fn kulczynski_distance(&self, rhs: &Rhs) -> T;
}
pub trait TverskyDistance<T, Rhs = Self> {
fn tversky_distance(&self, rhs: &Rhs, alpha: T, beta: T) -> T;
}
pub trait TanimotoDistance<T, Rhs = Self> {
fn tanimoto_distance(&self, rhs: &Rhs) -> T;
}
pub trait BrayCurtisDistance<T, Rhs = Self> {
fn bray_curtis_distance(&self, rhs: &Rhs) -> T;
}
pub trait CanberraDistance<T, Rhs = Self> {
fn canberra_distance(&self, rhs: &Rhs) -> T;
}
pub trait ChiSquaredDistance<T, Rhs = Self> {
fn chi_squared_distance(&self, rhs: &Rhs) -> T;
}
pub trait GowerDistance<T, Rhs = Self> {
fn gower_distance(&self, rhs: &Rhs) -> T;
}