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

TODO: More...

Public Member Functions

 CDivisorEnumerator (const CReducerFinder &self, const poly product)
 
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_product
 
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 1617 of file syzextra.cc.

Constructor & Destructor Documentation

◆ CDivisorEnumerator()

CDivisorEnumerator::CDivisorEnumerator ( const CReducerFinder self,
const poly  product 
)
inline

TODO: m_L should stay the same!!!

Definition at line 1631 of file syzextra.cc.

1631  :
1633  m_reds(self),
1634  m_product(product),
1636  m_comp(p_GetComp(product, m_rBaseRing)),
1637  m_itr(), m_current(), m_finish(),
1638  m_active(false)
1639  {
1640  assume( m_comp >= 0 );
1641  assume( m_reds.m_L != NULL ); /// TODO: m_L should stay the same!!!
1642 
1643  assume( product != NULL ); // may have no coeff yet :(
1644 // assume ( !n_IsZero( p_GetCoeff(product, m_rBaseRing), m_rBaseRing ) );
1645  }

Member Function Documentation

◆ Current()

const CLeadingTerm& CDivisorEnumerator::Current ( ) const
inline

Definition at line 1668 of file syzextra.cc.

1669  {
1670  assume( m_active );
1671  assume( m_current != m_finish );
1672 
1673  return *(*m_current);
1674  }

◆ MoveNext()

bool CDivisorEnumerator::MoveNext ( )
inline

Definition at line 1676 of file syzextra.cc.

1677  {
1678  assume( m_current != m_finish );
1679 
1680  if( m_active )
1681  ++m_current;
1682  else
1683  m_active = true; // for Current()
1684 
1685  // looking for the next good entry
1686  for( ; m_current != m_finish; ++m_current )
1687  {
1688  assume( Current().CheckLT( m_reds.m_L ) );
1689 
1690  if( Current().DivisibilityCheck(m_product, m_not_sev, m_rBaseRing) )
1691  {
1692 // m_active = true;
1693  assume( Current().CheckLT( m_reds.m_L ) );
1694  return true;
1695  }
1696  assume( Current().CheckLT( m_reds.m_L ) );
1697  }
1698 
1699  // the end... :(
1700  assume( m_current == m_finish );
1701 
1702  m_active = false;
1703  return false;
1704  }

◆ Reset()

bool CDivisorEnumerator::Reset ( )
inline

Definition at line 1647 of file syzextra.cc.

1648  {
1649  m_active = false;
1650 
1651  m_itr = m_reds.m_hash.find(m_comp);
1652 
1653  if( m_itr == m_reds.m_hash.end() )
1654  return false;
1655 
1656  assume( m_itr->first == m_comp );
1657 
1658  m_current = (m_itr->second).begin();
1659  m_finish = (m_itr->second).end();
1660 
1661  if (m_current == m_finish)
1662  return false;
1663 
1664 // m_active = true;
1665  return true;
1666  }

Field Documentation

◆ m_active

bool CDivisorEnumerator::m_active
private

Definition at line 1628 of file syzextra.cc.

◆ m_comp

const long CDivisorEnumerator::m_comp
private

Definition at line 1623 of file syzextra.cc.

◆ m_current

CReducerFinder::TReducers::const_iterator CDivisorEnumerator::m_current
private

Definition at line 1626 of file syzextra.cc.

◆ m_finish

CReducerFinder::TReducers::const_iterator CDivisorEnumerator::m_finish
private

Definition at line 1626 of file syzextra.cc.

◆ m_itr

CReducerFinder::CReducersHash::const_iterator CDivisorEnumerator::m_itr
private

Definition at line 1625 of file syzextra.cc.

◆ m_not_sev

const unsigned long CDivisorEnumerator::m_not_sev
private

Definition at line 1622 of file syzextra.cc.

◆ m_product

const poly CDivisorEnumerator::m_product
private

Definition at line 1621 of file syzextra.cc.

◆ m_reds

const CReducerFinder& CDivisorEnumerator::m_reds
private

Definition at line 1620 of file syzextra.cc.


The documentation for this class was generated from the following file:
CDivisorEnumerator::m_itr
CReducerFinder::CReducersHash::const_iterator m_itr
Definition: syzextra.cc:1625
SchreyerSyzygyComputationFlags::m_rBaseRing
const ring m_rBaseRing
global base ring
Definition: syzextra.h:214
p_GetComp
#define p_GetComp(p, r)
Definition: monomials.h:68
SchreyerSyzygyComputationFlags::SchreyerSyzygyComputationFlags
SchreyerSyzygyComputationFlags(idhdl rootRingHdl)
Definition: syzextra.cc:1442
CDivisorEnumerator::m_comp
const long m_comp
Definition: syzextra.cc:1623
CDivisorEnumerator::m_active
bool m_active
Definition: syzextra.cc:1628
CDivisorEnumerator::Current
const CLeadingTerm & Current() const
Definition: syzextra.cc:1668
CDivisorEnumerator::m_current
CReducerFinder::TReducers::const_iterator m_current
Definition: syzextra.cc:1626
CDivisorEnumerator::m_product
const poly m_product
Definition: syzextra.cc:1621
CDivisorEnumerator::m_reds
const CReducerFinder & m_reds
Definition: syzextra.cc:1620
CReducerFinder::m_hash
CReducersHash m_hash
Definition: syzextra.h:307
CReducerFinder::m_L
ideal m_L
only for debug
Definition: syzextra.h:305
CDivisorEnumerator::m_finish
CReducerFinder::TReducers::const_iterator m_finish
Definition: syzextra.cc:1626
assume
#define assume(x)
Definition: mod2.h:384
NULL
#define NULL
Definition: omList.c:9
p_GetShortExpVector
unsigned long p_GetShortExpVector(const poly p, const ring r)
Definition: p_polys.cc:4660
CDivisorEnumerator::m_not_sev
const unsigned long m_not_sev
Definition: syzextra.cc:1622