pub struct Identity<R: RingStore> { /* private fields */ }
Expand description
The identity homomorphism R -> R, x -> x
on the given ring R
.
Implementations§
Trait Implementations§
Source§impl<R: RingStore> Homomorphism<<R as RingStore>::Type, <R as RingStore>::Type> for Identity<R>
impl<R: RingStore> Homomorphism<<R as RingStore>::Type, <R as RingStore>::Type> for Identity<R>
Source§type CodomainStore = R
type CodomainStore = R
The type of the
RingStore
used by this object to store the codomain ring.Source§type DomainStore = R
type DomainStore = R
The type of the
RingStore
used by this object to store the domain ring.Source§fn codomain<'a>(&'a self) -> &'a Self::CodomainStore
fn codomain<'a>(&'a self) -> &'a Self::CodomainStore
Returns a reference to the codomain ring.
Source§fn domain<'a>(&'a self) -> &'a Self::DomainStore
fn domain<'a>(&'a self) -> &'a Self::DomainStore
Returns a reference to the domain ring.
Source§fn map(&self, x: El<R>) -> El<R>
fn map(&self, x: El<R>) -> El<R>
Applies this homomorphism to the given element from the domain ring,
resulting in an element in the codomain ring.
Source§fn mul_assign_map_through_hom<First: ?Sized + RingBase, H: Homomorphism<First, R::Type>>(
&self,
lhs: &mut El<R>,
rhs: First::Element,
hom: H,
)
fn mul_assign_map_through_hom<First: ?Sized + RingBase, H: Homomorphism<First, R::Type>>( &self, lhs: &mut El<R>, 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_ref_map_through_hom<First: ?Sized + RingBase, H: Homomorphism<First, R::Type>>(
&self,
lhs: &mut El<R>,
rhs: &First::Element,
hom: H,
)
fn mul_assign_ref_map_through_hom<First: ?Sized + RingBase, H: Homomorphism<First, R::Type>>( &self, lhs: &mut El<R>, 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 fma_map(&self, lhs: &El<R>, rhs: &El<R>, summand: El<R>) -> El<R>
fn fma_map(&self, lhs: &El<R>, rhs: &El<R>, summand: El<R>) -> El<R>
Fused-multiply-add. This computes
lhs * rhs + summand
, where rhs
is mapped
into the ring via this homomorphism. Read moreSource§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 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))
.impl<R> Copy for Identity<R>
Auto Trait Implementations§
impl<R> Freeze for Identity<R>where
R: Freeze,
impl<R> RefUnwindSafe for Identity<R>where
R: RefUnwindSafe,
impl<R> Send for Identity<R>where
R: Send,
impl<R> Sync for Identity<R>where
R: Sync,
impl<R> Unpin for Identity<R>where
R: Unpin,
impl<R> UnwindSafe for Identity<R>where
R: 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> 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