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 30 of file ncSAMult.h.

Constructor & Destructor Documentation

§ CMultiplier() [1/3]

template<typename CExponent>
CMultiplier< CExponent >::CMultiplier ( ring  rBaseRing)
inline

Definition at line 37 of file ncSAMult.h.

37 : m_basering(rBaseRing), m_NVars(rBaseRing->N) {};
const int m_NVars
Definition: ncSAMult.h:34
const ring m_basering
Definition: ncSAMult.h:33

§ ~CMultiplier()

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

Definition at line 38 of file ncSAMult.h.

38 {};

§ 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 40 of file ncSAMult.h.

40 { return m_basering; };
const ring m_basering
Definition: ncSAMult.h:33

§ LM()

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

Definition at line 44 of file ncSAMult.h.

45  {
46  poly pMonom = p_LmInit(pTerm, r);
47  pSetCoeff0(pMonom, n_Init(i, r));
48  return pMonom;
49  }
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:542
const ring r
Definition: syzextra.cc:208
int i
Definition: cfEzgcd.cc:123
static poly p_LmInit(poly p, const ring r)
Definition: p_polys.h:1258
#define pSetCoeff0(p, n)
Definition: monomials.h:67
polyrec * poly
Definition: hilb.h:10

§ 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 66 of file ncSAMult.h.

67  {
68  const ring r = GetBasering();
69  poly pMonom = LM(pTerm, r);
70 
71  poly result = p_Mult_nn(MultiplyEM(expLeft, pMonom), p_GetCoeff(pTerm, r), r);
72 
73  p_Delete(&pMonom, r);
74  return result;
75 
76 
77  }
ring GetBasering() const
Definition: ncSAMult.h:40
poly LM(const poly pTerm, const ring r, int i=1) const
Definition: ncSAMult.h:44
virtual poly MultiplyEM(const CExponent expLeft, const poly pMonom)=0
const ring r
Definition: syzextra.cc:208
static poly p_Mult_nn(poly p, number n, const ring r)
Definition: p_polys.h:895
static void p_Delete(poly *p, const ring r)
Definition: p_polys.h:843
#define p_GetCoeff(p, r)
Definition: monomials.h:57
polyrec * poly
Definition: hilb.h:10
return result
Definition: facAbsBiFact.cc:76

§ 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 52 of file ncSAMult.h.

53  {
54  const ring r = GetBasering();
55  poly pMonom = LM(pTerm, r);
56 
57  poly result = p_Mult_nn(MultiplyME(pMonom, expRight), p_GetCoeff(pTerm, r), r);
58 
59  p_Delete(&pMonom, r);
60 
61  return result;
62  }
ring GetBasering() const
Definition: ncSAMult.h:40
virtual poly MultiplyME(const poly pMonom, const CExponent expRight)=0
poly LM(const poly pTerm, const ring r, int i=1) const
Definition: ncSAMult.h:44
const ring r
Definition: syzextra.cc:208
static poly p_Mult_nn(poly p, number n, const ring r)
Definition: p_polys.h:895
static void p_Delete(poly *p, const ring r)
Definition: p_polys.h:843
#define p_GetCoeff(p, r)
Definition: monomials.h:57
polyrec * poly
Definition: hilb.h:10
return result
Definition: facAbsBiFact.cc:76

§ NVars()

template<typename CExponent>
int CMultiplier< CExponent >::NVars ( ) const
inline

Definition at line 41 of file ncSAMult.h.

41 { return m_NVars; }
const int m_NVars
Definition: ncSAMult.h:34

§ 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 33 of file ncSAMult.h.

§ m_NVars

template<typename CExponent>
const int CMultiplier< CExponent >::m_NVars
protected

Definition at line 34 of file ncSAMult.h.


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