pub struct WrapHom<R, S>{ /* private fields */ }Expand description
Homomorphism from a ring to a DelegateRing with the former ring
as delegate target. An element is mapped by using DelegateRing::rev_delegate().
Implementations§
Source§impl<'a, R> WrapHom<RingRef<'a, R::Base>, RingRef<'a, R>>where
R: ?Sized + DelegateRing,
impl<'a, R> WrapHom<RingRef<'a, R::Base>, RingRef<'a, R>>where
R: ?Sized + DelegateRing,
Sourcepub fn to_delegate_ring(to: &'a R) -> Self
pub fn to_delegate_ring(to: &'a R) -> Self
Creates a new WrapHom from the given ring’s delegate target
to the given ring.
This function must take to by reference, since it must be able to
obtain a reference to its delegate target that lives long enough.
Trait Implementations§
Source§impl<R, S> Homomorphism<<R as RingStore>::Type, <S as RingStore>::Type> for WrapHom<R, S>
impl<R, S> Homomorphism<<R as RingStore>::Type, <S as RingStore>::Type> for WrapHom<R, S>
Source§type DomainStore = R
type DomainStore = R
The type of the
RingStore used by this object to store the domain ring.Source§type CodomainStore = S
type CodomainStore = S
The type of the
RingStore used by this object to store the codomain ring.Source§fn domain<'b>(&'b self) -> &'b Self::DomainStore
fn domain<'b>(&'b self) -> &'b Self::DomainStore
Returns a reference to the domain ring.
Source§fn codomain<'b>(&'b self) -> &'b Self::CodomainStore
fn codomain<'b>(&'b self) -> &'b Self::CodomainStore
Returns a reference to the codomain ring.
Source§fn map(&self, x: El<R>) -> El<S>
fn map(&self, x: El<R>) -> El<S>
Applies this homomorphism to the given element from the domain ring,
resulting in an element in the codomain ring.
Source§fn map_ref(&self, x: &Domain::Element) -> Codomain::Element
fn map_ref(&self, x: &Domain::Element) -> Codomain::Element
Applies this homomorphism to the given element from the domain ring,
resulting in an element in the codomain ring.
Source§fn mul_assign_map(&self, lhs: &mut Codomain::Element, rhs: Domain::Element)
fn mul_assign_map(&self, lhs: &mut Codomain::Element, rhs: Domain::Element)
Multiplies the given element in the codomain ring with an element obtained
by applying this homomorphism to a given element from the domain ring. Read more
Source§fn mul_assign_ref_map(&self, lhs: &mut Codomain::Element, rhs: &Domain::Element)
fn mul_assign_ref_map(&self, lhs: &mut Codomain::Element, rhs: &Domain::Element)
Multiplies the given element in the codomain ring with an element obtained
by applying this homomorphism to a given element from the domain ring. Read more
Source§fn mul_map(
&self,
lhs: Codomain::Element,
rhs: Domain::Element,
) -> Codomain::Element
fn mul_map( &self, lhs: Codomain::Element, rhs: Domain::Element, ) -> Codomain::Element
Multiplies the given element in the codomain ring with an element obtained
by applying this homomorphism to a given element from the domain ring. Read more
Source§fn fma_map(
&self,
lhs: &Codomain::Element,
rhs: &Domain::Element,
summand: Codomain::Element,
) -> Codomain::Element
fn fma_map( &self, lhs: &Codomain::Element, rhs: &Domain::Element, summand: Codomain::Element, ) -> Codomain::Element
Fused-multiply-add. This computes
lhs * rhs + summand, where rhs is mapped
into the ring via this homomorphism. Read moreSource§fn mul_ref_fst_map(
&self,
lhs: &Codomain::Element,
rhs: Domain::Element,
) -> Codomain::Element
fn mul_ref_fst_map( &self, lhs: &Codomain::Element, rhs: Domain::Element, ) -> Codomain::Element
Multiplies the given element in the codomain ring with an element obtained
by applying this homomorphism to a given element from the domain ring. Read more
Source§fn mul_ref_snd_map(
&self,
lhs: Codomain::Element,
rhs: &Domain::Element,
) -> Codomain::Element
fn mul_ref_snd_map( &self, lhs: Codomain::Element, rhs: &Domain::Element, ) -> Codomain::Element
Multiplies the given element in the codomain ring with an element obtained
by applying this homomorphism to a given element from the domain ring. Read more
Source§fn mul_ref_map(
&self,
lhs: &Codomain::Element,
rhs: &Domain::Element,
) -> Codomain::Element
fn mul_ref_map( &self, lhs: &Codomain::Element, rhs: &Domain::Element, ) -> Codomain::Element
Multiplies the given element in the codomain ring with an element obtained
by applying this homomorphism to a given element from the domain ring. Read more
Source§fn compose<F, PrevDomain: ?Sized + RingBase>(
self,
prev: F,
) -> ComposedHom<PrevDomain, Domain, Codomain, F, Self>where
Self: Sized,
F: Homomorphism<PrevDomain, Domain>,
fn compose<F, PrevDomain: ?Sized + RingBase>(
self,
prev: F,
) -> ComposedHom<PrevDomain, Domain, Codomain, F, Self>where
Self: Sized,
F: Homomorphism<PrevDomain, Domain>,
Constructs the homomorphism
x -> self.map(prev.map(x)).Source§fn mul_assign_ref_map_through_hom<First: ?Sized + RingBase, H: Homomorphism<First, Domain>>(
&self,
lhs: &mut Codomain::Element,
rhs: &First::Element,
hom: H,
)
fn mul_assign_ref_map_through_hom<First: ?Sized + RingBase, H: Homomorphism<First, Domain>>( &self, lhs: &mut Codomain::Element, rhs: &First::Element, hom: H, )
Multiplies the given element in the codomain ring with an element obtained
by applying this and another homomorphism to a given element from another ring. Read more
Source§fn mul_assign_map_through_hom<First: ?Sized + RingBase, H: Homomorphism<First, Domain>>(
&self,
lhs: &mut Codomain::Element,
rhs: First::Element,
hom: H,
)
fn mul_assign_map_through_hom<First: ?Sized + RingBase, H: Homomorphism<First, Domain>>( &self, lhs: &mut Codomain::Element, rhs: First::Element, hom: H, )
Multiplies the given element in the codomain ring with an element obtained
by applying this and another homomorphism to a given element from another ring. Read more
Auto Trait Implementations§
impl<R, S> Freeze for WrapHom<R, S>
impl<R, S> RefUnwindSafe for WrapHom<R, S>where
R: RefUnwindSafe,
S: RefUnwindSafe,
impl<R, S> Send for WrapHom<R, S>
impl<R, S> Sync for WrapHom<R, S>
impl<R, S> Unpin for WrapHom<R, S>
impl<R, S> UnsafeUnpin for WrapHom<R, S>where
R: UnsafeUnpin,
S: UnsafeUnpin,
impl<R, S> UnwindSafe for WrapHom<R, S>where
R: UnwindSafe,
S: UnwindSafe,
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> 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