#include <ncSAMult.h>
|
| CPowerMultiplier (ring r) |
|
virtual | ~CPowerMultiplier () |
|
CSpecialPairMultiplier * | GetPair (int i, int j) const |
|
CSpecialPairMultiplier *& | GetPair (int i, int j) |
|
virtual poly | MultiplyEE (const CExponent expLeft, const CExponent expRight) |
|
virtual poly | MultiplyME (const poly pMonom, const CExponent expRight) |
|
virtual poly | MultiplyEM (const CExponent expLeft, const poly pMonom) |
|
poly | MultiplyPE (const poly pPoly, const CExponent expRight) |
|
poly | MultiplyEP (const CExponent expLeft, const poly pPoly) |
|
poly | MultiplyPEDestroy (poly pPoly, const CExponent expRight) |
|
poly | MultiplyEPDestroy (const CExponent expLeft, poly pPoly) |
|
| 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 CPower expRight) |
|
poly | MultiplyET (const CPower expLeft, const poly pTerm) |
|
Definition at line 163 of file ncSAMult.h.
◆ CExponent
◆ CPowerMultiplier()
CPowerMultiplier::CPowerMultiplier |
( |
ring |
r | ) |
|
Definition at line 832 of file ncSAMult.cc.
835 PrintS(
"CPowerMultiplier::CPowerMultiplier(ring)!");
CSpecialPairMultiplier * AnalyzePair(const ring r, int i, int j)
CSpecialPairMultiplier ** m_specialpairs
void PrintS(const char *s)
CSpecialPairMultiplier * GetPair(int i, int j) const
◆ ~CPowerMultiplier()
CPowerMultiplier::~CPowerMultiplier |
( |
| ) |
|
|
virtual |
Definition at line 847 of file ncSAMult.cc.
850 PrintS(
"CPowerMultiplier::~CPowerMultiplier()!");
CSpecialPairMultiplier ** m_specialpairs
#define omFreeSize(addr, size)
void PrintS(const char *s)
◆ GetPair() [1/2]
Definition at line 173 of file ncSAMult.h.
CSpecialPairMultiplier ** m_specialpairs
◆ GetPair() [2/2]
Definition at line 183 of file ncSAMult.h.
CSpecialPairMultiplier ** m_specialpairs
◆ MultiplyEE()
Implements CMultiplier< CPower >.
Definition at line 991 of file ncSAMult.cc.
994 PrintS(
"CPowerMultiplier::MultiplyEE)!");
998 const int i = expRight.Var,
j = expLeft.Var;
999 const int ei = expRight.Power, ej = expLeft.Power;
1002 Print(
"Input: var(%d)^{%d} * var(%d)^{%d}",
j, ej, i, ei);
1017 poly product =
p_One(r);
1033 if( pSpecialMultiplier !=
NULL )
1039 return pSpecialMultiplier->
MultiplyEE(ej, ei);
1045 WerrorS(
"Sorry the general case is not implemented this way yet!!!");
void WerrorS(const char *s)
void PrintS(const char *s)
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent : VarOffset encodes the position in p->exp
virtual poly MultiplyEE(const CExponent expLeft, const CExponent expRight)=0
CSpecialPairMultiplier * GetPair(int i, int j) const
static void p_Setm(poly p, const ring r)
◆ MultiplyEM()
Implements CMultiplier< CPower >.
Definition at line 924 of file ncSAMult.cc.
929 const int j = expLeft.Var;
930 const int n = expLeft.Power;
933 Print(
"CPowerMultiplier::MultiplyEM(var(%d)^{%d} * monom)!", j, n);
947 while((v < j) && (e == 0))
980 PrintS(
"CPowerMultiplier::MultiplyEM() ===> ");
poly MultiplyPEDestroy(poly pPoly, const CExponent expRight)
static poly p_Head(poly p, const ring r)
copy the i(leading) term of p
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent : the integer VarOffset encodes:
virtual poly MultiplyEE(const CExponent expLeft, const CExponent expRight)
void PrintS(const char *s)
const Variable & v
< [in] a sqrfree bivariate poly
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent : VarOffset encodes the position in p->exp
static void p_Setm(poly p, const ring r)
void p_Write(poly p, ring lmRing, ring tailRing)
◆ MultiplyEP()
Definition at line 223 of file ncSAMult.h.
228 for( poly q = pPoly; q !=
NULL; q =
pNext(q) )
#define MIN_LENGTH_BUCKET
#define TEST_OPT_NOT_BUCKETS
static unsigned pLength(poly a)
poly MultiplyET(const CPower expLeft, const poly pTerm)
CPolynomialSummator: unifies bucket and polynomial summation as the later is brocken in buckets :(...
◆ MultiplyEPDestroy()
poly CPowerMultiplier::MultiplyEPDestroy |
( |
const CExponent |
expLeft, |
|
|
poly |
pPoly |
|
) |
| |
|
inline |
Definition at line 247 of file ncSAMult.h.
static poly p_LmDeleteAndNext(poly p, const ring r)
#define MIN_LENGTH_BUCKET
#define TEST_OPT_NOT_BUCKETS
static unsigned pLength(poly a)
poly MultiplyET(const CPower expLeft, const poly pTerm)
CPolynomialSummator: unifies bucket and polynomial summation as the later is brocken in buckets :(...
◆ MultiplyME()
Implements CMultiplier< CPower >.
Definition at line 860 of file ncSAMult.cc.
862 const int j = expRight.Var;
863 const int n = expRight.Power;
868 Print(
"CPowerMultiplier::MultiplyME(monom * var(%d)^{%d})!", j, n);
882 while((v > j) && (e == 0))
915 PrintS(
"CPowerMultiplier::MultiplyME() ===> ");
static poly p_Head(poly p, const ring r)
copy the i(leading) term of p
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent : the integer VarOffset encodes:
virtual poly MultiplyEE(const CExponent expLeft, const CExponent expRight)
void PrintS(const char *s)
const Variable & v
< [in] a sqrfree bivariate poly
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent : VarOffset encodes the position in p->exp
static void p_Setm(poly p, const ring r)
poly MultiplyEPDestroy(const CExponent expLeft, poly pPoly)
void p_Write(poly p, ring lmRing, ring tailRing)
◆ MultiplyPE()
Definition at line 211 of file ncSAMult.h.
216 for( poly q = pPoly; q !=
NULL; q =
pNext(q) )
poly MultiplyTE(const poly pTerm, const CPower expRight)
#define MIN_LENGTH_BUCKET
#define TEST_OPT_NOT_BUCKETS
static unsigned pLength(poly a)
CPolynomialSummator: unifies bucket and polynomial summation as the later is brocken in buckets :(...
◆ MultiplyPEDestroy()
poly CPowerMultiplier::MultiplyPEDestroy |
( |
poly |
pPoly, |
|
|
const CExponent |
expRight |
|
) |
| |
|
inline |
Definition at line 235 of file ncSAMult.h.
static poly p_LmDeleteAndNext(poly p, const ring r)
poly MultiplyTE(const poly pTerm, const CPower expRight)
#define MIN_LENGTH_BUCKET
#define TEST_OPT_NOT_BUCKETS
static unsigned pLength(poly a)
CPolynomialSummator: unifies bucket and polynomial summation as the later is brocken in buckets :(...
◆ m_specialpairs
The documentation for this class was generated from the following files: