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 246 of file syzextra.h.

Constructor & Destructor Documentation

§ CLCM()

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

Definition at line 3036 of file syzextra.cc.

3036  :
3037  SchreyerSyzygyComputationFlags(flags), std::vector<bool>(),
3038  m_compute(false), m_N(rVar(flags.m_rBaseRing))
3039 {
3040  const ring& R = m_rBaseRing;
3041  assume( flags.m_rBaseRing == R );
3042  assume( R != NULL );
3043 
3044  assume( L != NULL );
3045 
3046  if( LIKELY( OPT__TAILREDSYZ && !OPT__HYBRIDNF && (L != NULL) )) // TODO: not hybrid!?
3047  {
3048  const int l = IDELEMS(L);
3049 
3050  assume( l > 0 );
3051 
3052  resize(l, false);
3053 
3054  for( int k = l - 1; k >= 0; k-- )
3055  {
3056  const poly a = L->m[k]; assume( a != NULL );
3057 
3058  for (unsigned int j = m_N; j > 0; j--)
3059  if ( !(*this)[j] )
3060  (*this)[j] = (p_GetExp(a, j, R) > 0);
3061  }
3062 
3063  m_compute = true;
3064  }
3065 }
bool m_compute
Definition: syzextra.h:254
const poly a
Definition: syzextra.cc:212
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:214
static short rVar(const ring r)
#define rVar(r) (r->N)
Definition: ring.h:583
int k
Definition: cfEzgcd.cc:93
#define LIKELY(expression)
Definition: tgb_internal.h:837
const int OPT__TAILREDSYZ
Reduce syzygy tails wrt the leading syzygy terms.
Definition: syzextra.h:210
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:464
int j
Definition: myNF.cc:70
const ring R
Definition: DebugPrint.cc:36
#define IDELEMS(i)
Definition: simpleideals.h:24
const unsigned int m_N
number of ring variables
Definition: syzextra.h:256
#define NULL
Definition: omList.c:10
SchreyerSyzygyComputationFlags(idhdl rootRingHdl)
Definition: syzextra.cc:2034
const ring m_rBaseRing
global base ring
Definition: syzextra.h:241
polyrec * poly
Definition: hilb.h:10
assume(R !=NULL)
int l
Definition: cfEzgcd.cc:94

Member Function Documentation

§ Check()

bool CLCM::Check ( const poly  m) const

Definition at line 3068 of file syzextra.cc.

3069 {
3070  assume( m != NULL );
3071  if( m_compute && (m != NULL))
3072  {
3073  const ring& R = m_rBaseRing;
3074 
3076 
3077  for (unsigned int j = m_N; j > 0; j--)
3078  if ( (*this)[j] )
3079  if(p_GetExp(m, j, R) > 0)
3080  return true;
3081 
3082  return false;
3083 
3084  } else return true;
3085 }
bool m_compute
Definition: syzextra.h:254
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:214
const int OPT__TAILREDSYZ
Reduce syzygy tails wrt the leading syzygy terms.
Definition: syzextra.h:210
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:464
int j
Definition: myNF.cc:70
const ring R
Definition: DebugPrint.cc:36
int m
Definition: cfEzgcd.cc:119
const unsigned int m_N
number of ring variables
Definition: syzextra.h:256
#define NULL
Definition: omList.c:10
const ring m_rBaseRing
global base ring
Definition: syzextra.h:241
assume(R !=NULL)

Field Documentation

§ m_compute

bool CLCM::m_compute
private

Definition at line 254 of file syzextra.h.

§ m_N

const unsigned int CLCM::m_N
private

number of ring variables

Definition at line 256 of file syzextra.h.


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