Trait pointcloud::Metric[][src]

pub trait Metric<T: ?Sized>: Send + Sync + 'static {
    fn dist(x: &T, y: &T) -> f32;
}

Metric trait. Done as a trait so that it’s easy to switch out.

Implement this then benchmark it to hell, this is the core loop of everything.

Required methods

fn dist(x: &T, y: &T) -> f32[src]

Distance calculator. Optimize the hell out of this if you’re implementing it.

Loading content...

Implementors

impl Metric<[f32]> for L1[src]

impl Metric<[f32]> for L2[src]

impl Metric<[i8]> for L1[src]

impl Metric<[i8]> for L2[src]

impl Metric<[i16]> for L1[src]

impl Metric<[i16]> for L2[src]

impl Metric<[i32]> for L1[src]

impl Metric<[i32]> for L2[src]

impl Metric<[u8]> for L1[src]

impl Metric<[u8]> for L2[src]

impl Metric<[u16]> for L1[src]

impl Metric<[u16]> for L2[src]

impl Metric<[u32]> for L1[src]

impl Metric<[u32]> for L2[src]

impl<'a> Metric<RawSparse<f32, u8>> for L1[src]

impl<'a> Metric<RawSparse<f32, u8>> for L2[src]

impl<'a> Metric<RawSparse<f32, u16>> for L1[src]

impl<'a> Metric<RawSparse<f32, u16>> for L2[src]

impl<'a> Metric<RawSparse<f32, u32>> for L1[src]

impl<'a> Metric<RawSparse<f32, u32>> for L2[src]

impl<'a> Metric<RawSparse<i8, u8>> for L1[src]

impl<'a> Metric<RawSparse<i8, u8>> for L2[src]

impl<'a> Metric<RawSparse<i8, u16>> for L1[src]

impl<'a> Metric<RawSparse<i8, u16>> for L2[src]

impl<'a> Metric<RawSparse<i8, u32>> for L1[src]

impl<'a> Metric<RawSparse<i8, u32>> for L2[src]

impl<'a> Metric<RawSparse<i16, u8>> for L1[src]

impl<'a> Metric<RawSparse<i16, u8>> for L2[src]

impl<'a> Metric<RawSparse<i16, u16>> for L1[src]

impl<'a> Metric<RawSparse<i16, u16>> for L2[src]

impl<'a> Metric<RawSparse<i16, u32>> for L1[src]

impl<'a> Metric<RawSparse<i16, u32>> for L2[src]

impl<'a> Metric<RawSparse<i32, u8>> for L1[src]

impl<'a> Metric<RawSparse<i32, u8>> for L2[src]

impl<'a> Metric<RawSparse<i32, u16>> for L1[src]

impl<'a> Metric<RawSparse<i32, u16>> for L2[src]

impl<'a> Metric<RawSparse<i32, u32>> for L1[src]

impl<'a> Metric<RawSparse<i32, u32>> for L2[src]

impl<'a> Metric<RawSparse<u8, u8>> for L1[src]

impl<'a> Metric<RawSparse<u8, u8>> for L2[src]

impl<'a> Metric<RawSparse<u8, u16>> for L1[src]

impl<'a> Metric<RawSparse<u8, u16>> for L2[src]

impl<'a> Metric<RawSparse<u8, u32>> for L1[src]

impl<'a> Metric<RawSparse<u8, u32>> for L2[src]

impl<'a> Metric<RawSparse<u16, u8>> for L1[src]

impl<'a> Metric<RawSparse<u16, u8>> for L2[src]

impl<'a> Metric<RawSparse<u16, u16>> for L1[src]

impl<'a> Metric<RawSparse<u16, u16>> for L2[src]

impl<'a> Metric<RawSparse<u16, u32>> for L1[src]

impl<'a> Metric<RawSparse<u16, u32>> for L2[src]

impl<'a> Metric<RawSparse<u32, u8>> for L1[src]

impl<'a> Metric<RawSparse<u32, u8>> for L2[src]

impl<'a> Metric<RawSparse<u32, u16>> for L1[src]

impl<'a> Metric<RawSparse<u32, u16>> for L2[src]

impl<'a> Metric<RawSparse<u32, u32>> for L1[src]

impl<'a> Metric<RawSparse<u32, u32>> for L2[src]

Loading content...