#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 CPowerexpRight) |
|
poly | MultiplyET (const CPowerexpLeft, const poly pTerm) |
|
Definition at line 168 of file ncSAMult.h.
CPowerMultiplier::CPowerMultiplier |
( |
ring |
r | ) |
|
Definition at line 833 of file ncSAMult.cc.
836 PrintS(
"CPowerMultiplier::CPowerMultiplier(ring)!");
CSpecialPairMultiplier * AnalyzePair(const ring r, int i, int j)
CSpecialPairMultiplier ** m_specialpairs
CSpecialPairMultiplier * GetPair(int i, int j) const
void PrintS(const char *s)
CPowerMultiplier::~CPowerMultiplier |
( |
| ) |
|
|
virtual |
Definition at line 848 of file ncSAMult.cc.
851 PrintS(
"CPowerMultiplier::~CPowerMultiplier()!");
CSpecialPairMultiplier ** m_specialpairs
#define omFreeSize(addr, size)
void PrintS(const char *s)
Definition at line 178 of file ncSAMult.h.
CSpecialPairMultiplier ** m_specialpairs
Definition at line 188 of file ncSAMult.h.
CSpecialPairMultiplier ** m_specialpairs
Implements CMultiplier< CPower >.
Definition at line 992 of file ncSAMult.cc.
995 PrintS(
"CPowerMultiplier::MultiplyEE)!");
999 const int i = expRight.Var,
j = expLeft.Var;
1000 const int ei = expRight.Power, ej = expLeft.Power;
1003 Print(
"Input: var(%d)^{%d} * var(%d)^{%d}",
j, ej, i, ei);
1034 if( pSpecialMultiplier !=
NULL )
1040 return pSpecialMultiplier->
MultiplyEE(ej, ei);
1046 WerrorS(
"Sorry the general case is not implemented this way yet!!!");
void WerrorS(const char *s)
CSpecialPairMultiplier * GetPair(int i, int j) const
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
static void p_Setm(poly p, const ring r)
Implements CMultiplier< CPower >.
Definition at line 925 of file ncSAMult.cc.
930 const int j = expLeft.Var;
931 const int n = expLeft.Power;
934 Print(
"CPowerMultiplier::MultiplyEM(var(%d)^{%d} * monom)!", j, n);
948 while((v < j) && (e == 0))
981 PrintS(
"CPowerMultiplier::MultiplyEM() ===> ");
const CanonicalForm CFMap CFMap int &both_non_zero int n
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)
Definition at line 228 of file ncSAMult.h.
#define MIN_LENGTH_BUCKET
static int pLength(poly a)
#define TEST_OPT_NOT_BUCKETS
poly MultiplyET(const CPowerexpLeft, const poly pTerm)
CPolynomialSummator: unifies bucket and polynomial summation as the later is brocken in buckets :(...
Definition at line 252 of file ncSAMult.h.
static poly p_LmDeleteAndNext(poly p, const ring r)
#define MIN_LENGTH_BUCKET
static int pLength(poly a)
#define TEST_OPT_NOT_BUCKETS
poly MultiplyET(const CPowerexpLeft, const poly pTerm)
CPolynomialSummator: unifies bucket and polynomial summation as the later is brocken in buckets :(...
Implements CMultiplier< CPower >.
Definition at line 861 of file ncSAMult.cc.
863 const int j = expRight.Var;
864 const int n = expRight.Power;
869 Print(
"CPowerMultiplier::MultiplyME(monom * var(%d)^{%d})!", j, n);
883 while((v > j) && (e == 0))
916 PrintS(
"CPowerMultiplier::MultiplyME() ===> ");
const CanonicalForm CFMap CFMap int &both_non_zero int n
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)
Definition at line 216 of file ncSAMult.h.
poly MultiplyTE(const poly pTerm, const CPowerexpRight)
#define MIN_LENGTH_BUCKET
static int pLength(poly a)
#define TEST_OPT_NOT_BUCKETS
CPolynomialSummator: unifies bucket and polynomial summation as the later is brocken in buckets :(...
Definition at line 240 of file ncSAMult.h.
static poly p_LmDeleteAndNext(poly p, const ring r)
poly MultiplyTE(const poly pTerm, const CPowerexpRight)
#define MIN_LENGTH_BUCKET
static int pLength(poly a)
#define TEST_OPT_NOT_BUCKETS
CPolynomialSummator: unifies bucket and polynomial summation as the later is brocken in buckets :(...
The documentation for this class was generated from the following files: