1 #ifndef GRING_SA_MULT_H 2 #define GRING_SA_MULT_H 27 template <
typename CExponent>
80 virtual poly MultiplyEE(
const CExponent expLeft,
const CExponent expRight) = 0;
308 if( iComponentMonom!=0 )
318 Werror(
"MultiplyPE: both sides have non-zero components: %d and %d!\n", iComponent, iComponentMonom);
339 Warn(
"MultiplyPE: Multiplication in the left module from the right by component %d!\n", iComponent);
360 if( iComponentMonom!=0 )
370 Werror(
"MultiplyEP: both sides have non-zero components: %d and %d!\n", iComponent, iComponentMonom);
405 if( iComponentMonom!=0 )
415 Werror(
"MultiplyPEDestroy: both sides have non-zero components: %d and %d!\n", iComponent, iComponentMonom);
436 Warn(
"MultiplyPEDestroy: Multiplication in the left module from the right by component %d!\n", iComponent);
459 if( iComponentMonom!=0 )
469 Werror(
"MultiplyEPDestroy: both sides have non-zero components: %d and %d!\n", iComponent, iComponentMonom);
607 #endif // HAVE_PLURAL :(
CAntiCommutativeSpecialPairMultiplier(ring r, int i, int j)
const CanonicalForm int s
virtual poly MultiplyME(const poly pMonom, const CExponent expRight)=0
virtual ~CWeylSpecialPairMultiplier()
virtual poly MultiplyME(const poly pMonom, const CExponent expRight)
static poly p_LmDeleteAndNext(poly p, const ring r)
poly MultiplyTE(const poly pTerm, const CExponent expRight)
virtual poly MultiplyEE(const int expLeft, const int expRight)
CSpecialPairMultiplier ** m_specialpairs
poly LM(const poly pTerm, const ring r, int i=1) const
virtual poly MultiplyEM(const CExponent expLeft, const poly pMonom)=0
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
CWeylSpecialPairMultiplier(ring r, int i, int j, number g)
poly MultiplyEPDestroy(const CExponent expLeft, poly pPoly)
#define MIN_LENGTH_BUCKET
virtual poly MultiplyEM(const CExponent expLeft, const poly pMonom)
virtual ~CQuasiCommutativeSpecialPairMultiplier()
const CFormulaPowerMultiplier * m_RingFormulaMultiplier
poly MultiplyPEDestroy(poly pPoly, const CExponent expRight)
virtual poly MultiplyEE(const CExponent expLeft, const CExponent expRight)=0
CShiftSpecialPairMultiplier(ring r, int i, int j, int s, number c)
CSpecialPairMultiplier *& GetPair(int i, int j)
CMultiplier< poly > CBaseType
#define TEST_OPT_NOT_BUCKETS
CPowerMultiplier * m_powers
virtual ~CAntiCommutativeSpecialPairMultiplier()
CSpecialPairMultiplier(ring r, int i, int j)
virtual poly MultiplyME(const poly pMonom, const CExponent expRight)
poly MultiplyPE(const poly pPoly, const CExponent expRight)
virtual poly MultiplyEM(const CExponent expLeft, const poly pMonom)
virtual ~CShiftSpecialPairMultiplier()
poly MultiplyEP(const CExponent expLeft, const poly pPoly)
poly MultiplyPEDestroy(poly pPoly, const CExponent expRight)
static void p_SetCompP(poly p, int i, ring r)
const CanonicalForm CFMap CFMap & N
virtual poly MultiplyEE(const int expLeft, const int expRight)
virtual poly MultiplyEE(const int expLeft, const int expRight)
CGlobalMultiplier(ring r)
CMultiplier & operator=(const CMultiplier &)
poly MultiplyEP(const CExponent expLeft, const poly pPoly)
virtual ~CGlobalMultiplier()
virtual poly MultiplyEE(const CExponent expLeft, const CExponent expRight)
CCommutativeSpecialPairMultiplier(ring r, int i, int j)
static poly p_Mult_nn(poly p, number n, const ring r)
CHWeylSpecialPairMultiplier(ring r, int i, int j, int k)
static unsigned pLength(poly a)
virtual poly MultiplyEE(const int expLeft, const int expRight)
virtual ~CPowerMultiplier()
static void p_Delete(poly *p, const ring r)
virtual poly MultiplyEE(const CExponent expLeft, const CExponent expRight)=0
virtual poly MultiplyEE(const int expLeft, const int expRight)
virtual ~CSpecialPairMultiplier()
CSpecialPairMultiplier * GetPair(int i, int j) const
static poly p_LmInit(poly p, const ring r)
CQuasiCommutativeSpecialPairMultiplier(ring r, int i, int j, number q)
virtual ~CCommutativeSpecialPairMultiplier()
poly MultiplyET(const CExponent expLeft, const poly pTerm)
virtual poly MultiplyEE(const CExponent expLeft, const CExponent expRight)
virtual poly MultiplyEM(const CExponent expLeft, const poly pMonom)
poly MultiplyEPDestroy(const CExponent expLeft, poly pPoly)
BOOLEAN ncInitSpecialPairMultiplication(ring r)
poly MultiplyPE(const poly pPoly, const CExponent expRight)
virtual poly MultiplyEE(const int expLeft, const int expRight)
virtual ~CExternalSpecialPairMultiplier()
CMultiplier(ring rBaseRing)
CPolynomialSummator: unifies bucket and polynomial summation as the later is brocken in buckets :(...
virtual poly MultiplyME(const poly pMonom, const CExponent expRight)
void Werror(const char *fmt,...)
virtual poly MultiplyEE(const int expLeft, const int expRight)
virtual ~CHWeylSpecialPairMultiplier()
CExternalSpecialPairMultiplier(ring r, int i, int j, Enum_ncSAType type)