pub struct Inclusion<R>{ /* private fields */ }
Expand description
The ring homomorphism induced by a RingExtension
.
§Example
let base = StaticRing::<i32>::RING;
let extension = dense_poly::DensePolyRing::new(base, "X");
let hom = extension.inclusion();
let f = extension.add(hom.map(8), extension.indeterminate());
assert_el_eq!(extension, extension.from_terms([(8, 0), (1, 1)].into_iter()), &f);
Implementations§
Trait Implementations§
Source§impl<R> Homomorphism<<<<R as RingStore>::Type as RingExtension>::BaseRing as RingStore>::Type, <R as RingStore>::Type> for Inclusion<R>
impl<R> Homomorphism<<<<R as RingStore>::Type as RingExtension>::BaseRing as RingStore>::Type, <R as RingStore>::Type> for Inclusion<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 as RingStore>::Type as RingExtension>::BaseRing
type DomainStore = <<R as RingStore>::Type as RingExtension>::BaseRing
The type of the
RingStore
used by this object to store the domain 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 codomain<'a>(&'a self) -> &'a Self::CodomainStore
fn codomain<'a>(&'a self) -> &'a Self::CodomainStore
Returns a reference to the codomain ring.
Source§fn map(&self, x: El<<R::Type as RingExtension>::BaseRing>) -> El<R>
fn map(&self, x: El<<R::Type as RingExtension>::BaseRing>) -> El<R>
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: &El<<R::Type as RingExtension>::BaseRing>) -> El<R>
fn map_ref(&self, x: &El<<R::Type as RingExtension>::BaseRing>) -> 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_ref_map(
&self,
lhs: &mut El<R>,
rhs: &El<<R::Type as RingExtension>::BaseRing>,
)
fn mul_assign_ref_map( &self, lhs: &mut El<R>, rhs: &El<<R::Type as RingExtension>::BaseRing>, )
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_map(
&self,
lhs: &mut El<R>,
rhs: El<<R::Type as RingExtension>::BaseRing>,
)
fn mul_assign_map( &self, lhs: &mut El<R>, rhs: El<<R::Type as RingExtension>::BaseRing>, )
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_map_through_hom<First: ?Sized + RingBase, H: Homomorphism<First, <<R::Type as RingExtension>::BaseRing as RingStore>::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 as RingExtension>::BaseRing as RingStore>::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 as RingExtension>::BaseRing as RingStore>::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 as RingExtension>::BaseRing as RingStore>::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::Type as RingExtension>::BaseRing>,
summand: El<R>,
) -> El<R>
fn fma_map( &self, lhs: &El<R>, rhs: &El<<R::Type as RingExtension>::BaseRing>, 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 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 Inclusion<R>
Auto Trait Implementations§
impl<R> Freeze for Inclusion<R>where
R: Freeze,
impl<R> RefUnwindSafe for Inclusion<R>where
R: RefUnwindSafe,
impl<R> Send for Inclusion<R>where
R: Send,
impl<R> Sync for Inclusion<R>where
R: Sync,
impl<R> Unpin for Inclusion<R>where
R: Unpin,
impl<R> UnwindSafe for Inclusion<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