- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# /home/coin/SVN-release/Ipopt-3.5.1/Ipopt/src/Algorithm/IpMonotoneMuUpdate.hpp

Go to the documentation of this file.

    00001 // Copyright (C) 2004, 2006 International Business Machines and others.
    00002 // All Rights Reserved.
    00003 // This code is published under the Common Public License.
    00004 //
    00005 // $Id: IpMonotoneMuUpdate.hpp 735 2006-06-04 06:10:05Z andreasw $
    00006 //
    00007 // Authors:  Carl Laird, Andreas Waechter     IBM    2004-08-13
    00008
    00009 #ifndef __IPMONOTONEMUUPDATE_HPP__
    00010 #define __IPMONOTONEMUUPDATE_HPP__
    00011
    00012 #include "IpMuUpdate.hpp"
    00013 #include "IpLineSearch.hpp"
    00014 #include "IpRegOptions.hpp"
    00015
    00016 namespace Ipopt
    00017 {
    00018
    00022   class MonotoneMuUpdate : public MuUpdate
    00023   {
    00024   public:
    00028     MonotoneMuUpdate(const SmartPtr<LineSearch>& linesearch);
    00029
    00031     virtual ~MonotoneMuUpdate();
    00033
    00035     virtual bool InitializeImpl(const OptionsList& options,
    00036                                 const std::string& prefix);
    00037
    00043     virtual bool UpdateBarrierParameter();
    00044
    00047     static void RegisterOptions(const SmartPtr<RegisteredOptions>& roptions);
    00049
    00050   private:
    00059     MonotoneMuUpdate();
    00060
    00062     MonotoneMuUpdate(const MonotoneMuUpdate&);
    00063
    00065     void operator=(const MonotoneMuUpdate&);
    00067
    00069     void CalcNewMuAndTau(Number &new_mu,
    00070                          Number &new_tau);
    00071
    00075     Number mu_init_;
    00076     Number barrier_tol_factor_;
    00077     Number mu_linear_decrease_factor_;
    00078     Number mu_superlinear_decrease_power_;
    00079     bool mu_allow_fast_monotone_decrease_;
    00081     Number tau_min_;
    00082     Number compl_inf_tol_;
    00084
    00085     SmartPtr<LineSearch> linesearch_;
    00086
    00089     bool initialized_;
    00090
    00094     bool first_iter_resto_;
    00095   };
    00096
    00097 } // namespace Ipopt
    00098
    00099 #endif