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.
1.6.1