Ipopt  3.11.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpLowRankSSAugSystemSolver.hpp
Go to the documentation of this file.
1 // Copyright (C) 2005, 2009 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpLowRankSSAugSystemSolver.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Andreas Waechter IBM 2009-11-05
8 // (based on IpLowRankAugSystemSolver.hpp rev 1324)
9 
10 #ifndef __IP_LOWRANKSSAUGSYSTEMSOLVER_HPP__
11 #define __IP_LOWRANKSSAUGSYSTEMSOLVER_HPP__
12 
13 #include "IpAugSystemSolver.hpp"
14 #include "IpDiagMatrix.hpp"
15 #include "IpCompoundMatrix.hpp"
16 #include "IpCompoundVector.hpp"
18 
19 namespace Ipopt
20 {
21 
28  {
29  public:
34  LowRankSSAugSystemSolver(AugSystemSolver& aug_system_solver,
35  Index max_rank);
36 
38  virtual ~LowRankSSAugSystemSolver();
40 
42  bool InitializeImpl(const OptionsList& options,
43  const std::string& prefix);
44 
48  virtual ESymSolverStatus Solve(
49  const SymMatrix* W,
50  double W_factor,
51  const Vector* D_x,
52  double delta_x,
53  const Vector* D_s,
54  double delta_s,
55  const Matrix* J_c,
56  const Vector* D_c,
57  double delta_c,
58  const Matrix* J_d,
59  const Vector* D_d,
60  double delta_d,
61  const Vector& rhs_x,
62  const Vector& rhs_s,
63  const Vector& rhs_c,
64  const Vector& rhs_d,
65  Vector& sol_x,
66  Vector& sol_s,
67  Vector& sol_c,
68  Vector& sol_d,
69  bool check_NegEVals,
70  Index numberOfNegEVals);
71 
78  virtual Index NumberOfNegEVals() const;
79 
83  virtual bool ProvidesInertia() const;
84 
91  virtual bool IncreaseQuality();
92 
93  private:
106 
108  void operator=(const LowRankSSAugSystemSolver&);
110 
116 
119 
130  double w_factor_;
136  double delta_x_;
142  double delta_s_;
152  double delta_c_;
162  double delta_d_;
164 
167 
186 
195 
201  const SymMatrix* W,
202  double W_factor,
203  const Vector* D_x,
204  double delta_x,
205  const Vector* D_s,
206  double delta_s,
207  const Matrix& J_c,
208  const Vector* D_c,
209  double delta_c,
210  const Matrix& J_d,
211  const Vector* D_d,
212  double delta_d,
213  const Vector& proto_rhs_x,
214  const Vector& proto_rhs_s,
215  const Vector& proto_rhs_c,
216  const Vector& proto_rhs_d);
217 
222  const SymMatrix* W,
223  double W_factor,
224  const Vector* D_x,
225  double delta_x,
226  const Vector* D_s,
227  double delta_s,
228  const Matrix& J_c,
229  const Vector* D_c,
230  double delta_c,
231  const Matrix& J_d,
232  const Vector* D_d,
233  double delta_d);
235 
236  };
237 
238 } // namespace Ipopt
239 
240 #endif