Loading...
Searching...
No Matches
CMultiplier< CExponent > Class Template Referenceabstract

`#include <ncSAMult.h>`

## Public Member Functions

| 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 CExponent expRight)
poly | MultiplyET (const CExponent expLeft, const poly pTerm)
virtual poly | MultiplyEE (const CExponent expLeft, const CExponent expRight)=0
virtual poly | MultiplyME (const poly pMonom, const CExponent expRight)=0
virtual poly | MultiplyEM (const CExponent expLeft, const poly pMonom)=0

## Protected Attributes

const ring | m_basering
const int | m_NVars

## Private Member Functions

| CMultiplier ()
| CMultiplier (const CMultiplier &)
CMultiplier & | operator= (const CMultiplier &)

## Detailed Description

template<typename CExponent>
class CMultiplier< CExponent >

Definition at line 25 of file ncSAMult.h.

## Constructor & Destructor Documentation

## CMultiplier() [1/3]

template<typename CExponent>

CMultiplier< CExponent >::CMultiplier | ( | ring | rBaseRing | ) |

inline

Definition at line 32 of file ncSAMult.h.

: m_basering(rBaseRing), m_NVars(rBaseRing->N) {};
CMultiplier
Definition ncSAMult.h:26
CMultiplier::m_basering
const ring m_basering
Definition ncSAMult.h:28
CMultiplier::m_NVars
const int m_NVars
Definition ncSAMult.h:29

## ~CMultiplier()

template<typename CExponent>

virtual CMultiplier< CExponent >::~CMultiplier | ( |  | ) |

inline virtual

Definition at line 33 of file ncSAMult.h.

{};

## CMultiplier() [2/3]

template<typename CExponent>

CMultiplier< CExponent >::CMultiplier | ( |  | ) |

private

## CMultiplier() [3/3]

template<typename CExponent>

CMultiplier< CExponent >::CMultiplier | ( | const CMultiplier< CExponent > & |  | ) |

private

## Member Function Documentation

## GetBasering()

template<typename CExponent>

ring CMultiplier< CExponent >::GetBasering | ( |  | ) | const

inline

Definition at line 35 of file ncSAMult.h.

{ return m_basering; };

## LM()

template<typename CExponent>

poly CMultiplier< CExponent >::LM | ( | const poly | pTerm,
|  | const ring | r,
|  | int | i = 1 ) const

inline

Definition at line 39 of file ncSAMult.h.

{
poly pMonom = p_LmInit(pTerm, r);
pSetCoeff0(pMonom, n_Init(i, r->cf));
return pMonom;
}
n_Init
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
Definition coeffs.h:541
pSetCoeff0
#define pSetCoeff0(p, n)
Definition monomials.h:59
p_LmInit
static poly p_LmInit(poly p, const ring r)
Definition p_polys.h:1356

## MultiplyEE()

template<typename CExponent>

virtual poly CMultiplier< CExponent >::MultiplyEE | ( | const CExponent | expLeft,
|  | const CExponent | expRight )

pure virtual

Implemented in CAntiCommutativeSpecialPairMultiplier, CCommutativeSpecialPairMultiplier, CExternalSpecialPairMultiplier, CGlobalMultiplier, CHWeylSpecialPairMultiplier, CPowerMultiplier, CQuasiCommutativeSpecialPairMultiplier, CShiftSpecialPairMultiplier, CSpecialPairMultiplier, and CWeylSpecialPairMultiplier.

## MultiplyEM()

template<typename CExponent>

virtual poly CMultiplier< CExponent >::MultiplyEM | ( | const CExponent | expLeft,
|  | const poly | pMonom )

pure virtual

Implemented in CGlobalMultiplier, CPowerMultiplier, and CSpecialPairMultiplier.

## MultiplyET()

template<typename CExponent>

poly CMultiplier< CExponent >::MultiplyET | ( | const CExponent | expLeft,
|  | const poly | pTerm )

inline

Definition at line 61 of file ncSAMult.h.

{
const ring r = GetBasering();
poly pMonom = LM(pTerm, r);
poly result = p_Mult_nn(MultiplyEM(expLeft, pMonom), p_GetCoeff(pTerm, r), r);
p_Delete(&pMonom, r);
return result;
}
CMultiplier::LM
poly LM(const poly pTerm, const ring r, int i=1) const
Definition ncSAMult.h:39
CMultiplier::MultiplyEM
virtual poly MultiplyEM(const CExponent expLeft, const poly pMonom)=0
CMultiplier::GetBasering
ring GetBasering() const
Definition ncSAMult.h:35
p_GetCoeff
#define p_GetCoeff(p, r)
Definition monomials.h:50
p_Mult_nn
static poly p_Mult_nn(poly p, number n, const ring r)
Definition p_polys.h:960
p_Delete
static void p_Delete(poly *p, const ring r)
Definition p_polys.h:903

## MultiplyME()

template<typename CExponent>

virtual poly CMultiplier< CExponent >::MultiplyME | ( | const poly | pMonom,
|  | const CExponent | expRight )

pure virtual

Implemented in CGlobalMultiplier, CPowerMultiplier, and CSpecialPairMultiplier.

## MultiplyTE()

template<typename CExponent>

poly CMultiplier< CExponent >::MultiplyTE | ( | const poly | pTerm,
|  | const CExponent | expRight )

inline

Definition at line 47 of file ncSAMult.h.

{
const ring r = GetBasering();
poly pMonom = LM(pTerm, r);
poly result = p_Mult_nn(MultiplyME(pMonom, expRight), p_GetCoeff(pTerm, r), r);
p_Delete(&pMonom, r);
return result;
}
CMultiplier::MultiplyME
virtual poly MultiplyME(const poly pMonom, const CExponent expRight)=0

## NVars()

template<typename CExponent>

int CMultiplier< CExponent >::NVars | ( |  | ) | const

inline

Definition at line 36 of file ncSAMult.h.

{ return m_NVars; }

## operator=()

template<typename CExponent>

CMultiplier & CMultiplier< CExponent >::operator= | ( | const CMultiplier< CExponent > & |  | ) |

private

## Field Documentation

## m_basering

template<typename CExponent>

const ring CMultiplier< CExponent >::m_basering

protected

Definition at line 28 of file ncSAMult.h.

## m_NVars

template<typename CExponent>

const int CMultiplier< CExponent >::m_NVars

protected

Definition at line 29 of file ncSAMult.h.

The documentation for this class was generated from the following file:

- libpolys/polys/nc/ncSAMult.h