Public Member Functions | Private Attributes
PolyMinorValue Class Reference

Class PolyMinorValue is derived from MinorValue and can be used for representing values in a cache for sub-determinantes; see class Cache. More...

#include <Minor.h>

Public Member Functions

 PolyMinorValue (const poly result, const int multiplications, const int additions, const int accumulatedMultiplications, const int accumulatedAdditions, const int retrievals, const int potentialRetrievals)
 A constructor for class MinorValue. More...
 
 PolyMinorValue (const PolyMinorValue &mv)
 Copy constructor for creating a deep copy. More...
 
void operator= (const PolyMinorValue &mv)
 Assignment operator which creates a deep copy. More...
 
 PolyMinorValue ()
 just to make the compiler happy More...
 
virtual ~PolyMinorValue ()
 Destructor. More...
 
poly getResult () const
 Accessor for the private field _result. More...
 
int getWeight () const
 Accessor for the current weight of this class instance. More...
 
std::string toString () const
 A method for providing a printable version of the represented MinorValue. More...
 
- Public Member Functions inherited from MinorValue
bool operator== (const MinorValue &mv) const
 just to make the compiler happy More...
 
bool operator< (const MinorValue &mv) const
 just to make the compiler happy More...
 
int getRetrievals () const
 A method for accessing the number of retrievals of this minor. More...
 
int getPotentialRetrievals () const
 A method for accessing the maximum number of potential retrievals of this minor. More...
 
int getMultiplications () const
 A method for accessing the multiplications performed while computing this minor. More...
 
int getAccumulatedMultiplications () const
 A method for accessing the multiplications performed while computing this minor, including all nested multiplications. More...
 
int getAdditions () const
 A method for accessing the additions performed while computing this minor. More...
 
int getAccumulatedAdditions () const
 A method for accessing the additions performed while computing this minor, including all nested additions. More...
 
void incrementRetrievals ()
 A method for incrementing the number of performed retrievals of this instance of MinorValue. More...
 
int getUtility () const
 A method for obtaining a rank measure for theiven MinorValue. More...
 
void print () const
 A method for printing a string representation of the given MinorValue to std::cout. More...
 

Private Attributes

poly _result
 a store for the actual value of the minor More...
 

Additional Inherited Members

- Static Public Member Functions inherited from MinorValue
static void SetRankingStrategy (const int rankingStrategy)
 A method for determining the value ranking strategy. More...
 
- Protected Member Functions inherited from MinorValue
int rankMeasure1 () const
 A method for obtaining a rank measure for the given MinorValue. More...
 
int rankMeasure2 () const
 A method for obtaining a rank measure for the given MinorValue. More...
 
int rankMeasure3 () const
 A method for obtaining a rank measure for the given MinorValue. More...
 
int rankMeasure4 () const
 A method for obtaining a rank measure for the given MinorValue. More...
 
int rankMeasure5 () const
 A method for obtaining a rank measure for the given MinorValue. More...
 
- Static Protected Member Functions inherited from MinorValue
static int GetRankingStrategy ()
 Accessor for the static private field g_rankingStrategy. More...
 
- Protected Attributes inherited from MinorValue
int _retrievals
 -1 iff cache is not used, otherwise the number of retrievals so far of the current minor More...
 
int _potentialRetrievals
 -1 iff cache is not used, otherwise the maximum number of potential retrievals of this minor (e.g. More...
 
int _multiplications
 a store for the actual number of multiplications to compute the current minor More...
 
int _additions
 a store for the actual number of additions to compute the current minor More...
 
int _accumulatedMult
 a store for the accumulated number of multiplications to compute the current minor; This also includes all multiplications nested in sub-minors which may be retrieved from a cache. More...
 
int _accumulatedSum
 a store for the accumulated number of additions to compute the current minor; This also includes all additions nested in sub-minors which may be retrieved from a cache. More...
 
- Static Protected Attributes inherited from MinorValue
static int g_rankingStrategy = -1
 private store for the current value ranking strategy; This member can be set using MinorValue::SetRankingStrategy (const int). More...
 

Detailed Description

Class PolyMinorValue is derived from MinorValue and can be used for representing values in a cache for sub-determinantes; see class Cache.

As such, it is a realization of the template class ValueClass which is used in the declaration of class Cache. Following the documentation of class Cache, we need to implement at least the methods:
bool IntMinorValue::operator< (const IntMinorValue& key),
bool IntMinorValue::operator== (const IntMinorValue& key),
int IntMinorValue::getWeight ().

The main purpose of PolyMinorValue is to represent values of sub-determinantes of a pre-defined matrix. Class MinorKey is used to determine which rows and columns of this pre-defined matrix ought to belong to the respective sub-determinante of interest. PolyMinorValue is a special implementation which assumes matrices with polynomial entries, such that the result of any minor is again a polynomial.

Author
Frank Seelisch, http://www.mathematik.uni-kl.de/~seelisch

Definition at line 799 of file Minor.h.

Constructor & Destructor Documentation

PolyMinorValue::PolyMinorValue ( const poly  result,
const int  multiplications,
const int  additions,
const int  accumulatedMultiplications,
const int  accumulatedAdditions,
const int  retrievals,
const int  potentialRetrievals 
)

A constructor for class MinorValue.

Parameters
resultthe actual value of the represented minor
multiplicationsnumber of multiplications to compute this minor
additionsnumber of additions to compute this minor
accumulatedMultiplicationsnumber of multiplications to compute this minor, including nested operations
accumulatedAdditionsnumber of additions to compute this minor, including nested operations
retrievalsnumber of times this minor has been retrieved from cache
potentialRetrievalsmaximum number of times this minor may be retrieved from cache

Definition at line 1071 of file Minor.cc.

1077 {
1078  _result = pCopy(result);
1079  _multiplications = multiplications;
1080  _additions = additions;
1081  _accumulatedMult = accumulatedMultiplications;
1082  _accumulatedSum = accumulatedAdditions;
1083  _potentialRetrievals = potentialRetrievals;
1084  _retrievals = retrievals;
1085 }
int _accumulatedSum
a store for the accumulated number of additions to compute the current minor; This also includes all ...
Definition: Minor.h:450
int _additions
a store for the actual number of additions to compute the current minor
Definition: Minor.h:432
int _accumulatedMult
a store for the accumulated number of multiplications to compute the current minor; This also include...
Definition: Minor.h:441
int _retrievals
-1 iff cache is not used, otherwise the number of retrievals so far of the current minor ...
Definition: Minor.h:414
int _multiplications
a store for the actual number of multiplications to compute the current minor
Definition: Minor.h:427
int _potentialRetrievals
-1 iff cache is not used, otherwise the maximum number of potential retrievals of this minor (e...
Definition: Minor.h:421
poly _result
a store for the actual value of the minor
Definition: Minor.h:805
return result
Definition: facAbsBiFact.cc:76
#define pCopy(p)
return a copy of the poly
Definition: polys.h:156
PolyMinorValue::PolyMinorValue ( const PolyMinorValue mv)

Copy constructor for creating a deep copy.

Definition at line 1149 of file Minor.cc.

1150 {
1151  _result = pCopy(mv.getResult());
1152  _retrievals = mv.getRetrievals();
1155  _additions = mv.getAdditions();
1158 }
int getAccumulatedMultiplications() const
A method for accessing the multiplications performed while computing this minor, including all nested...
Definition: Minor.cc:894
int getAccumulatedAdditions() const
A method for accessing the additions performed while computing this minor, including all nested addit...
Definition: Minor.cc:899
int _accumulatedSum
a store for the accumulated number of additions to compute the current minor; This also includes all ...
Definition: Minor.h:450
int getAdditions() const
A method for accessing the additions performed while computing this minor.
Definition: Minor.cc:889
int _additions
a store for the actual number of additions to compute the current minor
Definition: Minor.h:432
int _accumulatedMult
a store for the accumulated number of multiplications to compute the current minor; This also include...
Definition: Minor.h:441
poly getResult() const
Accessor for the private field _result.
Definition: Minor.cc:1103
int _retrievals
-1 iff cache is not used, otherwise the number of retrievals so far of the current minor ...
Definition: Minor.h:414
int getRetrievals() const
A method for accessing the number of retrievals of this minor.
Definition: Minor.cc:869
int getMultiplications() const
A method for accessing the multiplications performed while computing this minor.
Definition: Minor.cc:884
int _multiplications
a store for the actual number of multiplications to compute the current minor
Definition: Minor.h:427
int _potentialRetrievals
-1 iff cache is not used, otherwise the maximum number of potential retrievals of this minor (e...
Definition: Minor.h:421
poly _result
a store for the actual value of the minor
Definition: Minor.h:805
int getPotentialRetrievals() const
A method for accessing the maximum number of potential retrievals of this minor.
Definition: Minor.cc:879
#define pCopy(p)
return a copy of the poly
Definition: polys.h:156
PolyMinorValue::PolyMinorValue ( )

just to make the compiler happy

Definition at line 1087 of file Minor.cc.

1088 {
1089  _result = NULL;
1090  _multiplications = -1;
1091  _additions = -1;
1092  _accumulatedMult = -1;
1093  _accumulatedSum = -1;
1094  _potentialRetrievals = -1;
1095  _retrievals = -1;
1096 }
int _accumulatedSum
a store for the accumulated number of additions to compute the current minor; This also includes all ...
Definition: Minor.h:450
int _additions
a store for the actual number of additions to compute the current minor
Definition: Minor.h:432
int _accumulatedMult
a store for the accumulated number of multiplications to compute the current minor; This also include...
Definition: Minor.h:441
int _retrievals
-1 iff cache is not used, otherwise the number of retrievals so far of the current minor ...
Definition: Minor.h:414
int _multiplications
a store for the actual number of multiplications to compute the current minor
Definition: Minor.h:427
#define NULL
Definition: omList.c:10
int _potentialRetrievals
-1 iff cache is not used, otherwise the maximum number of potential retrievals of this minor (e...
Definition: Minor.h:421
poly _result
a store for the actual value of the minor
Definition: Minor.h:805
PolyMinorValue::~PolyMinorValue ( )
virtual

Destructor.

Definition at line 1098 of file Minor.cc.

1099 {
1101 }
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:12
static void p_Delete(poly *p, const ring r)
Definition: p_polys.h:849
poly _result
a store for the actual value of the minor
Definition: Minor.h:805

Member Function Documentation

poly PolyMinorValue::getResult ( ) const

Accessor for the private field _result.

Returns
the result encoded in this class instance

Definition at line 1103 of file Minor.cc.

1104 {
1105  return _result;
1106 }
poly _result
a store for the actual value of the minor
Definition: Minor.h:805
int PolyMinorValue::getWeight ( ) const
virtual

Accessor for the current weight of this class instance.

Returns
the current weight of this class instance

Reimplemented from MinorValue.

Definition at line 1108 of file Minor.cc.

1109 {
1110  /* put measure for size of PolyMinorValue here, e.g. the number of monomials
1111  in the cached polynomial */
1112  return pLength(_result); // the number of monomials in the polynomial
1113 }
static int pLength(poly a)
Definition: p_polys.h:189
poly _result
a store for the actual value of the minor
Definition: Minor.h:805
void PolyMinorValue::operator= ( const PolyMinorValue mv)

Assignment operator which creates a deep copy.

Definition at line 1160 of file Minor.cc.

1161 {
1162  if (_result != mv.getResult()) pDelete(&_result);
1163  _result = pCopy(mv.getResult());
1164  _retrievals = mv.getRetrievals();
1167  _additions = mv.getAdditions();
1170 }
int getAccumulatedMultiplications() const
A method for accessing the multiplications performed while computing this minor, including all nested...
Definition: Minor.cc:894
int getAccumulatedAdditions() const
A method for accessing the additions performed while computing this minor, including all nested addit...
Definition: Minor.cc:899
int _accumulatedSum
a store for the accumulated number of additions to compute the current minor; This also includes all ...
Definition: Minor.h:450
int getAdditions() const
A method for accessing the additions performed while computing this minor.
Definition: Minor.cc:889
int _additions
a store for the actual number of additions to compute the current minor
Definition: Minor.h:432
int _accumulatedMult
a store for the accumulated number of multiplications to compute the current minor; This also include...
Definition: Minor.h:441
poly getResult() const
Accessor for the private field _result.
Definition: Minor.cc:1103
int _retrievals
-1 iff cache is not used, otherwise the number of retrievals so far of the current minor ...
Definition: Minor.h:414
int getRetrievals() const
A method for accessing the number of retrievals of this minor.
Definition: Minor.cc:869
int getMultiplications() const
A method for accessing the multiplications performed while computing this minor.
Definition: Minor.cc:884
int _multiplications
a store for the actual number of multiplications to compute the current minor
Definition: Minor.h:427
#define pDelete(p_ptr)
Definition: polys.h:157
int _potentialRetrievals
-1 iff cache is not used, otherwise the maximum number of potential retrievals of this minor (e...
Definition: Minor.h:421
poly _result
a store for the actual value of the minor
Definition: Minor.h:805
int getPotentialRetrievals() const
A method for accessing the maximum number of potential retrievals of this minor.
Definition: Minor.cc:879
#define pCopy(p)
return a copy of the poly
Definition: polys.h:156
string PolyMinorValue::toString ( ) const
virtual

A method for providing a printable version of the represented MinorValue.

Returns
a printable version of the given instance as instance of class string

Reimplemented from MinorValue.

Definition at line 1115 of file Minor.cc.

1116 {
1117  char h[20];
1118 
1119  /* Let's see whether a cache has been used to compute this MinorValue: */
1120  bool cacheHasBeenUsed = true;
1121  if (this->getRetrievals() == -1) cacheHasBeenUsed = false;
1122 
1123  string s = pString(_result);
1124  s += " [retrievals: ";
1125  if (cacheHasBeenUsed) { sprintf(h, "%d", this->getRetrievals()); s += h; }
1126  else s += "/";
1127  s += " (of ";
1128  if (cacheHasBeenUsed)
1129  {
1130  sprintf(h, "%d", this->getPotentialRetrievals());
1131  s += h;
1132  }
1133  else s += "/";
1134  s += "), *: ";
1135  sprintf(h, "%d", this->getMultiplications()); s += h;
1136  s += " (accumulated: ";
1137  sprintf(h, "%d", this->getAccumulatedMultiplications()); s += h;
1138  s += "), +: ";
1139  sprintf(h, "%d", this->getAdditions()); s += h;
1140  s += " (accumulated: ";
1141  sprintf(h, "%d", this->getAccumulatedAdditions()); s += h;
1142  s += "), rank: ";
1143  if (cacheHasBeenUsed) { sprintf(h, "%d", this->getUtility()); s += h; }
1144  else s += "/";
1145  s += "]";
1146  return s;
1147 }
int getAccumulatedMultiplications() const
A method for accessing the multiplications performed while computing this minor, including all nested...
Definition: Minor.cc:894
const CanonicalForm int s
Definition: facAbsFact.cc:55
char * pString(poly p)
Definition: polys.h:277
int getAccumulatedAdditions() const
A method for accessing the additions performed while computing this minor, including all nested addit...
Definition: Minor.cc:899
int getAdditions() const
A method for accessing the additions performed while computing this minor.
Definition: Minor.cc:889
int getRetrievals() const
A method for accessing the number of retrievals of this minor.
Definition: Minor.cc:869
int getMultiplications() const
A method for accessing the multiplications performed while computing this minor.
Definition: Minor.cc:884
int getUtility() const
A method for obtaining a rank measure for theiven MinorValue.
Definition: Minor.cc:927
poly _result
a store for the actual value of the minor
Definition: Minor.h:805
static Poly * h
Definition: janet.cc:978
int getPotentialRetrievals() const
A method for accessing the maximum number of potential retrievals of this minor.
Definition: Minor.cc:879

Field Documentation

poly PolyMinorValue::_result
private

a store for the actual value of the minor

Definition at line 805 of file Minor.h.


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