Ipopt  3.11.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpEquilibrationScaling.hpp
Go to the documentation of this file.
1 // Copyright (C) 2007 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpEquilibrationScaling.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Andreas Waechter IBM 2007-05-21
8 
9 #ifndef __IPEQUILIBRATIONSCALING_HPP__
10 #define __IPEQUILIBRATIONSCALING_HPP__
11 
12 #include "IpNLPScaling.hpp"
13 #include "IpNLP.hpp"
14 
15 namespace Ipopt
16 {
22  {
23  public:
27  :
29  nlp_(nlp)
30  {}
31 
34  {}
36 
40  static void RegisterOptions(const SmartPtr<RegisteredOptions>& roptions);
42 
43  protected:
45  bool InitializeImpl(const OptionsList& options,
46  const std::string& prefix);
47 
48  virtual void DetermineScalingParametersImpl(
49  const SmartPtr<const VectorSpace> x_space,
50  const SmartPtr<const VectorSpace> c_space,
51  const SmartPtr<const VectorSpace> d_space,
52  const SmartPtr<const MatrixSpace> jac_c_space,
53  const SmartPtr<const MatrixSpace> jac_d_space,
54  const SmartPtr<const SymMatrixSpace> h_space,
55  const Matrix& Px_L, const Vector& x_L,
56  const Matrix& Px_U, const Vector& x_U,
57  Number& df,
58  SmartPtr<Vector>& dx,
59  SmartPtr<Vector>& dc,
60  SmartPtr<Vector>& dd);
61 
62  private:
63 
72 
75 
77  void operator=(const EquilibrationScaling&);
79 
82 
86  };
87 
93  {
94  public:
97  PointPerturber(const Vector& reference_point,
98  Number random_pert_radius,
99  const Matrix& Px_L, const Vector& x_L,
100  const Matrix& Px_U, const Vector& x_U);
101 
103  virtual ~PointPerturber()
104  {}
106 
109 
110  private:
111 
120 
123 
125  void operator=(const PointPerturber&);
127 
130 
133  };
134 
135 } // namespace Ipopt
136 #endif