Public Types | Public Member Functions | Private Attributes
CSpecialPairMultiplier Class Referenceabstract

#include <ncSAMult.h>

Public Types

typedef int CExponent
 

Public Member Functions

 CSpecialPairMultiplier (ring r, int i, int j)
 
virtual ~CSpecialPairMultiplier ()
 
int GetI () const
 
int GetJ () const
 
virtual poly MultiplyEE (const CExponent expLeft, const CExponent expRight)=0
 
virtual poly MultiplyME (const poly pMonom, const CExponent expRight)
 
virtual poly MultiplyEM (const CExponent expLeft, const poly pMonom)
 
- Public Member Functions inherited from CMultiplier< int >
 CMultiplier (ring rBaseRing)
 
virtual ~CMultiplier ()
 
ring GetBasering () const
 
int NVars () const
 
poly LM (const poly pTerm, const ring r, int i=1) const
 
poly MultiplyTE (const poly pTerm, const int expRight)
 
poly MultiplyET (const int expLeft, const poly pTerm)
 

Private Attributes

int m_i
 
int m_j
 

Additional Inherited Members

- Protected Attributes inherited from CMultiplier< int >
const ring m_basering
 
const int m_NVars
 

Detailed Description

Definition at line 93 of file ncSAMult.h.

Member Typedef Documentation

◆ CExponent

Definition at line 112 of file ncSAMult.h.

Constructor & Destructor Documentation

◆ CSpecialPairMultiplier()

CSpecialPairMultiplier::CSpecialPairMultiplier ( ring  r,
int  i,
int  j 
)

Definition at line 1059 of file ncSAMult.cc.

1059  :
1060  CMultiplier<int>(r), m_i(i), m_j(j)
1061 {
1062 #if OUTPUT
1063  Print("CSpecialPairMultiplier::CSpecialPairMultiplier(ring, i: %d, j: %d)!", i, j);
1064  PrintLn();
1065 #endif
1066 
1067  assume(i < j);
1068  assume(i > 0);
1069  assume(j <= NVars());
1070 }
int j
Definition: facHensel.cc:105
void PrintLn()
Definition: reporter.cc:310
#define Print
Definition: emacs.cc:80
#define assume(x)
Definition: mod2.h:390
int NVars() const
Definition: ncSAMult.h:36
int i
Definition: cfEzgcd.cc:125

◆ ~CSpecialPairMultiplier()

CSpecialPairMultiplier::~CSpecialPairMultiplier ( )
virtual

Definition at line 1073 of file ncSAMult.cc.

1074 {
1075 #if OUTPUT
1076  PrintS("CSpecialPairMultiplier::~CSpecialPairMultiplier()!");
1077  PrintLn();
1078 #endif
1079 }
void PrintLn()
Definition: reporter.cc:310
void PrintS(const char *s)
Definition: reporter.cc:284

Member Function Documentation

◆ GetI()

int CSpecialPairMultiplier::GetI ( ) const
inline

Definition at line 108 of file ncSAMult.h.

108 { return m_i; } // X

◆ GetJ()

int CSpecialPairMultiplier::GetJ ( ) const
inline

Definition at line 109 of file ncSAMult.h.

109 { return m_j; } // Y > X!

◆ MultiplyEE()

virtual poly CSpecialPairMultiplier::MultiplyEE ( const CExponent  expLeft,
const CExponent  expRight 
)
pure virtual

◆ MultiplyEM()

poly CSpecialPairMultiplier::MultiplyEM ( const CExponent  expLeft,
const poly  pMonom 
)
virtual

Implements CMultiplier< int >.

Definition at line 1096 of file ncSAMult.cc.

1097 {
1098 #if OUTPUT
1099  Print("CSpecialPairMultiplier::MultiplyEM(var(%d)^{%d}, monom)!", GetJ(), expLeft);
1100  PrintLn();
1101  PrintS("Monom: "); p_Write(pMonom, GetBasering());
1102 #endif
1103 
1104  return MultiplyEE(expLeft, p_GetExp(pMonom, GetI(), GetBasering()));
1105 }
ring GetBasering() const
Definition: ncSAMult.h:35
void PrintLn()
Definition: reporter.cc:310
#define Print
Definition: emacs.cc:80
int GetI() const
Definition: ncSAMult.h:108
int GetJ() const
Definition: ncSAMult.h:109
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
void PrintS(const char *s)
Definition: reporter.cc:284
virtual poly MultiplyEE(const CExponent expLeft, const CExponent expRight)=0
void p_Write(poly p, ring lmRing, ring tailRing)
Definition: polys0.cc:204

◆ MultiplyME()

poly CSpecialPairMultiplier::MultiplyME ( const poly  pMonom,
const CExponent  expRight 
)
virtual

Implements CMultiplier< int >.

Definition at line 1084 of file ncSAMult.cc.

1085 {
1086 #if OUTPUT
1087  Print("CSpecialPairMultiplier::MultiplyME(monom, var(%d)^{%d})!", GetI(), expRight);
1088  PrintLn();
1089  PrintS("Monom: "); p_Write(pMonom, GetBasering());
1090 #endif
1091 
1092  return MultiplyEE(p_GetExp(pMonom, GetJ(), GetBasering()), expRight);
1093 }
ring GetBasering() const
Definition: ncSAMult.h:35
void PrintLn()
Definition: reporter.cc:310
#define Print
Definition: emacs.cc:80
int GetI() const
Definition: ncSAMult.h:108
int GetJ() const
Definition: ncSAMult.h:109
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
void PrintS(const char *s)
Definition: reporter.cc:284
virtual poly MultiplyEE(const CExponent expLeft, const CExponent expRight)=0
void p_Write(poly p, ring lmRing, ring tailRing)
Definition: polys0.cc:204

Field Documentation

◆ m_i

int CSpecialPairMultiplier::m_i
private

Definition at line 96 of file ncSAMult.h.

◆ m_j

int CSpecialPairMultiplier::m_j
private

Definition at line 97 of file ncSAMult.h.


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