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

Private Attributes

poly _result
 a store for the actual value of the minor
 

Additional Inherited Members

- Static Public Member Functions inherited from MinorValue
static void SetRankingStrategy (const int rankingStrategy)
 A method for determining the value ranking strategy.
 
- Protected Member Functions inherited from MinorValue
int rankMeasure1 () const
 A method for obtaining a rank measure for the given MinorValue.
 
int rankMeasure2 () const
 A method for obtaining a rank measure for the given MinorValue.
 
int rankMeasure3 () const
 A method for obtaining a rank measure for the given MinorValue.
 
int rankMeasure4 () const
 A method for obtaining a rank measure for the given MinorValue.
 
int rankMeasure5 () const
 A method for obtaining a rank measure for the given MinorValue.
 
- Static Protected Member Functions inherited from MinorValue
static int GetRankingStrategy ()
 Accessor for the static private field g_rankingStrategy.
 
- Protected Attributes inherited from MinorValue
int _retrievals
 -1 iff cache is not used, otherwise the number of retrievals so far of the current minor
 
int _potentialRetrievals
 -1 iff cache is not used, otherwise the maximum number of potential retrievals of this minor (e.g.
 
int _multiplications
 a store for the actual number of multiplications to compute the current minor
 
int _additions
 a store for the actual number of additions to compute the current minor
 
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.
 
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.
 
STATIC_VAR int g_rankingStrategy = -1
 private store for the current value ranking strategy; This member can be set using MinorValue::SetRankingStrategy (const int).
 

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}
int _additions
a store for the actual number of additions to compute the current minor
Definition Minor.h:432
int _potentialRetrievals
-1 iff cache is not used, otherwise the maximum number of potential retrievals of this minor (e....
Definition Minor.h:421
int _accumulatedMult
a store for the accumulated number of multiplications to compute the current minor; This also include...
Definition Minor.h:441
int _accumulatedSum
a store for the accumulated number of additions to compute the current minor; This also includes all ...
Definition Minor.h:450
int _multiplications
a store for the actual number of multiplications to compute the current minor
Definition Minor.h:427
int _retrievals
-1 iff cache is not used, otherwise the number of retrievals so far of the current minor
Definition Minor.h:414
poly _result
a store for the actual value of the minor
Definition Minor.h:805
return result
#define pCopy(p)
return a copy of the poly
Definition polys.h:186

◆ PolyMinorValue() [2/3]

PolyMinorValue::PolyMinorValue ( const PolyMinorValue & mv)

Copy constructor for creating a deep copy.

Definition at line 1148 of file Minor.cc.

1149{
1150 _result = pCopy(mv.getResult());
1154 _additions = mv.getAdditions();
1157}
int getPotentialRetrievals() const
A method for accessing the maximum number of potential retrievals of this minor.
Definition Minor.cc:878
int getAdditions() const
A method for accessing the additions performed while computing this minor.
Definition Minor.cc:888
int getAccumulatedAdditions() const
A method for accessing the additions performed while computing this minor, including all nested addit...
Definition Minor.cc:898
int getMultiplications() const
A method for accessing the multiplications performed while computing this minor.
Definition Minor.cc:883
int getRetrievals() const
A method for accessing the number of retrievals of this minor.
Definition Minor.cc:868
int getAccumulatedMultiplications() const
A method for accessing the multiplications performed while computing this minor, including all nested...
Definition Minor.cc:893
poly getResult() const
Accessor for the private field _result.
Definition Minor.cc:1102

◆ 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;
1094 _retrievals = -1;
1095}
#define NULL
Definition omList.c:12

◆ ~PolyMinorValue()

PolyMinorValue::~PolyMinorValue ( )
virtual

Destructor.

Definition at line 1097 of file Minor.cc.

1098{
1100}
static void p_Delete(poly *p, const ring r)
Definition p_polys.h:903
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition polys.cc:13

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}
static int pLength(poly a)
Definition p_polys.h:190

◆ 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}
int getUtility() const
A method for obtaining a rank measure for theiven MinorValue.
Definition Minor.cc:926
const CanonicalForm int s
Definition facAbsFact.cc:51
STATIC_VAR Poly * h
Definition janet.cc:971
char * pString(poly p)
Definition polys.h:307

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: