FullPrecisionDistance

Trait FullPrecisionDistance 

Source
pub trait FullPrecisionDistance<T, const N: usize> {
    // Required method
    fn distance_compare(a: &[T; N], b: &[T; N], vec_type: Metric) -> f32;
}
Expand description

Distance contract for full-precision vertex

Required Methods§

Source

fn distance_compare(a: &[T; N], b: &[T; N], vec_type: Metric) -> f32

Get the distance between vertex a and vertex b

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<const N: usize> FullPrecisionDistance<f32, N> for [f32; N]

Source§

fn distance_compare(a: &[f32; N], b: &[f32; N], metric: Metric) -> f32

Calculate distance between two f32 Vertex

Source§

impl<const N: usize> FullPrecisionDistance<i8, N> for [i8; N]

Source§

fn distance_compare(_a: &[i8; N], _b: &[i8; N], _metric: Metric) -> f32

Source§

impl<const N: usize> FullPrecisionDistance<u8, N> for [u8; N]

Source§

fn distance_compare(_a: &[u8; N], _b: &[u8; N], _metric: Metric) -> f32

Source§

impl<const N: usize> FullPrecisionDistance<u32, N> for [u32; N]

Source§

fn distance_compare(a: &[u32; N], b: &[u32; N], metric: Metric) -> f32

Source§

impl<const N: usize> FullPrecisionDistance<u64, N> for [u64; N]

Source§

fn distance_compare(a: &[u64; N], b: &[u64; N], metric: Metric) -> f32

Source§

impl<const N: usize> FullPrecisionDistance<Half, N> for [Half; N]

Source§

fn distance_compare(a: &[Half; N], b: &[Half; N], metric: Metric) -> f32

Implementors§