Ipopt
trunk
|
00001 // Copyright (C) 2005, 2007 International Business Machines and others. 00002 // All Rights Reserved. 00003 // This code is published under the Eclipse Public License. 00004 // 00005 // $Id$ 00006 // 00007 // Authors: Carl Laird, Andreas Waechter IBM 2005-06-25 00008 00009 #ifndef __IPUSERSCALING_HPP__ 00010 #define __IPUSERSCALING_HPP__ 00011 00012 #include "IpNLPScaling.hpp" 00013 #include "IpNLP.hpp" 00014 00015 namespace Ipopt 00016 { 00020 class UserScaling : public StandardScalingBase 00021 { 00022 public: 00025 UserScaling(const SmartPtr<const NLP>& nlp) 00026 : 00027 StandardScalingBase(), 00028 nlp_(nlp) 00029 {} 00030 00032 virtual ~UserScaling() 00033 {} 00035 00036 protected: 00037 virtual void DetermineScalingParametersImpl( 00038 const SmartPtr<const VectorSpace> x_space, 00039 const SmartPtr<const VectorSpace> c_space, 00040 const SmartPtr<const VectorSpace> d_space, 00041 const SmartPtr<const MatrixSpace> jac_c_space, 00042 const SmartPtr<const MatrixSpace> jac_d_space, 00043 const SmartPtr<const SymMatrixSpace> h_space, 00044 const Matrix& Px_L, const Vector& x_L, 00045 const Matrix& Px_U, const Vector& x_U, 00046 Number& df, 00047 SmartPtr<Vector>& dx, 00048 SmartPtr<Vector>& dc, 00049 SmartPtr<Vector>& dd); 00050 00051 private: 00052 00061 00063 UserScaling(const UserScaling&); 00064 00066 void operator=(const UserScaling&); 00068 00070 SmartPtr<const NLP> nlp_; 00071 }; 00072 } // namespace Ipopt 00073 #endif