#[repr(transparent)]pub struct TropicalAndOr(pub bool);Expand description
TropicalAndOr semiring: ({true, false}, OR, AND)
- Addition (⊕) = OR (logical disjunction)
- Multiplication (⊗) = AND (logical conjunction)
- Zero = false
- One = true
This is used for:
- Boolean matrix multiplication (transitive closure)
- Graph reachability
- SAT-related computations
Tuple Fields§
§0: boolImplementations§
Trait Implementations§
Source§impl Add for TropicalAndOr
impl Add for TropicalAndOr
Source§impl Clone for TropicalAndOr
impl Clone for TropicalAndOr
Source§fn clone(&self) -> TropicalAndOr
fn clone(&self) -> TropicalAndOr
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TropicalAndOr
impl Debug for TropicalAndOr
Source§impl Default for TropicalAndOr
impl Default for TropicalAndOr
Source§impl Display for TropicalAndOr
impl Display for TropicalAndOr
Source§impl From<bool> for TropicalAndOr
impl From<bool> for TropicalAndOr
Source§impl Mul for TropicalAndOr
impl Mul for TropicalAndOr
Source§impl PartialEq for TropicalAndOr
impl PartialEq for TropicalAndOr
Source§impl SimdTropical for TropicalAndOr
impl SimdTropical for TropicalAndOr
Source§const SIMD_AVAILABLE: bool = true
const SIMD_AVAILABLE: bool = true
Whether SIMD operations are available for this type.
Source§const SIMD_WIDTH: usize = 256
const SIMD_WIDTH: usize = 256
The SIMD width in elements.
Source§impl TropicalSemiring for TropicalAndOr
impl TropicalSemiring for TropicalAndOr
Source§fn tropical_zero() -> Self
fn tropical_zero() -> Self
Returns the additive identity (zero element for ⊕).
Source§fn tropical_one() -> Self
fn tropical_one() -> Self
Returns the multiplicative identity (one element for ⊗).
Source§fn tropical_add(self, rhs: Self) -> Self
fn tropical_add(self, rhs: Self) -> Self
Tropical addition (⊕).
Source§fn tropical_mul(self, rhs: Self) -> Self
fn tropical_mul(self, rhs: Self) -> Self
Tropical multiplication (⊗).
Source§fn from_scalar(s: bool) -> Self
fn from_scalar(s: bool) -> Self
Create from a scalar value.
Source§impl TropicalWithArgmax for TropicalAndOr
impl TropicalWithArgmax for TropicalAndOr
impl Copy for TropicalAndOr
impl Eq for TropicalAndOr
impl StructuralPartialEq for TropicalAndOr
Auto Trait Implementations§
impl Freeze for TropicalAndOr
impl RefUnwindSafe for TropicalAndOr
impl Send for TropicalAndOr
impl Sync for TropicalAndOr
impl Unpin for TropicalAndOr
impl UnwindSafe for TropicalAndOr
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more