IpDefaultIterateInitializer.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: IpDefaultIterateInitializer.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Carl Laird, Andreas Waechter IBM 2004-09-24
8 
9 #ifndef __IPDEFAULTITERATEINITIALIZER_HPP__
10 #define __IPDEFAULTITERATEINITIALIZER_HPP__
11 
12 #include "IpIterateInitializer.hpp"
13 #include "IpEqMultCalculator.hpp"
14 #include "IpAugSystemSolver.hpp"
15 
16 namespace Ipopt
17 {
18 
25  {
26  public:
35  (const SmartPtr<EqMultiplierCalculator>& eq_mult_calculator,
36  const SmartPtr<IterateInitializer>& warm_start_initializer,
37  const SmartPtr<AugSystemSolver> aug_system_solver = NULL);
38 
41  {}
43 
45  virtual bool InitializeImpl(const OptionsList& options,
46  const std::string& prefix);
47 
50  virtual bool SetInitialIterates();
51 
55  static void push_variables(const Journalist& jnlst,
56  Number bound_push,
57  Number bound_frac,
58  std::string name,
59  const Vector& orig_x,
61  const Vector& x_L,
62  const Vector& x_U,
63  const Matrix& Px_L,
64  const Matrix& Px_U);
65 
73  static void least_square_mults(const Journalist& jnlst,
74  IpoptNLP& ip_nlp,
75  IpoptData& ip_data,
77  const SmartPtr<EqMultiplierCalculator>& eq_mult_calculator,
78  Number constr_mult_init_max);
79 
80 
83  static void RegisterOptions(SmartPtr<RegisteredOptions> reg_options);
85 
89  {
92  };
94  private:
105 
108 
112 
123 
146 
150 
153 
158 
161  bool CalculateLeastSquarePrimals(Vector& x_ls, Vector& s_ls);
162 
165  bool CalculateLeastSquareDuals(Vector& zL_new, Vector& zU_new,
166  Vector& vL_new, Vector& vU_new,
167  Vector& yc_new, Vector& yd_new);
168 
169  };
170 
171 } // namespace Ipopt
172 
173 #endif