pub struct TropicalGroebnerComputer {
pub weight: Vec<f64>,
pub generators: Vec<Polynomial>,
pub nvars: usize,
}Expand description
A tropical Gröbner basis computation for a weighted ideal.
Given an ideal I ⊆ k[x_1,…,x_n] and a weight vector w ∈ R^n, the initial ideal in_w(I) is generated by {in_w(f) : f ∈ I}. The tropical variety Trop(I) = {w : in_w(I) contains no monomial}.
Fields§
§weight: Vec<f64>The weight vector w.
generators: Vec<Polynomial>The ideal generators.
nvars: usizeNumber of variables.
Implementations§
Source§impl TropicalGroebnerComputer
impl TropicalGroebnerComputer
Sourcepub fn new(weight: Vec<f64>, generators: Vec<Polynomial>, nvars: usize) -> Self
pub fn new(weight: Vec<f64>, generators: Vec<Polynomial>, nvars: usize) -> Self
Create a new tropical Gröbner computer.
Sourcepub fn weighted_degree(&self, m: &Monomial) -> f64
pub fn weighted_degree(&self, m: &Monomial) -> f64
Compute the weighted degree of a monomial m w.r.t. w: w(m) = ∑_i w_i · m_i.
Sourcepub fn initial_form(&self, f: &Polynomial) -> Polynomial
pub fn initial_form(&self, f: &Polynomial) -> Polynomial
Compute the initial form in_w(f): keep only terms achieving the maximum weighted degree.
Sourcepub fn is_in_tropical_variety(&self) -> bool
pub fn is_in_tropical_variety(&self) -> bool
Check if the weight vector w is in the tropical variety of the ideal (heuristic: check if no initial form of any generator is a monomial).
Sourcepub fn tropical_monomial_count(&self) -> usize
pub fn tropical_monomial_count(&self) -> usize
Compute the tropical degree: number of generators whose initial form is a monomial.
Auto Trait Implementations§
impl Freeze for TropicalGroebnerComputer
impl RefUnwindSafe for TropicalGroebnerComputer
impl Send for TropicalGroebnerComputer
impl Sync for TropicalGroebnerComputer
impl Unpin for TropicalGroebnerComputer
impl UnsafeUnpin for TropicalGroebnerComputer
impl UnwindSafe for TropicalGroebnerComputer
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