Gröbner basis project
Codebase for research into Gröbner basis computation
Grevlex_Ordering Class Reference

the grevlex ordering for a specified number of variables More...

#include <particular_orderings.hpp>

Inheritance diagram for Grevlex_Ordering:
Monomial_Ordering

Public Member Functions

Construction
 Grevlex_Ordering (NVAR_TYPE number_of_variables)
 creates a grevlex ordering specific to the specified number of variables
 
Comparison
virtual bool first_larger (const Monomial &t, const Monomial &u) const
 returns true iff \(t>u\) by sums of successively fewer exponents
 
virtual bool first_smaller (const Monomial &t, const Monomial &u) const
 returns true iff \(t< u\) by sums of successively fewer exponents
 
virtual bool first_larger_than_multiple (const Monomial &t, const Monomial &u, const Monomial &v) const
 returns true iff \(t>uv\) by sums of successively fewer exponents
 
DEG_TYPE partial_degree (const Monomial &t, NVAR_TYPE i) const
 compares the sum of the first i exponents More...
 
virtual int cmp (const Monomial &t, const Monomial &u) const
 {@ More...
 
Utility
DEG_TYPE compute_ith_weight (const Monomial &t, NVAR_TYPE i) const
 computes the sum of the first i exponents
 
virtual void set_data (Monomial &t)
 sets the Monomial’s monomial_ordering_data
 
- Public Member Functions inherited from Monomial_Ordering
virtual ~Monomial_Ordering ()
 needs virtual destructor for polymorphic delete
 
bool first_larger_or_equal (const Monomial &, const Monomial &) const
 returns true iff the first Monomial is larger or equal to the second More...
 
bool first_smaller_or_equal (const Monomial &, const Monomial &) const
 returns true iff the first Monomial is smaller or equal to the second More...
 
bool first_larger_or_equal_than_multiple (const Monomial &, const Monomial &, const Monomial &) const
 returns true iff the first Monomial is larger or equal to the specified multiple of the second More...
 
bool first_smaller_than_multiple (const Monomial &, const Monomial &, const Monomial &) const
 returns true iff the first Monomial is smaller than the specified multiple of the second More...
 
bool first_smaller_or_equal_than_multiple (const Monomial &, const Monomial &, const Monomial &) const
 returns true iff the first Monomial is smaller or equal to the specified multiple of the second More...
 

Protected Attributes

const NVAR_TYPE n
 the number of variables, which should remain constant
 

Detailed Description

the grevlex ordering for a specified number of variables

Author
John Perry
Date
2015

The grevlex ordering first compares the sums of the exponents, then the sums of all but the last exponent, then the sums of all but the last two exponents, and so forth, until either the sums differ or it runs out of variables.

Examples:
test_cyclicn.cpp.

Definition at line 114 of file particular_orderings.hpp.

Member Function Documentation

◆ cmp()

virtual int Grevlex_Ordering::cmp ( const Monomial t,
const Monomial u 
) const
inlinevirtual

{@

returns 0 if the Monomials are like; negative if smaller, positive if larger – for efficiency, you probably want to redefine this

Implements Monomial_Ordering.

Definition at line 144 of file particular_orderings.hpp.

◆ partial_degree()

DEG_TYPE Grevlex_Ordering::partial_degree ( const Monomial t,
NVAR_TYPE  i 
) const

compares the sum of the first i exponents

Warning
Be sure that t has the correct ordering!

Definition at line 284 of file particular_orderings.cpp.


The documentation for this class was generated from the following files: