pub struct DynamicBackend { /* private fields */ }Expand description
Dynamic backend dispatcher.
Wraps any TernaryBackend implementation for dynamic dispatch.
Implementations§
Source§impl DynamicBackend
impl DynamicBackend
Sourcepub fn new<B: TernaryBackend + 'static>(backend: B) -> Self
pub fn new<B: TernaryBackend + 'static>(backend: B) -> Self
Create a new dynamic backend from a concrete implementation.
Sourcepub fn inner(&self) -> &dyn TernaryBackend
pub fn inner(&self) -> &dyn TernaryBackend
Get the underlying backend reference.
Trait Implementations§
Source§impl TernaryBackend for DynamicBackend
impl TernaryBackend for DynamicBackend
Source§fn is_available(&self) -> bool
fn is_available(&self) -> bool
Returns true if this backend is available on the current system.
Source§fn bind(&self, a: &PackedTritVec, b: &PackedTritVec) -> Result<PackedTritVec>
fn bind(&self, a: &PackedTritVec, b: &PackedTritVec) -> Result<PackedTritVec>
Bind two vectors (composition operation). Read more
Source§fn unbind(&self, a: &PackedTritVec, b: &PackedTritVec) -> Result<PackedTritVec>
fn unbind(&self, a: &PackedTritVec, b: &PackedTritVec) -> Result<PackedTritVec>
Unbind a vector (inverse of bind). Read more
Source§fn bundle(&self, vectors: &[&PackedTritVec]) -> Result<PackedTritVec>
fn bundle(&self, vectors: &[&PackedTritVec]) -> Result<PackedTritVec>
Bundle multiple vectors using majority voting. Read more
Source§fn dot_similarity(&self, a: &PackedTritVec, b: &PackedTritVec) -> Result<i32>
fn dot_similarity(&self, a: &PackedTritVec, b: &PackedTritVec) -> Result<i32>
Compute dot product similarity. Read more
Source§fn cosine_similarity(&self, a: &PackedTritVec, b: &PackedTritVec) -> Result<f32>
fn cosine_similarity(&self, a: &PackedTritVec, b: &PackedTritVec) -> Result<f32>
Compute cosine similarity. Read more
Source§fn hamming_distance(
&self,
a: &PackedTritVec,
b: &PackedTritVec,
) -> Result<usize>
fn hamming_distance( &self, a: &PackedTritVec, b: &PackedTritVec, ) -> Result<usize>
Compute Hamming distance. Read more
Source§fn random(&self, config: &RandomConfig) -> Result<PackedTritVec>
fn random(&self, config: &RandomConfig) -> Result<PackedTritVec>
Generate a random ternary vector. Read more
Source§fn negate(&self, a: &PackedTritVec) -> Result<PackedTritVec>
fn negate(&self, a: &PackedTritVec) -> Result<PackedTritVec>
Negate a vector element-wise. Read more
Auto Trait Implementations§
impl Freeze for DynamicBackend
impl !RefUnwindSafe for DynamicBackend
impl Send for DynamicBackend
impl Sync for DynamicBackend
impl Unpin for DynamicBackend
impl !UnwindSafe for DynamicBackend
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more