feat: adds new distance measures + LU decomposition

This commit is contained in:
Volodymyr Orlov
2020-06-05 10:40:17 -07:00
parent f8f1e75fe2
commit e20e9ca6e0
16 changed files with 594 additions and 28 deletions
+17 -1
View File
@@ -1,9 +1,13 @@
pub mod euclidian;
pub mod minkowski;
pub mod manhattan;
pub mod hamming;
pub mod mahalanobis;
use crate::math::num::FloatExt;
pub trait Distance<T, F: FloatExt>{
fn distance(a: &T, b: &T) -> F;
fn distance(&self, a: &T, b: &T) -> F;
}
pub struct Distances{
@@ -13,4 +17,16 @@ impl Distances {
pub fn euclidian() -> euclidian::Euclidian{
euclidian::Euclidian {}
}
pub fn minkowski<T: FloatExt>(p: T) -> minkowski::Minkowski<T>{
minkowski::Minkowski {p: p}
}
pub fn manhattan() -> manhattan::Manhattan{
manhattan::Manhattan {}
}
pub fn hamming() -> hamming::Hamming{
hamming::Hamming {}
}
}