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

#include <syzextra.h>

Public Member Functions

 CLeadingTerm (unsigned int label, const poly lt, const ring)
 
bool DivisibilityCheck (const poly multiplier, const poly t, const unsigned long not_sev, const ring r) const
 as DivisibilityCheck(multiplier * t, ...) for monomial 'm' and a module term 't' More...
 
bool DivisibilityCheck (const poly product, const unsigned long not_sev, const ring r) const
 
bool CheckLT (const ideal &L) const
 
poly lt () const
 
unsigned long sev () const
 
unsigned int label () const
 

Private Member Functions

 CLeadingTerm ()
 
 CLeadingTerm (const CLeadingTerm &)
 
void operator= (const CLeadingTerm &)
 

Private Attributes

const unsigned long m_sev
 not short exp. vector More...
 
const unsigned int m_label
 index in the main L[] + 1 More...
 
const poly m_lt
 the leading term itself L[label-1] More...
 

Detailed Description

Definition at line 233 of file syzextra.h.

Constructor & Destructor Documentation

◆ CLeadingTerm() [1/3]

CLeadingTerm::CLeadingTerm ( unsigned int  label,
const poly  lt,
const ring  R 
)

Definition at line 1464 of file syzextra.cc.

1464  :
1465  m_sev( p_GetShortExpVector(_lt, R) ), m_label( _label ), m_lt( _lt )
1466 {
1467  assume( sev() == p_GetShortExpVector(lt(), R) );
1468 }

◆ CLeadingTerm() [2/3]

CLeadingTerm::CLeadingTerm ( )
private

◆ CLeadingTerm() [3/3]

CLeadingTerm::CLeadingTerm ( const CLeadingTerm )
private

Member Function Documentation

◆ CheckLT()

bool CLeadingTerm::CheckLT ( const ideal &  L) const

Definition at line 1562 of file syzextra.cc.

1563 {
1564 // for( int i = IDELEMS(L); i >= 0; --i) assume( pNext(L->m[i]) == NULL ); // ???
1565  return ( L->m[label()] == lt() );
1566 }

◆ DivisibilityCheck() [1/2]

bool CLeadingTerm::DivisibilityCheck ( const poly  multiplier,
const poly  t,
const unsigned long  not_sev,
const ring  r 
) const

as DivisibilityCheck(multiplier * t, ...) for monomial 'm' and a module term 't'

Definition at line 1589 of file syzextra.cc.

1590 {
1591  assume ( !n_IsZero( pGetCoeff(lt()), r->cf ) );
1592  assume( sev() == p_GetShortExpVector(lt(), r) );
1593 
1594  assume( m != NULL );
1595  assume( t != NULL );
1596  assume ( !n_IsZero( pGetCoeff(m), r->cf ) );
1597  assume ( !n_IsZero( pGetCoeff(t), r->cf ) );
1598 
1599 // assume( p_GetComp(m, r) == 0 );
1600  assume( (p_GetComp(lt(), r) == p_GetComp(t, r)) || (p_GetComp(lt(), r) == 0) );
1601 
1602  p_Test(m, r);
1603  p_Test(t, r);
1604 // const int k = label();
1605 // assume( m_L->m[k] == p );
1606 
1607  if (sev() & not_sev)
1608  return false;
1609 
1610  return _p_LmDivisibleByNoComp(lt(), m, t, r);
1611 // return p_LmShortDivisibleByNoComp(p, p_sev, product, not_sev, r);
1612 }

◆ DivisibilityCheck() [2/2]

bool CLeadingTerm::DivisibilityCheck ( const poly  product,
const unsigned long  not_sev,
const ring  r 
) const

Definition at line 1568 of file syzextra.cc.

1569 {
1570  // may have no coeff yet
1571 // assume ( !n_IsZero( p_GetCoeff(product, r), r ) );
1572 
1573  assume ( !n_IsZero( pGetCoeff(lt()), r->cf ) );
1574  assume( sev() == p_GetShortExpVector(lt(), r) );
1575 
1576  assume( product != NULL );
1577  assume( (p_GetComp(lt(), r) == p_GetComp(product, r)) || (p_GetComp(lt(), r) == 0) );
1578 
1579 // const int k = label();
1580 // assume( m_L->m[k] == p );
1581 
1582  return p_LmShortDivisibleByNoComp(lt(), sev(), product, not_sev, r);
1583 
1584 }

◆ label()

unsigned int CLeadingTerm::label ( ) const
inline

Definition at line 247 of file syzextra.h.

247 { return m_label; };

◆ lt()

poly CLeadingTerm::lt ( ) const
inline

Definition at line 245 of file syzextra.h.

245 { return m_lt; };

◆ operator=()

void CLeadingTerm::operator= ( const CLeadingTerm )
private

◆ sev()

unsigned long CLeadingTerm::sev ( ) const
inline

Definition at line 246 of file syzextra.h.

246 { return m_sev; };

Field Documentation

◆ m_label

const unsigned int CLeadingTerm::m_label
private

index in the main L[] + 1

Definition at line 252 of file syzextra.h.

◆ m_lt

const poly CLeadingTerm::m_lt
private

the leading term itself L[label-1]

Definition at line 254 of file syzextra.h.

◆ m_sev

const unsigned long CLeadingTerm::m_sev
private

not short exp. vector

Definition at line 247 of file syzextra.h.


The documentation for this class was generated from the following files:
CLeadingTerm::sev
unsigned long sev() const
Definition: syzextra.h:246
p_GetComp
#define p_GetComp(p, r)
Definition: monomials.h:68
CLeadingTerm::m_lt
const poly m_lt
the leading term itself L[label-1]
Definition: syzextra.h:254
p_Test
#define p_Test(p, r)
Definition: p_polys.h:155
n_IsZero
static FORCE_INLINE BOOLEAN n_IsZero(number n, const coeffs r)
TRUE iff 'n' represents the zero element.
Definition: coeffs.h:464
CLeadingTerm::m_label
const unsigned int m_label
index in the main L[] + 1
Definition: syzextra.h:252
_p_LmDivisibleByNoComp
static BOOLEAN _p_LmDivisibleByNoComp(const poly a, const poly b, const poly c, const ring r)
_p_LmDivisibleByNoComp for a | b*c
Definition: syzextra.cc:1516
p_LmShortDivisibleByNoComp
static BOOLEAN p_LmShortDivisibleByNoComp(poly a, unsigned long sev_a, poly b, unsigned long not_sev_b, const ring r)
Definition: p_polys.h:1848
CLeadingTerm::label
unsigned int label() const
Definition: syzextra.h:247
CLeadingTerm::m_sev
const unsigned long m_sev
not short exp. vector
Definition: syzextra.h:247
m
int m
Definition: cfEzgcd.cc:121
assume
#define assume(x)
Definition: mod2.h:384
NULL
#define NULL
Definition: omList.c:9
R
#define R
Definition: sirandom.c:26
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:48
p_GetShortExpVector
unsigned long p_GetShortExpVector(const poly p, const ring r)
Definition: p_polys.cc:4660
CLeadingTerm::lt
poly lt() const
Definition: syzextra.h:245