00001 #ifndef PLAYA_UNCONSTRAINED_OPTIMIZER_BASE_H 00002 #define PLAYA_UNCONSTRAINED_OPTIMIZER_BASE_H 00003 00004 #include "PlayaObjectiveBase.hpp" 00005 #include "PlayaOptState.hpp" 00006 #include "PlayaConvergenceMonitor.hpp" 00007 #include "Teuchos_ENull.hpp" 00008 00009 namespace Playa 00010 { 00011 00012 /** 00013 * Base class for unconstrained optimizers 00014 * 00015 * @author Kevin Long 00016 */ 00017 class UnconstrainedOptimizerBase : public ObjectWithVerbosity, 00018 public Describable, 00019 public Printable 00020 { 00021 public: 00022 /** */ 00023 UnconstrainedOptimizerBase(){} 00024 /** */ 00025 virtual ~UnconstrainedOptimizerBase(){} 00026 00027 00028 /** Main method to apply the algorithm starting with x and 00029 returning the result in x */ 00030 virtual OptState run(const RCP<ObjectiveBase>& obj, 00031 const Vector<double>& xInit, 00032 const RCP<ConvergenceMonitor>& convMonitor = null) const = 0 ; 00033 00034 00035 00036 }; 00037 } 00038 00039 #endif