Ipopt  3.11.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpIterativeWsmpSolverInterface.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 // $Id: IpIterativeWsmpSolverInterface.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Andreas Waechter IBM 2009-09-18
8 // based on IpWsmpSolverInterface.hpp (rev 1483)
9 
10 
11 #ifndef __IPITERATIVEWSMPSOLVERINTERFACE_HPP__
12 #define __IPITERATIVEWSMPSOLVERINTERFACE_HPP__
13 
15 
16 namespace Ipopt
17 {
18 
24  {
25  public:
30 
34 
36  bool InitializeImpl(const OptionsList& options,
37  const std::string& prefix);
38 
39 
43  virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros,
44  const Index *ia,
45  const Index *ja);
46 
49  virtual double* GetValuesArrayPtr();
50 
52  virtual ESymSolverStatus MultiSolve(bool new_matrix,
53  const Index* ia,
54  const Index* ja,
55  Index nrhs,
56  double* rhs_vals,
57  bool check_NegEVals,
58  Index numberOfNegEVals);
59 
63  virtual Index NumberOfNegEVals() const;
65 
66  //* @name Options of Linear solver */
68 
70  virtual bool IncreaseQuality();
71 
75  virtual bool ProvidesInertia() const
76  {
77  return false;
78  }
83  {
84  return CSR_Format_1_Offset;
85  }
87 
90  static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
92 
93  private:
104 
108 
113 
115  double* a_;
117 
133 
136 
139 #if 0
140 
141  Index negevals_;
142 #endif
143 
144 
157 
163  double* DPARM_;
165 
170  ESymSolverStatus SymbolicFactorization(const Index* ia, const Index* ja);
171 
173  ESymSolverStatus InternalSymFact(const Index* ia, const Index* ja);
174 
178  const Index* ja,
179  bool check_NegEVals,
180  Index numberOfNegEVals);
181 
184  ESymSolverStatus Solve(const Index* ia,
185  const Index* ja,
186  Index nrhs,
187  double *rhs_vals);
189  };
190 
191 } // namespace Ipopt
192 #endif