/home/coin/SVN-release/CoinAll-1.1.0/Ipopt/src/Algorithm/IpGradientScaling.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2005, 2007 International Business Machines and others.
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // $Id: IpGradientScaling.hpp 1100 2007-09-28 23:47:43Z andreasw $
00006 //
00007 // Authors:  Carl Laird, Andreas Waechter     IBM    2005-07-13
00008 
00009 #ifndef __IPGRADIENTSCALING_HPP__
00010 #define __IPGRADIENTSCALING_HPP__
00011 
00012 #include "IpNLPScaling.hpp"
00013 #include "IpNLP.hpp"
00014 
00015 namespace Ipopt
00016 {
00021   class GradientScaling : public StandardScalingBase
00022   {
00023   public:
00026     GradientScaling(const SmartPtr<NLP>& nlp)
00027         :
00028         StandardScalingBase(),
00029         nlp_(nlp)
00030     {}
00031 
00033     virtual ~GradientScaling()
00034     {}
00036 
00040     static void RegisterOptions(const SmartPtr<RegisteredOptions>& roptions);
00042 
00043   protected:
00045     bool InitializeImpl(const OptionsList& options,
00046                         const std::string& prefix);
00047 
00048     virtual void DetermineScalingParametersImpl(
00049       const SmartPtr<const VectorSpace> x_space,
00050       const SmartPtr<const VectorSpace> c_space,
00051       const SmartPtr<const VectorSpace> d_space,
00052       const SmartPtr<const MatrixSpace> jac_c_space,
00053       const SmartPtr<const MatrixSpace> jac_d_space,
00054       const SmartPtr<const SymMatrixSpace> h_space,
00055       const Matrix& Px_L, const Vector& x_L,
00056       const Matrix& Px_U, const Vector& x_U,
00057       Number& df,
00058       SmartPtr<Vector>& dx,
00059       SmartPtr<Vector>& dc,
00060       SmartPtr<Vector>& dd);
00061 
00062   private:
00063 
00072 
00074     GradientScaling(const GradientScaling&);
00075 
00077     void operator=(const GradientScaling&);
00079 
00081     SmartPtr<NLP> nlp_;
00082 
00084     Number scaling_max_gradient_;
00085 
00087     Number scaling_obj_target_gradient_;
00088 
00090     Number scaling_constr_target_gradient_;
00091   };
00092 } // namespace Ipopt
00093 #endif

Generated on Sun Nov 14 14:06:34 2010 for Coin-All by  doxygen 1.4.7