00001 // Copyright (C) 2008 International Business Machines and others. 00002 // All Rights Reserved. 00003 // This code is published under the Eclipse Public License. 00004 // 00005 // $Id: IpRestoPenaltyConvCheck.hpp 1861 2010-12-21 21:34:47Z andreasw $ 00006 // 00007 // Authors: Andreas Waechter IBM 2008-06-24 00008 // based on IpRestoFilterConvCheck.hpp 00009 00010 #ifndef __IPRESTOPENALTYCONVCHECK_HPP__ 00011 #define __IPRESTOPENALTYCONVCHECK_HPP__ 00012 00013 #include "IpRestoConvCheck.hpp" 00014 #include "IpPenaltyLSAcceptor.hpp" 00015 00016 namespace Ipopt 00017 { 00018 00023 class RestoPenaltyConvergenceCheck : 00024 public RestoConvergenceCheck 00025 { 00026 public: 00030 RestoPenaltyConvergenceCheck(); 00031 00033 virtual ~RestoPenaltyConvergenceCheck(); 00035 00041 void SetOrigLSAcceptor(const BacktrackingLSAcceptor& orig_ls_acceptor); 00042 00044 virtual bool InitializeImpl(const OptionsList& options, 00045 const std::string& prefix); 00046 00049 static void RegisterOptions(SmartPtr<RegisteredOptions> roptions); 00051 private: 00059 RestoPenaltyConvergenceCheck(const RestoPenaltyConvergenceCheck&); 00060 00062 void operator=(const RestoPenaltyConvergenceCheck&); 00064 00068 virtual ConvergenceStatus 00069 TestOrigProgress(Number orig_trial_barr, Number orig_trial_theta); 00070 00076 const PenaltyLSAcceptor* orig_penalty_ls_acceptor_; 00077 }; 00078 00079 } // namespace Ipopt 00080 00081 #endif