Ipopt  3.12.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpIdentityMatrix.hpp
Go to the documentation of this file.
1 // Copyright (C) 2004, 2008 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpIdentityMatrix.hpp 2269 2013-05-05 11:32:40Z stefan $
6 //
7 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8 
9 #ifndef __IPIDENTITYMATRIX_HPP__
10 #define __IPIDENTITYMATRIX_HPP__
11 
12 #include "IpUtils.hpp"
13 #include "IpSymMatrix.hpp"
14 
15 namespace Ipopt
16 {
17 
21  class IdentityMatrix : public SymMatrix
22  {
23  public:
24 
27 
31  IdentityMatrix(const SymMatrixSpace* owner_space);
32 
36 
38  void SetFactor(Number factor)
39  {
40  factor_ = factor;
41  }
42 
44  Number GetFactor() const
45  {
46  return factor_;
47  }
48 
50  Index Dim() const;
51 
52  protected:
55  virtual void MultVectorImpl(Number alpha, const Vector& x,
56  Number beta, Vector& y) const;
57 
58  virtual void AddMSinvZImpl(Number alpha, const Vector& S,
59  const Vector& Z, Vector& X) const;
60 
63  virtual bool HasValidNumbersImpl() const;
64 
65  virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const;
66 
67  virtual void PrintImpl(const Journalist& jnlst,
68  EJournalLevel level,
69  EJournalCategory category,
70  const std::string& name,
71  Index indent,
72  const std::string& prefix) const;
74 
75  private:
86 
89 
91  void operator=(const IdentityMatrix&);
93 
96  };
97 
100  {
101  public:
106  :
107  SymMatrixSpace(dim)
108  {}
109 
112  {}
114 
117  virtual SymMatrix* MakeNewSymMatrix() const
118  {
119  return MakeNewIdentityMatrix();
120  }
121 
124  {
125  return new IdentityMatrix(this);
126  }
127 
128  private:
139 
142 
144  void operator=(const IdentityMatrixSpace&);
146  };
147 
148 } // namespace Ipopt
149 #endif
Number * x
Input: Starting point Output: Optimal solution.
virtual void AddMSinvZImpl(Number alpha, const Vector &S, const Vector &Z, Vector &X) const
X = X + alpha*(Matrix S^{-1} Z).
Number factor_
Scaling factor for this identity matrix.
Index Dim() const
Method for obtaining the dimention of the matrix.
IdentityMatrixSpace()
Default Constructor.
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.
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Vector Base Class.
Definition: IpVector.hpp:47
EJournalLevel
Print Level Enum.
This is the base class for all derived symmetric matrix types.
Definition: IpSymMatrix.hpp:23
IdentityMatrix()
Default Constructor.
This is the matrix space for IdentityMatrix.
Class for Matrices which are multiples of the identity matrix.
virtual bool HasValidNumbersImpl() const
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
IdentityMatrix * MakeNewIdentityMatrix() const
Method for creating a new matrix of this specific type.
virtual SymMatrix * MakeNewSymMatrix() const
Overloaded MakeNew method for the SymMatrixSpace base class.
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:19
virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix-vector multiply.
void SetFactor(Number factor)
Method for setting the factor for the identity matrix.
virtual ~IdentityMatrixSpace()
Destructor.
SymMatrixSpace base class, corresponding to the SymMatrix base class.
Definition: IpSymMatrix.hpp:81
void operator=(const IdentityMatrix &)
Overloaded Equals Operator.
Class responsible for all message output.
void operator=(const IdentityMatrixSpace &)
Overloaded Equals Operator.
IdentityMatrixSpace(Index dim)
Constructor, given the dimension of the matrix.
Number GetFactor() const
Method for getting the factor for the identity matrix.
EJournalCategory
Category Selection Enum.
virtual void ComputeRowAMaxImpl(Vector &rows_norms, bool init) const
Compute the max-norm of the rows in the matrix.
~IdentityMatrix()
Destructor.