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: IpMuOracle.hpp 759 2006-07-07 03:07:08Z andreasw $ 00006 // 00007 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 00008 00009 #ifndef __IPMUORACLE_HPP__ 00010 #define __IPMUORACLE_HPP__ 00011 00012 #include "IpAlgStrategy.hpp" 00013 00014 namespace Ipopt 00015 { 00016 00021 class MuOracle : public AlgorithmStrategyObject 00022 { 00023 public: 00027 MuOracle() 00028 {} 00029 ; 00031 virtual ~MuOracle() 00032 {} 00033 ; 00035 00037 virtual bool InitializeImpl(const OptionsList& options, 00038 const std::string& prefix) = 0; 00039 00048 virtual bool CalculateMu(Number mu_min, Number mu_max, Number& new_mu) = 0; 00049 00050 private: 00059 00061 MuOracle(const MuOracle&); 00062 00064 void operator=(const MuOracle&); 00066 00067 }; 00068 00069 } // namespace Ipopt 00070 00071 #endif