My Project  debian-1:4.1.1-p2+ds-4build4
Public Member Functions | Protected Attributes | Private Member Functions
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.

32 : m_basering(rBaseRing), m_NVars(rBaseRing->N) {};
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  {
41  poly pMonom = p_LmInit(pTerm, r);
42  pSetCoeff0(pMonom, n_Init(i, r->cf));
43  return pMonom;
44  }
int i
Definition: cfEzgcd.cc:125
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:66
static poly p_LmInit(poly p, const ring r)
Definition: p_polys.h:1281

◆ MultiplyEE()

template<typename CExponent >
virtual poly CMultiplier< CExponent >::MultiplyEE ( const CExponent  expLeft,
const CExponent  expRight 
)
pure virtual

◆ 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 
66  poly result = p_Mult_nn(MultiplyEM(expLeft, pMonom), p_GetCoeff(pTerm, r), r);
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
return result
Definition: facAbsBiFact.cc:76
#define p_GetCoeff(p, r)
Definition: monomials.h:57
static poly p_Mult_nn(poly p, number n, const ring r)
Definition: p_polys.h:914
static void p_Delete(poly *p, const ring r)
Definition: p_polys.h:857

◆ 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 
52  poly result = p_Mult_nn(MultiplyME(pMonom, expRight), p_GetCoeff(pTerm, r), r);
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: