My Project
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 &)
 
CMultiplieroperator= (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.

const ring m_basering
Definition ncSAMult.h:28
const int m_NVars
Definition ncSAMult.h:29

◆ ~CMultiplier()

template<typename CExponent>
virtual CMultiplier< CExponent >::~CMultiplier ( )
inlinevirtual

Definition at line 33 of file ncSAMult.h.

33{};

◆ 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.

35{ 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.

40 {
42 pSetCoeff0(pMonom, n_Init(i, r->cf));
43 return pMonom;
44 }
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:539
#define pSetCoeff0(p, n)
Definition monomials.h:59
static poly p_LmInit(poly p, const ring r)
Definition p_polys.h:1351

◆ MultiplyEE()

◆ MultiplyEM()

template<typename CExponent>
virtual poly CMultiplier< CExponent >::MultiplyEM ( const CExponent expLeft,
const poly pMonom )
pure virtual

◆ MultiplyET()

template<typename CExponent>
poly CMultiplier< CExponent >::MultiplyET ( const CExponent expLeft,
const poly pTerm )
inline

Definition at line 61 of file ncSAMult.h.

62 {
63 const ring r = GetBasering();
64 poly pMonom = LM(pTerm, r);
65
67
68 p_Delete(&pMonom, r);
69 return result;
70
71
72 }
poly LM(const poly pTerm, const ring r, int i=1) const
Definition ncSAMult.h:39
virtual poly MultiplyEM(const CExponent expLeft, const poly pMonom)=0
ring GetBasering() const
Definition ncSAMult.h:35
#define p_GetCoeff(p, r)
Definition monomials.h:50
static poly p_Mult_nn(poly p, number n, const ring r)
Definition p_polys.h:960
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

◆ MultiplyTE()

template<typename CExponent>
poly CMultiplier< CExponent >::MultiplyTE ( const poly pTerm,
const CExponent expRight )
inline

Definition at line 47 of file ncSAMult.h.

48 {
49 const ring r = GetBasering();
50 poly pMonom = LM(pTerm, r);
51
53
54 p_Delete(&pMonom, r);
55
56 return result;
57 }
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.

36{ 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: