#include <IpCompoundMatrix.hpp>
Inheritance diagram for Ipopt::CompoundMatrixSpace:
Public Member Functions | |
SmartPtr< const MatrixSpace > | GetCompSpace (Index irow, Index jcol) const |
Obtain the component MatrixSpace in block row irow and block column jcol. | |
CompoundMatrix * | MakeNewCompoundMatrix () const |
Method for creating a new matrix of this specific type. | |
virtual Matrix * | MakeNew () const |
Overloaded MakeNew method for the MatrixSpace base class. | |
Constructors / Destructors | |
CompoundMatrixSpace (Index ncomps_rows, Index ncomps_cols, Index total_nRows, Index total_nCols) | |
Constructor, given the number of row and columns blocks, as well as the totel number of rows and columns. | |
~CompoundMatrixSpace () | |
Destructor. | |
Methods for setting information about the components. | |
void | SetBlockRows (Index irow, Index nrows) |
Set the number nrows of rows in row-block number irow. | |
void | SetBlockCols (Index jcol, Index ncols) |
Set the number ncols of columns in column-block number jcol. | |
Index | GetBlockRows (Index irow) const |
Get the number nrows of rows in row-block number irow. | |
Index | GetBlockCols (Index jcol) const |
Set the number ncols of columns in column-block number jcol. | |
void | SetCompSpace (Index irow, Index jcol, const MatrixSpace &mat_space, bool auto_allocate=false) |
Set the component MatrixSpace. | |
Accessor methods | |
Index | NComps_Rows () const |
Number of block rows. | |
Index | NComps_Cols () const |
Number of block columns. | |
bool | Diagonal () const |
True if the blocks lie on the diagonal - can make some operations faster. | |
Private Member Functions | |
bool | DimensionsSet () const |
Auxilliary function for debugging to set if all block dimensions have been set. | |
Default Compiler Generated Methods | |
(Hidden to avoid implicit creation/calling). These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called. | |
CompoundMatrixSpace () | |
Default constructor. | |
CompoundMatrixSpace (const CompoundMatrixSpace &) | |
Copy Constructor. | |
CompoundMatrixSpace & | operator= (const CompoundMatrixSpace &) |
Overloaded Equals Operator. | |
Private Attributes | |
Index | ncomps_rows_ |
Number of block rows. | |
Index | ncomps_cols_ |
Number of block columns. | |
bool | dimensions_set_ |
Store whether or not the dimensions are valid. | |
std::vector< std::vector< SmartPtr< const MatrixSpace > > > | comp_spaces_ |
2-dim std::vector of matrix spaces for the components | |
std::vector< std::vector< bool > > | allocate_block_ |
2-dim std::vector of booleans deciding whether to allocate a new matrix for the blocks automagically | |
std::vector< Index > | block_rows_ |
Vector of the number of rows in each comp column. | |
std::vector< Index > | block_cols_ |
Vector of the number of cols in each comp row. | |
bool | diagonal_ |
true if the CompoundMatrixSpace only has Matrix spaces along the diagonal. |
Before a CompoundMatrix can be created, at least one MatrixSpace has to be set per block row and column. Individual component MatrixSpace's can be set with the SetComp method.
Definition at line 164 of file IpCompoundMatrix.hpp.
Ipopt::CompoundMatrixSpace::CompoundMatrixSpace | ( | Index | ncomps_rows, | |
Index | ncomps_cols, | |||
Index | total_nRows, | |||
Index | total_nCols | |||
) |
Constructor, given the number of row and columns blocks, as well as the totel number of rows and columns.
Ipopt::CompoundMatrixSpace::~CompoundMatrixSpace | ( | ) | [inline] |
Ipopt::CompoundMatrixSpace::CompoundMatrixSpace | ( | ) | [private] |
Default constructor.
Ipopt::CompoundMatrixSpace::CompoundMatrixSpace | ( | const CompoundMatrixSpace & | ) | [private] |
Copy Constructor.
Set the number nrows of rows in row-block number irow.
Set the number ncols of columns in column-block number jcol.
Get the number nrows of rows in row-block number irow.
Set the number ncols of columns in column-block number jcol.
void Ipopt::CompoundMatrixSpace::SetCompSpace | ( | Index | irow, | |
Index | jcol, | |||
const MatrixSpace & | mat_space, | |||
bool | auto_allocate = false | |||
) |
Set the component MatrixSpace.
If auto_allocate is true, then a new CompoundMatrix created later with MakeNew will have this component automatically created with the Matrix's MakeNew. Otherwise, the corresponding component will be NULL and has to be set with the SetComp methods of the CompoundMatrix.
SmartPtr<const MatrixSpace> Ipopt::CompoundMatrixSpace::GetCompSpace | ( | Index | irow, | |
Index | jcol | |||
) | const [inline] |
Obtain the component MatrixSpace in block row irow and block column jcol.
Definition at line 210 of file IpCompoundMatrix.hpp.
References comp_spaces_, DBG_ASSERT, NComps_Cols(), and NComps_Rows().
Index Ipopt::CompoundMatrixSpace::NComps_Rows | ( | ) | const [inline] |
Number of block rows.
Definition at line 220 of file IpCompoundMatrix.hpp.
References ncomps_rows_.
Referenced by GetCompSpace(), and Ipopt::CompoundMatrix::NComps_Rows().
Index Ipopt::CompoundMatrixSpace::NComps_Cols | ( | ) | const [inline] |
Number of block columns.
Definition at line 225 of file IpCompoundMatrix.hpp.
References ncomps_cols_.
Referenced by GetCompSpace(), and Ipopt::CompoundMatrix::NComps_Cols().
bool Ipopt::CompoundMatrixSpace::Diagonal | ( | ) | const [inline] |
True if the blocks lie on the diagonal - can make some operations faster.
Definition at line 231 of file IpCompoundMatrix.hpp.
References diagonal_.
CompoundMatrix* Ipopt::CompoundMatrixSpace::MakeNewCompoundMatrix | ( | ) | const |
virtual Matrix* Ipopt::CompoundMatrixSpace::MakeNew | ( | ) | const [inline, virtual] |
Overloaded MakeNew method for the MatrixSpace base class.
Implements Ipopt::MatrixSpace.
Definition at line 242 of file IpCompoundMatrix.hpp.
References MakeNewCompoundMatrix().
CompoundMatrixSpace& Ipopt::CompoundMatrixSpace::operator= | ( | const CompoundMatrixSpace & | ) | [private] |
Overloaded Equals Operator.
bool Ipopt::CompoundMatrixSpace::DimensionsSet | ( | ) | const [private] |
Auxilliary function for debugging to set if all block dimensions have been set.
Number of block rows.
Definition at line 267 of file IpCompoundMatrix.hpp.
Referenced by NComps_Rows().
Number of block columns.
Definition at line 270 of file IpCompoundMatrix.hpp.
Referenced by NComps_Cols().
bool Ipopt::CompoundMatrixSpace::dimensions_set_ [mutable, private] |
std::vector<std::vector<SmartPtr<const MatrixSpace> > > Ipopt::CompoundMatrixSpace::comp_spaces_ [private] |
2-dim std::vector of matrix spaces for the components
Definition at line 276 of file IpCompoundMatrix.hpp.
Referenced by GetCompSpace().
std::vector<std::vector< bool > > Ipopt::CompoundMatrixSpace::allocate_block_ [private] |
2-dim std::vector of booleans deciding whether to allocate a new matrix for the blocks automagically
Definition at line 280 of file IpCompoundMatrix.hpp.
std::vector<Index> Ipopt::CompoundMatrixSpace::block_rows_ [private] |
Vector of the number of rows in each comp column.
Definition at line 283 of file IpCompoundMatrix.hpp.
std::vector<Index> Ipopt::CompoundMatrixSpace::block_cols_ [private] |
bool Ipopt::CompoundMatrixSpace::diagonal_ [private] |
true if the CompoundMatrixSpace only has Matrix spaces along the diagonal.
this means that the CompoundMatrix will only have matrices along the diagonal and it could make some operations more efficient
Definition at line 292 of file IpCompoundMatrix.hpp.
Referenced by Diagonal().