Ipopt Documentation  
 
Loading...
Searching...
No Matches
IpExpandedMultiVectorMatrix.hpp
Go to the documentation of this file.
1// Copyright (C) 2009 International Business Machines and others.
2// All Rights Reserved.
3// This code is published under the Eclipse Public License.
4//
5// Authors: Andreas Waechter IBM 2009-11-05
6
7#ifndef __IPEXPANDEDMULTIVECTORMATRIX_HPP__
8#define __IPEXPANDEDMULTIVECTORMATRIX_HPP__
9
10#include "IpUtils.hpp"
11#include "IpMatrix.hpp"
12#include "IpExpansionMatrix.hpp"
13
14namespace Ipopt
15{
16
18class ExpandedMultiVectorMatrixSpace;
19
29{
30public:
33
36 );
37
42
44
49 Index i,
51 );
52
55 Index i
56 ) const
57 {
58 DBG_ASSERT(i < NRows());
59 return vecs_[i];
60 }
61
64
67
73
74protected:
77 virtual void MultVectorImpl(
79 const Vector& x,
81 Vector& y
82 ) const;
83
84 virtual void TransMultVectorImpl(
86 const Vector& x,
88 Vector& y
89 ) const;
90
92 virtual bool HasValidNumbersImpl() const;
93
94 virtual void ComputeRowAMaxImpl(
96 bool init
97 ) const;
98
99 virtual void ComputeColAMaxImpl(
101 bool init
102 ) const;
103
104 virtual void PrintImpl(
105 const Journalist& jnlst,
108 const std::string& name,
110 const std::string& prefix
111 ) const;
113
114private:
124
126
130 );
131
135 );
137
139
141 std::vector<SmartPtr<const Vector> > vecs_;
142
143};
144
192
194{
195 return owner_space_->MakeNewExpandedMultiVectorMatrix();
196}
197
199{
200 return owner_space_->RowVectorSpace();
201}
202
204{
205 return owner_space_->GetExpansionMatrix();
206}
207
212
213} // namespace Ipopt
214#endif
#define DBG_ASSERT(test)
Definition IpDebug.hpp:27
Templated class which stores one entry for the CachedResult class.
This is the matrix space for ExpandedMultiVectorMatrix.
ExpandedMultiVectorMatrix * MakeNewExpandedMultiVectorMatrix() const
Method for creating a new matrix of this specific type.
virtual Matrix * MakeNew() const
Pure virtual method for creating a new Matrix of the corresponding type.
SmartPtr< const VectorSpace > RowVectorSpace() const
Accessor method for the VectorSpace for the rows.
ExpandedMultiVectorMatrixSpace(Index nrows, const VectorSpace &vec_space, SmartPtr< const ExpansionMatrix > exp_matrix)
Constructor, given the number of rows (i.e., Vectors to be stored) and given the VectorSpace for the ...
SmartPtr< const ExpansionMatrix > GetExpansionMatrix() const
Class for Matrices with few rows that consists of Vectors, together with a premultiplied Expansion ma...
std::vector< SmartPtr< const Vector > > vecs_
space for storing the const Vector's
virtual bool HasValidNumbersImpl() const
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
SmartPtr< const ExpandedMultiVectorMatrixSpace > ExpandedMultiVectorMatrixOwnerSpace() const
Return the ExpandedMultiVectorMatrixSpace.
SmartPtr< const ExpansionMatrix > GetExpansionMatrix() const
Return the Expansion matrix.
SmartPtr< const Vector > GetVector(Index i) const
Get a Vector in a particular row as a const Vector.
SmartPtr< const VectorSpace > RowVectorSpace() const
Vector space for the rows.
ExpandedMultiVectorMatrix(const ExpandedMultiVectorMatrixSpace *owner_space)
Constructor, taking the owner_space.
virtual void TransMultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix(transpose) vector multiply.
virtual void PrintImpl(const Journalist &jnlst, EJournalLevel level, EJournalCategory category, const std::string &name, Index indent, const std::string &prefix) const
Print detailed information about the matrix.
SmartPtr< ExpandedMultiVectorMatrix > MakeNewExpandedMultiVectorMatrix() const
void operator=(const ExpandedMultiVectorMatrix &)
Default Assignment Operator.
ExpandedMultiVectorMatrix()
Default Constructor.
virtual void ComputeColAMaxImpl(Vector &cols_norms, bool init) const
Compute the max-norm of the columns in the matrix.
virtual void ComputeRowAMaxImpl(Vector &rows_norms, bool init) const
Compute the max-norm of the rows in the matrix.
virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix-vector multiply.
void SetVector(Index i, SmartPtr< const Vector > vec)
Set a particular Vector at a given row position, replacing another vector if there has been one.
const ExpandedMultiVectorMatrixSpace * owner_space_
ExpandedMultiVectorMatrix(const ExpandedMultiVectorMatrix &)
Copy Constructor.
Class responsible for all message output.
MatrixSpace base class, corresponding to the Matrix base class.
Definition IpMatrix.hpp:327
Matrix Base Class.
Definition IpMatrix.hpp:28
Index NRows() const
Number of rows.
Definition IpMatrix.hpp:401
VectorSpace base class, corresponding to the Vector base class.
Definition IpVector.hpp:473
Vector Base Class.
Definition IpVector.hpp:48
This file contains a base class for all exceptions and a set of macros to help with exceptions.
ipindex Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:20
EJournalCategory
Category Selection Enum.
EJournalLevel
Print Level Enum.
ipnumber Number
Type of all numbers.
Definition IpTypes.hpp:17