![]() |
Computing syzygies after Schreyer. More...
#include <syzextra.h>
Public Member Functions | |
SchreyerSyzygyComputation (const ideal idLeads, const ideal idTails, const SchreyerSyzygyComputationFlags setting) | |
Construct a global object for given input data (separated into leads & tails) More... | |
SchreyerSyzygyComputation (const ideal idLeads, const ideal idTails, const ideal syzLeads, const SchreyerSyzygyComputationFlags setting) | |
Construct a global object for given input data (separated into leads & tails) More... | |
~SchreyerSyzygyComputation () | |
Destructor should not destruct the resulting m_syzLeads, m_syzTails. More... | |
void | SetUpTailTerms () |
Convert the given ideal of tails into the internal representation (with reducers!) Preprocess m_idTails as well...? More... | |
void | PrintStats () const |
print statistics about the used heuristics More... | |
void | ReadOffResult (ideal &syzL, ideal &syzT) |
Read off the results while detaching them from this object NOTE: no copy! More... | |
void | ComputeSyzygy () |
The main driver function: computes. More... | |
void | ComputeLeadingSyzygyTerms (bool bComputeSecondTerms=true) |
Computes Syz(leads) or only LEAD of it. The result is stored into m_syzLeads. More... | |
poly | SchreyerSyzygyNF (const poly syz_lead, poly syz_2=NULL) const |
Main HybridNF == 1: poly reduce + LOT + LCM? More... | |
poly | TraverseNF (const poly syz_lead, const poly syz_2=NULL) const |
poly | TraverseTail (poly multiplier, const int tail) const |
High level caching function!!! More... | |
poly | TraverseTail (poly multiplier, poly tail) const |
called only from above and from outside (for testing) More... | |
poly | ReduceTerm (poly multiplier, poly term4reduction, poly syztermCheck) const |
TODO: save shortcut (syz: |-.->) LM(m) * "t" -> ? ??? More... | |
poly | ComputeImage (poly multiplier, const int tail) const |
low level computation... More... | |
poly | _FindReducer (const poly product, const poly syzterm) const |
just for testing via the wrapper below More... | |
![]() | |
SchreyerSyzygyComputationFlags (idhdl rootRingHdl) | |
SchreyerSyzygyComputationFlags (const SchreyerSyzygyComputationFlags &attr) | |
void | nextSyzygyLayer () const |
Protected Member Functions | |
ideal | Compute1LeadingSyzygyTerms () |
just leading terms More... | |
ideal | Compute2LeadingSyzygyTerms () |
leading + second terms More... | |
Private Member Functions | |
void | CleanUp () |
Clean up all the accumulated data. More... | |
Private Attributes | |
const ideal | m_idLeads |
input leading terms More... | |
const ideal | m_idTails |
input tails More... | |
ideal | m_syzLeads |
output (syzygy) leading terms (+2nd terms?) More... | |
ideal | m_syzTails |
output (syzygy) tails More... | |
ideal | m_LS |
leading syzygy terms used for reducing syzygy tails More... | |
const CLCM | m_lcm |
Bitmask for variables occuring in leading terms. More... | |
const CReducerFinder | m_div |
Divisor finder. More... | |
CReducerFinder | m_checker |
for checking tail-terms and makeing them irreducible (wrt m_LS!) More... | |
TCache | m_cache |
SBucketFactory | m_sum_bucket_factory |
TODO: look into m_idTailTerms!!!!!!!!!!!!!!!!!!!!!!!! map? heaps??? More... | |
kBucket_pt | m_spoly_bucket |
for S-Polynomial reductions More... | |
unsigned long | m_stat [9] |
Statistics: 0..3: as in SetUpTailTerms()::PreProcessTerm() // TODO!!?? 4: number of terms discarded due to LOT heuristics 5: number of terms discarded due to LCM heuristics 6, 7: lookups without & with rescale, 8: stores. More... | |
Friends | |
class | CLCM |
class | CReducerFinder |
Additional Inherited Members | |
![]() | |
const int | OPT__DEBUG |
output all the intermediate states More... | |
const int | OPT__LEAD2SYZ |
? More... | |
const int | OPT__TAILREDSYZ |
Reduce syzygy tails wrt the leading syzygy terms. More... | |
const int | OPT__HYBRIDNF |
Use the usual NF's S-poly reduction while dropping lower order terms 2 means - smart selection! More... | |
const int | OPT__IGNORETAILS |
ignore tails and compute the pure Schreyer frame More... | |
int | OPT__SYZNUMBER |
Syzygy level (within a resolution) More... | |
const int | OPT__TREEOUTPUT |
output lifting tree More... | |
const int | OPT__SYZCHECK |
CheckSyzygyProperty: TODO. More... | |
const bool | OPT__PROT |
TEST_OPT_PROT. More... | |
const int | OPT__NOCACHING |
no caching/stores/lookups More... | |
const ring | m_rBaseRing |
global base ring More... | |
Computing syzygies after Schreyer.
Storing/accumulating data during the computation requires some global object, like this class. Ideally the above global functions should not be used in favour of this class.
Definition at line 397 of file syzextra.h.
|
inline |
Construct a global object for given input data (separated into leads & tails)
Definition at line 404 of file syzextra.h.
|
inline |
Construct a global object for given input data (separated into leads & tails)
Definition at line 417 of file syzextra.h.
|
inline |
Destructor should not destruct the resulting m_syzLeads, m_syzTails.
Definition at line 438 of file syzextra.h.
|
inline |
just for testing via the wrapper below
Definition at line 493 of file syzextra.h.
|
private |
Clean up all the accumulated data.
Definition at line 548 of file syzextra.cc.
|
protected |
just leading terms
Definition at line 778 of file syzextra.cc.
|
protected |
leading + second terms
Definition at line 886 of file syzextra.cc.
low level computation...
Definition at line 1738 of file syzextra.cc.
void SchreyerSyzygyComputation::ComputeLeadingSyzygyTerms | ( | bool | bComputeSecondTerms = true | ) |
Computes Syz(leads) or only LEAD of it. The result is stored into m_syzLeads.
Definition at line 1371 of file syzextra.cc.
void SchreyerSyzygyComputation::ComputeSyzygy | ( | ) |
The main driver function: computes.
Definition at line 1145 of file syzextra.cc.
void SchreyerSyzygyComputation::PrintStats | ( | ) | const |
print statistics about the used heuristics
Definition at line 767 of file syzextra.cc.
|
inline |
Read off the results while detaching them from this object NOTE: no copy!
Definition at line 449 of file syzextra.h.
poly SchreyerSyzygyComputation::ReduceTerm | ( | poly | multiplier, |
poly | term4reduction, | ||
poly | syztermCheck | ||
) | const |
TODO: save shortcut (syz: |-.->) LM(m) * "t" -> ? ???
Definition at line 1895 of file syzextra.cc.
Main HybridNF == 1: poly reduce + LOT + LCM?
Definition at line 1419 of file syzextra.cc.
void SchreyerSyzygyComputation::SetUpTailTerms | ( | ) |
Convert the given ideal of tails into the internal representation (with reducers!) Preprocess m_idTails as well...?
Definition at line 684 of file syzextra.cc.
Definition at line 1036 of file syzextra.cc.
High level caching function!!!
Definition at line 1594 of file syzextra.cc.
called only from above and from outside (for testing)
Definition at line 1777 of file syzextra.cc.
|
friend |
Definition at line 399 of file syzextra.h.
|
friend |
Definition at line 400 of file syzextra.h.
|
mutableprivate |
Definition at line 554 of file syzextra.h.
|
private |
for checking tail-terms and makeing them irreducible (wrt m_LS!)
Definition at line 531 of file syzextra.h.
|
private |
Divisor finder.
Definition at line 528 of file syzextra.h.
|
private |
input leading terms
Definition at line 510 of file syzextra.h.
|
private |
input tails
Definition at line 513 of file syzextra.h.
Bitmask for variables occuring in leading terms.
Definition at line 525 of file syzextra.h.
|
private |
leading syzygy terms used for reducing syzygy tails
Definition at line 521 of file syzextra.h.
|
mutableprivate |
for S-Polynomial reductions
Definition at line 563 of file syzextra.h.
|
mutableprivate |
Statistics: 0..3: as in SetUpTailTerms()::PreProcessTerm() // TODO!!?? 4: number of terms discarded due to LOT heuristics 5: number of terms discarded due to LCM heuristics 6, 7: lookups without & with rescale, 8: stores.
Definition at line 571 of file syzextra.h.
|
mutableprivate |
TODO: look into m_idTailTerms!!!!!!!!!!!!!!!!!!!!!!!! map? heaps???
used for simple summing up
Definition at line 560 of file syzextra.h.
|
private |
output (syzygy) leading terms (+2nd terms?)
Definition at line 516 of file syzextra.h.
|
private |
output (syzygy) tails
Definition at line 519 of file syzextra.h.