Public Member Functions | Private Attributes
CLCM Class Reference

#include <syzextra.h>

Public Member Functions

 CLCM (const ideal &L, const SchreyerSyzygyComputationFlags &flags)
 
bool Check (const poly m) const
 
- Public Member Functions inherited from SchreyerSyzygyComputationFlags
 SchreyerSyzygyComputationFlags (idhdl rootRingHdl)
 
 SchreyerSyzygyComputationFlags (const SchreyerSyzygyComputationFlags &attr)
 
void nextSyzygyLayer () const
 

Private Attributes

bool m_compute
 
const unsigned int m_N
 number of ring variables More...
 

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

Definition at line 219 of file syzextra.h.

Constructor & Destructor Documentation

◆ CLCM()

CLCM::CLCM ( const ideal &  L,
const SchreyerSyzygyComputationFlags flags 
)

Definition at line 2061 of file syzextra.cc.

2061  :
2062  SchreyerSyzygyComputationFlags(flags), std::vector<bool>(),
2063  m_compute(false), m_N(rVar(flags.m_rBaseRing))
2064 {
2065  const ring& R = m_rBaseRing;
2066  assume( flags.m_rBaseRing == R );
2067  assume( R != NULL );
2068 
2069  assume( L != NULL );
2070 
2071  if( LIKELY( OPT__TAILREDSYZ && !OPT__HYBRIDNF && (L != NULL) )) // TODO: not hybrid!?
2072  {
2073  const int l = IDELEMS(L);
2074 
2075  assume( l > 0 );
2076 
2077  resize(l, false);
2078 
2079  for( int k = l - 1; k >= 0; k-- )
2080  {
2081  const poly a = L->m[k]; assume( a != NULL );
2082 
2083  for (unsigned int j = m_N; j > 0; j--)
2084  if ( !(*this)[j] )
2085  (*this)[j] = (p_GetExp(a, j, R) > 0);
2086  }
2087 
2088  m_compute = true;
2089  }
2090 }
bool m_compute
Definition: syzextra.h:227
int j
Definition: facHensel.cc:105
const int OPT__HYBRIDNF
Use the usual NF&#39;s S-poly reduction while dropping lower order terms 2 means - smart selection! ...
Definition: syzextra.h:187
static short rVar(const ring r)
#define rVar(r) (r->N)
Definition: ring.h:583
int k
Definition: cfEzgcd.cc:92
const int OPT__TAILREDSYZ
Reduce syzygy tails wrt the leading syzygy terms.
Definition: syzextra.h:183
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent : the integer VarOffset encodes:
Definition: p_polys.h:469
#define assume(x)
Definition: mod2.h:390
#define IDELEMS(i)
Definition: simpleideals.h:24
const unsigned int m_N
number of ring variables
Definition: syzextra.h:229
#define NULL
Definition: omList.c:10
#define LIKELY
Definition: auxiliary.h:421
#define R
Definition: sirandom.c:26
SchreyerSyzygyComputationFlags(idhdl rootRingHdl)
Definition: syzextra.cc:1442
const ring m_rBaseRing
global base ring
Definition: syzextra.h:214
int l
Definition: cfEzgcd.cc:93

Member Function Documentation

◆ Check()

bool CLCM::Check ( const poly  m) const

Definition at line 2093 of file syzextra.cc.

2094 {
2095  assume( m != NULL );
2096  if( m_compute && (m != NULL))
2097  {
2098  const ring& R = m_rBaseRing;
2099 
2101 
2102  for (unsigned int j = m_N; j > 0; j--)
2103  if ( (*this)[j] )
2104  if(p_GetExp(m, j, R) > 0)
2105  return true;
2106 
2107  return false;
2108 
2109  } else return true;
2110 }
bool m_compute
Definition: syzextra.h:227
int j
Definition: facHensel.cc:105
const int OPT__HYBRIDNF
Use the usual NF&#39;s S-poly reduction while dropping lower order terms 2 means - smart selection! ...
Definition: syzextra.h:187
const int OPT__TAILREDSYZ
Reduce syzygy tails wrt the leading syzygy terms.
Definition: syzextra.h:183
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent : the integer VarOffset encodes:
Definition: p_polys.h:469
#define assume(x)
Definition: mod2.h:390
int m
Definition: cfEzgcd.cc:121
const unsigned int m_N
number of ring variables
Definition: syzextra.h:229
#define NULL
Definition: omList.c:10
#define R
Definition: sirandom.c:26
const ring m_rBaseRing
global base ring
Definition: syzextra.h:214

Field Documentation

◆ m_compute

bool CLCM::m_compute
private

Definition at line 227 of file syzextra.h.

◆ m_N

const unsigned int CLCM::m_N
private

number of ring variables

Definition at line 229 of file syzextra.h.


The documentation for this class was generated from the following files: