#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 166 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 176 of file ncSAMult.h.
CSpecialPairMultiplier ** m_specialpairs
◆ GetPair() [2/2]
Definition at line 186 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);
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)
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 226 of file ncSAMult.h.
#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()
Definition at line 250 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)
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 214 of file ncSAMult.h.
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()
Definition at line 238 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: