IpGradientScaling.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2005, 2006 International Business Machines and others.
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // $Id: IpGradientScaling.hpp 759 2006-07-07 03:07:08Z andreasw $
00006 //
00007 // Authors:  Carl Laird, Andreas Waechter     IBM    2005-07-13
00008 
00009 #ifndef __IPGRADIENTCALING_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       Number& df,
00056       SmartPtr<Vector>& dx,
00057       SmartPtr<Vector>& dc,
00058       SmartPtr<Vector>& dd);
00059 
00060   private:
00061 
00070 
00072     GradientScaling(const GradientScaling&);
00073 
00075     void operator=(const GradientScaling&);
00077 
00079     SmartPtr<NLP> nlp_;
00080 
00082     Number scaling_max_gradient_;
00083   };
00084 } // namespace Ipopt
00085 #endif

Generated on Fri Sep 26 07:44:11 2008 for SimTKcore by  doxygen 1.5.6