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);
107 static int Faculty (
const int i);
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);
514 IntMinorValue getNextMinor (
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,
737 PolyMinorValue getNextMinor (
const char* algorithm,
const ideal& iSB);
Class MinorProcessor implements the key methods for computing one or all sub-determinantes of a given...
static int IOverJ(const int i, const int j)
A static method for computing the binomial coefficient i over j.
int _containerColumns
private store for the number of columns in the container minor; This is set by MinorProcessor::define...
Class PolyMinorProcessor is derived from class MinorProcessor.
void print() const
A method for printing a string representation of the given MinorProcessor to std::cout.
Compatiblity layer for legacy polynomial operations (over currRing)
int _rows
private store for the number of rows in the underlying matrix
virtual std::string toString() const
A method for providing a printable version of the represented MinorProcessor.
MinorKey _minor
private store for the rows and columns of the minor of interest; Usually, this minor will encode subs...
int _columns
private store for the number of columns in the underlying matrix
int _containerRows
private store for the number of rows in the container minor; This is set by MinorProcessor::defineSub...
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.
Class IntMinorValue is derived from MinorValue and can be used for representing values in a cache for...
MinorProcessor()
The default constructor.
int _minorSize
private store for the dimension of the minor(s) of interest
Class Cache is a template-implementation of a cache with arbitrary classes for representing keys and ...
bool hasNextMinor()
A method for checking whether there is a next choice of rows and columns when iterating through all m...
int * _intMatrix
private store for integer matrix entries
bool setNextKeys(const int k)
A method for iterating through all possible subsets of k rows and k columns inside a pre-defined subm...
void getCurrentRowIndices(int *const target) const
A method for obtaining the current set of rows corresponding to the current minor when iterating thro...
static int Faculty(const int i)
A static method for computing the factorial of i.
virtual bool isEntryZero(const int absoluteRowIndex, const int absoluteColumnIndex) const
A method for testing whether a matrix entry is zero.
void getCurrentColumnIndices(int *const target) const
A method for obtaining the current set of columns corresponding to the current minor when iterating t...
Class PolyMinorValue is derived from MinorValue and can be used for representing values in a cache fo...
MinorKey _container
private store for the rows and columns of the container minor within the underlying matrix; _containe...
BOOLEAN dimension(leftv res, leftv args)
Class MinorKey can be used for representing keys in a cache for sub-determinantes; see class Cache...
void printCounters(char *prefix, bool resetToZero)
poly * _polyMatrix
private store for polynomial matrix entries
void setMinorSize(const int minorSize)
Sets the size of the minor(s) of interest.
Class IntMinorProcessor is derived from class MinorProcessor.
int getBestLine(const int k, const MinorKey &mk) const
A method for identifying the row or column with the most zeros.
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.
virtual ~MinorProcessor()
A destructor for deleting an instance.