![]() |
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... | |
![]() | |
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 | |
![]() | |
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 341 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 |
Construct a global object for given input data (separated into leads & tails)
Definition at line 361 of file syzextra.h.
|
inline |
Destructor should not destruct the resulting m_syzLeads, m_syzTails.
Definition at line 382 of file syzextra.h.
|
inline |
just for testing via the wrapper below
Definition at line 435 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 393 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 343 of file syzextra.h.
|
friend |
Definition at line 344 of file syzextra.h.
|
mutableprivate |
Definition at line 475 of file syzextra.h.
|
private |
for checking tail-terms and makeing them irreducible (wrt m_LS!)
Definition at line 473 of file syzextra.h.
|
private |
Divisor finder.
Definition at line 470 of file syzextra.h.
|
private |
input leading terms
Definition at line 452 of file syzextra.h.
|
private |
input tails
Definition at line 455 of file syzextra.h.
Bitmask for variables occuring in leading terms.
Definition at line 467 of file syzextra.h.
|
private |
leading syzygy terms used for reducing syzygy tails
Definition at line 463 of file syzextra.h.
|
mutableprivate |
for S-Polynomial reductions
Definition at line 481 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 489 of file syzextra.h.
|
mutableprivate |
used for simple summing up
Definition at line 478 of file syzextra.h.
|
private |
output (syzygy) leading terms (+2nd terms?)
Definition at line 458 of file syzextra.h.
|
private |
output (syzygy) tails
Definition at line 461 of file syzextra.h.