 |
My Project
debian-1:4.1.1-p2+ds-4build1
|
Go to the documentation of this file. 1 #ifndef MINOR_PROCESSOR_H
2 #define MINOR_PROCESSOR_H
86 const int containerMinorSize,
88 const bool multipleMinors);
98 static int IOverJ (
const int i,
const int j);
196 virtual bool isEntryZero (
const int absoluteRowIndex,
197 const int absoluteColumnIndex)
const;
222 const int numberOfColumns,
const int* columnIndices);
313 int getEntry (
const int rowIndex,
const int columnIndex)
const;
342 const bool multipleMinors,
374 const int characteristic,
399 const int characteristic,
409 const int absoluteColumnIndex)
const;
430 void defineMatrix (
const int numberOfRows,
const int numberOfColumns,
459 const int* columnIndices,
460 const int characteristic,
const ideal& iSB,
461 const char* algorithm);
489 const int* columnIndices,
491 const int characteristic,
const ideal& iSB);
515 const char* algorithm);
542 const int characteristic,
574 poly
getEntry (
const int rowIndex,
const int columnIndex)
const;
598 const bool multipleMinors,
649 const int absoluteColumnIndex)
const;
670 void defineMatrix (
const int numberOfRows,
const int numberOfColumns,
671 const poly* polyMatrix);
694 const int* columnIndices,
const char* algorithm,
717 const int* columnIndices,
IntMinorValue getMinorPrivateLaplace(const int k, const MinorKey &mk, const bool multipleMinors, Cache< MinorKey, IntMinorValue > &c, int characteristic, const ideal &iSB)
A method for computing the value of a minor, using a cache.
MinorProcessor()
The default constructor.
poly * _polyMatrix
private store for polynomial matrix entries
std::string toString() const
A method for providing a printable version of the represented MinorProcessor.
void setMinorSize(const int minorSize)
Sets the size of the minor(s) of interest.
virtual ~MinorProcessor()
A destructor for deleting an instance.
bool isEntryZero(const int absoluteRowIndex, const int absoluteColumnIndex) const
A method for testing whether a matrix entry is zero.
IntMinorValue getMinor(const int dimension, const int *rowIndices, const int *columnIndices, const int characteristic, const ideal &iSB, const char *algorithm)
A method for computing the value of a minor without using a cache.
Class MinorKey can be used for representing keys in a cache for sub-determinantes; see class Cache.
PolyMinorValue getMinor(const int dimension, const int *rowIndices, const int *columnIndices, const char *algorithm, const ideal &iSB)
A method for computing the value of a minor, without using a cache.
std::string toString() const
A method for providing a printable version of the represented MinorProcessor.
PolyMinorProcessor()
A constructor for creating an instance.
int getEntry(const int rowIndex, const int columnIndex) const
A method for retrieving the matrix entry.
MinorKey _container
private store for the rows and columns of the container minor within the underlying matrix; _containe...
virtual bool isEntryZero(const int absoluteRowIndex, const int absoluteColumnIndex) const
A method for testing whether a matrix entry is zero.
poly getEntry(const int rowIndex, const int columnIndex) const
A method for retrieving the matrix entry.
IntMinorValue getMinorPrivateBareiss(const int k, const MinorKey &mk, const int characteristic, const ideal &iSB)
A method for computing the value of a minor using Bareiss's algorithm.
Class PolyMinorProcessor is derived from class MinorProcessor.
void printCounters(char *prefix, bool resetToZero)
Class IntMinorValue is derived from MinorValue and can be used for representing values in a cache for...
int _rows
private store for the number of rows in the underlying matrix
IntMinorValue getNextMinor(const int characteristic, const ideal &iSB, const char *algorithm)
A method for obtaining the next minor when iterating through all minors of a given size within a pre-...
PolyMinorValue getMinorPrivateLaplace(const int k, const MinorKey &mk, const bool multipleMinors, Cache< MinorKey, PolyMinorValue > &c, const ideal &iSB)
A method for computing the value of a minor, using a cache.
static int NumberOfRetrievals(const int rows, const int columns, const int containerMinorSize, const int minorSize, const bool multipleMinors)
A static method for computing the maximum number of retrievals of a minor.
int * _intMatrix
private store for integer matrix entries
MinorKey _minor
private store for the rows and columns of the minor of interest; Usually, this minor will encode subs...
int _containerRows
private store for the number of rows in the container minor; This is set by MinorProcessor::defineSub...
void defineMatrix(const int numberOfRows, const int numberOfColumns, const poly *polyMatrix)
A method for defining a matrix with polynomial entries.
PolyMinorValue getMinorPrivateBareiss(const int k, const MinorKey &mk, const ideal &iSB)
A method for computing the value of a minor, without using a cache.
Class IntMinorProcessor is derived from class MinorProcessor.
void defineSubMatrix(const int numberOfRows, const int *rowIndices, const int numberOfColumns, const int *columnIndices)
A method for defining a sub-matrix within a pre-defined matrix.
static int IOverJ(const int i, const int j)
A static method for computing the binomial coefficient i over j.
int _minorSize
private store for the dimension of the minor(s) of interest
BOOLEAN dimension(leftv res, leftv args)
bool hasNextMinor()
A method for checking whether there is a next choice of rows and columns when iterating through all m...
IntMinorProcessor()
A constructor for creating an instance.
Class PolyMinorValue is derived from MinorValue and can be used for representing values in a cache fo...
Class MinorProcessor implements the key methods for computing one or all sub-determinantes of a given...
bool setNextKeys(const int k)
A method for iterating through all possible subsets of k rows and k columns inside a pre-defined subm...
int getBestLine(const int k, const MinorKey &mk) const
A method for identifying the row or column with the most zeros.
void getCurrentRowIndices(int *const target) const
A method for obtaining the current set of rows corresponding to the current minor when iterating thro...
bool isEntryZero(const int absoluteRowIndex, const int absoluteColumnIndex) const
A method for testing whether a matrix entry is zero.
~PolyMinorProcessor()
A destructor for deleting an instance.
int _containerColumns
private store for the number of columns in the container minor; This is set by MinorProcessor::define...
void defineMatrix(const int numberOfRows, const int numberOfColumns, const int *matrix)
A method for defining a matrix with integer entries.
void print() const
A method for printing a string representation of the given MinorProcessor to std::cout.
void getCurrentColumnIndices(int *const target) const
A method for obtaining the current set of columns corresponding to the current minor when iterating t...
Class Cache is a template-implementation of a cache with arbitrary classes for representing keys and ...
static int Faculty(const int i)
A static method for computing the factorial of i.
~IntMinorProcessor()
A destructor for deleting an instance.
virtual std::string toString() const
A method for providing a printable version of the represented MinorProcessor.
PolyMinorValue getNextMinor(const char *algorithm, const ideal &iSB)
A method for obtaining the next minor when iterating through all minors of a given size within a pre-...
int _columns
private store for the number of columns in the underlying matrix