My Project
MatrixBlocks Class Reference

a data structure to represent the nonzeroes of a matrix in a blockwise fashion. Each block can be given elementwise, through transformation, or by nested blocks, and so on, recursively. More...

#include <OSMatrix.h>

Inheritance diagram for MatrixBlocks:
MatrixConstructor MatrixNode

Public Member Functions

 MatrixBlocks ()
 -------— Methods for class MatrixBlocks -------—
 
 ~MatrixBlocks ()
 
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 MatrixBlockscloneMatrixNode ()
 The implementation of the virtual functions.
 
bool IsEqual (MatrixBlocks *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 (MatrixBlocks *that)
 A function to make a deep copy of an instance of this class.
 
- Public Member Functions inherited from MatrixConstructor
 MatrixConstructor ()
 constructor
 
virtual ~MatrixConstructor ()
 destructor
 
- 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

IntVectorcolOffset
 An array listing the leftmost column of each block within the larger matrix It is assumed that the blocks are neatly "stacked".
 
IntVectorrowOffset
 An array listing the top row of each block within the larger matrix.
 
- 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 the nonzeroes of a matrix in a blockwise fashion. Each block can be given elementwise, through transformation, or by nested blocks, and so on, recursively.

Definition at line 1449 of file OSMatrix.h.

Constructor & Destructor Documentation

◆ MatrixBlocks()

MatrixBlocks::MatrixBlocks ( )

-------— Methods for class MatrixBlocks -------—

Definition at line 6117 of file OSMatrix.cpp.

◆ ~MatrixBlocks()

MatrixBlocks::~MatrixBlocks ( )

Definition at line 6127 of file OSMatrix.cpp.

Member Function Documentation

◆ getNodeType()

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

Reimplemented from MatrixNode.

Definition at line 6183 of file OSMatrix.cpp.

◆ getNodeName()

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

Implements MatrixNode.

Definition at line 6188 of file OSMatrix.cpp.

◆ getMatrixType()

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

Implements MatrixNode.

Definition at line 6193 of file OSMatrix.cpp.

◆ getMatrixNodeInXML()

std::string MatrixBlocks::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 6204 of file OSMatrix.cpp.

◆ alignsOnBlockBoundary()

bool MatrixBlocks::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

Implements MatrixNode.

Definition at line 6222 of file OSMatrix.cpp.

◆ cloneMatrixNode()

MatrixBlocks * MatrixBlocks::cloneMatrixNode ( )
virtual

The implementation of the virtual functions.

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

Implements MatrixNode.

Definition at line 6243 of file OSMatrix.cpp.

◆ IsEqual()

bool MatrixBlocks::IsEqual ( MatrixBlocks * that)

A function to check for the equality of two objects.

Definition at line 6250 of file OSMatrix.cpp.

◆ setRandom()

bool MatrixBlocks::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

◆ deepCopyFrom()

bool MatrixBlocks::deepCopyFrom ( MatrixBlocks * 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

Member Data Documentation

◆ colOffset

IntVector* MatrixBlocks::colOffset

An array listing the leftmost column of each block within the larger matrix It is assumed that the blocks are neatly "stacked".

Definition at line 1456 of file OSMatrix.h.

◆ rowOffset

IntVector* MatrixBlocks::rowOffset

An array listing the top row of each block within the larger matrix.

Definition at line 1461 of file OSMatrix.h.


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