Class for Matrices with few columns that consists of Vectors. More...
#include <IpMultiVectorMatrix.hpp>
Public Member Functions | |
SmartPtr< MultiVectorMatrix > | MakeNewMultiVectorMatrix () const |
Create a new MultiVectorMatrix from same MatrixSpace. | |
SmartPtr< const Vector > | GetVector (Index i) const |
Get a Vector in a particular column as a const Vector. | |
SmartPtr< Vector > | GetVectorNonConst (Index i) |
Get a Vector in a particular column as a non-const Vector. | |
void | ScaleRows (const Vector &scal_vec) |
Method for scaling the rows of the matrix, using the ElementWiseMultiply method for each column vector. | |
void | ScaleColumns (const Vector &scal_vec) |
Method for scaling the columns of the matrix, using the Scal method for each column vector. | |
void | AddOneMultiVectorMatrix (Number a, const MultiVectorMatrix &mv1, Number c) |
Adding another MultiVectorMatrix, using the AddOneVector methods for the individual column vectors. | |
void | AddRightMultMatrix (Number a, const MultiVectorMatrix &U, const Matrix &C, Number b) |
Multiplying a Matrix C (for now assumed to be a DenseGenMatrix) from the right to a MultiVectorMatrix U and adding the result to this MultiVectorMatrix V. | |
void | FillWithNewVectors () |
Method for initializing all Vectors with new (uninitialized) Vectors. | |
void | LRMultVector (Number alpha, const Vector &x, Number beta, Vector &y) const |
Method for adding the low-rank update matrix corresponding to this matrix to a vector. | |
SmartPtr< const VectorSpace > | ColVectorSpace () const |
Vector space for the columns. | |
SmartPtr< const MultiVectorMatrixSpace > | MultiVectorMatrixOwnerSpace () const |
Return the MultiVectorMatrixSpace. | |
Constructors / Destructors | |
MultiVectorMatrix (const MultiVectorMatrixSpace *owner_space) | |
Constructor, taking the owner_space. | |
~MultiVectorMatrix () | |
Destructor. | |
Protected Member Functions | |
Overloaded methods from Matrix base class | |
virtual void | MultVectorImpl (Number alpha, const Vector &x, Number beta, Vector &y) const |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan). | |
virtual void | TransMultVectorImpl (Number alpha, const Vector &x, Number beta, Vector &y) const |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan). | |
virtual bool | HasValidNumbersImpl () const |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan). | |
virtual void | PrintImpl (const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent, const std::string &prefix) const |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan). | |
Private Member Functions | |
Default Compiler Generated Methods | |
MultiVectorMatrix () | |
Default Constructor. | |
MultiVectorMatrix (const MultiVectorMatrix &) | |
Copy Constructor. | |
void | operator= (const MultiVectorMatrix &) |
Overloaded Equals Operator. | |
Private Attributes | |
const MultiVectorMatrixSpace * | owner_space_ |
std::vector< SmartPtr< const Vector > > | const_vecs_ |
space for storing the const Vector's | |
std::vector< SmartPtr< Vector > > | non_const_vecs_ |
space for storing the non-const Vector's | |
| |
void | SetVector (Index i, const Vector &vec) |
Set a particular Vector at a given column position, replacing another vector if there has been one. | |
void | SetVectorNonConst (Index i, Vector &vec) |
Set a particular Vector at a given column position, replacing another vector if there has been one. | |
const Vector * | ConstVec (Index i) const |
Method for accessing the internal Vectors internally. | |
Vector * | Vec (Index i) |
Set a particular Vector at a given column position, replacing another vector if there has been one. |
Class for Matrices with few columns that consists of Vectors.
Those matrices are for example useful in the implementation of limited memory quasi-Newton methods.
Definition at line 25 of file IpMultiVectorMatrix.hpp.
Ipopt::MultiVectorMatrix::MultiVectorMatrix | ( | const MultiVectorMatrixSpace * | owner_space | ) |
Constructor, taking the owner_space.
Ipopt::MultiVectorMatrix::~MultiVectorMatrix | ( | ) | [inline] |
Destructor.
Definition at line 221 of file IpMultiVectorMatrix.hpp.
Ipopt::MultiVectorMatrix::MultiVectorMatrix | ( | ) | [private] |
Default Constructor.
Ipopt::MultiVectorMatrix::MultiVectorMatrix | ( | const MultiVectorMatrix & | ) | [private] |
Copy Constructor.
SmartPtr< MultiVectorMatrix > Ipopt::MultiVectorMatrix::MakeNewMultiVectorMatrix | ( | ) | const [inline] |
Create a new MultiVectorMatrix from same MatrixSpace.
Definition at line 225 of file IpMultiVectorMatrix.hpp.
Get a Vector in a particular column as a const Vector.
Definition at line 56 of file IpMultiVectorMatrix.hpp.
Get a Vector in a particular column as a non-const Vector.
This is fail if the column has currently only a non-const Vector stored.
Definition at line 64 of file IpMultiVectorMatrix.hpp.
void Ipopt::MultiVectorMatrix::ScaleRows | ( | const Vector & | scal_vec | ) |
Method for scaling the rows of the matrix, using the ElementWiseMultiply method for each column vector.
void Ipopt::MultiVectorMatrix::ScaleColumns | ( | const Vector & | scal_vec | ) |
Method for scaling the columns of the matrix, using the Scal method for each column vector.
void Ipopt::MultiVectorMatrix::AddOneMultiVectorMatrix | ( | Number | a, | |
const MultiVectorMatrix & | mv1, | |||
Number | c | |||
) |
Adding another MultiVectorMatrix, using the AddOneVector methods for the individual column vectors.
void Ipopt::MultiVectorMatrix::AddRightMultMatrix | ( | Number | a, | |
const MultiVectorMatrix & | U, | |||
const Matrix & | C, | |||
Number | b | |||
) |
Multiplying a Matrix C (for now assumed to be a DenseGenMatrix) from the right to a MultiVectorMatrix U and adding the result to this MultiVectorMatrix V.
V = a * U * C + b * V.
void Ipopt::MultiVectorMatrix::FillWithNewVectors | ( | ) |
Method for initializing all Vectors with new (uninitialized) Vectors.
void Ipopt::MultiVectorMatrix::LRMultVector | ( | Number | alpha, | |
const Vector & | x, | |||
Number | beta, | |||
Vector & | y | |||
) | const |
Method for adding the low-rank update matrix corresponding to this matrix to a vector.
If V is this MultiVectorMatrix, the operation is y = beta*y + alpha*V*V^T*x.
SmartPtr< const VectorSpace > Ipopt::MultiVectorMatrix::ColVectorSpace | ( | ) | const [inline] |
Vector space for the columns.
Definition at line 231 of file IpMultiVectorMatrix.hpp.
SmartPtr< const MultiVectorMatrixSpace > Ipopt::MultiVectorMatrix::MultiVectorMatrixOwnerSpace | ( | ) | const [inline] |
Return the MultiVectorMatrixSpace.
Definition at line 238 of file IpMultiVectorMatrix.hpp.
virtual void Ipopt::MultiVectorMatrix::MultVectorImpl | ( | Number | alpha, | |
const Vector & | x, | |||
Number | beta, | |||
Vector & | y | |||
) | const [protected, virtual] |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
Implements Ipopt::Matrix.
virtual void Ipopt::MultiVectorMatrix::TransMultVectorImpl | ( | Number | alpha, | |
const Vector & | x, | |||
Number | beta, | |||
Vector & | y | |||
) | const [protected, virtual] |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
Implements Ipopt::Matrix.
virtual bool Ipopt::MultiVectorMatrix::HasValidNumbersImpl | ( | ) | const [protected, virtual] |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
Reimplemented from Ipopt::Matrix.
virtual void Ipopt::MultiVectorMatrix::PrintImpl | ( | const Journalist & | jnlst, | |
EJournalLevel | level, | |||
EJournalCategory | category, | |||
const std::string & | name, | |||
Index | indent, | |||
const std::string & | prefix | |||
) | const [protected, virtual] |
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
Implements Ipopt::Matrix.
void Ipopt::MultiVectorMatrix::operator= | ( | const MultiVectorMatrix & | ) | [private] |
Overloaded Equals Operator.
Reimplemented from Ipopt::Matrix.
Method for accessing the internal Vectors internally.
Definition at line 157 of file IpMultiVectorMatrix.hpp.
Set a particular Vector at a given column position, replacing another vector if there has been one.
Depending on whether the Vector is const or not, it is stored in the const or non-const internal column.
Definition at line 169 of file IpMultiVectorMatrix.hpp.
const MultiVectorMatrixSpace* Ipopt::MultiVectorMatrix::owner_space_ [private] |
Reimplemented from Ipopt::Matrix.
Definition at line 147 of file IpMultiVectorMatrix.hpp.
std::vector<SmartPtr<const Vector> > Ipopt::MultiVectorMatrix::const_vecs_ [private] |
space for storing the const Vector's
Definition at line 150 of file IpMultiVectorMatrix.hpp.
std::vector<SmartPtr<Vector> > Ipopt::MultiVectorMatrix::non_const_vecs_ [private] |
space for storing the non-const Vector's
Definition at line 153 of file IpMultiVectorMatrix.hpp.