OSMatrix Class Reference

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

#include <OSMatrix.h>

Inheritance diagram for OSMatrix:
Inheritance graph
[legend]
Collaboration diagram for OSMatrix:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 OSMatrix ()
 ---------- Methods for class OSMatrix ----------
 ~OSMatrix ()
OSMatrixcreateConstructorTreeFromPrefix (std::vector< MatrixNode * > mtxConstructorVec)
virtual
ENUM_MATRIX_CONSTRUCTOR_TYPE 
getNodeType ()
virtual std::string getNodeName ()
virtual ENUM_MATRIX_TYPE getMatrixType ()
virtual bool expandElements (bool rowMajor)
 A method to process a matrixType into a specific block structure.
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.
bool isBlockDiagonal ()
 A method to check whether a matrix is block-diagonal.
bool setMatrix (std::string name, int numberOfRows, int numberOfColumns, ENUM_MATRIX_SYMMETRY symmetry, ENUM_MATRIX_TYPE matrixType, unsigned int inumberOfChildren, MatrixNode **m_mChildren)
 add values to this matrix.
virtual std::string getMatrixNodeInXML ()
virtual OSMatrixcloneMatrixNode ()
 The implementation of the virtual functions.
bool IsEqual (OSMatrix *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 (OSMatrix *that)
 A function to make a deep copy of an instance of this class.

Public Attributes

int idx
std::string name

Detailed Description

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

Definition at line 2185 of file OSMatrix.h.


Constructor & Destructor Documentation

OSMatrix::OSMatrix (  ) 

---------- Methods for class OSMatrix ----------

Definition at line 2968 of file OSMatrix.cpp.

OSMatrix::~OSMatrix (  ) 

Definition at line 2979 of file OSMatrix.cpp.


Member Function Documentation

OSMatrix * OSMatrix::createConstructorTreeFromPrefix ( std::vector< MatrixNode * >  mtxConstructorVec  ) 

Take a vector of MatrixNodes in prefix format and create a matrix root node

Parameters:
mtxConstructorVec holds a vector of pointers to matrix constructors, mtxConstructorVec and blocks in prefix format
Returns:
a pointer to an OSMatrix which is the root of a list of constructors.

Definition at line 2987 of file OSMatrix.cpp.

ENUM_MATRIX_CONSTRUCTOR_TYPE OSMatrix::getNodeType (  )  [virtual]
Returns:
the value of nType

Reimplemented from MatrixNode.

Definition at line 3010 of file OSMatrix.cpp.

std::string OSMatrix::getNodeName (  )  [virtual]
Returns:
the name of the operator

Implements MatrixNode.

Definition at line 3015 of file OSMatrix.cpp.

ENUM_MATRIX_TYPE OSMatrix::getMatrixType (  )  [virtual]
Returns:
the type of the matrix elements

Implements MatrixNode.

Definition at line 3020 of file OSMatrix.cpp.

bool OSMatrix::expandElements ( bool  rowMajor  )  [virtual]

A method to process a matrixType into a specific block structure.

Parameters:
rowOffset defines a partition of the matrix rows into the blocks
colOffset defines a partition of the matrix columns into the blocks
rowMajor controls whether the blocks are stored by row or by column
symmetry can be used to store only the upper or lower triangle, depending on the parameter value --- see OSParameters.h for definitions
Returns:
whether the operation was successful
Remarks:
The blocks are stored into a std::vector of type expandedMatrixBlocks so that they can be retrieved later using extractBlock (see below). It is possible (though probably not advisable) to maintain multiple decompositions with different row and column partitions 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:
rowMajor can be used to store the objects in row major form.
Returns:
whether the operation was successful or not.

Reimplemented from MatrixType.

Definition at line 3031 of file OSMatrix.cpp.

bool OSMatrix::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:
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
Returns:
true if the submatrix aligns with the boundaries of a block

Reimplemented from MatrixType.

Definition at line 3411 of file OSMatrix.cpp.

bool OSMatrix::isBlockDiagonal (  ) 

A method to check whether a matrix is block-diagonal.

bool OSMatrix::setMatrix ( std::string  name,
int  numberOfRows,
int  numberOfColumns,
ENUM_MATRIX_SYMMETRY  symmetry,
ENUM_MATRIX_TYPE  matrixType,
unsigned int  inumberOfChildren,
MatrixNode **  m_mChildren 
)

add values to this matrix.

Parameters:
name holds the matrix name; use null or empty std::string ("") if no matrix name.
numberOfRows holds the number of rows. It is required. Use 1 for column vectors.
numberOfColumns holds the number of columns. It is required. Use 1 for row vectors.
symmetry holds the type of symmetry used in the definition of the matrix. For more information see the enumeration ENUM_MATRIX_SYMMETRY in OSGeneral.h. If no symmetry, use ENUM_MATRIX_SYMMETRY_none.
matrixType tracks the type of elements contained in this matrix. For more information see the enumeration ENUM_MATRIX_TYPE in OSGeneral.h. If unsure, use ENUM_MATRIX_TYPE_unknown.
inumberOfChildren is the number of MatrixNode child elements, i.e., the number of matrix constructors in the m_mChildren array.
m_mChildren is the array of matrix constructors used in the definition of this matrix.
Returns:
whether the matrix was added successfully.

Definition at line 3668 of file OSMatrix.cpp.

std::string OSMatrix::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.

Reimplemented in OSMatrixWithMatrixVarIdx, OSMatrixWithMatrixObjIdx, and OSMatrixWithMatrixConIdx.

Definition at line 3683 of file OSMatrix.cpp.

OSMatrix * OSMatrix::cloneMatrixNode (  )  [virtual]

The implementation of the virtual functions.

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

Implements MatrixNode.

Reimplemented in OSMatrixWithMatrixVarIdx, OSMatrixWithMatrixObjIdx, and OSMatrixWithMatrixConIdx.

Definition at line 3708 of file OSMatrix.cpp.

bool OSMatrix::IsEqual ( OSMatrix that  )  [virtual]

A function to check for the equality of two objects.

Reimplemented from MatrixType.

Reimplemented in OSMatrixWithMatrixVarIdx, OSMatrixWithMatrixObjIdx, and OSMatrixWithMatrixConIdx.

Definition at line 3715 of file OSMatrix.cpp.

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

A function to make a random instance of this class.

Parameters:
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

Reimplemented from MatrixType.

Reimplemented in OSMatrixWithMatrixVarIdx, OSMatrixWithMatrixObjIdx, and OSMatrixWithMatrixConIdx.

bool OSMatrix::deepCopyFrom ( OSMatrix that  ) 

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

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

Reimplemented from MatrixType.

Reimplemented in OSMatrixWithMatrixVarIdx, OSMatrixWithMatrixObjIdx, and OSMatrixWithMatrixConIdx.


Member Data Documentation

Definition at line 2188 of file OSMatrix.h.

std::string OSMatrix::name

Definition at line 2189 of file OSMatrix.h.


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

Generated on 5 Jul 2015 by  doxygen 1.6.1