[−][src]Struct space::Hamming
Any data contained in this struct is treated such that all of the bits
of the data are each separate dimensions that can be of length 0
or 1
.
This is referred to as hamming space.
This leads to all Lp spaces being
equal and all distances being no larger than the number of bits of the data.
This is typically used to perform searches on data that was binarized using hyperplane comparisons on high dimensional floating-point features or data built on a series of binary comparisons. Hamming distance is incredibly fast to compute. Hamming space can be difficult to search because the amount of equidistant points is high (see "Thick Boundaries in Binary Space and Their Influence on Nearest-Neighbor Search") and they can quickly grow in dimensionality.
Trait Implementations
impl<T: Clone> Clone for Hamming<T>
[src]
impl<T: Copy> Copy for Hamming<T>
[src]
impl<T: Debug> Debug for Hamming<T>
[src]
impl<'de, T> Deserialize<'de> for Hamming<T> where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl<T: Eq> Eq for Hamming<T>
[src]
impl<T: Hash> Hash for Hamming<T>
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl MetricPoint for Hamming<u8>
[src]
impl MetricPoint for Hamming<u16>
[src]
impl MetricPoint for Hamming<Bits128>
[src]
impl MetricPoint for Hamming<Bits256>
[src]
impl MetricPoint for Hamming<Bits512>
[src]
impl MetricPoint for Hamming<Bits1024>
[src]
impl MetricPoint for Hamming<Bits2048>
[src]
impl MetricPoint for Hamming<Bits4096>
[src]
impl MetricPoint for Hamming<u32>
[src]
impl MetricPoint for Hamming<u64>
[src]
impl MetricPoint for Hamming<u128>
[src]
impl MetricPoint for Hamming<Vec<u8>>
[src]
impl MetricPoint for Hamming<Vec<u16>>
[src]
impl MetricPoint for Hamming<Vec<u32>>
[src]
impl MetricPoint for Hamming<Vec<u64>>
[src]
impl MetricPoint for Hamming<Vec<u128>>
[src]
impl<T: PartialEq> PartialEq<Hamming<T>> for Hamming<T>
[src]
impl<T> Serialize for Hamming<T> where
T: Serialize,
[src]
T: Serialize,
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl<T> StructuralEq for Hamming<T>
[src]
impl<T> StructuralPartialEq for Hamming<T>
[src]
Auto Trait Implementations
impl<T> RefUnwindSafe for Hamming<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for Hamming<T> where
T: Send,
T: Send,
impl<T> Sync for Hamming<T> where
T: Sync,
T: Sync,
impl<T> Unpin for Hamming<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for Hamming<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> Cast<U> for T where
U: FromCast<T>,
U: FromCast<T>,
fn cast(self) -> U
impl<T> DeserializeOwned for T where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T> FromCast<T> for T
fn from_cast(t: T) -> T
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,