 |
My Project
debian-1:4.1.1-p2+ds-4build3
|
#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 292 of file ncSAMult.cc.
296 PrintS(
"CGlobalMultiplier::CGlobalMultiplier(ring)!");
◆ ~CGlobalMultiplier()
CGlobalMultiplier::~CGlobalMultiplier |
( |
| ) |
|
|
virtual |
◆ MultiplyEE()
Implements CMultiplier< poly >.
Definition at line 322 of file ncSAMult.cc.
328 PrintS(
"CGlobalMultiplier::MultiplyEE(expLeft, expRight)!");
353 while( (
i <
j) && !((ej != 0) && (ei != 0)) )
364 PrintS(
"<CGlobalMultiplier::MultiplyEE>");
368 Print(
"ei: %d, ej: %d", ei, ej);
381 product =
p_Head(expRight, r);
429 PrintS(
"<CGlobalMultiplier::MultiplyEE> ==> ");
433 Print(
"ei: %d, ej: %d", ei, ej);
441 while( (product !=
NULL) && !((
i ==
NVars()) && (
j == 1)) )
450 while( (ei == 0) && (
i <
NVars()) )
461 while( (ej == 0) && (1 <
j) )
470 PrintS(
"<CGlobalMultiplier::MultiplyEE> ==> ");
474 Print(
"ei: %d, ej: %d", ei, ej);
◆ MultiplyEM()
◆ 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) )
◆ 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);
◆ 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);
◆ 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:
static poly p_LmDeleteAndNext(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:
virtual poly MultiplyEE(const CExponent expLeft, const CExponent expRight)
static poly p_Head(poly p, const ring r)
#define MIN_LENGTH_BUCKET
static void p_SetCompP(poly p, int i, ring r)
const CFormulaPowerMultiplier * m_RingFormulaMultiplier
const CanonicalForm CFMap CFMap & N
poly MultiplyTE(const poly pTerm, const poly expRight)
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
CPowerMultiplier * m_powers
static unsigned pLength(poly a)
#define TEST_OPT_NOT_BUCKETS
void PrintS(const char *s)
poly MultiplyPEDestroy(poly pPoly, const CExponent expRight)
poly MultiplyEPDestroy(const CExponent expLeft, poly pPoly)
void p_Write(poly p, ring lmRing, ring tailRing)
void Werror(const char *fmt,...)
poly MultiplyET(const poly expLeft, const poly pTerm)
virtual poly MultiplyEE(const CExponent expLeft, const CExponent expRight)
static void p_Setm(poly p, const ring r)
CPolynomialSummator: unifies bucket and polynomial summation as the later is brocken in buckets :(.