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: IpInexactAlgBuilder.hpp 2666 2016-07-20 16:02:55Z stefan $ 00006 // 00007 // Authors: Andreas Waechter IBM 2008-09-05 00008 // based on IpAlgBuilder.hpp (rev 913) 00009 00010 #ifndef __IPINEXACTALGBUILDER_HPP__ 00011 #define __IPINEXACTALGBUILDER_HPP__ 00012 00013 #include "IpAlgBuilder.hpp" 00014 00015 namespace Ipopt 00016 { 00017 00027 class InexactAlgorithmBuilder : public AlgorithmBuilder 00028 { 00029 public: 00033 InexactAlgorithmBuilder(); 00034 00036 virtual ~InexactAlgorithmBuilder() 00037 {} 00038 00040 00043 virtual void BuildIpoptObjects(const Journalist& jnlst, 00044 const OptionsList& options, 00045 const std::string& prefix, 00046 const SmartPtr<NLP>& nlp, 00047 SmartPtr<IpoptNLP>& ip_nlp, 00048 SmartPtr<IpoptData>& ip_data, 00049 SmartPtr<IpoptCalculatedQuantities>& ip_cq); 00050 00051 virtual SmartPtr<IpoptAlgorithm> BuildBasicAlgorithm(const Journalist& jnlst, 00052 const OptionsList& options, 00053 const std::string& prefix); 00055 00059 static void RegisterOptions(SmartPtr<RegisteredOptions> roptions); 00061 00062 private: 00072 //InexactAlgorithmBuilder(); 00073 00075 InexactAlgorithmBuilder(const InexactAlgorithmBuilder&); 00076 00078 void operator=(const InexactAlgorithmBuilder&); 00080 00084 SmartPtr<AugSystemSolver> custom_solver_; 00085 00086 }; 00087 00093 void AddInexactDefaultOptions(OptionsList& options_list); 00094 00095 } // namespace Ipopt 00096 00097 #endif