1 #ifndef MINOR_PROCESSOR_H 2 #define MINOR_PROCESSOR_H 89 const int containerMinorSize,
91 const bool multipleMinors);
101 static int IOverJ (
const int i,
const int j);
110 static int Faculty (
const int i);
199 virtual bool isEntryZero (
const int absoluteRowIndex,
200 const int absoluteColumnIndex)
const;
225 const int numberOfColumns,
const int* columnIndices);
316 int getEntry (
const int rowIndex,
const int columnIndex)
const;
345 const bool multipleMinors,
377 const int characteristic,
402 const int characteristic,
412 const int absoluteColumnIndex)
const;
433 void defineMatrix (
const int numberOfRows,
const int numberOfColumns,
462 const int* columnIndices,
463 const int characteristic,
const ideal& iSB,
464 const char* algorithm);
492 const int* columnIndices,
494 const int characteristic,
const ideal& iSB);
517 IntMinorValue getNextMinor (
const int characteristic,
const ideal& iSB,
518 const char* algorithm);
545 const int characteristic,
577 poly getEntry (
const int rowIndex,
const int columnIndex)
const;
601 const bool multipleMinors,
652 const int absoluteColumnIndex)
const;
673 void defineMatrix (
const int numberOfRows,
const int numberOfColumns,
674 const poly* polyMatrix);
697 const int* columnIndices,
const char* algorithm,
720 const int* columnIndices,
740 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.
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)
The following sip_sideal structure has many different uses thoughout Singular. Basic use-cases for it...
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.