59# if defined(__cplusplus)
83# if defined(__cplusplus)
120 int max_reduction_count);
125 M2_bool use_max_slanted_degree,
126 int max_slanted_degree,
165 int basis_element_limit,
220 const Matrix **result_remainder,
221 const Matrix **result_quotient);
289 int *complete_up_through_this_degree,
290 int *complete_up_through_this_level);
297 int *complete_up_through_this_degree);
316 const RingMap *inclusionAmbient,
317 const RingMap *fullSubstitution,
318 const RingMap *substitutionInclusion,
334# if defined(__cplusplus)
Abstract base for long-running, resumable engine computations (GBComputation, ResolutionComputation,...
Engine-side free module R^n over a Ring.
Abstract base class for mutable matrices over an arbitrary engine Ring, the in-place counterpart of t...
Front-end-visible "ring element" value: an engine ring_elem paired with the Ring* that gives it meani...
Engine-side ring homomorphism: stores, for each source-ring variable, the target-ring element it maps...
ComputationStatusCode / StopConditions / StrategyValues / Algorithms / gbTraceValues — engine-to-inte...
Engine-wide include prelude — a single point of truth for portability shims.
void gb(IntermediateBasis &F, int n)
const RingElement * IM2_Matrix_Hilbert(const Matrix *M)
Matrix * rawSubduction(int numparts, const Matrix *M, const RingMap *F, Computation *C)
const Matrix * rawGBMinimalGenerators(Computation *C)
unsigned int rawComputationHash(const Computation *C)
const Matrix * rawNCReductionTwoSided(const Matrix *toBeReduced, const Matrix *reducers)
int IM2_GB_contains(Computation *C, const Matrix *m)
const Matrix * rawGBMatrixRemainder(Computation *C, const Matrix *m)
MutableMatrix * rawResolutionGetMatrix2(Computation *C, int level, int degree)
Computation * IM2_res_make(const Matrix *m, M2_bool resolve_cokernel, int max_level, M2_bool use_max_slanted_degree, int max_slanted_degree, int algorithm, int strategy, M2_bool parallelizeByDegree)
Computation * rawStartComputation(Computation *C)
Computation * IM2_GB_set_hilbert_function(Computation *C, const RingElement *h)
const Matrix * rawResolutionGetMatrix(Computation *C, int level)
enum ComputationStatusCode IM2_Resolution_status_level(Computation *C, int level, M2_bool minimize, int *complete_up_through_this_degree)
enum ComputationStatusCode rawStatus1(Computation *C)
int rawStatus2(Computation *C)
void rawShowComputation(const Computation *C)
const Matrix * rawNCGroebnerBasisTwoSided(const Matrix *input, int maxdeg, int strategy)
MutableMatrix * rawResolutionGetMutableMatrix2B(Computation *C, const Ring *KK, int level, int degree)
MutableMatrix * rawResolutionGetMutableMatrixB(Computation *C, const Ring *R, int level)
Computation * IM2_GB_make(const Matrix *m, M2_bool collect_syz, int n_rows_to_keep, M2_arrayint gb_weights, M2_bool use_max_degree, int max_degree, int algorithm, int strategy, int max_reduction_count)
int IM2_Resolution_status(Computation *C, int *complete_up_through_this_degree, int *complete_up_through_this_level)
const Matrix * rawKernelOfGB(const Matrix *M)
const Matrix * rawGBGetLeadTerms(Computation *C, int nparts)
const Matrix * rawGBGetMatrix(Computation *C)
const FreeModule * rawResolutionGetFree(Computation *C, int level)
void test_over_RR_or_CC(const Ring *R)
Computation * rawMarkedGB(const Matrix *leadterms, const Matrix *m, const Matrix *gb, const Matrix *change, const Matrix *syz)
const Matrix * rawGBSyzygies(Computation *C)
Computation * rawGroebnerWalk(const Matrix *gb, const MonomialOrdering *order1)
void rawDisplayMatrixStream(const Matrix *inputMatrix)
const Matrix * rawGBChangeOfBasis(Computation *C)
Computation * IM2_GB_force(const Matrix *m, const Matrix *gb, const Matrix *change, const Matrix *syz)
M2_arrayintOrNull rawResolutionBetti(Computation *C, int type)
M2_string IM2_GB_to_string(Computation *C)
Matrix * rawSubduction1(int numparts, const Ring *rawT, const Ring *rawS, const Matrix *m, const RingMap *inclusionAmbient, const RingMap *fullSubstitution, const RingMap *substitutionInclusion, Computation *rawGBI, Computation *rawGBReductionIdeal)
M2_bool IM2_GB_matrix_lift(Computation *C, const Matrix *m, const Matrix **result_remainder, const Matrix **result_quotient)
Computation * IM2_Computation_set_stop(Computation *G, M2_bool always_stop, M2_arrayint degree_limit, int basis_element_limit, int syzygy_limit, int pair_limit, int codim_limit, int subring_limit, M2_bool just_min_gens, M2_arrayint length_limit)
const Matrix * rawNCBasis(const Matrix *gb2SidedIdeal, M2_arrayint lo_degree, M2_arrayint hi_degree, int limit)
M2_arrayint rawMinimalBetti(Computation *G, M2_arrayint slanted_degree_limit, M2_arrayint length_limit)
const Matrix * rawGBGetParallelLeadTerms(Computation *C, M2_arrayint w)
const Matrix * rawMGB(const Matrix *input, int reducer, int spairGroupSize, int nthreads, M2_string logging)
M2_arrayint M2_arrayintOrNull
Front-end-side description of a monomial ordering as a list of mon_part blocks.