CoCoALib-0.9905 date: 23 May 2007


CoCoA::PPMonoidBase Class Reference

#include <PPMonoid.H>

Inheritance diagram for CoCoA::PPMonoidBase:

Inheritance graph
[legend]
List of all members.

Public Types

typedef PPMonoidElemRawPtr RawPtr
 just to save typing
typedef PPMonoidElemConstRawPtr ConstRawPtr
 just to save typing

Public Member Functions

const PPOrderingmyOrdering () const
virtual std::size_t myNumIndets () const =0
 std::vector whose n-th entry is n-th indet as PPMonoidElem
virtual const std::vector<
PPMonoidElem > & 
myIndets () const =0
virtual void mySymbols (std::vector< symbol > &SymList) const =0
 appends PPM's symbols to SymList
virtual const symbolmyIndetName (std::size_t var) const =0
 the symbol of the var-th indet
virtual const PPMonoidElemmyOne () const =0
virtual PPMonoidElemRawPtr myNew () const =0
 ctor from nothing
virtual PPMonoidElemRawPtr myNew (PPMonoidElemConstRawPtr rawpp) const =0
 ctor from another pp
virtual PPMonoidElemRawPtr myNew (const std::vector< long > &v) const =0
 ctor from exp vector
PPMonoidElemRawPtr myNewCheckVecSize (const std::vector< long > &v) const
 ctor from exp vector
virtual void myDelete (RawPtr rawpp) const =0
 dtor, frees pp
virtual void mySwap (RawPtr rawpp1, RawPtr rawpp2) const =0
 swap(pp1, pp2)
virtual void myAssignOne (RawPtr rawpp) const =0
 pp = 1
virtual void myAssign (RawPtr rawpp, ConstRawPtr rawpp1) const =0
 pp = pp1
virtual void myAssign (RawPtr rawpp, const std::vector< long > &v) const =0
 pp = v (assign from exp vector)
virtual void myMul (RawPtr rawpp, ConstRawPtr rawpp1, ConstRawPtr rawpp2) const =0
 pp = pp1*pp2
virtual void myMulIndetPower (RawPtr rawpp, std::size_t var, unsigned long exp) const =0
 pp *= indet(var)^exp
virtual void myDiv (RawPtr rawpp, ConstRawPtr rawpp1, ConstRawPtr rawpp2) const =0
 pp = pp1/pp2
virtual void myColon (RawPtr rawpp, ConstRawPtr rawpp1, ConstRawPtr rawpp2) const =0
 pp = pp1/gcd(pp1,pp2)
virtual void myGcd (RawPtr rawpp, ConstRawPtr rawpp1, ConstRawPtr rawpp2) const =0
 pp = gcd(pp1,pp2)
virtual void myLcm (RawPtr rawpp, ConstRawPtr rawpp1, ConstRawPtr rawpp2) const =0
 pp = lcm(pp1,pp2)
void myPower (RawPtr rawpp, ConstRawPtr rawpp1, unsigned long exp) const
 pp = pp1^exp
void myPower (RawPtr rawpp, ConstRawPtr rawpp1, const ZZ &EXP) const
 pp = pp1^EXP, with EXP >= 0
virtual void myPowerSmallExp (RawPtr rawpp, ConstRawPtr rawpp1, unsigned long exp) const =0
virtual void myPowerBigExp (RawPtr rawpp, ConstRawPtr rawpp1, const ZZ &EXP) const
 pp = pp1^EXP (non-triv, EXP large); default gives error
virtual bool myIsOne (ConstRawPtr rawpp) const =0
 is pp = 1?
virtual bool myIsIndet (std::size_t &index, ConstRawPtr rawpp) const =0
 true iff pp is an indet
virtual bool myIsIndetPower (std::size_t &index, ZZ &EXP, ConstRawPtr rawpp) const
 true iff pp is a power of an indet
virtual bool myIsCoprime (ConstRawPtr rawpp1, ConstRawPtr rawpp2) const =0
 are pp1, pp2 coprime?
virtual bool myIsEqual (ConstRawPtr rawpp1, ConstRawPtr rawpp2) const
 is pp1 equal to pp2?
virtual bool myIsDivisible (ConstRawPtr rawpp1, ConstRawPtr rawpp2) const =0
 is pp1 divisible by pp2?
virtual int myCmp (ConstRawPtr rawpp1, ConstRawPtr rawpp2) const =0
 <0, =0, >0 as pp1 < = > pp2
virtual std::size_t myStdDeg (ConstRawPtr rawpp) const =0
 standard degree of pp
virtual void myWDeg (degree &d, ConstRawPtr rawpp) const =0
 d = grading(pp)
virtual int myCmpWDeg (ConstRawPtr rawpp1, ConstRawPtr rawpp2) const =0
 <0, =0, >0 as wdeg(pp1) < = > wdeg(pp2)
virtual long myLog (ConstRawPtr rawpp, std::size_t var) const =0
 degree of pp in var
virtual void myZZLog (ZZ &EXP, ConstRawPtr rawpp, std::size_t var) const =0
 EXP = degree of pp in var.
virtual void myExponents (std::vector< long > &v, ConstRawPtr rawpp) const =0
 get exponents, SHOULD BE vector<ZZ> ????
virtual void myComputeDivMask (DivMask &dm, const DivMaskRule &DivMaskImpl, ConstRawPtr rawpp) const =0
 computes the DivMask for pp according to DivMaskImpl
virtual void myOutputSelf (std::ostream &out) const =0
 print value of PPMonoid
virtual void myOutput (std::ostream &out, ConstRawPtr rawpp) const
 NOT PURE!!
virtual void myOutput (OpenMathOutput &OMOut, ConstRawPtr rawpp) const
 NOT PURE!!

Protected Member Functions

 PPMonoidBase (const PPOrdering &ord)
virtual ~PPMonoidBase ()
void myRefCountInc () const
 increments ref count
void myRefCountDec () const
 decrements ref count, and self destructs if count becomes 0
void myRefCountZero () const
 sets myRefCount to 0

Protected Attributes

const PPOrdering myOrd

Friends

class SmartPtrIRC< const PPMonoidBase >
 morally "friend PPMonoid", so it can alter reference count

Detailed Description

Definition at line 147 of file PPMonoid.H.


Member Typedef Documentation

typedef PPMonoidElemRawPtr CoCoA::PPMonoidBase::RawPtr
 

just to save typing

Definition at line 159 of file PPMonoid.H.

typedef PPMonoidElemConstRawPtr CoCoA::PPMonoidBase::ConstRawPtr
 

just to save typing

Definition at line 160 of file PPMonoid.H.


Constructor & Destructor Documentation

CoCoA::PPMonoidBase::PPMonoidBase const PPOrdering ord  )  [inline, protected]
 

Definition at line 361 of file PPMonoid.H.

virtual CoCoA::PPMonoidBase::~PPMonoidBase  )  [inline, protected, virtual]
 

Definition at line 153 of file PPMonoid.H.


Member Function Documentation

const PPOrdering & CoCoA::PPMonoidBase::myOrdering  )  const [inline]
 

Definition at line 303 of file PPMonoid.H.

References myOrd.

virtual std::size_t CoCoA::PPMonoidBase::myNumIndets  )  const [pure virtual]
 

std::vector whose n-th entry is n-th indet as PPMonoidElem

virtual const std::vector<PPMonoidElem>& CoCoA::PPMonoidBase::myIndets  )  const [pure virtual]
 

virtual void CoCoA::PPMonoidBase::mySymbols std::vector< symbol > &  SymList  )  const [pure virtual]
 

appends PPM's symbols to SymList

virtual const symbol& CoCoA::PPMonoidBase::myIndetName std::size_t  var  )  const [pure virtual]
 

the symbol of the var-th indet

virtual const PPMonoidElem& CoCoA::PPMonoidBase::myOne  )  const [pure virtual]
 

virtual PPMonoidElemRawPtr CoCoA::PPMonoidBase::myNew  )  const [pure virtual]
 

ctor from nothing

virtual PPMonoidElemRawPtr CoCoA::PPMonoidBase::myNew PPMonoidElemConstRawPtr  rawpp  )  const [pure virtual]
 

ctor from another pp

virtual PPMonoidElemRawPtr CoCoA::PPMonoidBase::myNew const std::vector< long > &  v  )  const [pure virtual]
 

ctor from exp vector

PPMonoidElemRawPtr CoCoA::PPMonoidBase::myNewCheckVecSize const std::vector< long > &  v  )  const
 

ctor from exp vector

virtual void CoCoA::PPMonoidBase::myDelete RawPtr  rawpp  )  const [pure virtual]
 

dtor, frees pp

virtual void CoCoA::PPMonoidBase::mySwap RawPtr  rawpp1,
RawPtr  rawpp2
const [pure virtual]
 

swap(pp1, pp2)

virtual void CoCoA::PPMonoidBase::myAssignOne RawPtr  rawpp  )  const [pure virtual]
 

pp = 1

virtual void CoCoA::PPMonoidBase::myAssign RawPtr  rawpp,
ConstRawPtr  rawpp1
const [pure virtual]
 

pp = pp1

virtual void CoCoA::PPMonoidBase::myAssign RawPtr  rawpp,
const std::vector< long > &  v
const [pure virtual]
 

pp = v (assign from exp vector)

virtual void CoCoA::PPMonoidBase::myMul RawPtr  rawpp,
ConstRawPtr  rawpp1,
ConstRawPtr  rawpp2
const [pure virtual]
 

pp = pp1*pp2

virtual void CoCoA::PPMonoidBase::myMulIndetPower RawPtr  rawpp,
std::size_t  var,
unsigned long  exp
const [pure virtual]
 

pp *= indet(var)^exp

virtual void CoCoA::PPMonoidBase::myDiv RawPtr  rawpp,
ConstRawPtr  rawpp1,
ConstRawPtr  rawpp2
const [pure virtual]
 

pp = pp1/pp2

virtual void CoCoA::PPMonoidBase::myColon RawPtr  rawpp,
ConstRawPtr  rawpp1,
ConstRawPtr  rawpp2
const [pure virtual]
 

pp = pp1/gcd(pp1,pp2)

virtual void CoCoA::PPMonoidBase::myGcd RawPtr  rawpp,
ConstRawPtr  rawpp1,
ConstRawPtr  rawpp2
const [pure virtual]
 

pp = gcd(pp1,pp2)

virtual void CoCoA::PPMonoidBase::myLcm RawPtr  rawpp,
ConstRawPtr  rawpp1,
ConstRawPtr  rawpp2
const [pure virtual]
 

pp = lcm(pp1,pp2)

void CoCoA::PPMonoidBase::myPower RawPtr  rawpp,
ConstRawPtr  rawpp1,
unsigned long  exp
const
 

pp = pp1^exp

void CoCoA::PPMonoidBase::myPower RawPtr  rawpp,
ConstRawPtr  rawpp1,
const ZZ EXP
const
 

pp = pp1^EXP, with EXP >= 0

virtual void CoCoA::PPMonoidBase::myPowerSmallExp RawPtr  rawpp,
ConstRawPtr  rawpp1,
unsigned long  exp
const [pure virtual]
 

virtual void CoCoA::PPMonoidBase::myPowerBigExp RawPtr  rawpp,
ConstRawPtr  rawpp1,
const ZZ EXP
const [virtual]
 

pp = pp1^EXP (non-triv, EXP large); default gives error

virtual bool CoCoA::PPMonoidBase::myIsOne ConstRawPtr  rawpp  )  const [pure virtual]
 

is pp = 1?

virtual bool CoCoA::PPMonoidBase::myIsIndet std::size_t &  index,
ConstRawPtr  rawpp
const [pure virtual]
 

true iff pp is an indet

virtual bool CoCoA::PPMonoidBase::myIsIndetPower std::size_t &  index,
ZZ EXP,
ConstRawPtr  rawpp
const [virtual]
 

true iff pp is a power of an indet

virtual bool CoCoA::PPMonoidBase::myIsCoprime ConstRawPtr  rawpp1,
ConstRawPtr  rawpp2
const [pure virtual]
 

are pp1, pp2 coprime?

virtual bool CoCoA::PPMonoidBase::myIsEqual ConstRawPtr  rawpp1,
ConstRawPtr  rawpp2
const [virtual]
 

is pp1 equal to pp2?

virtual bool CoCoA::PPMonoidBase::myIsDivisible ConstRawPtr  rawpp1,
ConstRawPtr  rawpp2
const [pure virtual]
 

is pp1 divisible by pp2?

virtual int CoCoA::PPMonoidBase::myCmp ConstRawPtr  rawpp1,
ConstRawPtr  rawpp2
const [pure virtual]
 

<0, =0, >0 as pp1 < = > pp2

virtual std::size_t CoCoA::PPMonoidBase::myStdDeg ConstRawPtr  rawpp  )  const [pure virtual]
 

standard degree of pp

virtual void CoCoA::PPMonoidBase::myWDeg degree d,
ConstRawPtr  rawpp
const [pure virtual]
 

d = grading(pp)

virtual int CoCoA::PPMonoidBase::myCmpWDeg ConstRawPtr  rawpp1,
ConstRawPtr  rawpp2
const [pure virtual]
 

<0, =0, >0 as wdeg(pp1) < = > wdeg(pp2)

virtual long CoCoA::PPMonoidBase::myLog ConstRawPtr  rawpp,
std::size_t  var
const [pure virtual]
 

degree of pp in var

virtual void CoCoA::PPMonoidBase::myZZLog ZZ EXP,
ConstRawPtr  rawpp,
std::size_t  var
const [pure virtual]
 

EXP = degree of pp in var.

virtual void CoCoA::PPMonoidBase::myExponents std::vector< long > &  v,
ConstRawPtr  rawpp
const [pure virtual]
 

get exponents, SHOULD BE vector<ZZ> ????

virtual void CoCoA::PPMonoidBase::myComputeDivMask DivMask dm,
const DivMaskRule DivMaskImpl,
ConstRawPtr  rawpp
const [pure virtual]
 

computes the DivMask for pp according to DivMaskImpl

virtual void CoCoA::PPMonoidBase::myOutputSelf std::ostream &  out  )  const [pure virtual]
 

print value of PPMonoid

virtual void CoCoA::PPMonoidBase::myOutput std::ostream &  out,
ConstRawPtr  rawpp
const [virtual]
 

NOT PURE!!

virtual void CoCoA::PPMonoidBase::myOutput OpenMathOutput OMOut,
ConstRawPtr  rawpp
const [virtual]
 

NOT PURE!!

void CoCoA::IntrusiveReferenceCount::myRefCountInc  )  const [inline, protected, inherited]
 

increments ref count

Definition at line 86 of file SmartPtrIRC.H.

Referenced by CoCoA::ModuleBase::ModuleBase().

void CoCoA::IntrusiveReferenceCount::myRefCountDec  )  const [inline, protected, inherited]
 

decrements ref count, and self destructs if count becomes 0

Definition at line 91 of file SmartPtrIRC.H.

void CoCoA::IntrusiveReferenceCount::myRefCountZero  )  const [inline, protected, inherited]
 

sets myRefCount to 0

Definition at line 97 of file SmartPtrIRC.H.


Friends And Related Function Documentation

friend class SmartPtrIRC< const PPMonoidBase > [friend]
 

morally "friend PPMonoid", so it can alter reference count

Definition at line 149 of file PPMonoid.H.


Member Data Documentation

const PPOrdering CoCoA::PPMonoidBase::myOrd [protected]
 

Definition at line 216 of file PPMonoid.H.

Referenced by myOrdering().


The documentation for this class was generated from the following file:
Generated on Wed May 23 13:46:26 2007 for CoCoALib by  doxygen 1.4.6