My Project
MatrixBlock Class Reference

a data structure to represent a MatrixBlock object (derived from MatrixType) More...

#include <OSMatrix.h>

Inheritance diagram for MatrixBlock:
MatrixType MatrixNode

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 MatrixBlockcloneMatrixNode ()
 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.
 
- Public Member Functions inherited from MatrixType
 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 ()
 
GeneralSparseMatrixgetMatrixCoefficientsInColumnMajor ()
 
GeneralSparseMatrixgetMatrixCoefficientsInRowMajor ()
 
GeneralSparseMatrixgetMatrixBlockInColumnMajorForm (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
 
GeneralSparseMatrixconvertToOtherMajor (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.
 
GeneralSparseMatrixextractBlock (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).
 
ExpandedMatrixBlocksgetBlocks (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).
 
ExpandedMatrixBlocksdisassembleMatrix (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.
 
- Public Member Functions inherited from MatrixNode
 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
 
- Public Attributes inherited from MatrixType
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
 
GeneralSparseMatrixExpandedMatrixInRowMajorForm
 The matrix can be held in expanded form by rows or by columns and in a number of ways stored by blocks.
 
GeneralSparseMatrixExpandedMatrixInColumnMajorForm
 
std::vector< ExpandedMatrixBlocks * > ExpandedMatrixByBlocks
 
- Public Attributes inherited from MatrixNode
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.
 

Detailed Description

a data structure to represent a MatrixBlock object (derived from MatrixType)

Definition at line 2500 of file OSMatrix.h.

Constructor & Destructor Documentation

◆ MatrixBlock()

MatrixBlock::MatrixBlock ( )

-------— Methods for class MatrixBlock -------—

Definition at line 6292 of file OSMatrix.cpp.

◆ ~MatrixBlock()

MatrixBlock::~MatrixBlock ( )

Definition at line 6302 of file OSMatrix.cpp.

Member Function Documentation

◆ getNodeType()

ENUM_MATRIX_CONSTRUCTOR_TYPE MatrixBlock::getNodeType ( )
virtual
Returns
the value of nType

Reimplemented from MatrixNode.

Definition at line 6309 of file OSMatrix.cpp.

◆ getNodeName()

std::string MatrixBlock::getNodeName ( )
virtual
Returns
the name of the operator

Implements MatrixNode.

Definition at line 6314 of file OSMatrix.cpp.

◆ getMatrixType()

ENUM_MATRIX_TYPE MatrixBlock::getMatrixType ( )
virtual
Returns
the type of the matrix elements

Implements MatrixNode.

Definition at line 6319 of file OSMatrix.cpp.

◆ getMatrixNodeInXML()

std::string MatrixBlock::getMatrixNodeInXML ( )
virtual

The following method writes a matrix node in OSgL format. it is used by OSgLWriter to write a <matrix> element.

Returns
the MatrixNode and its children as an OSgL string.

Implements MatrixNode.

Definition at line 6332 of file OSMatrix.cpp.

◆ alignsOnBlockBoundary()

bool MatrixBlock::alignsOnBlockBoundary ( int firstRow,
int firstColumn,
int nRows,
int nCols )
virtual

Check whether a submatrix aligns with the block partition of a matrix or block or other constructor.

Parameters
firstRowgives the number of the first row in the submatrix (zero-based)
firstColumngives the number of the first column in the submatrix (zero-based)
nRowsgives the number of rows in the submatrix
nColumnsgives the number of columns in the submatrix
Returns
true if the submatrix aligns with the boundaries of a block

Reimplemented from MatrixType.

Definition at line 6355 of file OSMatrix.cpp.

◆ expandElements()

bool MatrixBlock::expandElements ( bool rowMajor)
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.

Parameters
rowMajorcan be used to store the objects in row major form.
Returns
whether the operation was successful or not.

Reimplemented from MatrixType.

Definition at line 6360 of file OSMatrix.cpp.

◆ cloneMatrixNode()

MatrixBlock * MatrixBlock::cloneMatrixNode ( )
virtual

The implementation of the virtual functions.

Returns
a pointer to a new MatrixNode of the proper type.

Implements MatrixNode.

Definition at line 6365 of file OSMatrix.cpp.

◆ IsEqual()

bool MatrixBlock::IsEqual ( MatrixBlock * that)

A function to check for the equality of two objects.

Definition at line 6372 of file OSMatrix.cpp.

◆ setRandom()

bool MatrixBlock::setRandom ( double density,
bool conformant,
int iMin,
int iMax )

A function to make a random instance of this class.

Parameters
densitycorresponds to the probability that a particular child element is created
conformantif true enforces side constraints not enforceable in the schema (e.g., agreement of "numberOfXXX" attributes and <XXX> children)
iMinlowest index value (inclusive) that a variable reference in this matrix can take
iMaxgreatest index value (inclusive) that a variable reference in this matrix can take

Definition at line 6377 of file OSMatrix.cpp.

◆ deepCopyFrom()

bool MatrixBlock::deepCopyFrom ( MatrixBlock * that)

A function to make a deep copy of an instance of this class.

Parameters
thatthe instance from which information is to be copied
Returns
whether the copy was created successfully

Definition at line 6382 of file OSMatrix.cpp.

Member Data Documentation

◆ blockRowIdx

int MatrixBlock::blockRowIdx

Definition at line 2503 of file OSMatrix.h.

◆ blockColIdx

int MatrixBlock::blockColIdx

Definition at line 2504 of file OSMatrix.h.


The documentation for this class was generated from the following files: