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

Constructor & Destructor Documentation

◆ CLCM()

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

Definition at line 3034 of file syzextra.cc.

3034  :
3035  SchreyerSyzygyComputationFlags(flags), std::vector<bool>(),
3036  m_compute(false), m_N(rVar(flags.m_rBaseRing))
3037 {
3038  const ring& R = m_rBaseRing;
3039  assume( flags.m_rBaseRing == R );
3040  assume( R != NULL );
3041 
3042  assume( L != NULL );
3043 
3044  if( LIKELY( OPT__TAILREDSYZ && !OPT__HYBRIDNF && (L != NULL) )) // TODO: not hybrid!?
3045  {
3046  const int l = IDELEMS(L);
3047 
3048  assume( l > 0 );
3049 
3050  resize(l, false);
3051 
3052  for( int k = l - 1; k >= 0; k-- )
3053  {
3054  const poly a = L->m[k]; assume( a != NULL );
3055 
3056  for (unsigned int j = m_N; j > 0; j--)
3057  if ( !(*this)[j] )
3058  (*this)[j] = (p_GetExp(a, j, R) > 0);
3059  }
3060 
3061  m_compute = true;
3062  }
3063 }
bool m_compute
Definition: syzextra.h:255
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:215
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:211
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:257
#define NULL
Definition: omList.c:10
SchreyerSyzygyComputationFlags(idhdl rootRingHdl)
Definition: syzextra.cc:2032
const ring m_rBaseRing
global base ring
Definition: syzextra.h:242
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 3066 of file syzextra.cc.

3067 {
3068  assume( m != NULL );
3069  if( m_compute && (m != NULL))
3070  {
3071  const ring& R = m_rBaseRing;
3072 
3074 
3075  for (unsigned int j = m_N; j > 0; j--)
3076  if ( (*this)[j] )
3077  if(p_GetExp(m, j, R) > 0)
3078  return true;
3079 
3080  return false;
3081 
3082  } else return true;
3083 }
bool m_compute
Definition: syzextra.h:255
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:215
const int OPT__TAILREDSYZ
Reduce syzygy tails wrt the leading syzygy terms.
Definition: syzextra.h:211
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:257
#define NULL
Definition: omList.c:10
const ring m_rBaseRing
global base ring
Definition: syzextra.h:242
assume(R !=NULL)

Field Documentation

◆ m_compute

bool CLCM::m_compute
private

Definition at line 255 of file syzextra.h.

◆ m_N

const unsigned int CLCM::m_N
private

number of ring variables

Definition at line 257 of file syzextra.h.


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