#include <ncSAMult.h>
|
| CGlobalMultiplier (ring r) |
|
virtual | ~CGlobalMultiplier () |
|
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 poly expRight) |
|
poly | MultiplyET (const poly expLeft, const poly pTerm) |
|
Definition at line 263 of file ncSAMult.h.
◆ CBaseType
◆ CExponent
◆ CGlobalMultiplier()
CGlobalMultiplier::CGlobalMultiplier |
( |
ring |
r | ) |
|
Definition at line 293 of file ncSAMult.cc.
297 PrintS(
"CGlobalMultiplier::CGlobalMultiplier(ring)!");
CPowerMultiplier * m_powers
const CFormulaPowerMultiplier * m_RingFormulaMultiplier
void PrintS(const char *s)
◆ ~CGlobalMultiplier()
CGlobalMultiplier::~CGlobalMultiplier |
( |
| ) |
|
|
virtual |
◆ MultiplyEE()
Implements CMultiplier< poly >.
Definition at line 323 of file ncSAMult.cc.
329 PrintS(
"CGlobalMultiplier::MultiplyEE(expLeft, expRight)!");
354 while( (
i <
j) && !((ej != 0) && (ei != 0)) )
365 PrintS(
"<CGlobalMultiplier::MultiplyEE>");
369 Print(
"ei: %d, ej: %d", ei, ej);
382 product =
p_Head(expRight, r);
430 PrintS(
"<CGlobalMultiplier::MultiplyEE> ==> ");
434 Print(
"ei: %d, ej: %d", ei, ej);
442 while( (product !=
NULL) && !((
i ==
NVars()) && (
j == 1)) )
451 while( (ei == 0) && (
i <
NVars()) )
462 while( (ej == 0) && (1 <
j) )
471 PrintS(
"<CGlobalMultiplier::MultiplyEE> ==> ");
475 Print(
"ei: %d, ej: %d", ei, ej);
const CanonicalForm CFMap CFMap & N
virtual poly MultiplyEE(const CExponent expLeft, const CExponent expRight)
poly MultiplyPEDestroy(poly pPoly, const CExponent expRight)
poly MultiplyEPDestroy(const CExponent expLeft, poly pPoly)
static poly p_Head(poly p, const ring r)
void p_Write(poly p, ring lmRing, ring tailRing)
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent @Note: VarOffset encodes the position in p->exp
static void p_Setm(poly p, const ring r)
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent @Note: the integer VarOffset encodes:
◆ MultiplyEM()
Implements CMultiplier< poly >.
Definition at line 505 of file ncSAMult.cc.
508 PrintS(
"CGlobalMultiplier::MultiplyEM(expL, monom)!");
virtual poly MultiplyEE(const CExponent expLeft, const CExponent expRight)
◆ MultiplyEP()
Definition at line 349 of file ncSAMult.h.
357 if( iComponentMonom!=0 )
359 for( poly q = pPoly; q !=
NULL; q =
pNext(q) )
367 Werror(
"MultiplyEP: both sides have non-zero components: %d and %d!\n", iComponent, iComponentMonom);
380 for( poly q = pPoly; q !=
NULL; q =
pNext(q) )
poly MultiplyET(const poly expLeft, const poly pTerm)
CPolynomialSummator: unifies bucket and polynomial summation as the later is brocken in buckets :(.
#define TEST_OPT_NOT_BUCKETS
#define MIN_LENGTH_BUCKET
static void p_SetCompP(poly p, int i, ring r)
static unsigned pLength(poly a)
void Werror(const char *fmt,...)
◆ MultiplyEPDestroy()
poly CGlobalMultiplier::MultiplyEPDestroy |
( |
const CExponent |
expLeft, |
|
|
poly |
pPoly |
|
) |
| |
|
inline |
Definition at line 447 of file ncSAMult.h.
456 if( iComponentMonom!=0 )
466 Werror(
"MultiplyEPDestroy: both sides have non-zero components: %d and %d!\n", iComponent, iComponentMonom);
static poly p_LmDeleteAndNext(poly p, const ring r)
◆ MultiplyME()
◆ MultiplyPE()
Definition at line 296 of file ncSAMult.h.
305 if( iComponentMonom!=0 )
307 for( poly q = pPoly; q !=
NULL; q =
pNext(q) )
315 Werror(
"MultiplyPE: both sides have non-zero components: %d and %d!\n", iComponent, iComponentMonom);
329 for( poly q = pPoly; q !=
NULL; q =
pNext(q) )
336 Warn(
"MultiplyPE: Multiplication in the left module from the right by component %d!\n", iComponent);
poly MultiplyTE(const poly pTerm, const poly expRight)
◆ MultiplyPEDestroy()
poly CGlobalMultiplier::MultiplyPEDestroy |
( |
poly |
pPoly, |
|
|
const CExponent |
expRight |
|
) |
| |
|
inline |
Definition at line 393 of file ncSAMult.h.
402 if( iComponentMonom!=0 )
412 Werror(
"MultiplyPEDestroy: both sides have non-zero components: %d and %d!\n", iComponent, iComponentMonom);
433 Warn(
"MultiplyPEDestroy: Multiplication in the left module from the right by component %d!\n", iComponent);
◆ m_powers
◆ m_RingFormulaMultiplier
The documentation for this class was generated from the following files: