242#if defined (WITH_TBB)
244 mtbb::task_arena mScheduler;
246 mtbb::task_arena& getScheduler() {
return mScheduler; }
Bump-pointer arena allocator for transient inner-loop allocations.
Type-erased owning handle to a dense coefficient vector held by a ConcreteVectorArithmetic<Ring>.
void set_hilbert_function(const RingElement *hf)
const gb_array & get_gb() const
int mult_monomials(packed_monomial m, packed_monomial n)
const ElementArray & get_coeffs_array(row_elem &r)
void set_generators(gb_array &new_gens)
void show_new_rows_matrix()
M2_arrayint component_degrees
F4MemoryBlock< monomial_word > mMonomialMemoryBlock
void row_to_dense_row(int r, int &first, int &last)
void delete_gb_array(gb_array &g)
int complete_thru_this_degree
enum ComputationStatusCode start_computation(StopConditions &stop_)
const gb_array & get_generators() const
void show_gb_array(const gb_array &g) const
bool is_new_GB_row(int row) const
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)
MemoryBlock mComponentSpace
gb_array & get_generators()
void new_generators(int lo, int hi)
MacaulayMatrixStats macaulayMatrixStats() const
monomial_word * next_monom
clock_t clock_make_matrix
HilbertController * hilbert
void load_row(packed_monomial monom, int which)
int find_or_append_column(packed_monomial m)
void show_column_info() const
bool is_pivot_row(int index) const
void show_row_info() const
const MonomialInfo * mMonomialInfo
enum ComputationStatusCode computation_is_complete(StopConditions &stop_)
void poly_set_degrees(const GBF4Polynomial &f, int °_result, int &alpha) const
void loadReducerRow(spair *p)
void dense_row_to_row(int r, int &first, int &last)
void reduce1(int r, int &first, int &last)
const FreeModule * mFreeModule
double clock_sort_columns
void gauss_reduce(bool diagonalize)
MonomialLookupTable mLookupTable
void process_s_pair(spair *p)
void insert_gb_element(row_elem &r)
double mParallelGaussTime
MonomialHashTable< MonomialInfo > mMonomialHashTable
void process_column(int c)
void loadSPairRow(spair *p)
const VectorArithmetic * mVectorArithmetic
void subtract1(int r, int &first, int &last)
int new_column(packed_monomial m)
bool gauss_reduce_row(int index, ElementArray &gauss_row)
S-pair scheduling queue used by F4GB: collects pairs, deduplicates them, and hands out the next degre...
Engine-side free module R^n over a Ring.
Hilbert-function-driven early termination helper used by F4GB to skip degrees the user-supplied Hilbe...
Thin RAII wrapper around memtailor::Arena providing bump-pointer array allocation with optional mutex...
Per-ring monomial layout / encoding helper used by F4GB.
Front-end-visible "ring element" value: an engine ring_elem paired with the Ring* that gives it meani...
Runtime dispatcher that hides the concrete coefficient ring behind a std::variant of ConcreteVectorAr...
ComputationStatusCode / StopConditions / StrategyValues / Algorithms / gbTraceValues — engine-to-inte...
F4SPairSet — priority-queue + pruning logic for F4 S-pairs.
F4MonomialLookupTableT< int32_t > MonomialLookupTable
std::vector< gbelem * > gb_array
Shared type vocabulary used across the F4 engine.
Engine-to-interpreter type vocabulary across the C++ / .dd boundary.
Engine TBB shim — single point of inclusion for every parallel primitive.
F4MemoryBlock<T, NSLAB> — F4's templated slab bump allocator.
MonomialHashTable<ValueType> — open-addressing intern table for F4 and resolution monomials.
monomial_word * packed_monomial
MonomialInfo — F4's packed_monomial encoding plus operations.
our_new_delete — per-class opt-in routing of new / delete through bdwgc.
Per-degree counters describing the shape and density of the Macaulay matrix that F4GB just built.
Compact polynomial layout used inside the F4 GB engine.
Bundle of optional early-termination knobs the front end can attach to a long-running Computation.