![]() |
CMR
1.3.0
|
#include "seymour_internal.h"#include "env_internal.h"#include "densematrix.h"#include "hashtable.h"#include <time.h>Classes | |
| struct | ElementData |
| Element specific data for the enumeration of 3-separations. More... | |
Functions | |
| static CMR_ERROR | dbgPrintDenseSequence (CMR *cmr, CMR_SEYMOUR_NODE *node) |
| static CMR_ERROR | createHashVector (CMR *cmr, long long **phashVector, size_t size) |
| static CMR_ERROR | initializeHashing (CMR *cmr, DenseBinaryMatrix *dense, ElementData *majorData, CMR_LISTHASHTABLE *majorHashtable, size_t numMajors, size_t *processedMinors, size_t numProcessedMinors, long long *hashVector, bool isRow) |
Initializes the hashtable majorHashtable for unprocessed rows/columns. | |
| static CMR_ERROR | updateRepresentative (CMR *cmr, DenseBinaryMatrix *dense, ElementData *majorData, CMR_LISTHASHTABLE *majorHashtable, size_t *processedMinors, size_t numProcessedMinors, size_t majorIndex, bool isRow) |
Ensures that the representative entry for row/column index is correct. | |
| static CMR_ERROR | updateHashtable (CMR *cmr, ElementData *majorData, size_t *processedMajors, size_t numProcessedMajors, CMR_LISTHASHTABLE *majorHashtable) |
| static CMR_ERROR | prepareSearch (CMR *cmr, DenseBinaryMatrix *matrix, ElementData *rowData, ElementData *columnData, CMR_ELEMENT *pstartElement) |
| static CMR_ERROR | searchShortestPath (CMR *cmr, DenseBinaryMatrix *dense, ElementData *rowData, ElementData *columnData, CMR_ELEMENT *preachedTarget) |
| static CMR_ERROR | pivot (CMR *cmr, CMR_SEYMOUR_NODE *dec, size_t pivotRow, size_t pivotColumn) |
Carries out a pivot in the dense matrix of dec. | |
| static CMR_ERROR | applyPivots (CMR *cmr, CMR_SEYMOUR_NODE *dec, ElementData *rowData, ElementData *columnData, CMR_ELEMENT reachedTarget, CMR_ELEMENT *newElements) |
| static CMR_ERROR | addElement (CMR *cmr, CMR_SEYMOUR_NODE *dec, ElementData *majorData, ElementData *minorData, CMR_LISTHASHTABLE *minorHashtable, long long *hashVector, size_t numMinor, size_t *processedMajors, size_t *pnumProcessedMajors, size_t newMajor, size_t *nestedMinorsElements, bool isRow) |
| CMR_ERROR | CMRregularityExtendNestedMinorSequence (CMR *cmr, DecompositionTask *task, DecompositionQueue *queue) |
| Extends an incomplete sequence of nested 3-connected minors for the matrix of a decomposition node. | |
| CMR_ERROR | CMRregularityInitNestedMinorSequence (CMR *cmr, DecompositionTask *task, CMR_SUBMAT *wheelSubmatrix) |
Initializes a sequence of nested minors with one minor, for a given wheelSubmatrix. | |
|
static |
| cmr | CMR environment. |
| dec | Decomposition node. |
| majorData | Major index data. |
| minorData | Minor index data. |
| minorHashtable | Minor index hashtable. |
| hashVector | Hash vector. |
| numMinor | Number of minor indices. |
| processedMajors | Array of processed major indices. |
| pnumProcessedMajors | Pointer to number of processed major indices. |
| newMajor | Major index to add. |
| nestedMinorsElements | Mapping from nested minor elements to elements of matrix. |
| isRow | Whether major means row. |
|
static |
| cmr | CMR environment. |
| dec | Decomposition node. |
| rowData | Row data. |
| columnData | Column data. |
| reachedTarget | Reached target row/column. |
| newElements | Array of length 3 for storing the new elements (followed by 0s). |
| CMR_ERROR CMRregularityExtendNestedMinorSequence | ( | CMR * | cmr, |
| DecompositionTask * | task, | ||
| DecompositionQueue * | queue | ||
| ) |
Extends an incomplete sequence of nested 3-connected minors for the matrix of a decomposition node.
In case the matrix is not 3-connected, a 2-separation is applied to dec and the function terminates, filling the relevant variables of dec.
| cmr | CMR environment. |
| task | Task to be processed; already removed from the list of unprocessed tasks. |
| queue | Queue of unprocessed nodes. |
| CMR_ERROR CMRregularityInitNestedMinorSequence | ( | CMR * | cmr, |
| DecompositionTask * | task, | ||
| CMR_SUBMAT * | wheelSubmatrix | ||
| ) |
Initializes a sequence of nested minors with one minor, for a given wheelSubmatrix.
| cmr | CMR environment. |
| task | Task to be processed; already removed from the list of unprocessed tasks. |
| wheelSubmatrix | Wheel submatrix of task->dec. |
| cmr | CMR environment. |
| phashVector | Pointer for storing the hash vector. |
| size | Size of hash vector. |
|
static |
| cmr | CMR environment. |
| node | Seymour node whose dense matrix to print. |
|
static |
Initializes the hashtable majorHashtable for unprocessed rows/columns.
Initializes the hashtable majorHashtable for row/column vectors of unprocessed rows/columns with respect to those columns/rows that were already processed.
| cmr | CMR environment. |
| dense | Matrix. |
| majorData | Major index data. |
| majorHashtable | Major index hashtable. |
| numMajors | Number of major indices. |
| processedMinors | Array with processed minor indices. |
| numProcessedMinors | Number of processed minor indices. |
| hashVector | Hash vector. |
| isRow | Whether major means row. |
|
static |
Carries out a pivot in the dense matrix of dec.
Also swaps the element entries of dec->denseRowsOriginal and dec->denseColumnsOriginal.
| cmr | CMR environment. |
| dec | decomposition node. |
| pivotRow | Pivot row. |
| pivotColumn | Pivot column. |
|
static |
| cmr | CMR environment. |
| matrix | Nested matrix. |
| rowData | Row data. |
| columnData | Column data. |
| pstartElement | Pointer for storing an element for starting the search. |
|
static |
| cmr | CMR environment. |
| dense | Remaining matrix. |
| rowData | Row data. |
| columnData | Column data. |
| preachedTarget | Pointer for storing the reached target row/column. |
|
static |
| cmr | CMR environment. |
| majorData | Major index data. |
| processedMajors | Array of processed major indices. |
| numProcessedMajors | Number of processed major indices. |
| majorHashtable | Major index hashtable. |
|
static |
Ensures that the representative entry for row/column index is correct.
Checks the respective hashtable.
| cmr | CMR environment. |
| dense | Matrix. |
| majorData | Major index data. |
| majorHashtable | Major index hashtable. |
| processedMinors | Array of processed minor indices. |
| numProcessedMinors | Number of processed minor indices. |
| majorIndex | Major index to update. |
| isRow | Whether major means rows. |