FreeModuleSignature

Trait FreeModuleSignature 

Source
pub trait FreeModuleSignature<Ring: RingSignature>: ModuleSignature<Ring> {
    type Basis: SetSignature;

    // Required methods
    fn basis_set(&self) -> impl Borrow<Self::Basis>;
    fn to_component<'a>(
        &self,
        b: &<Self::Basis as SetSignature>::Set,
        v: &'a Self::Set,
    ) -> Cow<'a, Ring::Set>;
    fn from_component(
        &self,
        b: &<Self::Basis as SetSignature>::Set,
        r: &Ring::Set,
    ) -> Self::Set;
}

Required Associated Types§

Required Methods§

Source

fn basis_set(&self) -> impl Borrow<Self::Basis>

Source

fn to_component<'a>( &self, b: &<Self::Basis as SetSignature>::Set, v: &'a Self::Set, ) -> Cow<'a, Ring::Set>

Source

fn from_component( &self, b: &<Self::Basis as SetSignature>::Set, r: &Ring::Set, ) -> Self::Set

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.

Implementors§

Source§

impl<'h, B: BorrowedStructure<RationalCanonicalStructure>> FreeModuleSignature<RationalCanonicalStructure> for RingHomomorphismRangeModuleStructure<'h, RationalCanonicalStructure, RationalCanonicalStructure, PrincipalRationalMap<RationalCanonicalStructure, B>>

Source§

impl<'h, B: BorrowedStructure<AlgebraicNumberFieldPolynomialQuotientStructure>> FreeModuleSignature<RationalCanonicalStructure> for RingHomomorphismRangeModuleStructure<'h, RationalCanonicalStructure, AlgebraicNumberFieldPolynomialQuotientStructure, PrincipalRationalMap<AlgebraicNumberFieldPolynomialQuotientStructure, B>>

Source§

impl<'h, D: BorrowedSet<Integer>, B: BorrowedStructure<QuadraticNumberFieldStructure<D>>> FreeModuleSignature<RationalCanonicalStructure> for RingHomomorphismRangeModuleStructure<'h, RationalCanonicalStructure, QuadraticNumberFieldStructure<D>, PrincipalRationalMap<QuadraticNumberFieldStructure<D>, B>>

Source§

impl<'h, Field: FieldSignature, FieldB: BorrowedStructure<Field>, FieldPolyB: BorrowedStructure<PolynomialStructure<Field, FieldB>>, const IS_FIELD: bool> FreeModuleSignature<Field> for RingHomomorphismRangeModuleStructure<'h, Field, PolynomialQuotientRingStructure<Field, FieldB, FieldPolyB, IS_FIELD>, PolynomialQuotientRingExtension<Field, FieldB, FieldPolyB, IS_FIELD>>

Source§

impl<Field: FieldSignature> FreeModuleSignature<Field> for QuaternionAlgebraStructure<Field>

Source§

impl<Ring: RingSignature, RingB: BorrowedStructure<Ring>> FreeModuleSignature<Ring> for FinitelyFreeModuleStructure<Ring, RingB>

Source§

impl<Set: OrdSignature, SetB: BorrowedStructure<Set>, Ring: RingSignature + EqSignature, RingB: BorrowedStructure<Ring>> FreeModuleSignature<Ring> for FreeModuleOverOrderedSetStructure<Set, SetB, Ring, RingB>

Source§

type Basis = Set