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.
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 ...
virtual bool isEntryZero(const int absoluteRowIndex, const int absoluteColumnIndex) const
A method for testing whether a matrix entry is zero.
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
int getBestLine(const int k, const MinorKey &mk) const
A method for identifying the row or column with the most zeros.
bool setNextKeys(const int k)
A method for iterating through all possible subsets of k rows and k columns inside a pre-defined subm...
static int Faculty(const int i)
A static method for computing the factorial of i.
Class PolyMinorValue is derived from MinorValue and can be used for representing values in a cache fo...
void getCurrentColumnIndices(int *const target) const
A method for obtaining the current set of columns corresponding to the current minor when iterating t...
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)
void getCurrentRowIndices(int *const target) const
A method for obtaining the current set of rows corresponding to the current minor when iterating thro...
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.
void print() const
A method for printing a string representation of the given MinorProcessor to std::cout.
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.