pub enum ModuleMonomialOrder {
TermOverPosition(MonomialOrder),
PositionOverTerm(MonomialOrder),
Schreyer {
target_order: Box<Self>,
leading_monomials: Vec<ModuleMonomial>,
},
}Expand description
A module-monomial order extending one polynomial monomial order.
Variants§
TermOverPosition(MonomialOrder)
Compare polynomial terms before basis positions.
PositionOverTerm(MonomialOrder)
Compare basis positions before polynomial terms.
Schreyer
Compare source terms by their products with an ordered target leading frame, breaking induced ties by source position.
Fields
§
leading_monomials: Vec<ModuleMonomial>Ordered leading module monomials of the framed generators.
Implementations§
Source§impl ModuleMonomialOrder
impl ModuleMonomialOrder
Sourcepub fn base_order(&self) -> &MonomialOrder
pub fn base_order(&self) -> &MonomialOrder
Underlying polynomial monomial order.
Sourcepub fn schreyer(
target_order: Self,
leading_monomials: Vec<ModuleMonomial>,
) -> Self
pub fn schreyer( target_order: Self, leading_monomials: Vec<ModuleMonomial>, ) -> Self
Construct the exact order induced by an ordered target leading frame.
Sourcepub fn schreyer_data(&self) -> Option<(&Self, &[ModuleMonomial])>
pub fn schreyer_data(&self) -> Option<(&Self, &[ModuleMonomial])>
Target order and ordered leading frame for a Schreyer order.
Sourcepub fn to_json(&self) -> Result<String, NoetherError>
pub fn to_json(&self) -> Result<String, NoetherError>
Serialize this mathematical module order as typed JSON.
Sourcepub fn from_json(value: &str) -> Result<Self, NoetherError>
pub fn from_json(value: &str) -> Result<Self, NoetherError>
Deserialize and revalidate a standard module order.
Trait Implementations§
Source§impl Clone for ModuleMonomialOrder
impl Clone for ModuleMonomialOrder
Source§fn clone(&self) -> ModuleMonomialOrder
fn clone(&self) -> ModuleMonomialOrder
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ModuleMonomialOrder
impl Debug for ModuleMonomialOrder
Source§impl<'de> Deserialize<'de> for ModuleMonomialOrder
impl<'de> Deserialize<'de> for ModuleMonomialOrder
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for ModuleMonomialOrder
impl Display for ModuleMonomialOrder
Source§impl PartialEq for ModuleMonomialOrder
impl PartialEq for ModuleMonomialOrder
Source§impl SemanticType for ModuleMonomialOrder
impl SemanticType for ModuleMonomialOrder
Source§const TYPE_ID: &'static str = "noether/homalg/ModuleMonomialOrder@1"
const TYPE_ID: &'static str = "noether/homalg/ModuleMonomialOrder@1"
Versioned, language-neutral semantic identity.
Source§fn canonical_bytes(&self) -> Result<Vec<u8>, NoetherError>
fn canonical_bytes(&self) -> Result<Vec<u8>, NoetherError>
Serialize without backend- or language-specific identity.
Source§fn describe() -> &'static TypeDescription
fn describe() -> &'static TypeDescription
Return static discovery metadata for the type.
Source§impl Serialize for ModuleMonomialOrder
impl Serialize for ModuleMonomialOrder
impl Eq for ModuleMonomialOrder
impl StructuralPartialEq for ModuleMonomialOrder
Auto Trait Implementations§
impl Freeze for ModuleMonomialOrder
impl RefUnwindSafe for ModuleMonomialOrder
impl Send for ModuleMonomialOrder
impl Sync for ModuleMonomialOrder
impl Unpin for ModuleMonomialOrder
impl UnwindSafe for ModuleMonomialOrder
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