My Project
Loading...
Searching...
No Matches
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...
 
virtual int getWeight () const
 A method for retrieving the weight of a given MinorValue. 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...
 
virtual std::string toString () const
 A method for providing a printable version of the represented 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_VAR 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}
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
Definition: facAbsBiFact.cc:75
#define pCopy(p)
return a copy of the poly
Definition: polys.h:185

◆ 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:899
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:188

◆ 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:306

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: