pub struct FreeModuleOverOrderedSetStructure<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature, RingB: BorrowedStructure<Ring>> { /* private fields */ }Implementations§
Source§impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
pub fn new(set: SetB, ring: RingB) -> Self
pub fn set(&self) -> &Set
Sourcepub fn collapse_terms(
&self,
v: <Self as SetSignature>::Set,
) -> <Self as SetSignature>::Set
pub fn collapse_terms( &self, v: <Self as SetSignature>::Set, ) -> <Self as SetSignature>::Set
Input: vector of (Set, Ring) Output: vector of (Set, Ring) which is
- ordered
- has no duplicate set elements
- has no ring elements equal to 0
and is equal to the sum of the input vectors terms. In other words, the returned vector will pass self.is_element(..)
Trait Implementations§
Source§impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> AdditionSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> AdditionSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
Source§impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: RingSignature + EqSignature, RingB: BorrowedStructure<Ring>> AdditiveGroupSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: RingSignature + EqSignature, RingB: BorrowedStructure<Ring>> AdditiveGroupSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
Source§impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> AdditiveMonoidSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> AdditiveMonoidSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
Source§impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> CancellativeAdditionSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> CancellativeAdditionSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
Source§impl<Set: Clone + OrdSignature, SetB: Clone + BorrowedStructure<Set>, Ring: Clone + SemiRingSignature, RingB: Clone + BorrowedStructure<Ring>> Clone for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: Clone + OrdSignature, SetB: Clone + BorrowedStructure<Set>, Ring: Clone + SemiRingSignature, RingB: Clone + BorrowedStructure<Ring>> Clone for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
Source§fn clone(&self) -> FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
fn clone(&self) -> FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
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<Set: Debug + OrdSignature, SetB: Debug + BorrowedStructure<Set>, Ring: Debug + SemiRingSignature, RingB: Debug + BorrowedStructure<Ring>> Debug for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: Debug + OrdSignature, SetB: Debug + BorrowedStructure<Set>, Ring: Debug + SemiRingSignature, RingB: Debug + BorrowedStructure<Ring>> Debug for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
Source§impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> EqSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> EqSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
Source§impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: RingSignature + EqSignature, RingB: BorrowedStructure<Ring>> FreeModuleSignature<Ring> for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: RingSignature + EqSignature, RingB: BorrowedStructure<Ring>> FreeModuleSignature<Ring> for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
Source§impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature, RingB: BorrowedStructure<Ring>> PartialEq for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature, RingB: BorrowedStructure<Ring>> PartialEq for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
Source§impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> RinglikeSpecializationSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> RinglikeSpecializationSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
fn try_ring_restructure( &self, ) -> Option<impl EqSignature<Set = Self::Set> + RingSignature>
fn try_char_zero_ring_restructure( &self, ) -> Option<impl EqSignature<Set = Self::Set> + CharZeroRingSignature>
Source§impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> SemiModuleSignature<Ring> for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> SemiModuleSignature<Ring> for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
Source§impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> SetSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> SetSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
type Set = Vec<(<Set as SetSignature>::Set, <Ring as SetSignature>::Set)>
Source§impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> TryNegateSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> TryNegateSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
Source§impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> ZeroSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature + EqSignature, RingB: BorrowedStructure<Ring>> ZeroSignature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature, RingB: BorrowedStructure<Ring>> Eq for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: SemiRingSignature, RingB: BorrowedStructure<Ring>> Signature for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
Auto Trait Implementations§
impl<Set, SetB, Ring, RingB> Freeze for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set, SetB, Ring, RingB> RefUnwindSafe for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set, SetB, Ring, RingB> Send for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set, SetB, Ring, RingB> Sync for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set, SetB, Ring, RingB> Unpin for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
impl<Set, SetB, Ring, RingB> UnwindSafe for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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