My Project  debian-1:4.1.1-p2+ds-4build3
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() [1/3]

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 1070 of file Minor.cc.

1076 {
1077  _result = pCopy(result);
1078  _multiplications = multiplications;
1079  _additions = additions;
1080  _accumulatedMult = accumulatedMultiplications;
1081  _accumulatedSum = accumulatedAdditions;
1082  _potentialRetrievals = potentialRetrievals;
1083  _retrievals = retrievals;
1084 }

◆ PolyMinorValue() [2/3]

PolyMinorValue::PolyMinorValue ( const PolyMinorValue mv)

Copy constructor for creating a deep copy.

Definition at line 1148 of file Minor.cc.

◆ PolyMinorValue() [3/3]

PolyMinorValue::PolyMinorValue ( )

just to make the compiler happy

Definition at line 1086 of file Minor.cc.

1087 {
1088  _result = NULL;
1089  _multiplications = -1;
1090  _additions = -1;
1091  _accumulatedMult = -1;
1092  _accumulatedSum = -1;
1093  _potentialRetrievals = -1;
1094  _retrievals = -1;
1095 }

◆ ~PolyMinorValue()

PolyMinorValue::~PolyMinorValue ( )
virtual

Destructor.

Definition at line 1097 of file Minor.cc.

1098 {
1100 }

Member Function Documentation

◆ getResult()

poly PolyMinorValue::getResult ( ) const

Accessor for the private field _result.

Returns
the result encoded in this class instance

Definition at line 1102 of file Minor.cc.

1103 {
1104  return _result;
1105 }

◆ getWeight()

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 1107 of file Minor.cc.

1108 {
1109  /* put measure for size of PolyMinorValue here, e.g. the number of monomials
1110  in the cached polynomial */
1111  return pLength(_result); // the number of monomials in the polynomial
1112 }

◆ operator=()

void PolyMinorValue::operator= ( const PolyMinorValue mv)

Assignment operator which creates a deep copy.

Definition at line 1159 of file Minor.cc.

◆ toString()

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 1114 of file Minor.cc.

1115 {
1116  char h[20];
1117 
1118  /* Let's see whether a cache has been used to compute this MinorValue: */
1119  bool cacheHasBeenUsed = true;
1120  if (this->getRetrievals() == -1) cacheHasBeenUsed = false;
1121 
1122  string s = pString(_result);
1123  s += " [retrievals: ";
1124  if (cacheHasBeenUsed) { sprintf(h, "%d", this->getRetrievals()); s += h; }
1125  else s += "/";
1126  s += " (of ";
1127  if (cacheHasBeenUsed)
1128  {
1129  sprintf(h, "%d", this->getPotentialRetrievals());
1130  s += h;
1131  }
1132  else s += "/";
1133  s += "), *: ";
1134  sprintf(h, "%d", this->getMultiplications()); s += h;
1135  s += " (accumulated: ";
1136  sprintf(h, "%d", this->getAccumulatedMultiplications()); s += h;
1137  s += "), +: ";
1138  sprintf(h, "%d", this->getAdditions()); s += h;
1139  s += " (accumulated: ";
1140  sprintf(h, "%d", this->getAccumulatedAdditions()); s += h;
1141  s += "), rank: ";
1142  if (cacheHasBeenUsed) { sprintf(h, "%d", this->getUtility()); s += h; }
1143  else s += "/";
1144  s += "]";
1145  return s;
1146 }

Field Documentation

◆ _result

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:
MinorValue::getAccumulatedMultiplications
int getAccumulatedMultiplications() const
A method for accessing the multiplications performed while computing this minor, including all nested...
Definition: Minor.cc:893
PolyMinorValue::_result
poly _result
a store for the actual value of the minor
Definition: Minor.h:805
MinorValue::getMultiplications
int getMultiplications() const
A method for accessing the multiplications performed while computing this minor.
Definition: Minor.cc:883
result
return result
Definition: facAbsBiFact.cc:76
MinorValue::_additions
int _additions
a store for the actual number of additions to compute the current minor
Definition: Minor.h:432
MinorValue::getRetrievals
int getRetrievals() const
A method for accessing the number of retrievals of this minor.
Definition: Minor.cc:868
MinorValue::_retrievals
int _retrievals
-1 iff cache is not used, otherwise the number of retrievals so far of the current minor
Definition: Minor.h:414
MinorValue::getUtility
int getUtility() const
A method for obtaining a rank measure for theiven MinorValue.
Definition: Minor.cc:926
pDelete
#define pDelete(p_ptr)
Definition: polys.h:173
pString
char * pString(poly p)
Definition: polys.h:292
pLength
static unsigned pLength(poly a)
Definition: p_polys.h:192
currRing
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:13
MinorValue::_accumulatedSum
int _accumulatedSum
a store for the accumulated number of additions to compute the current minor; This also includes all ...
Definition: Minor.h:450
MinorValue::_multiplications
int _multiplications
a store for the actual number of multiplications to compute the current minor
Definition: Minor.h:427
h
static Poly * h
Definition: janet.cc:972
MinorValue::getAccumulatedAdditions
int getAccumulatedAdditions() const
A method for accessing the additions performed while computing this minor, including all nested addit...
Definition: Minor.cc:898
MinorValue::_potentialRetrievals
int _potentialRetrievals
-1 iff cache is not used, otherwise the maximum number of potential retrievals of this minor (e....
Definition: Minor.h:421
MinorValue::_accumulatedMult
int _accumulatedMult
a store for the accumulated number of multiplications to compute the current minor; This also include...
Definition: Minor.h:441
PolyMinorValue::getResult
poly getResult() const
Accessor for the private field _result.
Definition: Minor.cc:1102
p_Delete
static void p_Delete(poly *p, const ring r)
Definition: p_polys.h:857
MinorValue::getAdditions
int getAdditions() const
A method for accessing the additions performed while computing this minor.
Definition: Minor.cc:888
NULL
#define NULL
Definition: omList.c:10
MinorValue::getPotentialRetrievals
int getPotentialRetrievals() const
A method for accessing the maximum number of potential retrievals of this minor.
Definition: Minor.cc:878
s
const CanonicalForm int s
Definition: facAbsFact.cc:55
pCopy
#define pCopy(p)
return a copy of the poly
Definition: polys.h:172