Macaulay2 Engine
Loading...
Searching...
No Matches
MonomialInfo Class Reference

Per-ring monomial layout / encoding helper used by F4GB. More...

#include <moninfo.hpp>

Inheritance diagram for MonomialInfo:
our_new_delete

Public Types

typedef packed_monomial monomial
typedef const_packed_monomial const_monomial
typedef monomial value

Public Member Functions

 MonomialInfo (int nvars, const MonomialOrdering *mo, const std::vector< int > &heftDegrees, const std::vector< int > &moduleHeftDegrees)
virtual ~MonomialInfo ()
int n_vars () const
int max_monomial_size () const
int monomial_size (const_packed_monomial m) const
void show () const
int componentLocation () const
int positionUp ()
long hash_value (const_packed_monomial m) const
void copy (const_packed_monomial src, packed_monomial target) const
long last_exponent (const_packed_monomial m) const
void set_component (long component, packed_monomial m) const
long get_component (const_packed_monomial m) const
bool from_expvector (const_ntuple_monomial e, long comp, packed_monomial result) const
int skew_vars (const SkewMultiplication *skew, const_packed_monomial m, int *skewvars) const
int skew_mult_sign (const SkewMultiplication *skew, const_packed_monomial m, const_packed_monomial n) const
bool one (long comp, packed_monomial result) const
bool to_expvector (const_packed_monomial m, ntuple_monomial result, long &result_comp) const
bool to_intstar_vector (const_packed_monomial m, int *result, int &result_comp) const
void to_varpower_monomial (const_packed_monomial m, varpower_monomial result) const
void from_varpower_monomial (const_varpower_monomial m, long comp, packed_monomial result) const
bool is_equal (const_packed_monomial m, const_packed_monomial n) const
bool monomial_part_is_equal (const_packed_monomial m, const_packed_monomial n) const
bool check_monomial (const_packed_monomial m) const
void unchecked_mult (const_packed_monomial m, const_packed_monomial n, packed_monomial result) const
void unchecked_divide (const_packed_monomial m, const_packed_monomial n, packed_monomial result) const
bool divide (const_packed_monomial m, const_packed_monomial n, packed_monomial result) const
bool mult (const_packed_monomial m, const_packed_monomial n, packed_monomial result) const
monomial_word monomial_heft (const_packed_monomial m) const
void show (const_packed_monomial m) const
void showAlpha (const_packed_monomial m) const
int compare_grevlex (const_packed_monomial m, const_packed_monomial n) const
int compare_schreyer (const_packed_monomial m, const_packed_monomial n, const_packed_monomial m0, const_packed_monomial n0, long tie1, long tie2) const
int compare_lex (const_packed_monomial m, const_packed_monomial n) const
int compare_weightvector (const_packed_monomial m, const_packed_monomial n) const
int compare (const_packed_monomial m, const_packed_monomial n) const
 compare:
int compareVerbose (const_packed_monomial m, const_packed_monomial n) const
bool unnecessary1 (const_packed_monomial m, const_packed_monomial p1, const_packed_monomial p2, const_packed_monomial lcm) const
bool unnecessary (const_packed_monomial m, const_packed_monomial p1, const_packed_monomial p2, const_packed_monomial lcm) const
void variable_as_vp (int v, varpower_monomial result) const
void quotient_as_vp (const_packed_monomial a, const_packed_monomial b, varpower_monomial result, int &deg_result, bool &are_disjoint) const

Private Attributes

int nvars
int nslots
monomial_wordhashfcn
monomial_word mask
int firstvar
int mNumWeights
std::vector< intmWeightVectors
std::vector< intmHeftDegrees
std::vector< intmModuleHeftDegrees
bool mTieBreakerIsRevLex
int mPositionUp
int mComponentLoc
unsigned long ncalls_compare
unsigned long ncalls_mult
unsigned long ncalls_get_component
unsigned long ncalls_from_expvector
unsigned long ncalls_to_expvector
unsigned long ncalls_to_varpower
unsigned long ncalls_from_varpower
unsigned long ncalls_is_equal
unsigned long ncalls_is_equal_true
unsigned long ncalls_divide
unsigned long ncalls_weight
unsigned long ncalls_unneccesary
unsigned long ncalls_quotient_as_vp

Additional Inherited Members

Static Public Member Functions inherited from our_new_delete
static void * operator new (size_t size)
static void * operator new[] (size_t size)
static void operator delete (void *obj)
static void operator delete[] (void *obj)
static void * operator new (size_t size, void *existing_memory)
static void * operator new[] (size_t size, void *existing_memory)
static void operator delete (void *obj, void *existing_memory)
static void operator delete[] (void *obj, void *existing_memory)

Detailed Description

Per-ring monomial layout / encoding helper used by F4GB.

Note
AI-generated documentation. Verify against the source before relying on it.

Holds the variable count nvars and the encoded monomial word width nslots, plus a per-variable hash table (hashfcn) and mask. Encoded monomials are laid out as [hashvalue, Computations, w_1, ..., w_r, e_1, ..., e_n] (or with the weights at the tail, depending on convention — see in-source comments at the top of the file). Provides the operations the F4 inner loops need: compare, mult, divide, lcm, gcd, hash-with- component, plus encode / decode against actual exponent vectors.

Definition at line 107 of file moninfo.hpp.


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