Diana
0.8.3
|
00001 #ifndef CAPE_NLP_PARAMETER_H 00002 #define CAPE_NLP_PARAMETER_H 00003 00004 #include "CapeParameter.hpp" 00005 00006 namespace Common { 00007 namespace Parameter { 00008 00009 class ICapeNLPRealParameterSpec : virtual public ICapeRealParameterSpec { 00010 public: 00012 virtual Common::Types::CapeDouble Precision() const 00013 throw (Common::Error::ECapeUnknown) = 0; 00014 }; 00015 } 00016 } 00017 namespace Numeric { 00018 namespace Solvers { 00019 namespace NLPTasks { 00020 00024 enum eCapeNLPTaskType { 00025 CAPE_NULLRANGE = 0x00, 00026 CAPE_FIRSTRANGE = 0x01, 00027 CAPE_SQP = 0x02 00028 }; 00029 00033 enum eCapeOptPointEntry { 00034 CAPE_OBJFUNC = 0x01, 00035 CAPE_GXCONSTR = 0x02, 00036 CAPE_HXCONSTR = 0x04, 00037 CAPE_GRADIENT = 0x08, 00038 CAPE_LSJAC = 0x0F 00039 }; 00040 00041 00043 namespace Parameters { 00044 00048 class ICapeOptimizationPoint : virtual public Common::Identification::ICapeIdentification { 00049 public: 00051 virtual ~ICapeOptimizationPoint(){} 00052 00056 virtual Common::Types::CapeLong Content() const = 0; 00057 00061 virtual Common::Types::CapeBoolean Content(eCapeOptPointEntry entryType) const = 0; 00062 00072 virtual Common::Types::CapeValidationStatus ValStatus(eCapeOptPointEntry entryType) const 00073 throw(Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, Common::Error::ECapeNoImpl) = 0; 00074 00083 virtual Common::Types::CapeLong ValStatus() const 00084 throw(Common::Error::ECapeUnknown, Common::Error::ECapeNoImpl) = 0; 00085 00087 virtual Common::Types::CapeVariant GetParameterValue(Common::Types::CapeLong _idx) const 00088 throw(Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, Common::Error::ECapeNoImpl) = 0; 00089 00091 virtual Common::Parameter::ICapeParameterSpec* GetParameterSpec(Common::Types::CapeLong _idx) const 00092 throw(Common::Error::ECapeUnknown, Common::Error::ECapeInvalidArgument, Common::Error::ECapeNoImpl) = 0; 00093 00095 virtual Common::Types::CapeLong GetParametersCount() const = 0; 00096 00098 virtual Common::Types::CapeDouble GetObjFunction() const = 0; 00099 00102 virtual void Reinitialize() 00103 throw(Common::Error::ECapeUnknown) = 0; 00104 00107 virtual Common::Types::CapeValidationStatus Update() 00108 throw(Common::Error::ECapeUnknown) = 0; 00109 00110 #ifndef SWIG 00111 00112 friend std::ostream& operator<<(std::ostream& out_file, const ICapeOptimizationPoint&); 00113 #endif 00114 }; 00115 00116 00117 #ifndef SWIG 00118 00119 std::ostream& operator<<(std::ostream& out_file, const ICapeOptimizationPoint&); 00120 #endif 00121 00125 class ICapeSensOptimizationPoint : virtual public ICapeOptimizationPoint { 00126 public: 00128 virtual ~ICapeSensOptimizationPoint(){} 00129 00131 virtual const Common::Types::CapeArrayDouble& GetGradient() const = 0; 00132 }; 00133 00134 } 00135 } 00136 } 00137 } 00138 00139 #endif //CAPE_NLP_PARAMETER_H