My Project  debian-1:4.1.1-p2+ds-4build2
Public Member Functions | Private Attributes
CDivisorEnumerator2 Class Reference

TODO: More...

Public Member Functions

 CDivisorEnumerator2 (const CReducerFinder &self, const poly m, const poly t)
 
bool Reset ()
 
const CLeadingTermCurrent () const
 
bool MoveNext ()
 
- Public Member Functions inherited from SchreyerSyzygyComputationFlags
 SchreyerSyzygyComputationFlags (idhdl rootRingHdl)
 
 SchreyerSyzygyComputationFlags (const SchreyerSyzygyComputationFlags &attr)
 
void nextSyzygyLayer () const
 

Private Attributes

const CReducerFinderm_reds
 
const poly m_multiplier
 
const poly m_term
 
const unsigned long m_not_sev
 
const long m_comp
 
CReducerFinder::CReducersHash::const_iterator m_itr
 
CReducerFinder::TReducers::const_iterator m_current
 
CReducerFinder::TReducers::const_iterator m_finish
 
bool m_active
 

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...
 

Detailed Description

TODO:

Definition at line 1725 of file syzextra.cc.

Constructor & Destructor Documentation

◆ CDivisorEnumerator2()

CDivisorEnumerator2::CDivisorEnumerator2 ( const CReducerFinder self,
const poly  m,
const poly  t 
)
inline

Definition at line 1739 of file syzextra.cc.

1739  :
1741  m_reds(self),
1742  m_multiplier(m), m_term(t),
1745  m_itr(), m_current(), m_finish(),
1746  m_active(false)
1747  {
1748  assume( m_comp >= 0 );
1749  assume( m_reds.m_L != NULL );
1750  assume( m_multiplier != NULL );
1751  assume( m_term != NULL );
1752 
1753  assume( m != NULL );
1754  assume( t != NULL );
1755  assume ( !n_IsZero( pGetCoeff(m), m_rBaseRing->cf ) );
1756  assume ( !n_IsZero( pGetCoeff(t), m_rBaseRing->cf ) );
1757 
1758  p_Test(m, m_rBaseRing);
1759 
1760  }

Member Function Documentation

◆ Current()

const CLeadingTerm& CDivisorEnumerator2::Current ( ) const
inline

Definition at line 1782 of file syzextra.cc.

1783  {
1784  assume( m_active );
1785  assume( m_current != m_finish );
1786 
1787  return *(*m_current);
1788  }

◆ MoveNext()

bool CDivisorEnumerator2::MoveNext ( )
inline

Definition at line 1790 of file syzextra.cc.

1791  {
1792  assume( m_current != m_finish );
1793 
1794  if( m_active )
1795  ++m_current;
1796  else
1797  m_active = true;
1798 
1799 
1800  // looking for the next good entry
1801  for( ; m_current != m_finish; ++m_current )
1802  {
1803  assume( Current().CheckLT( m_reds.m_L ) );
1804 
1805  if( Current().DivisibilityCheck(m_multiplier, m_term, m_not_sev, m_rBaseRing) )
1806  {
1807 // m_active = true;
1808  assume( Current().CheckLT( m_reds.m_L ) );
1809  return true;
1810 
1811  }
1812  assume( Current().CheckLT( m_reds.m_L ) );
1813  }
1814 
1815  // the end... :(
1816  assume( m_current == m_finish );
1817 
1818  m_active = false;
1819  return false;
1820  }

◆ Reset()

bool CDivisorEnumerator2::Reset ( )
inline

Definition at line 1762 of file syzextra.cc.

1763  {
1764  m_active = false;
1765 
1766  m_itr = m_reds.m_hash.find(m_comp);
1767 
1768  if( m_itr == m_reds.m_hash.end() )
1769  return false;
1770 
1771  assume( m_itr->first == m_comp );
1772 
1773  m_current = (m_itr->second).begin();
1774  m_finish = (m_itr->second).end();
1775 
1776  if (m_current == m_finish)
1777  return false;
1778 
1779  return true;
1780  }

Field Documentation

◆ m_active

bool CDivisorEnumerator2::m_active
private

Definition at line 1736 of file syzextra.cc.

◆ m_comp

const long CDivisorEnumerator2::m_comp
private

Definition at line 1731 of file syzextra.cc.

◆ m_current

CReducerFinder::TReducers::const_iterator CDivisorEnumerator2::m_current
private

Definition at line 1734 of file syzextra.cc.

◆ m_finish

CReducerFinder::TReducers::const_iterator CDivisorEnumerator2::m_finish
private

Definition at line 1734 of file syzextra.cc.

◆ m_itr

CReducerFinder::CReducersHash::const_iterator CDivisorEnumerator2::m_itr
private

Definition at line 1733 of file syzextra.cc.

◆ m_multiplier

const poly CDivisorEnumerator2::m_multiplier
private

Definition at line 1729 of file syzextra.cc.

◆ m_not_sev

const unsigned long CDivisorEnumerator2::m_not_sev
private

Definition at line 1730 of file syzextra.cc.

◆ m_reds

const CReducerFinder& CDivisorEnumerator2::m_reds
private

Definition at line 1728 of file syzextra.cc.

◆ m_term

const poly CDivisorEnumerator2::m_term
private

Definition at line 1729 of file syzextra.cc.


The documentation for this class was generated from the following file:
SchreyerSyzygyComputationFlags::m_rBaseRing
const ring m_rBaseRing
global base ring
Definition: syzextra.h:214
p_GetComp
#define p_GetComp(p, r)
Definition: monomials.h:71
SchreyerSyzygyComputationFlags::SchreyerSyzygyComputationFlags
SchreyerSyzygyComputationFlags(idhdl rootRingHdl)
Definition: syzextra.cc:1442
CDivisorEnumerator2::m_active
bool m_active
Definition: syzextra.cc:1736
CDivisorEnumerator2::m_finish
CReducerFinder::TReducers::const_iterator m_finish
Definition: syzextra.cc:1734
p_Test
#define p_Test(p, r)
Definition: p_polys.h:163
n_IsZero
static FORCE_INLINE BOOLEAN n_IsZero(number n, const coeffs r)
TRUE iff 'n' represents the zero element.
Definition: coeffs.h:465
CDivisorEnumerator2::Current
const CLeadingTerm & Current() const
Definition: syzextra.cc:1782
CReducerFinder::m_hash
CReducersHash m_hash
Definition: syzextra.h:307
CDivisorEnumerator2::m_comp
const long m_comp
Definition: syzextra.cc:1731
CDivisorEnumerator2::m_itr
CReducerFinder::CReducersHash::const_iterator m_itr
Definition: syzextra.cc:1733
CReducerFinder::m_L
ideal m_L
only for debug
Definition: syzextra.h:305
CDivisorEnumerator2::m_not_sev
const unsigned long m_not_sev
Definition: syzextra.cc:1730
CDivisorEnumerator2::m_reds
const CReducerFinder & m_reds
Definition: syzextra.cc:1728
CDivisorEnumerator2::m_current
CReducerFinder::TReducers::const_iterator m_current
Definition: syzextra.cc:1734
CDivisorEnumerator2::m_multiplier
const poly m_multiplier
Definition: syzextra.cc:1729
CDivisorEnumerator2::m_term
const poly m_term
Definition: syzextra.cc:1729
m
int m
Definition: cfEzgcd.cc:121
assume
#define assume(x)
Definition: mod2.h:390
NULL
#define NULL
Definition: omList.c:10
pGetCoeff
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
Definition: monomials.h:51
p_GetShortExpVector
unsigned long p_GetShortExpVector(const poly p, const ring r)
Definition: p_polys.cc:4665