My Project
|
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... | |
Public Member Functions inherited from SchreyerSyzygyComputationFlags | |
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 () |
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 |
used for simple summing up 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 | |
Data Fields inherited from SchreyerSyzygyComputationFlags | |
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 328 of file syzextra.h.
|
inline |
Construct a global object for given input data (separated into leads & tails)
Definition at line 335 of file syzextra.h.
|
inline |
Construct a global object for given input data (separated into leads & tails)
Definition at line 348 of file syzextra.h.
|
inline |
Destructor should not destruct the resulting m_syzLeads, m_syzTails.
Definition at line 369 of file syzextra.h.
|
inline |
just for testing via the wrapper below
Definition at line 422 of file syzextra.h.
|
private |
|
protected |
just leading terms
|
protected |
leading + second terms
poly SchreyerSyzygyComputation::ComputeImage | ( | poly | multiplier, |
const int | tail | ||
) | const |
low level computation...
void SchreyerSyzygyComputation::ComputeLeadingSyzygyTerms | ( | bool | bComputeSecondTerms = true | ) |
Computes Syz(leads) or only LEAD of it. The result is stored into m_syzLeads.
void SchreyerSyzygyComputation::ComputeSyzygy | ( | ) |
The main driver function: computes.
void SchreyerSyzygyComputation::PrintStats | ( | ) | const |
print statistics about the used heuristics
|
inline |
Read off the results while detaching them from this object NOTE: no copy!
Definition at line 380 of file syzextra.h.
poly SchreyerSyzygyComputation::ReduceTerm | ( | poly | multiplier, |
poly | term4reduction, | ||
poly | syztermCheck | ||
) | const |
TODO: save shortcut (syz: |-.->) LM(m) * "t" -> ? ???
Main HybridNF == 1: poly reduce + LOT + LCM?
void SchreyerSyzygyComputation::SetUpTailTerms | ( | ) |
Convert the given ideal of tails into the internal representation (with reducers!) Preprocess m_idTails as well...?
poly SchreyerSyzygyComputation::TraverseTail | ( | poly | multiplier, |
const int | tail | ||
) | const |
High level caching function!!!
poly SchreyerSyzygyComputation::TraverseTail | ( | poly | multiplier, |
poly | tail | ||
) | const |
called only from above and from outside (for testing)
|
friend |
Definition at line 330 of file syzextra.h.
|
friend |
Definition at line 331 of file syzextra.h.
|
mutableprivate |
Definition at line 462 of file syzextra.h.
|
private |
for checking tail-terms and makeing them irreducible (wrt m_LS!)
Definition at line 460 of file syzextra.h.
|
private |
Divisor finder.
Definition at line 457 of file syzextra.h.
|
private |
input leading terms
Definition at line 439 of file syzextra.h.
|
private |
input tails
Definition at line 442 of file syzextra.h.
Bitmask for variables occuring in leading terms.
Definition at line 454 of file syzextra.h.
|
private |
leading syzygy terms used for reducing syzygy tails
Definition at line 450 of file syzextra.h.
|
mutableprivate |
for S-Polynomial reductions
Definition at line 468 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 476 of file syzextra.h.
|
mutableprivate |
used for simple summing up
Definition at line 465 of file syzextra.h.
|
private |
output (syzygy) leading terms (+2nd terms?)
Definition at line 445 of file syzextra.h.
|
private |
output (syzygy) tails
Definition at line 448 of file syzextra.h.