Ipopt 3.11.9
Loading...
Searching...
No Matches
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 1861 2010-12-21 21:34:47Z andreasw $
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
15namespace Ipopt
16{
17
22 {
23 public:
24
27
31 IdentityMatrix(const SymMatrixSpace* owner_space);
32
36
38 void SetFactor(Number factor)
39 {
40 factor_ = factor;
41 }
42
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
93
96 };
97
100 {
101 public:
106 :
107 SymMatrixSpace(dim)
108 {}
109
112 {}
114
118 {
119 return MakeNewIdentityMatrix();
120 }
121
124 {
125 return new IdentityMatrix(this);
126 }
127
128 private:
139
142
146 };
147
148} // namespace Ipopt
149#endif
Number * x
Input: Starting point Output: Optimal solution.
This is the matrix space for IdentityMatrix.
IdentityMatrixSpace()
Default Constructor.
virtual SymMatrix * MakeNewSymMatrix() const
Overloaded MakeNew method for the SymMatrixSpace base class.
void operator=(const IdentityMatrixSpace &)
Overloaded Equals Operator.
IdentityMatrix * MakeNewIdentityMatrix() const
Method for creating a new matrix of this specific type.
IdentityMatrixSpace(const IdentityMatrixSpace &)
Copy Constructor.
IdentityMatrixSpace(Index dim)
Constructor, given the dimension of the matrix.
virtual ~IdentityMatrixSpace()
Destructor.
Class for Matrices which are multiples of the identity matrix.
IdentityMatrix()
Default Constructor.
virtual void AddMSinvZImpl(Number alpha, const Vector &S, const Vector &Z, Vector &X) const
X = X + alpha*(Matrix S^{-1} Z).
virtual bool HasValidNumbersImpl() const
Method for determining if all stored numbers are valid (i.e., no Inf or Nan).
void operator=(const IdentityMatrix &)
Overloaded Equals Operator.
virtual void ComputeRowAMaxImpl(Vector &rows_norms, bool init) const
Compute the max-norm of the rows in the matrix.
Number factor_
Scaling factor for this identity matrix.
Number GetFactor() const
Method for getting the factor for the identity matrix.
Index Dim() const
Method for obtaining the dimention of the matrix.
void SetFactor(Number factor)
Method for setting the factor for the identity matrix.
virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const
Matrix-vector multiply.
IdentityMatrix(const SymMatrixSpace *owner_space)
Constructor, initializing with dimensions of the matrix (true identity matrix).
IdentityMatrix(const IdentityMatrix &)
Copy Constructor.
~IdentityMatrix()
Destructor.
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.
Class responsible for all message output.
SymMatrixSpace base class, corresponding to the SymMatrix base class.
This is the base class for all derived symmetric matrix types.
Vector Base Class.
Definition IpVector.hpp:48
EJournalCategory
Category Selection Enum.
int Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:19
EJournalLevel
Print Level Enum.
double Number
Type of all numbers.
Definition IpTypes.hpp:17