pub struct RingRef<'a, R>{ /* private fields */ }Expand description
The second most basic crate::ring::RingStore. Similarly to
crate::ring::RingValue it is just a no-op container.
§Why do we need this in addition to crate::ring::RingValue?
Before RingValue::from_ref() was added, this was important to
allow using a reference to a RingBase as RingStore. Since then,
it indeed has only a marginal importance, but note that it is currently
the only way of working with unsized rings (an admittedly pretty exotic
case).
Implementations§
Trait Implementations§
Source§impl<'a, R> RingStore for RingRef<'a, R>
impl<'a, R> RingStore for RingRef<'a, R>
Source§fn clone_el(
&self,
val: &<Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn clone_el( &self, val: &<Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Source§fn add_assign_ref(
&self,
lhs: &mut <Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
)
fn add_assign_ref( &self, lhs: &mut <Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, )
Source§fn add_assign(
&self,
lhs: &mut <Self::Type as RingBase>::Element,
rhs: <Self::Type as RingBase>::Element,
)
fn add_assign( &self, lhs: &mut <Self::Type as RingBase>::Element, rhs: <Self::Type as RingBase>::Element, )
Source§fn sub_assign_ref(
&self,
lhs: &mut <Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
)
fn sub_assign_ref( &self, lhs: &mut <Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, )
Source§fn sub_self_assign(
&self,
lhs: &mut <Self::Type as RingBase>::Element,
rhs: <Self::Type as RingBase>::Element,
)
fn sub_self_assign( &self, lhs: &mut <Self::Type as RingBase>::Element, rhs: <Self::Type as RingBase>::Element, )
Source§fn sub_self_assign_ref(
&self,
lhs: &mut <Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
)
fn sub_self_assign_ref( &self, lhs: &mut <Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, )
Source§fn mul_assign(
&self,
lhs: &mut <Self::Type as RingBase>::Element,
rhs: <Self::Type as RingBase>::Element,
)
fn mul_assign( &self, lhs: &mut <Self::Type as RingBase>::Element, rhs: <Self::Type as RingBase>::Element, )
Source§fn mul_assign_ref(
&self,
lhs: &mut <Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
)
fn mul_assign_ref( &self, lhs: &mut <Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, )
Source§fn eq_el(
&self,
lhs: &<Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> bool
fn eq_el( &self, lhs: &<Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> bool
Source§fn is_commutative(&self) -> bool
fn is_commutative(&self) -> bool
Source§fn is_noetherian(&self) -> bool
fn is_noetherian(&self) -> bool
Source§fn negate(
&self,
value: <Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn negate( &self, value: <Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Source§fn sub_assign(
&self,
lhs: &mut <Self::Type as RingBase>::Element,
rhs: <Self::Type as RingBase>::Element,
)
fn sub_assign( &self, lhs: &mut <Self::Type as RingBase>::Element, rhs: <Self::Type as RingBase>::Element, )
Source§fn add_ref(
&self,
lhs: &<Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn add_ref( &self, lhs: &<Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Source§fn add_ref_fst(
&self,
lhs: &<Self::Type as RingBase>::Element,
rhs: <Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn add_ref_fst( &self, lhs: &<Self::Type as RingBase>::Element, rhs: <Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Source§fn add_ref_snd(
&self,
lhs: <Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn add_ref_snd( &self, lhs: <Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Source§fn add(
&self,
lhs: <Self::Type as RingBase>::Element,
rhs: <Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn add( &self, lhs: <Self::Type as RingBase>::Element, rhs: <Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
See
RingBase::add()Source§fn sub_ref(
&self,
lhs: &<Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn sub_ref( &self, lhs: &<Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Source§fn sub_ref_fst(
&self,
lhs: &<Self::Type as RingBase>::Element,
rhs: <Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn sub_ref_fst( &self, lhs: &<Self::Type as RingBase>::Element, rhs: <Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Source§fn sub_ref_snd(
&self,
lhs: <Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn sub_ref_snd( &self, lhs: <Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Source§fn sub(
&self,
lhs: <Self::Type as RingBase>::Element,
rhs: <Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn sub( &self, lhs: <Self::Type as RingBase>::Element, rhs: <Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
See
RingBase::sub()Source§fn mul_ref(
&self,
lhs: &<Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn mul_ref( &self, lhs: &<Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Source§fn mul_ref_fst(
&self,
lhs: &<Self::Type as RingBase>::Element,
rhs: <Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn mul_ref_fst( &self, lhs: &<Self::Type as RingBase>::Element, rhs: <Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Source§fn mul_ref_snd(
&self,
lhs: <Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn mul_ref_snd( &self, lhs: <Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Source§fn mul(
&self,
lhs: <Self::Type as RingBase>::Element,
rhs: <Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn mul( &self, lhs: <Self::Type as RingBase>::Element, rhs: <Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
See
RingBase::mul()Source§fn fma(
&self,
lhs: &<Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
summand: <Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn fma( &self, lhs: &<Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, summand: <Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
See
RingBase::fma()Source§fn coerce<S>(
&self,
from: &S,
el: <<S as RingStore>::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn coerce<S>( &self, from: &S, el: <<S as RingStore>::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Tries to map the given element into this ring. Read more
Source§fn into_identity(self) -> Identity<Self>
fn into_identity(self) -> Identity<Self>
Returns the identity map
self -> self.Source§fn into_can_hom<S>(self, from: S) -> Result<CanHom<S, Self>, (S, Self)>
fn into_can_hom<S>(self, from: S) -> Result<CanHom<S, Self>, (S, Self)>
Returns the canonical homomorphism
from -> self, if it exists,
moving both rings into the CanHom object.Source§fn into_can_iso<S>(self, from: S) -> Result<CanIso<S, Self>, (S, Self)>
fn into_can_iso<S>(self, from: S) -> Result<CanIso<S, Self>, (S, Self)>
Returns the canonical isomorphism
from -> self, if it exists,
moving both rings into the CanHom object.Source§fn can_hom<'a, S>(&'a self, from: &'a S) -> Option<CanHom<&'a S, &'a Self>>
fn can_hom<'a, S>(&'a self, from: &'a S) -> Option<CanHom<&'a S, &'a Self>>
Returns the canonical homomorphism
from -> self, if it exists.Source§fn can_iso<'a, S>(&'a self, from: &'a S) -> Option<CanIso<&'a S, &'a Self>>
fn can_iso<'a, S>(&'a self, from: &'a S) -> Option<CanIso<&'a S, &'a Self>>
Returns the canonical isomorphism
from -> self, if it exists.Source§fn into_int_hom(self) -> IntHom<Self>
fn into_int_hom(self) -> IntHom<Self>
Returns the homomorphism
Z -> self that exists for any ring.Source§fn int_hom<'a>(&'a self) -> IntHom<&'a Self>
fn int_hom<'a>(&'a self) -> IntHom<&'a Self>
Returns the homomorphism
Z -> self that exists for any ring.Source§fn sum<I>(&self, els: I) -> <Self::Type as RingBase>::Element
fn sum<I>(&self, els: I) -> <Self::Type as RingBase>::Element
Computes the sum of all elements returned by the iterator. Read more
Source§fn try_sum<I, E>(&self, els: I) -> Result<<Self::Type as RingBase>::Element, E>
fn try_sum<I, E>(&self, els: I) -> Result<<Self::Type as RingBase>::Element, E>
Equivalent of
RingStore::sum() if the producer of the ring elements
can fail, in which case summation is aborted and the error returned.Source§fn prod<I>(&self, els: I) -> <Self::Type as RingBase>::Element
fn prod<I>(&self, els: I) -> <Self::Type as RingBase>::Element
Computes the product of all elements returned by the iterator. Read more
Source§fn pow(
&self,
x: <Self::Type as RingBase>::Element,
power: usize,
) -> <Self::Type as RingBase>::Element
fn pow( &self, x: <Self::Type as RingBase>::Element, power: usize, ) -> <Self::Type as RingBase>::Element
Raises the given element to the given power.
Source§fn pow_gen<R>(
&self,
x: <Self::Type as RingBase>::Element,
power: &<<R as RingStore>::Type as RingBase>::Element,
integers: R,
) -> <Self::Type as RingBase>::Element
fn pow_gen<R>( &self, x: <Self::Type as RingBase>::Element, power: &<<R as RingStore>::Type as RingBase>::Element, integers: R, ) -> <Self::Type as RingBase>::Element
Raises the given element to the given power, which should be a positive integer
belonging to an arbitrary
IntegerRing. Read moreSource§fn format<'a>(
&'a self,
value: &'a <Self::Type as RingBase>::Element,
) -> RingElementDisplayWrapper<'a, Self>
fn format<'a>( &'a self, value: &'a <Self::Type as RingBase>::Element, ) -> RingElementDisplayWrapper<'a, Self>
Returns an object that represents the given ring element and implements
std::fmt::Display, to use as formatting parameter. Read moreSource§fn format_within<'a>(
&'a self,
value: &'a <Self::Type as RingBase>::Element,
within: EnvBindingStrength,
) -> RingElementDisplayWrapper<'a, Self>
fn format_within<'a>( &'a self, value: &'a <Self::Type as RingBase>::Element, within: EnvBindingStrength, ) -> RingElementDisplayWrapper<'a, Self>
Returns an object that represents the given ring element and implements
std::fmt::Display, to use as formatting parameter. As opposed to
RingStore::format(), this function takes an additional argument to
specify the context the result is printed in, which is used to determine
whether to put the value in parenthesis or not. Read moreSource§fn println(&self, value: &<Self::Type as RingBase>::Element)
fn println(&self, value: &<Self::Type as RingBase>::Element)
Prints the given element. Use for quick & dirty debugging.
impl<'a, R> Copy for RingRef<'a, R>
Auto Trait Implementations§
impl<'a, R> Freeze for RingRef<'a, R>where
R: ?Sized,
impl<'a, R> RefUnwindSafe for RingRef<'a, R>where
R: RefUnwindSafe + ?Sized,
impl<'a, R> Send for RingRef<'a, R>
impl<'a, R> Sync for RingRef<'a, R>
impl<'a, R> Unpin for RingRef<'a, R>where
R: ?Sized,
impl<'a, R> UnwindSafe for RingRef<'a, R>where
R: RefUnwindSafe + ?Sized,
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<R> DivisibilityRingStore for R
impl<R> DivisibilityRingStore for R
Source§fn checked_left_div(
&self,
lhs: &<Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> Option<<Self::Type as RingBase>::Element>
fn checked_left_div( &self, lhs: &<Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> Option<<Self::Type as RingBase>::Element>
Source§fn divides_left(
&self,
lhs: &<Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> bool
fn divides_left( &self, lhs: &<Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> bool
Source§fn checked_div(
&self,
lhs: &<Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> Option<<Self::Type as RingBase>::Element>
fn checked_div( &self, lhs: &<Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> Option<<Self::Type as RingBase>::Element>
Source§impl<R> EuclideanRingStore for R
impl<R> EuclideanRingStore for R
Source§fn euclidean_div_rem(
&self,
lhs: <Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> (<Self::Type as RingBase>::Element, <Self::Type as RingBase>::Element)
fn euclidean_div_rem( &self, lhs: <Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> (<Self::Type as RingBase>::Element, <Self::Type as RingBase>::Element)
Source§fn euclidean_div(
&self,
lhs: <Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn euclidean_div( &self, lhs: <Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Source§fn euclidean_rem(
&self,
lhs: <Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn euclidean_rem( &self, lhs: <Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Source§impl<R> FiniteRingStore for R
impl<R> FiniteRingStore for R
Source§impl<R> FreeAlgebraStore for R
impl<R> FreeAlgebraStore for R
Source§fn trace(
&self,
el: <Self::Type as RingBase>::Element,
) -> <<<Self::Type as RingExtension>::BaseRing as RingStore>::Type as RingBase>::Element
fn trace( &self, el: <Self::Type as RingBase>::Element, ) -> <<<Self::Type as RingExtension>::BaseRing as RingStore>::Type as RingBase>::Element
Source§fn wrt_canonical_basis<'a>(
&'a self,
el: &'a <Self::Type as RingBase>::Element,
) -> <Self::Type as FreeAlgebra>::VectorRepresentation<'a>
fn wrt_canonical_basis<'a>( &'a self, el: &'a <Self::Type as RingBase>::Element, ) -> <Self::Type as FreeAlgebra>::VectorRepresentation<'a>
Source§fn from_canonical_basis<V>(&self, vec: V) -> <Self::Type as RingBase>::Elementwhere
V: IntoIterator<Item = <<<Self::Type as RingExtension>::BaseRing as RingStore>::Type as RingBase>::Element>,
<V as IntoIterator>::IntoIter: DoubleEndedIterator,
fn from_canonical_basis<V>(&self, vec: V) -> <Self::Type as RingBase>::Elementwhere
V: IntoIterator<Item = <<<Self::Type as RingExtension>::BaseRing as RingStore>::Type as RingBase>::Element>,
<V as IntoIterator>::IntoIter: DoubleEndedIterator,
Source§fn from_canonical_basis_extended<V>(
&self,
vec: V,
) -> <Self::Type as RingBase>::Elementwhere
V: IntoIterator<Item = <<<Self::Type as RingExtension>::BaseRing as RingStore>::Type as RingBase>::Element>,
fn from_canonical_basis_extended<V>(
&self,
vec: V,
) -> <Self::Type as RingBase>::Elementwhere
V: IntoIterator<Item = <<<Self::Type as RingExtension>::BaseRing as RingStore>::Type as RingBase>::Element>,
Source§fn generating_poly<P, H>(
&self,
poly_ring: P,
hom: H,
) -> <<P as RingStore>::Type as RingBase>::Elementwhere
P: PolyRingStore,
<P as RingStore>::Type: PolyRing,
H: Homomorphism<<<Self::Type as RingExtension>::BaseRing as RingStore>::Type, <<<P as RingStore>::Type as RingExtension>::BaseRing as RingStore>::Type>,
fn generating_poly<P, H>(
&self,
poly_ring: P,
hom: H,
) -> <<P as RingStore>::Type as RingBase>::Elementwhere
P: PolyRingStore,
<P as RingStore>::Type: PolyRing,
H: Homomorphism<<<Self::Type as RingExtension>::BaseRing as RingStore>::Type, <<<P as RingStore>::Type as RingExtension>::BaseRing as RingStore>::Type>,
Returns the generating polynomial of this ring, i.e. the monic polynomial
f(X) such that this ring is isomorphic
to R[X]/(f(X)), where R is the base ring.Source§fn as_field(self) -> Result<RingValue<AsFieldBase<Self>>, Self>where
Self::Type: DivisibilityRing,
<<Self::Type as RingExtension>::BaseRing as RingStore>::Type: Field + FactorPolyField,
fn as_field(self) -> Result<RingValue<AsFieldBase<Self>>, Self>where
Self::Type: DivisibilityRing,
<<Self::Type as RingExtension>::BaseRing as RingStore>::Type: Field + FactorPolyField,
If this ring is a field, returns a wrapper around this ring that implements
crate::field::FieldStore. Read moreSource§fn poly_repr<P, H>(
&self,
to: P,
el: &<Self::Type as RingBase>::Element,
hom: H,
) -> <<P as RingStore>::Type as RingBase>::Elementwhere
P: PolyRingStore,
<P as RingStore>::Type: PolyRing,
H: Homomorphism<<<Self::Type as RingExtension>::BaseRing as RingStore>::Type, <<<P as RingStore>::Type as RingExtension>::BaseRing as RingStore>::Type>,
fn poly_repr<P, H>(
&self,
to: P,
el: &<Self::Type as RingBase>::Element,
hom: H,
) -> <<P as RingStore>::Type as RingBase>::Elementwhere
P: PolyRingStore,
<P as RingStore>::Type: PolyRing,
H: Homomorphism<<<Self::Type as RingExtension>::BaseRing as RingStore>::Type, <<<P as RingStore>::Type as RingExtension>::BaseRing as RingStore>::Type>,
Returns the polynomial representation of the given element
y, i.e. the polynomial f(X) of degree at most
FreeAlgebraStore::rank() such that f(x) = y, where y is the canonical generator of this ring, as given by
FreeAlgebraStore::canonical_gen().Source§fn discriminant(
&self,
) -> <<<Self::Type as RingExtension>::BaseRing as RingStore>::Type as RingBase>::Element
fn discriminant( &self, ) -> <<<Self::Type as RingExtension>::BaseRing as RingStore>::Type as RingBase>::Element
Computes the discriminant of the canonical basis of this ring extension,
which is defined as the determinant of the trace matrix
(Tr(a^(i + j))),
where a is the canonical generator of this ring extension. Read moreSource§fn charpoly<P, H>(
&self,
el: &<Self::Type as RingBase>::Element,
poly_ring: P,
hom: H,
) -> <<P as RingStore>::Type as RingBase>::Elementwhere
P: RingStore,
<P as RingStore>::Type: PolyRing,
<<<P as RingStore>::Type as RingExtension>::BaseRing as RingStore>::Type: LinSolveRing,
H: Homomorphism<<<Self::Type as RingExtension>::BaseRing as RingStore>::Type, <<<P as RingStore>::Type as RingExtension>::BaseRing as RingStore>::Type>,
fn charpoly<P, H>(
&self,
el: &<Self::Type as RingBase>::Element,
poly_ring: P,
hom: H,
) -> <<P as RingStore>::Type as RingBase>::Elementwhere
P: RingStore,
<P as RingStore>::Type: PolyRing,
<<<P as RingStore>::Type as RingExtension>::BaseRing as RingStore>::Type: LinSolveRing,
H: Homomorphism<<<Self::Type as RingExtension>::BaseRing as RingStore>::Type, <<<P as RingStore>::Type as RingExtension>::BaseRing as RingStore>::Type>,
See also
FreeAlgebra::charpoly().Source§fn with_wrapped_generator<'a, F, const M: usize>(
&'a self,
f: F,
) -> [<Self::Type as RingBase>::Element; M]
fn with_wrapped_generator<'a, F, const M: usize>( &'a self, f: F, ) -> [<Self::Type as RingBase>::Element; M]
Temporarily wraps the canonical generator in a
RingElementWrapper, for more
natural creation of ring elements.Source§impl<R> HashableElRingStore for R
impl<R> HashableElRingStore for R
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 moreSource§impl<R> LinSolveRingStore for R
impl<R> LinSolveRingStore for R
Source§fn solve_right<V1, V2, V3>(
&self,
lhs: SubmatrixMut<'_, V1, <Self::Type as RingBase>::Element>,
rhs: SubmatrixMut<'_, V2, <Self::Type as RingBase>::Element>,
out: SubmatrixMut<'_, V3, <Self::Type as RingBase>::Element>,
) -> SolveResultwhere
V1: AsPointerToSlice<<Self::Type as RingBase>::Element>,
V2: AsPointerToSlice<<Self::Type as RingBase>::Element>,
V3: AsPointerToSlice<<Self::Type as RingBase>::Element>,
fn solve_right<V1, V2, V3>(
&self,
lhs: SubmatrixMut<'_, V1, <Self::Type as RingBase>::Element>,
rhs: SubmatrixMut<'_, V2, <Self::Type as RingBase>::Element>,
out: SubmatrixMut<'_, V3, <Self::Type as RingBase>::Element>,
) -> SolveResultwhere
V1: AsPointerToSlice<<Self::Type as RingBase>::Element>,
V2: AsPointerToSlice<<Self::Type as RingBase>::Element>,
V3: AsPointerToSlice<<Self::Type as RingBase>::Element>,
Solves a linear system
lhs * X = rhs. Read moreSource§fn solve_right_with<V1, V2, V3, A>(
&self,
lhs: SubmatrixMut<'_, V1, <Self::Type as RingBase>::Element>,
rhs: SubmatrixMut<'_, V2, <Self::Type as RingBase>::Element>,
out: SubmatrixMut<'_, V3, <Self::Type as RingBase>::Element>,
allocator: A,
) -> SolveResultwhere
V1: AsPointerToSlice<<Self::Type as RingBase>::Element>,
V2: AsPointerToSlice<<Self::Type as RingBase>::Element>,
V3: AsPointerToSlice<<Self::Type as RingBase>::Element>,
A: Allocator,
fn solve_right_with<V1, V2, V3, A>(
&self,
lhs: SubmatrixMut<'_, V1, <Self::Type as RingBase>::Element>,
rhs: SubmatrixMut<'_, V2, <Self::Type as RingBase>::Element>,
out: SubmatrixMut<'_, V3, <Self::Type as RingBase>::Element>,
allocator: A,
) -> SolveResultwhere
V1: AsPointerToSlice<<Self::Type as RingBase>::Element>,
V2: AsPointerToSlice<<Self::Type as RingBase>::Element>,
V3: AsPointerToSlice<<Self::Type as RingBase>::Element>,
A: Allocator,
Solves a linear system
lhs * X = rhs. Read moreSource§impl<R> PrincipalIdealRingStore for R
impl<R> PrincipalIdealRingStore for R
Source§fn checked_div_min(
&self,
lhs: &<Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> Option<<Self::Type as RingBase>::Element>
fn checked_div_min( &self, lhs: &<Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> Option<<Self::Type as RingBase>::Element>
Source§fn extended_ideal_gen(
&self,
lhs: &<Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> (<Self::Type as RingBase>::Element, <Self::Type as RingBase>::Element, <Self::Type as RingBase>::Element)
fn extended_ideal_gen( &self, lhs: &<Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> (<Self::Type as RingBase>::Element, <Self::Type as RingBase>::Element, <Self::Type as RingBase>::Element)
Source§fn ideal_gen(
&self,
lhs: &<Self::Type as RingBase>::Element,
rhs: &<Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn ideal_gen( &self, lhs: &<Self::Type as RingBase>::Element, rhs: &<Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Source§fn annihilator(
&self,
val: &<Self::Type as RingBase>::Element,
) -> <Self::Type as RingBase>::Element
fn annihilator( &self, val: &<Self::Type as RingBase>::Element, ) -> <Self::Type as RingBase>::Element
Source§impl<R> RingExtensionStore for R
impl<R> RingExtensionStore for R
Source§fn into_inclusion(self) -> Inclusion<Self>
fn into_inclusion(self) -> Inclusion<Self>
Returns the inclusion map of the base ring
R -> self.