|
Macaulay2 Engine
|
Commutative F4 Groebner-basis driver: degree-by-degree Macaulay matrix construction plus row-reduction over a coefficient ring. More...
#include <f4.hpp>
Classes | |
| struct | MacaulayMatrixStats |
| Per-degree counters describing the shape and density of the Macaulay matrix that F4GB just built. More... | |
Public Member Functions | |
| F4GB (const VectorArithmetic *VA, const MonomialInfo *MI, const FreeModule *F, M2_bool collect_syz, int n_rows_to_keep, M2_arrayint gb_weights, int strategy, M2_bool use_max_degree, int max_degree, int numThreads) | |
| ~F4GB () | |
| void | set_generators (gb_array &new_gens) |
| void | new_generators (int lo, int hi) |
| const gb_array & | get_generators () const |
| gb_array & | get_generators () |
| const gb_array & | get_gb () const |
| gb_array & | get_gb () |
| void | set_hilbert_function (const RingElement *hf) |
| enum ComputationStatusCode | start_computation (StopConditions &stop_) |
| void | show_gb_array (const gb_array &g) const |
| void | show_row_info () const |
| void | show_column_info () const |
| void | show_matrix () |
| void | show_new_rows_matrix () |
Private Attributes | |
| const VectorArithmetic * | mVectorArithmetic |
| const MonomialInfo * | mMonomialInfo |
| const FreeModule * | mFreeModule |
| M2_arrayint | mWeights |
| M2_arrayint | component_degrees |
| long | n_lcmdups |
| long | n_pairs_computed |
| long | n_reduction_steps |
| int | n_gens_left |
| int | n_subring |
| int | complete_thru_this_degree |
| int | this_degree |
| bool | is_ideal |
| HilbertController * | hilbert |
| gb_array | mGenerators |
| gb_array | mGroebnerBasis |
| MonomialLookupTable | mLookupTable |
| int | next_col_to_process |
| coefficient_matrix * | mat |
| MonomialHashTable< MonomialInfo > | mMonomialHashTable |
| F4MemoryBlock< monomial_word > | mMonomialMemoryBlock |
| monomial_word * | next_monom |
| MemoryBlock | mComponentSpace |
| double | clock_sort_columns |
| clock_t | clock_gauss |
| double | mGaussTime |
| double | mParallelGaussTime |
| double | mSerialGaussTime |
| double | mTailReduceTime |
| double | mNewSPairTime |
| double | mInsertGBTime |
| clock_t | clock_make_matrix |
| F4SPairSet | mSPairSet |
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) |
Commutative F4 Groebner-basis driver: degree-by-degree Macaulay matrix construction plus row-reduction over a coefficient ring.
Holds the running GB (mGroebnerBasis), the original generators (mGenerators), and the monomial lookup table for divisor search. Each degree, the driver picks up the pending S-pairs, builds a coefficient_matrix (mat) whose rows are S-pair reductions plus their tail-reducers and whose columns are the distinct monomials appearing, sorts the columns under the MonomialInfo order, and row-reduces via mVectorArithmetic. Optional HilbertController *hilbert skips reductions whose result the Hilbert function predicts to be zero. Tracks a wide set of timing / counter statistics (clock_sort_columns, mGaussTime, n_pairs_computed, ...) for the benchmark hooks.