Diana
0.8.3
|
00001 #ifndef DIANA_NLP_TASK_FACTORY_HPP 00002 #define DIANA_NLP_TASK_FACTORY_HPP 00003 00004 #include <Diana/IDianaMain.hpp> 00005 #include <Diana/DianaParameter.hpp> 00006 #include <Diana/DianaModel.hpp> 00007 #include <Diana/IDianaDAESO.hpp> 00008 #include <Diana/DianaSensDAESO.hpp> 00009 #include <Diana/DianaOEDTask.hpp> 00010 00011 namespace Diana { 00012 00013 extern "C" { 00015 typedef Numeric::Solvers::NLPTasks::ICapeNLPTask* (*fCreateOEDTask)(Numeric::Solvers::NLPTasks::ICapeNLPTask* pParFitTask, 00016 Numeric::Solvers::Solver::ICapeNumericNLPSolver* pOptimizer, 00017 const Common::Parameter::CapeArrayParameterSpec& colDesignVars); 00018 } 00019 00021 class DianaNLPTaskFactory : public Numeric::Solvers::NLPTasks::ICapeNumericNLPTaskFactory { 00022 public: 00028 Numeric::Solvers::NLPTasks::ICapeNLPTask* CreateOEDTask(Numeric::Solvers::NLPTasks::ICapeNLPTask* pParFitTask, 00029 Numeric::Solvers::Solver::ICapeNumericNLPSolver* pOptimizer, 00030 const Common::Parameter::CapeArrayParameterSpec& colDesignVars, 00031 Common::Types::CapeString strLibraryName) 00032 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, 00033 Common::Error::ECapeOutOfBounds, Common::Error::ECapeOutOfResources, 00034 Common::Error::ECapeFailedInitialisation, Common::Error::ECapeUser); 00035 00038 Numeric::Solvers::NLPTasks::ICapeNLPTask* CreateNLPTask(Common::Types::CapeString strLibraryName) 00039 throw (Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, 00040 Common::Error::ECapeOutOfBounds, Common::Error::ECapeOutOfResources, 00041 Common::Error::ECapeFailedInitialisation, Common::Error::ECapeUser); 00042 00044 void Shutdown() 00045 throw (Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl); 00046 }; 00047 } 00048 00049 #endif