My Project
Loading...
Searching...
No Matches
CShiftSpecialPairMultiplier Class Reference

#include <ncSAMult.h>

Public Member Functions

 CShiftSpecialPairMultiplier (ring r, int i, int j, int s, number c)
virtual ~CShiftSpecialPairMultiplier ()
virtual poly MultiplyEE (const int expLeft, const int expRight)
Public Member Functions inherited from CSpecialPairMultiplier
 CSpecialPairMultiplier (ring r, int i, int j)
virtual ~CSpecialPairMultiplier ()
int GetI () const
int GetJ () const
virtual poly MultiplyME (const poly pMonom, const CExponent expRight)
virtual poly MultiplyEM (const CExponent expLeft, const poly pMonom)
Public Member Functions inherited from CMultiplier< int >
 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 int expRight)
poly MultiplyET (const int expLeft, const poly pTerm)

Private Attributes

const number m_shiftCoef
const int m_shiftVar

Additional Inherited Members

Public Types inherited from CSpecialPairMultiplier
typedef int CExponent
Protected Attributes inherited from CMultiplier< int >
const ring m_basering
const int m_NVars

Detailed Description

Definition at line 570 of file ncSAMult.h.

Constructor & Destructor Documentation

◆ CShiftSpecialPairMultiplier()

CShiftSpecialPairMultiplier::CShiftSpecialPairMultiplier ( ring r,
int i,
int j,
int s,
number c )

Definition at line 696 of file ncSAMult.cc.

696 :
698{
699#if OUTPUT
700 Print("CShiftSpecialPairMultiplier::CShiftSpecialPairMultiplier(ring, i: %d, j: %d, s: %d, c)!", i, j, s);
701 PrintLn();
702 PrintS("Parameter c: "); n_Write(c, r);
703#endif
704}
int i
Definition cfEzgcd.cc:132
CSpecialPairMultiplier(ring r, int i, int j)
Definition ncSAMult.cc:1060
static FORCE_INLINE void n_Write(number n, const coeffs r, const BOOLEAN bShortOut=TRUE)
Definition coeffs.h:592
#define Print
Definition emacs.cc:80
const CanonicalForm int s
Definition facAbsFact.cc:51
int j
Definition facHensel.cc:110
void PrintS(const char *s)
Definition reporter.cc:284
void PrintLn()
Definition reporter.cc:310

◆ ~CShiftSpecialPairMultiplier()

CShiftSpecialPairMultiplier::~CShiftSpecialPairMultiplier ( )
virtual

Definition at line 707 of file ncSAMult.cc.

708{
709#if OUTPUT
710 PrintS("CShiftSpecialPairMultiplier::~CShiftSpecialPairMultiplier()");
711 PrintLn();
712#endif
713}

Member Function Documentation

◆ MultiplyEE()

poly CShiftSpecialPairMultiplier::MultiplyEE ( const int expLeft,
const int expRight )
virtual

Implements CSpecialPairMultiplier.

Definition at line 716 of file ncSAMult.cc.

717{
718#if OUTPUT
719 Print("CShiftSpecialPairMultiplier::MultiplyEE(var(%d)^{%d}, var(%d)^{%d})!", GetJ(), expLeft, GetI(), expRight);
720 PrintLn();
721#endif
722 // Char == 0, otherwise - problem!
723
724 assume( expLeft*expRight > 0 );
725
726 const ring r = GetBasering();
727
728 if( m_shiftVar != GetI() ) // YX = XY + b*Y?
729 return CFormulaPowerMultiplier::ncSA_1xy0xBy0(GetI(), GetJ(), expRight, expLeft, m_shiftCoef, r); // case: (1, 0, beta, 0, 0)
730 else
731 return CFormulaPowerMultiplier::ncSA_1xyAx0y0(GetI(), GetJ(), expRight, expLeft, m_shiftCoef, r); // case: (1, alpha, 0, 0)
732
733}
static poly ncSA_1xyAx0y0(const int i, const int j, const int n, const int m, const number m_shiftCoef, const ring r)
static poly ncSA_1xy0xBy0(const int i, const int j, const int n, const int m, const number m_shiftCoef, const ring r)
ring GetBasering() const
Definition ncSAMult.h:35
#define assume(x)
Definition mod2.h:389

Field Documentation

◆ m_shiftCoef

const number CShiftSpecialPairMultiplier::m_shiftCoef
private

Definition at line 573 of file ncSAMult.h.

◆ m_shiftVar

const int CShiftSpecialPairMultiplier::m_shiftVar
private

Definition at line 574 of file ncSAMult.h.


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