- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# /home/coin/SVN-release/Ipopt-3.2.1/Ipopt/src/Algorithm/IpProbingMuOracle.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: IpProbingMuOracle.hpp 759 2006-07-07 03:07:08Z andreasw $
    00006 //
    00007 // Authors:  Carl Laird, Andreas Waechter     IBM    2004-08-13
    00008
    00009 #ifndef __IPPROBINGMUORACLE_HPP__
    00010 #define __IPPROBINGMUORACLE_HPP__
    00011
    00012 #include "IpMuOracle.hpp"
    00013 #include "IpPDSystemSolver.hpp"
    00014
    00015 namespace Ipopt
    00016 {
    00017
    00021   class ProbingMuOracle : public MuOracle
    00022   {
    00023   public:
    00027     ProbingMuOracle(const SmartPtr<PDSystemSolver>& pd_solver);
    00029     virtual ~ProbingMuOracle();
    00031
    00033     virtual bool InitializeImpl(const OptionsList& options,
    00034                                 const std::string& prefix);
    00035
    00040     virtual bool CalculateMu(Number mu_min, Number mu_max, Number& new_mu);
    00041
    00044     static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
    00046
    00047   private:
    00056
    00058     ProbingMuOracle();
    00060     ProbingMuOracle(const ProbingMuOracle&);
    00061
    00063     void operator=(const ProbingMuOracle&);
    00065
    00069     SmartPtr<PDSystemSolver> pd_solver_;
    00070
    00074     Number CalculateAffineMu(Number alpha_primal,
    00075                              Number alpha_dual,
    00076                              const IteratesVector& step);
    00077
    00081     Number sigma_max_;
    00083   };
    00084
    00085 } // namespace Ipopt
    00086
    00087 #endif