fast_polynomXY< defs, TNum > Class Template Reference
[Algebra objectsPolynoms]

This class manages coefficients of a polynom in (x,y) with template type TNum, see detailed description. Limitations: exponent is bounded to a 'short int', maxDegree is bounded to a 'short int'. More...

#include <fast_polynom.h>

Collaboration diagram for fast_polynomXY< defs, TNum >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef TNum CoefficientType
typedef defs TDefs

Public Member Functions

template<>
 fast_polynomXY (string _name, short _degree)
template<>
void clear (short _degree)
Constructors / Destructors

 fast_polynomXY ()
 fast_polynomXY (short _degree)
 fast_polynomXY (short _degree, short epsPrecision)
 fast_polynomXY (std::string _name, short _degree)
 fast_polynomXY (const fast_polynomXY &fpx)
virtual ~fast_polynomXY ()
properties

short getMaxDegree () const
short getDegree () const
string getName () const
unsigned short getSize () const
Manipulate

void setDegree (int degree) const
void setCoeff (const short x_exp, const short y_exp, const TNum value)
void setCoeffFromRef (const short x_exp, const short y_exp, const TNum &value)
void clear (short _degree)
void clear ()
data access

TNum getCoeff (const short x_exp, const short y_exp) const
TNum const getCoeffConst (const short x_exp, const short y_exp) const
const TNum & getCoeffConstRef (const short x_exp, const short y_exp) const
TNum & getCoeffRef (const short x_exp, const short y_exp)
TNum const * getCoeffConstAddr (const short x_exp, const short y_exp) const
TNum * getCoeffAddr (const short x_exp, const short y_exp)
operators

fast_polynomXYoperator= (const fast_polynomXY &fpx)
bool operator== (const fast_polynomXY &fpx) const
IO

void OutputPureCoefficients (ostream &datei, int maxDegree, bool mitKomma) const
 macaulay-Style output
void outputMatrix (std::ostream &os) const
void outputMatrix () const
void output (std::ostream &os) const
void output () const

Public Attributes

TNum *const koeff
 koeff[x_exp*defsmaxdegree+y_exp] = value;

Private Attributes

short maxDegree
const short maxDegreePlusOne
string name

Detailed Description

template<class defs, class TNum>
class fast_polynomXY< defs, TNum >

Todo:
maxDegree dynamisch und statisch
Todo:
output is independent from polynom implementation,

fast_polynomXY has differences in comparison to polynomXY:
firstly, the position of a single monom coefficient is computed by shift operations at the cost for higher memory usage
secondly, the type of coefficients is parametrized during compile time

Todo:
was ist mit getDegree() und getMaxDegree(): soll man das unterscheiden oder nicht? Und wie soll das Umgesetzt werden?
Todo:
koeff public?? bin ich wahnsinnig??? Bessere Lösung?

Definition at line 44 of file fast_polynom.h.


Member Typedef Documentation

template<class defs, class TNum>
typedef TNum fast_polynomXY< defs, TNum >::CoefficientType

Definition at line 53 of file fast_polynom.h.

template<class defs, class TNum>
typedef defs fast_polynomXY< defs, TNum >::TDefs

Definition at line 54 of file fast_polynom.h.


Constructor & Destructor Documentation

template<class defs , class TNum >
fast_polynomXY< defs, TNum >::fast_polynomXY (  )  [inline]
template<class defs , class TNum >
fast_polynomXY< defs, TNum >::fast_polynomXY ( short  _degree  )  [inline]
template<class defs, class TNum>
fast_polynomXY< defs, TNum >::fast_polynomXY ( short  _degree,
short  epsPrecision 
)
template<class defs, class TNum>
fast_polynomXY< defs, TNum >::fast_polynomXY ( std::string  _name,
short  _degree 
)
template<class defs , class TNum >
fast_polynomXY< defs, TNum >::fast_polynomXY ( const fast_polynomXY< defs, TNum > &  fpx  )  [inline]

Definition at line 122 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::getCoeff(), fast_polynomXY< defs, TNum >::koeff, and fast_polynomXY< defs, TNum >::maxDegree.

Here is the call graph for this function:

template<class defs , class TNum >
fast_polynomXY< defs, TNum >::~fast_polynomXY (  )  [inline, virtual]

Definition at line 115 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::koeff.

template<>
fast_polynomXY< polynomdefsNew< FIELDCHAR >, short int >::fast_polynomXY ( string  _name,
short  _degree 
) [inline]

Definition at line 85 of file fast_polynom.cpp.


Member Function Documentation

template<>
void fast_polynomXY< polynomdefsNew< FIELDCHAR >, short >::clear ( short  _degree  )  [inline]

Definition at line 450 of file fast_polynom.cpp.

References polynomdefsNew< DEGREE >::getPairIndex().

Here is the call graph for this function:

template<class defs , class TNum >
void fast_polynomXY< defs, TNum >::clear (  )  [inline]
Done:
: memset ist fuer epsNumber nicht zugelassen.

Definition at line 481 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::koeff.

template<class defs , class TNum >
void fast_polynomXY< defs, TNum >::clear ( short  _degree  )  [inline]
Todo:
verbesserung fuer B->clear(degree): hole mir den hoechsten Index entweder 0,3 oder 3,0 und dann setze bis dahin alles nULL

Definition at line 396 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::koeff.

template<class defs , class TNum >
TNum fast_polynomXY< defs, TNum >::getCoeff ( const short  x_exp,
const short  y_exp 
) const [inline]
template<class defs , class TNum >
TNum * fast_polynomXY< defs, TNum >::getCoeffAddr ( const short  x_exp,
const short  y_exp 
) [inline]

Definition at line 353 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::koeff.

template<class defs , class TNum >
TNum const fast_polynomXY< defs, TNum >::getCoeffConst ( const short  x_exp,
const short  y_exp 
) const [inline]

Definition at line 293 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::koeff.

template<class defs , class TNum >
TNum const * fast_polynomXY< defs, TNum >::getCoeffConstAddr ( const short  x_exp,
const short  y_exp 
) const [inline]

Definition at line 338 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::koeff.

template<class defs , class TNum >
const TNum & fast_polynomXY< defs, TNum >::getCoeffConstRef ( const short  x_exp,
const short  y_exp 
) const [inline]

Definition at line 308 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::koeff.

template<class defs , class TNum >
TNum & fast_polynomXY< defs, TNum >::getCoeffRef ( const short  x_exp,
const short  y_exp 
) [inline]

Definition at line 323 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::koeff.

template<class defs , class TNum >
short fast_polynomXY< defs, TNum >::getDegree (  )  const [inline]

Definition at line 369 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::maxDegree.

template<class defs , class TNum >
short fast_polynomXY< defs, TNum >::getMaxDegree (  )  const [inline]

Definition at line 377 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::maxDegree.

template<class defs, class TNum>
string fast_polynomXY< defs, TNum >::getName (  )  const [inline]

Definition at line 74 of file fast_polynom.h.

References fast_polynomXY< defs, TNum >::name.

template<class defs, class TNum>
unsigned short fast_polynomXY< defs, TNum >::getSize (  )  const [inline]

Definition at line 75 of file fast_polynom.h.

template<class defs , class TNum >
fast_polynomXY< defs, TNum > & fast_polynomXY< defs, TNum >::operator= ( const fast_polynomXY< defs, TNum > &  fpx  )  [inline]

Definition at line 184 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::getCoeff(), fast_polynomXY< defs, TNum >::koeff, and fast_polynomXY< defs, TNum >::maxDegree.

Here is the call graph for this function:

template<class defs , class TNum >
bool fast_polynomXY< defs, TNum >::operator== ( const fast_polynomXY< defs, TNum > &  fpx  )  const [inline]

Definition at line 168 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::getCoeff(), and fast_polynomXY< defs, TNum >::maxDegree.

Here is the call graph for this function:

template<class defs, class TNum>
void fast_polynomXY< defs, TNum >::output (  )  const [inline]

Definition at line 119 of file fast_polynom.h.

References fast_polynomXY< defs, TNum >::output().

Referenced by fast_polynomXY< defs, TNum >::output().

Here is the call graph for this function:

template<class defs, class TNum>
void fast_polynomXY< defs, TNum >::output ( std::ostream &  os  )  const
template<class defs, class TNum>
void fast_polynomXY< defs, TNum >::outputMatrix (  )  const [inline]

Definition at line 116 of file fast_polynom.h.

References fast_polynomXY< defs, TNum >::outputMatrix().

Referenced by fast_polynomXY< defs, TNum >::outputMatrix().

Here is the call graph for this function:

template<class defs, class TNum>
void fast_polynomXY< defs, TNum >::outputMatrix ( std::ostream &  os  )  const
template<class defs , class TNum >
void fast_polynomXY< defs, TNum >::OutputPureCoefficients ( ostream &  datei,
int  maxDegree,
bool  mitKomma 
) const [inline]

Definition at line 539 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::getCoeff().

Here is the call graph for this function:

template<class defs , class TNum >
void fast_polynomXY< defs, TNum >::setCoeff ( const short  x_exp,
const short  y_exp,
const TNum  value 
) [inline]

Definition at line 253 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::koeff.

template<class defs , class TNum >
void fast_polynomXY< defs, TNum >::setCoeffFromRef ( const short  x_exp,
const short  y_exp,
const TNum &  value 
) [inline]

Definition at line 239 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::koeff.

template<class defs , class TNum >
void fast_polynomXY< defs, TNum >::setDegree ( int  degree  )  const [inline]

Definition at line 384 of file fast_polynom.cpp.

References fast_polynomXY< defs, TNum >::maxDegree.


Member Data Documentation

template<class defs, class TNum>
TNum* const fast_polynomXY< defs, TNum >::koeff
template<class defs, class TNum>
short fast_polynomXY< defs, TNum >::maxDegree [private]
template<class defs, class TNum>
const short fast_polynomXY< defs, TNum >::maxDegreePlusOne [private]

Definition at line 48 of file fast_polynom.h.

template<class defs, class TNum>
string fast_polynomXY< defs, TNum >::name [private]

The documentation for this class was generated from the following files:
Generated on Tue Nov 23 13:10:53 2010 for centerfocus by  doxygen 1.6.3