My Project
|
a data structure to represent a MatrixBlock object (derived from MatrixType) More...
#include <OSMatrix.h>
Public Member Functions | |
MatrixBlock () | |
-------— Methods for class MatrixBlock -------— | |
~MatrixBlock () | |
virtual ENUM_MATRIX_CONSTRUCTOR_TYPE | getNodeType () |
virtual std::string | getNodeName () |
virtual ENUM_MATRIX_TYPE | getMatrixType () |
virtual std::string | getMatrixNodeInXML () |
virtual bool | alignsOnBlockBoundary (int firstRow, int firstColumn, int nRows, int nCols) |
Check whether a submatrix aligns with the block partition of a matrix or block or other constructor. | |
virtual bool | expandElements (bool rowMajor) |
A method to expand a matrix or block The result is a GeneralSparseMatrix object of constant matrix elements, variable references, linear or nonlinear expressions, or objective and constraint references (possibly mixed). | |
virtual MatrixBlock * | cloneMatrixNode () |
The implementation of the virtual functions. | |
bool | IsEqual (MatrixBlock *that) |
A function to check for the equality of two objects. | |
bool | setRandom (double density, bool conformant, int iMin, int iMax) |
A function to make a random instance of this class. | |
bool | deepCopyFrom (MatrixBlock *that) |
A function to make a deep copy of an instance of this class. | |
![]() | |
MatrixType () | |
-------— Methods for class MatrixType -------— | |
virtual | ~MatrixType () |
bool | matrixHasBase () |
Several tools to parse the constructor list of a matrix. | |
bool | matrixHasElements () |
bool | matrixHasTransformations () |
bool | matrixHasBlocks () |
int | getNumberOfElementConstructors () |
int | getNumberOfTransformationConstructors () |
int | getNumberOfBlocksConstructors () |
GeneralSparseMatrix * | getMatrixCoefficientsInColumnMajor () |
GeneralSparseMatrix * | getMatrixCoefficientsInRowMajor () |
GeneralSparseMatrix * | getMatrixBlockInColumnMajorForm (int columnIdx, int rowIdx) |
bool | printExpandedMatrix (bool rowMajor) |
a utility routine to print the expanded matrix or block. | |
int | getRowPartitionSize () |
get the size of the row partition of a matrix | |
int * | getRowPartition () |
get the row partition of the matrix | |
int | getColumnPartitionSize () |
get the size of the column partition of a matrix | |
int * | getColumnPartition () |
get the column partition of the matrix | |
GeneralSparseMatrix * | convertToOtherMajor (bool isColumnMajor) |
A method to convert a matrix to the other major. | |
bool | processBlockPartition () |
A method to determine the block structure of a matrixType as defined by the <blocks> element or elements. | |
virtual bool | processBlocks (bool rowMajor, ENUM_MATRIX_SYMMETRY symmetry) |
A method to process a matrixType into a block structure defined by the <blocks> element or elements. | |
virtual bool | processBlocks (int *rowOffset, int rowOffsetSize, int *colOffset, int colOffsetSize, bool rowMajor, ENUM_MATRIX_SYMMETRY symmetry) |
A method to process a matrixType into a specific block structure. | |
GeneralSparseMatrix * | extractBlock (int firstrow, int firstcol, int lastrow, int lastcol, bool rowMajor, ENUM_MATRIX_SYMMETRY symmetry) |
A method to extract a block from a larger matrix The result is a sparse matrix object, depending on the matrixType, of constant matrix elements, variable references, linear or nonlinear expressions, or objective and constraint references (possibly mixed). | |
ExpandedMatrixBlocks * | getBlocks (int *rowPartition, int rowPartitionSize, int *colPartition, int colPartitionSize, bool rowMajor, bool appendToBlockArray) |
A method to extract a block from a larger matrix The result is a sparse matrix object, depending on the matrixType, of constant matrix elements, variable references, linear or nonlinear expressions, or objective and constraint references (possibly mixed). | |
ExpandedMatrixBlocks * | disassembleMatrix (int *rowPartition, int rowPartitionSize, int *colPartition, int colPartitionSize, bool rowMajor, ENUM_MATRIX_SYMMETRY symmetry) |
A method to disassemble a MatrixType into individual blocks of specific structure. | |
bool | IsEqual (MatrixType *that) |
A function to check for the equality of two objects. | |
bool | setRandom (double density, bool conformant, int iMin, int iMax) |
A function to make a random instance of this class. | |
bool | deepCopyFrom (MatrixType *that) |
A function to make a deep copy of an instance of this class. | |
![]() | |
MatrixNode () | |
default constructor | |
virtual | ~MatrixNode () |
destructor | |
std::vector< MatrixNode * > | getPrefixFromNodeTree () |
std::vector< MatrixNode * > | preOrderMatrixNodeTraversal (std::vector< MatrixNode * > *prefixVector) |
std::vector< MatrixNode * > | getPostfixFromNodeTree () |
std::vector< MatrixNode * > | postOrderMatrixNodeTraversal (std::vector< MatrixNode * > *postfixVector) |
virtual bool | IsEqual (MatrixNode *that) |
A function to check for the equality of two objects. | |
bool | setRandom (double density, bool conformant, int iMin, int iMax) |
A function to make a random instance of this class. | |
bool | deepCopyFrom (MatrixNode *that) |
A function to make a deep copy of an instance of this class. | |
Public Attributes | |
int | blockRowIdx |
int | blockColIdx |
![]() | |
ENUM_MATRIX_SYMMETRY | symmetry |
To track the type of symmetry present in the matrix or block. | |
ENUM_MATRIX_TYPE | type |
To track the type of values present in the matrix or block. | |
int | numberOfRows |
int | numberOfColumns |
GeneralSparseMatrix * | ExpandedMatrixInRowMajorForm |
The matrix can be held in expanded form by rows or by columns and in a number of ways stored by blocks. | |
GeneralSparseMatrix * | ExpandedMatrixInColumnMajorForm |
std::vector< ExpandedMatrixBlocks * > | ExpandedMatrixByBlocks |
![]() | |
ENUM_MATRIX_TYPE | matrixType |
matrixType tracks the type of elements contained in this MatrixNode, which may be useful in solver selection For an enumeration of the possible types see OSParameters.h | |
ENUM_MATRIX_CONSTRUCTOR_TYPE | nType |
nType is a unique integer assigned to each type of matrix node (see OSParameters.h) | |
unsigned int | inumberOfChildren |
inumberOfChildren is the number of MatrixNode child elements For the matrix types (OSMatrix and MatrixBlock) this number is not fixed and is temporarily set to 0 | |
MatrixNode ** | m_mChildren |
m_mChildren holds all the children, that is, nodes used in the definition or construction of the current node. | |
a data structure to represent a MatrixBlock object (derived from MatrixType)
Definition at line 2500 of file OSMatrix.h.
MatrixBlock::MatrixBlock | ( | ) |
-------— Methods for class MatrixBlock -------—
Definition at line 6292 of file OSMatrix.cpp.
MatrixBlock::~MatrixBlock | ( | ) |
Definition at line 6302 of file OSMatrix.cpp.
|
virtual |
Reimplemented from MatrixNode.
Definition at line 6309 of file OSMatrix.cpp.
|
virtual |
Implements MatrixNode.
Definition at line 6314 of file OSMatrix.cpp.
|
virtual |
Implements MatrixNode.
Definition at line 6319 of file OSMatrix.cpp.
|
virtual |
The following method writes a matrix node in OSgL format. it is used by OSgLWriter to write a <matrix> element.
Implements MatrixNode.
Definition at line 6332 of file OSMatrix.cpp.
|
virtual |
Check whether a submatrix aligns with the block partition of a matrix or block or other constructor.
firstRow | gives the number of the first row in the submatrix (zero-based) |
firstColumn | gives the number of the first column in the submatrix (zero-based) |
nRows | gives the number of rows in the submatrix |
nColumns | gives the number of columns in the submatrix |
Reimplemented from MatrixType.
Definition at line 6355 of file OSMatrix.cpp.
|
virtual |
A method to expand a matrix or block The result is a GeneralSparseMatrix object of constant matrix elements, variable references, linear or nonlinear expressions, or objective and constraint references (possibly mixed).
(Values depend on the matrixType.) Duplicate elements are removed according to the rules formulated in the OSiL schema.
rowMajor | can be used to store the objects in row major form. |
Reimplemented from MatrixType.
Definition at line 6360 of file OSMatrix.cpp.
|
virtual |
The implementation of the virtual functions.
Implements MatrixNode.
Definition at line 6365 of file OSMatrix.cpp.
bool MatrixBlock::IsEqual | ( | MatrixBlock * | that | ) |
A function to check for the equality of two objects.
Definition at line 6372 of file OSMatrix.cpp.
bool MatrixBlock::setRandom | ( | double | density, |
bool | conformant, | ||
int | iMin, | ||
int | iMax ) |
A function to make a random instance of this class.
density | corresponds to the probability that a particular child element is created |
conformant | if true enforces side constraints not enforceable in the schema (e.g., agreement of "numberOfXXX" attributes and <XXX> children) |
iMin | lowest index value (inclusive) that a variable reference in this matrix can take |
iMax | greatest index value (inclusive) that a variable reference in this matrix can take |
Definition at line 6377 of file OSMatrix.cpp.
bool MatrixBlock::deepCopyFrom | ( | MatrixBlock * | that | ) |
A function to make a deep copy of an instance of this class.
that | the instance from which information is to be copied |
Definition at line 6382 of file OSMatrix.cpp.
int MatrixBlock::blockRowIdx |
Definition at line 2503 of file OSMatrix.h.
int MatrixBlock::blockColIdx |
Definition at line 2504 of file OSMatrix.h.