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: IpRestoFilterConvCheck.hpp 759 2006-07-07 03:07:08Z andreasw $ 00006 // 00007 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 00008 00009 #ifndef __IPRESTOFILTERCONVCHECK_HPP__ 00010 #define __IPRESTOFILTERCONVCHECK_HPP__ 00011 00012 #include "IpOptErrorConvCheck.hpp" 00013 #include "IpFilterLSAcceptor.hpp" 00014 00015 namespace Ipopt 00016 { 00017 00031 class RestoFilterConvergenceCheck : 00032 public OptimalityErrorConvergenceCheck 00033 { 00034 public: 00038 RestoFilterConvergenceCheck(); 00039 00041 virtual ~RestoFilterConvergenceCheck(); 00043 00049 void SetOrigFilterLSAcceptor(const FilterLSAcceptor& orig_filter_ls_acceptor); 00050 00052 virtual bool InitializeImpl(const OptionsList& options, 00053 const std::string& prefix); 00054 00056 virtual ConvergenceStatus CheckConvergence(bool call_intermediate_callback = true); 00057 00060 static void RegisterOptions(SmartPtr<RegisteredOptions> roptions); 00062 private: 00070 RestoFilterConvergenceCheck(const RestoFilterConvergenceCheck&); 00071 00073 void operator=(const RestoFilterConvergenceCheck&); 00075 00080 Number kappa_resto_; 00082 Index maximum_iters_; 00084 00088 bool first_resto_iter_; 00089 00095 const FilterLSAcceptor* orig_filter_ls_acceptor_; 00096 }; 00097 00098 } // namespace Ipopt 00099 00100 #endif